Eine Signatur ist kryptografische Realisierung einer Unterschrift unter ein Dokument (daher auch elektronische Unterschrift genannt). Die Signatur soll mindestens so sicher sein wie eine herkömmliche Unterschrift. Neben der RSA-Signatur gibt es verschiedene andere Signaturalgorithmen, die in der Praxis eingesetzt werden, um digitale Authentifizierung und Datensicherheit zu gewährleisten. Wir fokussieren uns hier nur auf die RSA-Signatur. Die RSA-Signatur ist das am weitesten verbreitete Verfahren für die digitale Signatur von E-Mails und Dokumenten.
Die Funktion einer herkömmlichen Unterschrift besteht darin, eine Verbindung zwischen einer Person und einem Dokument herzustellen. Beispielsweise verpflichtet sich A in einem Kaufvertrag für ein Auto, den Kaufpreis von 10.000 Euro zu zahlen. Der Vertragspartner B hält den unterschriebenen Vertrag in den Händen und möchte seinen Anspruch gegenüber dem Unterzeichner A geltend machen. Im Normalfall geht alles gut, A erhält das Auto und B den Kaufpreis. Es sind aber verschiedene Szenarien denkbar, in denen die Vertragsabwicklung schiefgeht. So könnte A behaupten, die Unterschrift unter dem Vertrag stamme nicht von ihm. A könnte mit Absicht eine falsche Unterschrift unter den Vertrag setzen, um von dem Vertrag zurücktreten zu können. Oder B könnte im Nachhinein den Kaufpreis fälschen, indem er eine 0 an den Betrag anhängt. Genauso könnte A behaupten, B hätte den Vertrag gefälscht und eine 0 an den Kaufpreis angehängt. Die erforderlichen Eigenschaften einer Unterschrift sind damit folgende: Authentizität (die Unterschrift ist nur vom Unterzeichner A zu leisten) Der Empfänger B oder ein Dritter kann die Unterschrift nicht fälschen. Dies ist schwierig zu realisieren, denn durch Üben gelingt es, eine Unterschrift nachzuahmen. Integrität (die Unterschrift ist mit dem zugehörigen Dokument untrennbar verbunden) Es ist nicht möglich, Teile des unterschriebenen Dokuments zu verfälschen oder auszutauschen. Verifizierbarkeit (der Empfänger B kann sich davon überzeugen, dass die Unterschrift von A stammt) Beispielsweise vergleicht die Bank die Unterschrift unter einer Überweisung mit der hinterlegten Unterschrift. Beweisbarkeit (der Empfänger B kann beweisen, dass die Unterschrift von A stammt) B klagt vor Gericht auf Vertragserfüllung, aber A streitet ab, den Vertrag unterschrieben zu haben. Für den Beweis ist dann ein graphologisches Gutachten erforderlich; dieses hat allerdings nur begrenzte Aussagekraft.
Digitale Signaturen werden häufig genutzt, um die Authentizität und Integrität von E-Mails sicherzustellen. Viele E-Mail-Dienste und Programme (z.B. Outlook, Thunderbird) unterstützen die Verwendung digitaler Signaturen, um sicherzustellen, dass der Absender tatsächlich derjenige ist, für den er sich ausgibt. Der Empfänger kann mithilfe der Signatur überprüfen, ob die Nachricht während der Übertragung manipuliert wurde. Dies ist besonders in geschäftlichen oder behördlichen Kontexten wichtig, um Phishing-Angriffe oder gefälschte Nachrichten zu verhindern.
In vielen Ländern wird die digitale Signatur bei der Unterzeichnung von rechtlich bindenden Verträgen verwendet. Plattformen wie DocuSign oder Adobe Sign ermöglichen es, Verträge, Rechnungen oder andere Dokumente elektronisch zu signieren, ohne dass ein physischer Kontakt erforderlich ist. Dies beschleunigt Prozesse erheblich und spart Zeit und Kosten, insbesondere bei internationalen Transaktionen oder in Unternehmen, die digital arbeiten. Die digitale Signatur bietet hierbei die Sicherheit, dass der Unterzeichner tatsächlich der Absender ist und das Dokument nicht nachträglich verändert wurde.
Das RSA-Signaturverfahren ist die Umkehrung des RSA-Verschlüsselungsverfahrens. Beim RSA-Verschlüsselungsverfahren verschlüsselt der Sender B die Nachricht m mit dem öffentlichen Schlüssel e des Empfängers A und erzeugt so die verschlüsselte Nachricht c: c = me mod N Der Empfänger A entschlüsselt die verschlüsselte Nachricht c mit dem eigenen privaten Schlüssel d und erhält so die Nachricht m: m = cd mod N Beim RSA-Signaturverfahren verschlüsselt der Sender A das Dokument m mit dem eigenen privaten Schlüssel d und erzeugt so die Signatur s: s = md mod N Der Empfänger B entschlüsselt die Signatur s mit dem öffentlichen Schlüssel e des Senders A und erhält so das Dokument m: m = se mod N Der Empfänger B erhält das Dokument m erst dadurch, dass er die Signatur s mit dem öffentlichen Schlüssel des Senders A entschlüsselt. Stellt das Dokument m einen sinnvollen Text dar, so ist sichergestellt, dass A das Dokument signiert hat. (vgl. untenstehende Sicherheitsprobleme).
Das RSA-Signaturverfahren ist die Umkehrung des RSA-Verschlüsselungsverfahrens. Nehmen wir ein Beispiel, in dem: - Die Nachricht m = 123 - Der öffentliche Schlüssel e = 5 - Der private Schlüssel d = 29 - Der Modulus N = 91 Beim RSA-Verschlüsselungsverfahren verschlüsselt der Sender B die Nachricht m mit dem öffentlichen Schlüssel e des Empfängers A und erzeugt so die verschlüsselte Nachricht c: c = 1235 mod 91 = 66 Der Empfänger A entschlüsselt die verschlüsselte Nachricht c mit dem eigenen privaten Schlüssel d und erhält so die Nachricht m: m = 6629 mod 91 = 123 Beim RSA-Signaturverfahren verschlüsselt der Sender A das Dokument m mit dem eigenen privaten Schlüssel d und erzeugt so die Signatur s: s = 12329 mod 91 = 77 Der Empfänger B entschlüsselt die Signatur s mit dem öffentlichen Schlüssel e des Senders A und erhält so das Dokument m: m = 775 mod 91 = 123 Erklärung des Zahlenbeispiels: - Verschlüsselung: DIe Nachricht Wird durch m = 123 auf die Potenz e = 5 und das Modulo 91 erzeugt. - Entschlüsselung: Die Nachricht m = 123 wird durch Anwendung des privaten Schlüssels d = 29 auf c = 66 entschlüsselt. - Signatur: Die Signatur s = 77 wird mit dem privaten Schlüssel d = 29 erstellt. - Validierung: Der Empfänger entschlüsselt die Signatur mit e = 5 und erhält die Originalnachricht m = 123, womit die Signatur verifiziert ist. Der Empfänger B erhält das Dokument m erst dadurch, dass er die Signatur s mit dem öffentlichen Schlüssel des Senders A entschlüsselt. Stellt das Dokument m einen sinnvollen Text dar, so ist sichergestellt, dass A das Dokument signiert hat.
Authentizität (die Unterschrift ist nur vom Unterzeichner A zu leisten) Nur der Unterzeichner A kennt den privaten Schlüssel d, der das Gegenstück zu dem öffentlichen Schlüssel von A darstellt. Somit kann nur A von ihm signierte Dokumente erstellen. Integrität (die Unterschrift ist mit dem zugehörigen Dokument untrennbar verbunden) Das Dokument ergibt sich erst durch Entschlüsselung aus der Signatur. Verifizierbarkeit (der Empfänger B kann sich davon überzeugen, dass die Unterschrift von A stammt) Der Empfänger B muss sicherstellen, dass der öffentliche Schlüssel e zu A gehört. Beweisbarkeit (der Empfänger B kann beweisen, dass die Unterschrift von A stammt) Der Empfänger B muss beweisen, dass A den öffentlichen Schlüssel e veröffentlicht hat. Außerdem muss m = se mod N einen sinnvollen Text ergeben.
Wenn Alice das Dokument zuerst mit Bobs öffentlichem Schlüssel verschlüsselt und dann die verschlüsselte Nachricht signiert, gibt es einige problematische Aspekte:
Daher ist es nicht sinnvoll, das Dokument zuerst zu verschlüsseln und dann zu signieren. Die richtige Reihenfolge wäre: Dokument signieren. Signiertes Dokument verschlüsseln.