Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Digitale Signatur
Zweck der Signatur ist es, nachzuweisen, dass ein Text sicher von einer bestimmten Person erstellt wurde. Der RSA-Algorithmus kann so abgewandelt werden, dass mit dem privaten Schlüssel verschlüsselt und mit dem öffentlichen Schlüssel entschlüsselt wird. Ein Absender generiert daher ein RSA-Schlüsselpaar und veröffentlicht den öffentlichen Schlüssel.
Einfache (nicht praktizierte) Variante zum Signieren einer Nachricht:
Der Absender könnte die Nachricht digital signieren, indem er sie mit seinem privaten Schlüssel verschlüsselt und den verschlüsselten Text mit zum Empfänger sendet. Der Empfänger entschlüsselt mithilfe des öffentlichen Schlüssels den verschlüsselten Text und vergleicht ihn mit der Nachricht. Falls beide gleich sind, weiß er, dass die Nachricht vom Sender stammt und unverfälscht ist.
Das obige Verfahren wird in der Praxis nicht so gehandhabt, da die Entschlüsselung mit dem RSA-Algorithmus sehr rechenintensiv ist und die Datenmenge zum Versenden verdoppelt wird. Man geht daher wie folgt vor:
- a) Der Sender erzeugt mithilfe einer kryptographischen Hashfunktion einen Hashwert des Textes.
- b) Der Sender verschlüsselt den Hashwert mit seinem privaten Schlüssel und hängt ihn an den Text an.
- c) Der Empfänger entschlüsselt den übermittelten Hashwert ( = hash1)
- d) Der Empfänger berechnet den Hashwert des übermittelten Textes ( = hash2)
- e) Der Empfänger vergleicht hash1 und hash2. Stimmen sie überein, so weiß er, dass der Text vom Sender stammt und unverfälscht ist.
Anwendung: SSL-Handshake
Immer dann, wenn wir eine Seite im Browser per https-Protokoll aufrufen, z.B. zur URL
https://www.learnj.de/11
, zeigt uns dieser durch ein Vorhängeschloss-Symbol an, dass er das Zertifikat des Servers überprüft hat und dass die Kommunikation sicher sei. Dies sichert uns zweierlei zu:
- Der Server, der auf unsere Anfrage geantwortet hat, ist berechtigt, Webseiten für die angegebene URL auszuliefern. Es handelt sich also nicht um den Server eines Angreifers, der die Webseite imitiert.
- Die Übertragung der Daten vom Browser zum Server und umgekehrt erfolgt verschlüsselt.
Uns stellen sich folgende Fragen:
- Wie stellt der Browser sicher, dass der antwortende Server wirklich zur Domain www.learnj.de gehört und nicht ein "man in the middle"-Server die Anfrage beantwortet?
- Wie können sich der Browser und der Server auf eine Schlüssel zur Verschlüsselung einigen, ohne dass ein "man in the middle" diesen abgreifen und die Kommunikation dann belauschen kann?