Digitale Signatur

asymmetrisches Kryptosystem
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 25. November 2006 um 20:14 Uhr durch Xyzmo (Diskussion | Beiträge) (Weblinks). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Eine digitale Signatur ist ein kryptografisches Verfahren, bei dem zu einer "Nachricht" (d.h. zu beliebigen Daten) zusätzliche Daten (die "digitale Signatur") berechnet werden, deren Urheberschaft und Zugehörigkeit zur Nachricht durch öffentliche Informationen geprüft werden können. Digitale Signaturen basierenauf asymmetrischen kryptographischen Verfahren und verwendet folglich ein Schlüsselpaar, das aus einem privaten (d.h. geheimen) und einem öffentlichen (d.h. nicht geheimen) Schlüssel besteht. Diese Schlüssel werden als privater und öffentlicher Signaturschlüssel bezeichnet.

Das Grundprinzip

Aus den zu signierenden Daten und dem privaten Signaturschlüssel wird durch eine eindeutige Rechenvorschrift die Signatur berechnet. Verschiedene 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. Um Angriffe zu verhindern und kleine Signaturen zu erzeugen, wird der private Schlüssel nicht direkt auf die Nachricht angewendet, sondern auf einen Hashwert der Nachricht der mittels einer Hash-Funktion (wie z.B. SHA-1) aus der Nachricht berechnet wird. Dieser Hashwert wird anschließend mit dem privaten Schlüssel verschlüsselt.

Die Prüfung einer digitalen Signatur erfolgt mit Hilfe des entsprechenden öffentlichen Schlüssels, der Signatur und der Nachricht. Das Ergebnis der Prüfung zeigt an, ob die Signatur mit dem (zum öffentlichen Schlüssel korrespondierenden) privaten Schlüssel für diese Nachricht berechnet wurde. Somit lassen sich Fälschungen der Signatur, nachträgliche Verfälschungen der Nachricht und die Urheberschaft der Signatur prüfen.

Bemerkung: Beim RSA-Verfahren entspricht die Prüfung im Wesentlichen der Umkehrung der Signaturerstellung. Das RSA auch zur Verschlüsselung verwendet werden kann, wird bei der Signaturerstellung oft von "Verschlüsselung" und beider Prüfung von "Entschlüsselung" (des Hash-Wertes) gesprochen. Bei anderen Signaturverfahren trifft diese Analogie allerdings nicht zu.

Sicherheit

Bei digitalen Signaturen soll es praktisch unmöglich sein, eine Signatur zu fälschen oder verfälschen. Dies impliziert unter anderem, dass sich der private Schlüssel nicht aus dem öffentlichen Schlüssel berechnen lässt. Umgekehrtist es jedoch denkbar, dass ein digitales Signaturverfahren unsicher ist, weil sich Signaturen fälschen lassen, ohne dass sich der private Schlüssel aus dem öffentlichen berechnen lässt.

Die Untersuchung der Sicherheit von digitalen Signaturen ist Gegenstand der Kryptanalyse.

Bekannte Verfahren

Das mit Abstand bekannteste und am meisten eingesetzte digitale Signaturverfahren ist RSA. Beispiele für andere asymmetrische Signaturalgorithmen sind der DSA, das El-Gamal, ECDSA, Nyberg-Rueppel, XTR oder NTRU.

Einsatz in der Praxis

PGP-Systeme

PGP steht für Pretty good Privacy und wurde von 1986 bis 1991 von Phil 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 ein Web of Trust, das auf transitiven Vertrauensbeziehungen beruht. Dies bedeutet, dass die Person A der Person C vertraut sofern sie B vertraut und B die Person C als vertrauenswürdig einstuft. Der Vorteil dieses Verfahrens besteht in den geringen Voraussetzungen an den einzelnen Benutzer.

Verbreitete Varianten der ursprünglich von Phil Zimmermann entwickelten Software sind PGP (kommerziell) und GnuPG (GNU-GPL). Das GNU Privacy Projekt kümmerte sich um ein auf GnuPG basierendes graphisches Frontend für alle gängigen Betriebssysteme. Seit 2003 scheint das Projekt nicht besonders viel Aktivität zu zeigen. Das Programm WinPT (Windows Privacy Tools), das auch auf GnuPG aufsetzt, bietet unter Windows ebenfalls eine grafische Oberfläche zur komfortableren Bedienung digitaler Signierungen.

Für die Mailclients Mozilla Thunderbird, Mozilla Mail und Netscape Mail gibt es das komfortable Plugin Enigmail, das es dem Benutzer erlaubt, die von GnuPG bereitgestellten Funktionen der Verschlüsselung und Signatur direkt im Mailprogramm zu nutzen. Das Plugin ist Open Source und unter die GNU-GPL sowie unter die Mozilla Public License gestellt. Das Programm The Bat! kann von Haus aus mittels OpenPGP ebenfalls entsprechende Verschlüsselungs- und Signierfunktionen anbieten.

Auch mit dem v. a. unter Linux verbreiteten Mail- und Groupwareclient Novell Evolution können die Funktionen zur Verschlüsselung und Signatur von GPG direkt und ohne Plugin genutzt werden. Auch Evolution ist Open Source und steht unter der GNU-GPL.

Zertifikatsbasierte Systeme

In zertifikatsbasierten Systemen erhält jeder Benutzer ein digitales 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 ist streng hierarchisch. Den gemeinsamen Vertrauensanker bildet ein sog. Wurzelzertifikat (Root Certificate).

Zertifikatsbasierte 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 Standard S/MIME baut auf digitalen Zertifikaten auf.

Ein Zertifikat verknüpft Daten eines kryptographischen Schlüssels (oder Schlüsselpaars, bestehend aus öffentlichem und geheimem Schlüssel) mit Daten des Inhabers und einer Zertifizierungsstelle sowie weitere Spezifikationen wie Version, Gültigkeitsdauer, Verwendungszweck und Fingerprint. Die Definitionen nach PKCS legen das Inhaltsformat fest, der Standard X.509 (genauer: ITU x.509 v3 nach RFC 3280, basierend auf ASN.1 Format) beschreibt das Binärdatenformat, oftmals als DER bzw. als DER - Base-64 kodiert.

Beim Web-Datenaustausch überträgt der Server seinen öffentlichen Schlüssel an den Client. Der Client, das ist der Webbrowser des Nutzers, prüft, ob er dem empfangenen öffentlichen Schlüssel trauen kann. Dazu schaut er in die Liste seiner Zertifikate, die ihm bei der Installation mitgegeben wurden bzw. der Benutzer selbst installiert hat. Findet er dort das Zertifikat, startet er eine verschlüsselte Datenübertragung. Ansonsten wird der Benutzer über einen Dialog gefragt, ob er das Zertifikat überprüfen und akzeptieren will.

Technisch basiert die Verschlüsselung auf dem SSL-Protokoll (Secure Sockets Layer), die sich dem Web-Benutzer als https: statt http: Protokoll mitteilt.

Nur der Server, der den öffentlichen Schlüssel ausgegeben hat, kann auch die Daten entschlüsseln, die der Client mit diesem Schlüssel verschlüsselt zu ihm überträgt. Fatal ist es, wenn einem 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 auf Zertifikat annehmen. Daraufhin kommunizieren der Server des Betrügers und der Client des Benutzers über eine sichere Web-Verbindung. Sicher in diesem Zusammenhang bedeutet, dass Dritte die Datenübertragung nicht abhören können. 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.

Literatur