05.11.2013 Aufrufe

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

306 6 Netzwerkprogrammierung <strong>mit</strong> <strong>SSL</strong><br />

einzig <strong>mit</strong> dem jeweiligen Gegenstück die Mitteilung wieder entschlüsseln. Der<br />

ursprünglich für die Verschlüsselung eingesetzte Schlüssel kann die chiffrierte<br />

Nachricht nicht mehr aufsperren.<br />

Die asymmetrischen Verschlüsselungsverfahren haben den enormen Vorteil,<br />

daß jeder Kommunikationspartner nur seinen eigenen, privaten Schlüssel geheim<br />

halten muß <strong>und</strong> nicht, wie bei den symmetrischen Verfahren notwendig,<br />

jeder Kommunikationsteilnehmer alle Kommunikationsschlüssel unter Verschluß<br />

halten muß.<br />

Auch das Schlüsselverteilungsproblem existiert in dieser Form nicht mehr,<br />

die öffentlichen Schlüssel sind ja frei zugänglich. Allerdings muß nun gewährleistet<br />

sein, daß der veröffentlichte Schlüssel auch tatsächlich der öffentliche<br />

Schlüssel des gewünschten Kommunikationspartners ist <strong>und</strong> nicht von einem<br />

Dritten nur als der gesuchte öffentliche Schlüssel vorgetäuscht wird. Dieses<br />

Echtheitsproblem wird in der Regel durch digitale Zertifikate gelöst.<br />

Im direkten Vergleich <strong>mit</strong> den symmetrischen Algorithmen arbeiten die asymmetrischen<br />

Verfahren allerdings auf größeren Datenmengen extrem langsam.<br />

In der Praxis setzt man deshalb auf hybride Verfahren, die zunächst über<br />

ein asymmetrisches Verfahren geschützt einen symmetrischen Kommunikationsschlüssel<br />

aushandeln <strong>und</strong> die eigentliche Kommunikation dann <strong>mit</strong> einem<br />

symmetrischen Verfahren absichern.<br />

Der bekannteste Vertreter der asymmetrischen Verschlüsselungsverfahren ist<br />

das RSA-Verfahren, benannt nach seinen Entwicklern Ronald L. Rivest, Adi<br />

Shamir <strong>und</strong> Leonard M. Adleman. Das RSA-Verfahren gilt als sicheres Public-<br />

Key-Verfahren <strong>und</strong> kann im Gegensatz zu anderen asymmetrischen Verfahren<br />

sowohl zur Verschlüsselung von Daten als auch zur digitalen Signatur (siehe<br />

unten) eingesetzt werden.<br />

Zufallszahlen<br />

Zufallszahlen spielen eine gewichtige Rolle in der modernen Kryptographie,<br />

alleine schon für die Schlüsselerzeugung im Rahmen der symmetrischen <strong>und</strong><br />

asymmetrischen Verschlüsselungsverfahren. Ohne Zufallszahlen wären die erzeugten<br />

Schlüssel vorhersehbar <strong>und</strong> es ließen sich von den kryptographischen<br />

Algorithmen praktisch keine Geheimnisse erzeugen. Allerdings stellt die auf<br />

den ersten Blick recht trivial erscheinende Aufgabe, <strong>mit</strong>tels eines Computers<br />

Zufallszahlen zu erzeugen, eine durchaus ernstzunehmende Aufgabe dar, denn<br />

Computer arbeiten deterministisch, da<strong>mit</strong> also vorhersehbar <strong>und</strong> eben gerade<br />

nicht zufällig. Computer können Zufallsfolgen also lediglich berechnen <strong>und</strong><br />

der Zufall spielt bei diesen Rechenaufgaben eigentlich keine Rolle. 5<br />

Zur Berechnung von Zufallszahlen füttert man den (deterministischen) Zufallszahlengenerator<br />

<strong>mit</strong> einem oder mehreren Startwerten (Seed) <strong>und</strong> erhält<br />

5 Einige moderne Prozessoren bzw. Chipsätze bieten deshalb Zufallszahlengeneratoren<br />

in Hardware an, die dann auf echtem physikalischem Zufall beruhen.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!