2.4 Hash-Prüfsummen Mit einer Hash-Funktion wird von einer Nachricht eine Prüfsumme (Hash-Wert oder message digest) erstellt. Diese Prüfsumme besitzt immer die gleiche Länge unabhängig von der Länge der Nachricht. Die Prüfsumme wird auch Fingerprint genannt. Um Hash-Funktionen kryptografisch benutzen zu können, müssen sie zwei Eigenschaften besitzen: Es darf nicht möglich sein, dass zwei verschiedene Nachrichten die gleiche Prüfsumme ergeben: die Hash-Funktion muss kollisionsfrei sein. Es darf nicht möglich sein, anhand der Prüfsumme die originale Nachricht zu bestimmen: die Hash-Funktion muss eine Einweg-Funktion sein.
2.5 Hybride Verfahren zur Verschlüsselung Symmetrische Verfahren sind besser für lange Nachrichten geeignet Bei asymmetrische Verfahren können die öffentlichen Schlüssel leicht verteilt werden Vorteile beider Verfahren werden in hybriden Verfahren zur Verschlüsselung benutzt: Nachricht wird mit einem symmetrischen Verfahren verschlüsselt und der symmetrische Schlüssel wird an die Nachricht angehängt. Der Empfänger kann dann mit dem der Nachricht angehängten symmetrischen Schlüssel die Nachricht wieder entschlüsseln. Der symmetrische Schlüssel wird mit dem öffentlichen Schlüssel des Empfängers (asymmetrisches Verfahren) verschlüsselt. Dieses Verfahren ist besonders sicher, wenn der symmetrische Schlüssel nur für eine einzige Sitzung benutzt wird.
Beim hybriden Verfahren erzeugt Alice einen symmetrischen Schlüssel, der Bob nicht bekannt ist. Mit diesem verschlüsselt sie die Nachricht an Bob. Der symmetrische Schlüssel selbst wird mit Bob s Public Key verschlüsselt.
Beide Teile werden in einem gemeinsamen Umschlag an Bob gesendet.
Dieser entschlüsselt nun mit seinem Private Key den symmetrischen Schlüssel und kann dann mit diesem die Nachricht entschlüsseln.
2.6 Daten-Integrität Um die Integrität der Daten zu überprüfen, werden mit Hash-Funktionen berechnete Prüfsummen eingesetzt. Damit kann überprüft werden, ob die Nachrichten bei der Übertragung verändert wurden. Falls die Nachricht manipuliert wurde, ergibt sich eine andere Prüfsumme und die Nachricht wird verworfen. Zur Sicherstellung der Daten-Integrität erzeugt Alice aus ihrer Nachricht mit Hilfe einer Hash- Funktion, z.b. MD5, eine Prüfsumme, die zusammen mit der ursprünglichen Nachricht an Bob übertragen wird. Bob berechnet mit der gleichen Hash-Funktion aus der übertragenen Nachricht eine neue Prüfsumme und vergleicht sie mit der Übertragenen.
Wenn beide gleich sind, wurde die Nachricht nicht manipuliert.
2.7 Signaturen Um eine Manipulation der Prüfsumme zu verhindern, wird die Prüfsumme verschlüsselt übertragen. Hierzu wird ein asymmetrisches Verfahren benutzt. Die Prüfsumme wird mit dem privaten Schlüssel des Absenders verschlüsselt. Der Empfänger kann mit dem öffentlichen Schlüssel des Absenders die Prüfsumme entschlüsseln und mit der selbst berechneten Prüfsumme vergleichen. Ein Angreifer hat nun keine Möglichkeit mehr, die Nachricht und/oder die Prüfsumme unbemerkt zu manipulieren, da er nicht den privaten Schlüssel des Absenders besitzt, der zur Verschlüsselung der Prüfsumme erforderlich ist. Bildung einer Prüfsumme mit anschließender Verschlüsselung wird als Signatur bezeichnet.
Alice möchte ihre Nachricht mit einer Signatur versehen. Dazu erzeugt sie mit Hilfe einer Hash-Funktion eine Prüfsumme und verschlüsselt diese mit ihrem Private Key. Die verschlüsselte Prüfsumme bildet die Signatur, die gemeinsam mit der ursprünglichen Nachricht an Bob übertragen wird. Bob berechnet aus dieser Nachricht mit der gleichen Hash-Funktion eine neue Prüfsumme.
Gleichzeitig entschlüsselt er die Signatur mit Alice s Public Key, wodurch sich wieder die Prüfsumme ergibt, die Alice erstellt hatte.
Sind beide Prüfsummen gleich, stammt die Nachricht tatsächlich von Alice und wurde nicht manipuliert.
Dieselbe signierte Nachricht kann an beliebig viele Empfänger gesendet werden. Jeder Empfänger kann feststellen, ob die Nachricht verändert wurde oder der Absender manipuliert wurde. Es ist wichtig sich klarzumachen, dass die eigentliche Nachricht durch die Signierung nicht verändert wird. Sie kann also auf dem Übertragungswege von einem Angreifer gelesen werden. Dieses Verfahren der digitalen Signatur wird auch benutzt, wenn öffentliche Schlüssel beglaubigt, bzw. zertifiziert werden. In der Klartext-Nachricht ist dann neben anderen Angaben auch der öffentliche Schlüssel vorhanden. 2.8 Verschlüsselte und signierte Nachrichten Beim hybriden Verfahren zur Verschlüsselung kann der Empfänger nicht feststellen, ob die verschlüsselte Nachricht tatsächlich vom wahren Absender kam oder ob ein Angreifer sich als Absender ausgab und die Nachricht gesendet hat. Wenn nur Signaturen benutzt werden, ist es zwar sichergestellt, dass die Nachricht vom wahren Ansender kam. Die Nachricht wird aber unverschlüsselt übertragen. Wenn die Vertraulichkeit der Nachricht und die Authentizität des Absenders gewünscht werden, können beide Verfahren kombiniert werden. In diesem kombinierten Verfahren werden dann alle drei Verschlüsselungsarten eingesetzt: Die vertrauliche Nachricht wird symmetrisch verschlüsselt, der symmetrische Sitzungsschlüssel (geheimer Schlüssel) wird asymmetrisch verschlüsselt, die asymmetrisch verschlüsselte Signatur wird als Prüfsumme einer Hash-Funktion aus der Nachricht bestimmt.
Alice will nun ihre Nachricht gleichzeitig verschlüsseln und signieren. Dazu erzeugt sie einen symmetrischen Sitzungsschlüssel, mit dem sie den Text der Nachricht unlesbar macht. Zusätzlich wird noch der Schlüssel mit Bob s Public Key verschlüsselt.
Mit Hilfe einer Hash-Funktion bildet Alice aus ihrer Nachricht eine Prüfsumme, die sie mit ihrem Private Key zu einer Signatur verschlüsselt.
Diese wird zusammen mit der Nachricht und dem verschlüsseltem Sitzungsschlüssel in einem gemeinsamen Umschlag an Bob gesendet. Bob entschlüsselt zunächst mit seinem Private Key den symmetrischen Schlüssel, mit dessen Hilfe er die Nachricht lesbar machen kann.
Daraus berechnet er dann mit der gleichen Hash-Funktion, die zuvor Alice benutzt hat, eine neue Prüfsumme. Gleichzeitig entschlüsselt Bob auch die Signatur mit Alice s Public Key und erhält eine weitere Prüfsumme.
Wenn beide Prüfsummen gleich sind, kann Bob davon ausgehen, dass die Nachricht wirklich von Alice stammt und nicht verändert wurde.
Mit diesem kombinierten Verfahren können die meisten der in X.800 definierten Sicherheitsdienste erfüllt werden. Durch die Signatur wird der Kommunikationspartner authentifiziert. Die Daten werden vertraulich übertragen; allerdings können noch Informationen aus den nicht verschlüsselten Protokoll-Headern gewonnen werden (Verkehrsfluss-Analyse). Welche Informationen dabei gewonnen werden können, hängt von der Schicht ab, auf der die Sicherungsprotokolle eingesetzt werden. Die Integrität der Daten ist sichergestellt. Auch die Nicht-Abstreitbarkeit ist gegeben. Wenn die Prüfsummen, die der Empfänger berechnet, identisch sind, muss die Nachricht vom wahren Absender kommen (proof of origin), da nur der wahre Absender über den privaten Schlüssel verfügt, mit dem die Signatur erstellt wurde. Der Empfänger weiss auch, dass die Nachricht für ihn bestimmt ist (proof of delivery), da nur er mit seinem privatem Schlüssel in der Lage ist den Sitzungsschlüssel zu entschlüssen. Mit kryptologischen Methoden kann allerdings keine Zugriffskontrolle umgesetzt werden.