Digitale Signatur

Die digitale bzw. elektronische Signatur ist eine schlüsselabhängige Prüfsumme, die von einer Nachricht oder einem Dokument in Kombination mit einem Schlüssel erzeugt wird. Wird die Signatur an eine Nachricht oder ein Dokument angehängt, dann gilt das als unterschrieben. Für digitale Nachrichten und Dokumente werden digitale Signaturen verwendet, um ihre Echtheit glaubhaft und prüfbar zu machen. Die Echtheit der Signatur kann elektronisch geprüft werden.

Digitale Signaturen sind in der Datenübertragung deshalb notwendig, weil sich der Absender von Nachrichten und Dokumenten fälschen lässt. Beispielsweise ist es ganz einfach den Absender einer E-Mail zu fälschen. Das heißt, es ist möglich, dass sich jemand als eine andere Person ausgibt. Auch im wirklichen Leben kann man eine beliebige Absender-Adresse auf einen Brief schreiben. Um die Glaubwürdigkeit des Briefs zu unterstreichen setzen wir an das Briefende unsere Unterschrift. Genauso wird es mit der digitalen Signatur gemacht.

Digitale Signaturen gewährleisten:

dafür müssen folgende Anforderungen gelten:

Eine Infrastruktur mit digitalen Signaturen macht nur dann Sinn, wenn die Signaturen in übertragenen Nachrichten und Dokumenten ständig geprüft werden. Nur dann kann erkannt werden, wenn eine Signatur, eine Nachricht oder ein Dokument gefälscht wurde. Wenn die Prüfung nicht erfolgt, dann bleiben Manipulationen „unbemerkt“, was nicht den Anforderungen der digitalen Signatur entspricht. Wird muss ein signiertes Dokument geändert werden, dann muss es erneut signiert werden, weil die alte Signatur nicht mehr zum Dokument passt.

Funktionsweise der digitalen Signatur

Die digitale Signatur basiert auf der asymmetrischen Kryptografie, wobei das verwendete asymmetrische Verfahren umgekehrt wird. Bei der asymmetrischen Verschlüsselung dient der öffentliche Schlüssel zum Verschlüsseln und der private Schlüssel zum Entschlüsseln. Bei der digitalen Signatur werden die Daten mit Kennzeichen versehen, die durch den privaten Schlüssel hinzugefügt werden. Mit dem öffentlichen Schlüssel kann man feststellen, ob die Daten von demjenigen stammen, der mit seinem privaten Schlüssel signiert hat und ob die Daten unverändert sind. Die Tatsache, dass der private Schlüssel durch seinen Besitzer geheim gehalten wird, erlaubt die Annahme, dass Daten, die mit dem privaten Schlüssel codiert sind, tatsächlich vom Schlüsselbesitzer stammen.

Um Nachrichten und Dokumente zu signieren muss dessen Ersteller die Nachricht mit seinem privaten Schlüssel „entschlüsseln“. Der dabei entstandene „Klartext“ ist die digitale Signatur. Sie wird an das Dokument angehängt. Die Signatur kann von jedem anderen mit dem öffentlichen Schlüssel des Erstellers „verschlüsselt“ werden. Dabei entsteht die ursprüngliche Nachricht, die mit der unverschlüsselten Nachricht verglichen werden kann. Sind beide gleich, ist das Dokument unverändert und korrekt signiert.

Blockweise erstellte Signaturen haben zusammen mindestens die gleiche Länge, wie die Nachricht oder das Dokument selbst. Das ist recht unpraktisch. Das Signieren kann ein erheblicher Aufwand bezüglich Aufwand und Rechenleistung sein. Ebenso die Prüfung der Signatur. Deshalb wird nie die ganze Nachricht signiert. Statt dessen wird aus der Nachricht zuerst eine Prüfsumme gebildet, die viel kürzer sein kann als die Nachricht selbst. Und erst dann wird das Signaturverfahren auf diese Prüfsumme angewendet. Das Verfahren, mit dem die Prüfsumme gebildet wird, ist eine kryptografische Hash-Funktion. Das Ergebnis der kryptografischen Hash-Funktion ist der Hash-Wert oder auch nur Hash genannt.

Ein Signiersystem benutzt in der Regel eine Hash-Funktion, um eine Art Fingerabdruck des zu signierenden Textes zu erstellen. Mit Hilfe eines Schlüsselpaares bestehend aus einem öffentlichen und einem privaten Schlüssel wird aus dem Fingerabdruck dann die digitale Signatur erstellt. Die Vorgehensweise soll anhand des in der Abbildung gezeigten Szenarios beschrieben werden.

Alice will eine signierte Nachricht an Bob senden.

In einem ersten Schritt erzeugt sie mit Hilfe einer Hash-Funktion einen Fingerabdruck des zu versendenden Textes. Bei dem Fingerabdruck handelt es sich um ein Bitmuster, das dem Text zugeordnet wird.

Diesen Fingerabdruck verschlüsselt Alice mit ihrem privaten Schlüssel. Das Ergebnis ist ein Bitmuster, das die digitale Signatur zum vorgegebenen Text bildet.

Alice sendet jetzt den Text mit der digitalen Signatur an Bob.

Wie überprüft Bob die Integrität der erhaltenen Nachricht?

Bob benutzt dieselbe Hash-Funktion wie Alice, um einen Fingerabdruck zum übermittelten Text zu erzeugen.

Bob ist im Besitz des öffentlichen Schlüssels von Alice und benutzt ihn, um die übermittelte Signatur zu entschlüsseln.

Wenn die Nachricht nicht verändert wurde, dann erhält Bob durch die Entschlüsselung der Signatur den von Alice erzeugten Fingerabdruck zum versendeten Text. Dieser ist dann identisch mit dem von Bob bestimmten Fingerabdruck zum empfangenen Text.

Wenn die Nachricht in Teilen verändert wurde, dann müsste das Bob beim Vergleich der Fingerabdrücke auffallen. Wenn Mr(s) X. z.B. den Text abändert, dann ändert sich auch der Fingerabdruck zum Text. Mr(s) X. kann zwar einen Fingerabdruck zum veränderten Text erzeugen, Mr(s) X. kann ihn aber nicht passend verschlüsseln, da Mr(s) X. keinen Zugang zum privaten Schlüssel von Alice hat (davon gehen wir hier natürlich aus). Mr(s) X. ist demnach nicht in der Lage, ein stimmiges Paar bestehend aus einem veränderten Text und einer hierzu passenden mit dem privaten Schlüssel von Alice erzeugten Signatur zu erzeugen.

Bob kann zudem die Authentizität der Nachricht überprüfen, d.h., ob die Nachricht tatsächlich von Alice stammt. Nur Alice hat Zugriff auf ihren privaten Schlüssel (davon gehen wir hier aus). Wenn Bob den öffentlichen Schlüssel von Alice benutzt (und dieser tatsächlich auch von Alice stammt), dann passt dieser öffentliche Schlüssel nur zum privaten Schlüssel von Alice. Bob erhält nur dann identische Fingerabdrücke, wenn der gesendete Text mit dem privaten Schlüssel von Alice - also von Alice - signiert wurde.

Da nur Alice Zugriff auf ihren privaten Schlüssel hat, kann Alice nachträglich nicht bestreiten, die signierte Nachricht an Bob verschickt zu haben. Mit der digitalen Signatur wird also auch die Verbindlichkeit des Nachrichtenaustauschs garantiert.

Bekannte Verfahren

Bekanntlich basieren Signaturverfahren auf asymmetrischen Verfahren, die sehr langsam arbeiten und von denen es nicht viele gibt. Das bekannteste und wohl am meisten eingesetzte Signaturverfahren ist RSA. Es gibt aber auch noch die Discrete Logarithm Signature Systems (DLSS). Dabei handelt es sich um eine Gruppe von Signaturverfahren auf Basis des diskreten Logarithmus. Dazu gehören ElGamal und DSA.

Es gibt weitere DLSS-Verfahren, die in der Praxis nicht so häufig anzutreffen sind und deshalb hier nicht genannt werden.