Verschlüsselungsicherheit in .Net

JJB

Cogito ergo brumm
Hi !

Kurze Frage zu eurer Erfahrung.
Wie sicher ist die Verschlüsselung in .Net ?
Ist es möglich, das Verschlüsselungsverfahren auszutauschen, ohne die Klassen wesentlich zu ändern ?


Danke für Antworten

MfG JJB
 
Ich hoffte auf ein wenig Aussagen über eigene Erfahrungen.

Hat Jemand schon mal damit gearbeitet ?
 
ich habe mal eines der verfahren getestet. sorry, weiß jetzt nicht mehr welchen algorytmus. lief aber gut, nachdem ich die richtige anzahl von bytes des schlüssels übergeben hatte... lol

wenn man sich da die verschlüsselungen anguckt, kann man wohl sagen, dass die sicher sind. gibt ja da genug, RSA usw...

deswegen solltest du vielleicht anstelle "Wie sicher ist die Verschlüsselung in .Net ?"

fragen...

"Wurden die entsprechenden Verschlüsselungsverfahren gemäß den verschlüsselungsalgorythmen richtig implementiert?":)

und ich schätze mal, dass das die deppen von ms gemacht haben :)
 
Die Sicherheit hängt vom Algorithmus ab. DES als symmetrischer Algo wurde vor Jahren geknackt. Bei RSA als symmetrischen sind auch schon recht weit oben, bei einer Bitlänge von 2048 solltest aber die nächsten 2 Jahre recht sicher überleben.

Ad Deppen von Microsoft:
99% der sogenannten Deppen von Microsoft programmieren besser als Du es vermutlich je können wirst. Diese Aussage kannst zumindest mal auf das komplette Framework-Team anwenden. Ich würde also derartige Aussagen nicht loslassen, wennst keinen von denen kennst. Und es sei Dir auch gesagt, dass JEDER Programmierer Fehler macht. Davor bist auch Du nicht gefeit.
 
In .Net scheint es ein paar einfache Befehle für RSA (ist jetzt mal mein Favorit) zu geben. Ist es auch genauso einfach zu schreiben ?

Ich hab immer wieder die Erfahrung gemacht, daß nebst denb üblichen Befehlen eines features noch weit mehr Randbedingungen stimmen müssen. Vor allem, wenn der konkrete Fall sich von dem ideal angewandter Beispiele unterscheidet.

Wie sieht es mit der Austauschbarkeit aus ? Lassen sich Verschlüsselungsmechanismen, sollten sie veralten, einfach austauschen ? Ich denke da an etwas wie das Strategy-Design-Pattern.

MfG JJB
 
Ad Deppen von Microsoft:
99% der sogenannten Deppen von Microsoft programmieren besser als Du es vermutlich je können wirst. Diese Aussage kannst zumindest mal auf das komplette Framework-Team anwenden. Ich würde also derartige Aussagen nicht loslassen, wennst keinen von denen kennst. Und es sei Dir auch gesagt, dass JEDER Programmierer Fehler macht. Davor bist auch Du nicht gefeit.

1. war das von mir mit deppen natürlich NICHT ernst gemeint
2. reg dich mal nicht gleich so künstlich auf
3. kannst du auch vorsichtig mit deinen aussagen sein, von wegen 99 % besser...

bissle spässle muss immer sein also reg dich ab :)
 
@NRFi, wie schon in einer PM erwähnt.

Bitte achte unbedingt auf Deine Rechtschreibung, eine klare Fragestellung bzw. Antwort und eine sinnvolle Struktur. Beiträge mit durchgehender Kleinschreibung, Chatsprache und/oder mangelhafter Struktur werden kommentarlos gelöscht.
Mehr dazu findest Du in unserer Netiquette.

3. kannst du auch vorsichtig mit deinen aussagen sein, von wegen 99 % besser...

Er hat das Wort 'vermutlich' verwendet, also war er vorsichtig. ;)
 
(Wurden die Fragen beantwortet ?)

Um der ganzen Haarspalterei mal was technisches zu verleihen...
Hier eine Frage:

Ich möchte ein Schlüsselpaar erzeugen und damit zwischen Client und Server verschlüsseln. Dazu brauche ich erst mal generierte Schlüssel, die für die Dauer der Kommunikation benutzt werden. Angenommen das ganze verläuft erst mal nur in eine Richtung.

Nun ist sich die MSDN ein wenig uneinig über folgenden Befehl:

RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();

Einmal heißt es damit würde ein Schlüsselpaar erzeugt und fortan verwendet, ein anderes mal heißt es, es wäre nur die Instanziierung für die leere Klasse "RSA" die mit:

RSA.ImportParameters(RSAKeyInfo);

ihre Parameter erhält und damit auch den öffentlichen Schlüssel des Empfängers.

Nun ist es wichtig zu wissen, welche Funktion der Konstruktor wirklich hat. Wenn er keine Schlüssel initialisiert und auf ein Import wartet, könnte ich unwissentlich mit einem leeren Schlüssel arbeiten. Wenn ich ihn aufrufe und damit ein neues Paar erzeuge, erzeuge ich vielleicht neue Exponenten, Primzahlen und eine andere Basis und verschlüssele am Ende mit einem neuen Schlüssel, obwohl ich den Import benutze.

Ich habe keinen guten Beispielcode gefunden, denn jene die ich fand haben in ein und derselben Klasse einen Text verschlüsselt und wiederentschlüsselt, folglich hatten Sender und Empfänger die selben Schlüssel, ein schlechtes Beispiel (auch ein Problem der MSDN).

Kann mir jemand auf die Sprünge helfen oder einen Beispielcode (Sender, Empfänger getrennt) posten ?

Danke JJB
 
@last:

Suche im Google nach "c# +rsa" und du erhältst den folgenden Link .

@Austauschen:
Yo, kann ma sehr einfach austauschen ... einfach überschreiben oder gar einen neuen Provider schreiben.
 
Zurück