Dieser Artikel behandelt den technischen/kryptographischen Begriffdigitale Signatur. Dagegen befasst sich der Artikelelektronische Signatur mit einem rechtlichen Begriff. Ausführlicheres im AbschnittAbgrenzung zur digitalen Signatur im Artikel zur elektronischen Signatur.
Einedigitale Signatur, auchdigitales Signaturverfahren, ist einasymmetrisches Kryptosystem, bei dem ein Sender mit Hilfe eines geheimen Signaturschlüssels (demPrivate Key) zu einer digitalenNachricht (d. h. zu beliebigen Daten) einen Wert berechnet, der ebenfallsdigitale Signatur genannt wird. Dieser Wert ermöglicht es jedem, mit Hilfe des öffentlichen Verifikationsschlüssels (demPublic Key) die nichtabstreitbare Urheberschaft und Integrität der Nachricht zu prüfen. Um eine mit einem Signaturschlüssel erstellte Signatur einer Person zuordnen zu können, muss der zugehörige Verifikationsschlüssel dieser Person zweifelsfrei zugeordnet sein.
Mit digitalen Signaturen lassen sich sichereelektronische Signaturen (Artikel 3 Nr. 10 bis 12eIDAS-Verordnung, bis Juli 2017 in§ 2 desSignaturgesetzes) erzeugen. Die Begriffedigitale Signatur undelektronische Signatur sind jedoch nicht inhaltsgleich: Erstens müssen (zumindest einfache und fortgeschrittene) elektronische Signaturen nicht zwangsläufig auf digitalen Signaturen basieren; zweitens istdigitale Signatur ein mathematischer bzw. technischer Begriff, währendelektronische Signatur ein juristischer Begriff ist.
Der private Schlüssel ist nur dem Verfasser der Nachricht bekannt, er kann nicht aus dem öffentlichen Schlüssel berechnet werden. Mit dem öffentlichen Schlüssel lässt sich jedoch für jede Nachricht prüfen, ob sie mit dem zugehörigen privaten Schlüssel signiert wurde.
Aus den zu signierenden Daten und dem privaten Signaturschlüssel wird durch eine eindeutige Rechenvorschrift die Signatur berechnet. Unterschiedliche Daten müssen mit an Sicherheit grenzender Wahrscheinlichkeit zu einer anderen Signatur führen, und die Signatur muss für jeden Schlüssel einen anderen Wert ergeben. Beideterministischen digitalen Signaturverfahren ist die digitale Signatur durch die Nachricht und den Schlüssel eindeutig festgelegt, beiprobabilistischen digitalen Signaturverfahren gehen Zufallswerte in die Signaturberechnung ein, so dass die digitale Signatur zu einer Nachricht und einem Schlüssel viele verschiedene Werte annehmen kann.
Bei einer digitalen Signatur wird der private Schlüssel in der Regel nicht direkt auf die Nachricht angewendet, sondern auf deren Hash-Wert, der mittels einerHashfunktion (wie z. B.SHA-1) aus der Nachricht berechnet wird. Um Angriffe zu verhindern, muss diese Hashfunktionkollisionsresistent sein, d. h., es muss praktisch unmöglich sein, zwei unterschiedliche Nachrichten zu finden, deren Hash-Wert identisch ist.
Soweit der öffentliche Schlüssel mittels einesdigitalen Zertifikats einer Person zugeordnet wurde, kann auf Grund dessen, dass es nur einen zum öffentlichen Schlüssel korrespondierenden privaten Schlüssel gibt, über das öffentliche Verzeichnis des Zertifizierungsdiensteanbieters (ZDA) die Identität des Signaturerstellers ermittelt bzw. überprüft werden. Die Gesamtheit der technischen Infrastruktur, mit der die Zertifikate und Informationen zu ihrer Gültigkeit erzeugt und öffentlich bereitgestellt werden, wird alsPKI (public key infrastructure) bezeichnet.
Ein weit verbreiteter Irrtum ist, dass es sich bei der Signierung um eine Verschlüsselung mit dem privaten Schlüssel einesasymmetrischen Verschlüsselungsverfahren handelt. Diese Annahme resultiert daher, dass dies bei einer naiven undunsicheren Variante vonRSA, namentlich „Textbook-RSA“, tatsächlich der Fall ist. Bei sicheren Varianten von RSA (z. B.RSA-FDH,RSA-PSS,RSA-OAEP) ist dies jedoch trotz gewisser Ähnlichkeiten in Details nie der Fall. Bei anderen Verschlüsselungs- und Signaturverfahren existieren in der Regel höchstenssehr oberflächliche Ähnlichkeiten.
Bei digitalen Signaturen soll es praktisch unmöglich sein, eine Signatur zu fälschen oder zu verfälschen, oder eine zweite Nachricht zu erzeugen, für die diese Signatur ebenfalls gültig ist. Dies setzt voraus, dass sich der private Schlüssel nicht aus den damit erzeugten digitalen Signaturen und dem öffentlichen Schlüssel berechnen lässt. Es ist jedoch möglich, dass ein digitales Signaturverfahren unsicher ist (d. h., dass sich Signaturen fälschen oder verfälschen lassen), ohne dass der private Schlüssel berechnet werden kann. Ein Beispiel dafür istRSA ohne Verwendung einer Hashfunktion oder eines Paddings: Aus den Signaturen und der Nachrichten und lässt sich die Signatur von durch die Formel
berechnen, ohne dass dabei der private Schlüssel ermittelt wird bzw. werden kann.
Eine weitere wichtige Eigenschaft eines Signaturverfahrens ist die Nichtabstreitbarkeit der Signatur (engl.Non-repudiation). Wenn eine Signatur mit einem öffentlichen Schlüssel verifiziert wurde, sollte damit auch bewiesen sein, dass die Signatur mit dem zugehörigen privaten Schlüssel erzeugt wurde. Viele Signaturverfahren erfüllen diese Eigenschaft nicht, wenn nicht vor dem Signieren der öffentliche Verifikationsschlüssel an die Nachricht angehängt wird.[1] Andernfalls kann ein Angreifer zu einer gegebenen Signatur mit einem passenden Verifikationsschlüssel ein weiteres Schlüsselpaar erzeugen, mit dessen Verifikationsschlüssel diese Signatur als gültig verifiziert wird (Key-Substitution-Angriff).
Die Sicherheit eines digitalen Signaturverfahrens hängt in erster Linie von den gewählten Parametern ab; insbesondere müssen die Schlüssel eine Mindestlänge aufweisen, um Angriffe abzuwehren. Außerdem hängt die Sicherheit eines Signaturverfahrens auch von der verwendeten Hashfunktion ab. Diese muss in der Regel kollisionsresistent sein, um eine sichere digitale Signatur zu gewährleisten. Außerdem gibt es oft effektive Angriffe auf bestimmte Implementierungen (theoretisch sicherer) digitaler Signaturverfahren, z. B.Seitenkanal-Angriffe oder das Ermitteln des privaten Schlüssels aus einer unzureichend geschütztenpersönlichen Sicherheitsumgebung (PSE).
Die theoretische Untersuchung der Sicherheit von digitalen Signaturen ist Gegenstand derKryptoanalyse. Dabei werden unterschiedlicheAngriffsziele und -szenarien betrachtet.Sicherheitsbeweise fußen meist auf einer Reduktion der Sicherheit eines digitalen Signaturverfahrens auf die Schwierigkeit eines bekanntenBerechnungsproblems.
Das mit Abstand bekannteste und am meisten eingesetzte digitale Signaturverfahren istRSA, für das verschiedene Verfahren zum Auffüllen des Hash-Wertes (Padding), wie das in PKCS#1 standardisiertePSS, verwendet werden können. Die Sicherheit von RSA basiert auf der Schwierigkeit, große Zahlen in ihre Primfaktoren zu zerlegen (Faktorisierung). Dies ist auch Grundlage für die Sicherheit desSignaturverfahrens von Rabin.
Viele digitale Signaturverfahren basieren auf demdiskreten Logarithmus inendlichen Körpern, wie z. B.DSA, dasEl-Gamal, dieSchnorr-Signatur, die Pointcheval-Stern-Signatur, XTR oder dieCramer-Shoup-Signatur. Auf dem diskreten Logarithmus inelliptischen Kurven beruht die Sicherheit vonECDSA, ECGDSA oder Nyberg-Rueppel-Signaturen – diese Verfahren gehören zu denElliptische-Kurven-Kryptosystemen. Alle Verfahren, die auf dem diskreten Logarithmus (in endlichen Körpern oder auf elliptischen Kurven) beruhen, sind probabilistisch und verwenden neben der Schlüssellänge weitere öffentliche Parameter.
Andere digitale Signaturverfahren basieren auf linearenCodes, wie die McEliece-Niederreiter-Signatur, oder aufGittern, wie die Goldreich-Goldwasser-Halevi-Signatur oder NTRU. DieMerkle-Signatur verwendet Hash-Bäume und basiert allein auf der Sicherheit der verwendeten Hashfunktion.
Manche digitale Signaturverfahren besitzen bestimmte Eigenschaften, wie z. B. nicht-abstreitbare digitale Signaturen (undeniable signatures) oderblinde Signaturen (blind signatures), bei denen der Signierende nicht weiß, was er signiert; andere ermöglichen es, die signierte Nachricht aus der Signatur wiederherzustellen (message recovery), wie z. B. die Nyberg-Rueppel-Signatur oder RSA mit dem Padding-Verfahren nachISO 9796.
Prinzipiell kann jedes digitale Signaturverfahren mit beliebigen Hashfunktionen kombiniert werden, solange die Länge der Hashwerte für die gewählten Parameter des Signaturverfahrens geeignet ist. Internationale und nationale Standards legen jedoch oftmals mit dem Signaturverfahren auch die Hashfunktion fest (z. B.FIPS-PUB 186-2) oder geben zumindest Empfehlungen (z. B.ANSI X9.62).
DieBundesnetzagentur veröffentlicht jedes Jahr eine Liste mit Mindestanforderungen für kryptographische Algorithmen und die Erzeugungqualifizierter elektronischer Signaturen.[2] In der „Bekanntmachung zur elektronischen Signatur nach dem Signaturgesetz und der Signaturverordnung“ vom 18. Januar 2012 werden als geeignete digitale Signaturverfahren RSA, DSA und DSA-Varianten, die auf elliptischen Kurven basieren (z. B. EC-DSA, EC-KDSA, EC-GDSA), empfohlen. Zu jedem dieser Verfahren werden die Mindestlängen für die Schlüssel sowie weitere Anforderungen an die Parameter und die Hashfunktion angegeben.[3]
PGP steht fürPretty good Privacy und wurde von 1986 bis 1991 vonPhil Zimmermann entwickelt. PGP ist selbst kein Verschlüsselungsalgorithmus, sondern ein Softwareprodukt, das viele, zum Teil recht komplexe, Verfahren zur symmetrischen und asymmetrischen Verschlüsselung sowie zur elektronischen Signatur zusammenfasst.
PGP-Systeme ermöglichen es, dass sich jeder Kommunikationspartner jederzeit ein Schlüsselpaar erzeugen kann. Das Vertrauen in die Zuordnung der Schlüssel zu einer Person soll durch eine Art gegenseitiger elektronischer Beglaubigungen gewährleistet werden. Dadurch entsteht einWeb of Trust, das auftransitiven Vertrauensbeziehungen beruht. Falls eine PersonA einer PersonB vertraut und diese PersonB einer dritten PersonC vertraut, so bedeutet dies, dass PersonA auch der PersonC vertraut, ohne dass eine explizite Vertrauensbeziehung besteht. Der Vorteil dieses Verfahrens besteht in den geringen Voraussetzungen an den einzelnen Benutzer.
Das ist auch gleichzeitig die große Schwäche von PGP. Es müssen mit jedem Teilnehmer bi-lateral Schlüssel und Echtheitsinformationen für den Schlüssel auf vertrauenswürdigem Weg ausgetauscht werden. Es gibt keine Möglichkeit, „verlorene“ oder bekannt gewordene Schlüssel generell aus dem Verkehr zu ziehen.
Verbreitete Varianten der ursprünglich von Phil Zimmermann entwickelten Software sindPGP (kommerziell) undGnuPG (GNU-GPL). DasGNU Privacy Projekt kümmerte sich um ein auf GnuPG basierendes graphischesFrontend für alle gängigen Betriebssysteme. Seit 2003 scheint das Projekt nicht besonders viel Aktivität zu zeigen. Das ProgrammWinPT (Windows Privacy Tools), das auch auf GnuPG aufsetzt, bietet unter Windows ebenfalls eine grafische Oberfläche zur komfortableren Bedienung digitaler Signierungen.
Für die MailclientsMozilla Thunderbird,Mozilla Mail undNetscape Mail gibt es das komfortablePlug-inEnigmail, das es dem Benutzer erlaubt, die von GnuPG bereitgestellten Funktionen der Verschlüsselung und Signatur direkt im Mailprogramm zu nutzen. Das Plug-in istOpen Source und unter die GNU-GPL sowie unter dieMozilla Public License gestellt. Das ProgrammThe Bat kann von Haus aus mittelsOpenPGP ebenfalls entsprechende Verschlüsselungs- und Signierfunktionen anbieten.
Auch mit dem v. a. unter Linux verbreiteten Mail- und GroupwareclientNovell Evolution können die Funktionen zur Verschlüsselung und Signatur von GnuPG direkt und ohne Plug-in genutzt werden. Auch Evolution ist Open Source und steht unter der GNU-GPL.
Die Desktop-SuiteKDE erlaubt ebenfalls die Nutzung vonGnuPG in vielen der mitgelieferten Programme (z. B.Kopete undKMail).
Für die DesktopumgebungGnome, die unter anderem beiUbuntu verwendet wird, gibt es mit Seahorse ein Frontend für GnuPG.
In zertifikatbasierten Systemen erhält jeder Benutzer eindigitales Zertifikat, welches Angaben zu seiner Identität und den öffentlichen Schlüssel enthält. Jedes Zertifikat ist von einer ausgebenden Stelle beglaubigt, die ihrerseits wieder von höheren Stellen beglaubigt sein kann. Das Vertrauenssystem dieser PKI ist streng hierarchisch. Den gemeinsamenVertrauensanker bildet ein sog.Stammzertifikat (Root Certificate).
Zertifikatbasierte Systeme passen sich gut in Unternehmenshierarchien ein. Nachteilig sind die hohen Kosten für Aufbau und Betrieb sowie die technische Komplexität einer Public-Key-Infrastruktur (PKI).
Der StandardS/MIME baut auf digitalen Zertifikaten auf.
Ein Zertifikat verknüpft Daten eineskryptographischen Schlüssels (oder Schlüsselpaars, bestehend aus öffentlichem und geheimem Schlüssel) mit Daten des Inhabers und einerZertifizierungsstelle sowie weitere Spezifikationen wie Version, Gültigkeitsdauer, Verwendungszweck undFingerprint. Die Definitionen nachPKCS legen das Inhaltsformat fest, der StandardX.509 (genauer: ITU x.509 v3 nach RFC 3280,[4] basierend aufASN.1-Format) beschreibt das Binärdatenformat, oftmals als DER bzw. als DER-Base64 kodiert.
Beim Web-Datenaustausch überträgt der Server sein Zertifikat mit dem öffentlichen Schlüssel an denClient. Der Client, in dem Fall derWebbrowser des Nutzers, prüft, ob er dem empfangenen Zertifikat trauen kann. Dazu schaut er in die Liste seiner Zertifikate, die ihm bei der Installation mitgegeben wurden bzw. der Benutzer selbst installiert hat und versucht die Signatur des Server-Zertifikats mit einem der im Browser integrierten Zertifikate zu verifizieren. Konnte das Zertifikat verifiziert werden, startet er eine verschlüsselte Datenübertragung. Ansonsten wird der Benutzer über einen Dialog gefragt, ob er das Zertifikat überprüfen und akzeptieren will.Fatal ist es, wenn einem eigentlich nicht vertrauenswürdigen Zertifikat aus Leichtsinn Vertrauenswürdigkeit ausgesprochen wurde.
Beispiel: Ein betrügerischer Server gibt vor, die Hausbank zu sein. Der Webbrowser stellt beim ersten Besuch fest, dass er das Zertifikat des Betrügers nicht kennt. Der Benutzer des Webbrowsers, weil er es nicht besser weiß, klickt aufZertifikat annehmen. Daraufhin kommunizieren der Server des Betrügers und der Client des Benutzers über eine abhörsichere Web-Verbindung. Die Gewissheit, mit dem richtigen Partner zu kommunizieren, ist durch die Leichtfertigkeit des Nutzers, das unbekannte Zertifikat anzunehmen, nicht mehr gegeben. Schlimmer noch: Dadurch, dass der Browser das Zertifikat speichert, werden nicht nur spätere Besuche des Betrüger-Servers als sicher eingestuft, sondern auch Zertifikate, die der Betrüger-Server signiert hat. In diesem Fall spricht man von einempersistentenMan-in-the-Middle-Angriff.
Judith Balfanz, Jan C. E. Wendenburg (Hrsg.):Digitale Signaturen in der Praxis. Leitfaden zur Prozessoptimierung und Kostenreduktion in Unternehmen und Behörden. AWV-Verlag, Eschborn 2003,ISBN 3-931193-47-0.