Gefällt dir dieser Artikel?

Was ist eine Digitale Signatur?

erschienen in der Kategorie Software, am 30.03.2016
Schnatterente
Ich habe letzte Woche Kontakt mit einer Firma gehabt, die mir ein paar Daten schicken wollte. Im Zuge dessen, habe ich danach gefragt, ob sie mir die Unterlagen als digital signiertes PDF zusenden können. Ich bekam daraufhin ein PDF geschickt in das sie die Unterschrift des Geschäftsführers und den Firmenstempel reinkopiert hatten.
Das ist mir so nicht zum ersten Mal passiert und aus diesem Grund möchte ich in diesem Beitrag mal kurz und so einfach wie nur möglich, erklären, was man unter einer digitalen Signatur oder auch digitalen Unterschrift versteht und wie diese technisch umgesetzt wird.

(Bei allen Kryptografen entschuldige ich mich schon jetzt für die brutalen Vereinfachungen und das Weglassen jeglicher Details.)

Welchen Sinn haben digitale Signaturen?
Wie auch im echten Leben sollen elektronische Signaturen (gerichtsverwertbar) beweisen, dass ein, in diesem Fall elektronisches, Dokument von einem bestimmten Autor stammt. Zudem soll die Signatur dafür sorgen, dass das Dokument nicht mehr nachträglich manipuliert werden kann. Um beide Ziele zu erreichen, bedarf es einiger komplexer Methoden, auf die ich nur ganz grob und extrem vereinfacht eingehen werde.

Was die Firma im obigen Beispiel erstellt hat, ist, wie sich der geneigte Leser sicher schon denken kann, keine solche digitale Signatur. Der Ansatz mit der ins Dokument kopierten Unterschrift ist zwar nett gemeint, aber eine solche Manipulation der PDF-Datei hätte auch nachträglich von mir selbst oder einer dritten Partei durchgeführt werden können. Gäbe es einen Rechtsstreit, könnte ich mit einem solchen Dokument nicht beweisen, dass es in dieser Form wirklich von der besagten Firma versandt wurde.

Wie funktionieren digitale Signaturen?
Beginnen wir mit einer kleinen Analogie aus der realen Welt, damit man sich besser vorstellen kann, worum es geht. Man stelle sich folgendes Szenario vor:
Alice will ihrem Freund Bob gern eine Nachricht hinterlassen. Der Inhalt der Nachricht ist so bedeutend, dass es wichtig ist, dass sich Bob absolut sicher sein kann, dass die Nachricht wirklich von Alice stammt. Leider können sich die beiden nicht persönlich treffen, also muss eine Lösung für dieses Problem her.
Alice besitzt eine Glasvitrine, die mit einem sehr sicheren Schloss versehen ist, für das nur sie einen Schlüssel hat. Bob weiß, dass Alice die einzige Person ist, die Zugang zu der Vitrine hat. Also kann Alice die Nachricht für Bob einfach in die Vitrine legen und diese abschließen. Bob kann sich später vor die Vitrine stellen, die Nachricht lesen und sich dabei sicher sein, dass die Nachricht wirklich von Alice ist und nicht manipuliert wurde.

Wie funktionieren digitale Signaturen aus technischer Sicht?
Digitale Signaturen funktionieren ähnlich, nur dass man auf Vitrinen verzichtet und stattdessen asymmetrische Kryptografie (also Verschlüsselung) benutzt, um die oben genannten Ziele zu erreichen.

Diese Form der Verschlüsselung heißt "asymmetrisch", weil man zum Entschlüsseln einer Nachricht einen anderen Schlüssel benutzt, als zum Verschlüsseln. (Bei symmetrischer Kryptografie wird für beide Vorgänge der gleiche Schlüssel genutzt.) Um sich wieder einer Analogie aus der echten Welt zu bedienen, kann man sich für dieses asymmetrische Kryptosystem vorstellen, dass man jemandem eine Schatulle mit einem geöffneten Schloss gibt, für das man selbst den Schlüssel hat. Die Person kann dann etwas in die Schatulle legen, diese verschließen (= verschlüsseln), aber selbst nicht wieder öffnen. Somit ist nur der Besitzer des Schlüssels in der Lage, den Inhalt der Schatulle wieder zugänglich zu machen (=zu entschlüsseln).

In der digitalen Welt wird zur Lösung dieses Problems ein sogenanntes "asymmetrisches Schlüsselpaar" erzeugt. Dieses Schlüsselpaar besteht aus einem öffentlichen und einem privaten Schlüssel. Der öffentliche Schlüssel wird, wie es der Name schon sagt, (zum Beispiel im Internet) veröffentlicht und kann von jedem genutzt werden, um Informationen für den Inhaber des Schlüsselpaares zu verschlüsseln. Der private Schlüssel muss hingegen unbedingt geheim gehalten werden. Er wird vom Schlüsselinhaber zum Entschlüsseln der Nachrichten benutzt.

Das Schlüsselpaar kann aber nicht nur zum Zweck der Ver- und Entschlüsselung genutzt werden. Wenn man es invers einsetzt, kann der Inhaber des privaten Schlüssels diesen auch benutzen, um Informationen zu verschlüsseln, welche sich mit dem öffentlich bekannten Schlüsseln entschlüsseln lassen. Das mag jetzt im ersten Moment vielleicht etwas seltsam klingen: Warum will man etwas verschlüsseln, was hinterher alle anderen einfach entschlüsseln können?

Die Antwort auf diese Frage lautet: um zu beweisen, dass man es kann. Oder anders gesagt, um zu beweisen, dass man der Schlüsselinhaber ist. Denn nur der Inhaber des privaten Schlüssels ist in der Lage, eine Nachricht zu erzeugen, die sich mit dem öffentlichen Schlüssel dechiffrieren lässt. Und wenn der Öffentlichkeit bekannt ist, zu welcher Person oder Firma der öffentliche Schlüssel gehört, so kann diese auf diesem Weg ihre Identität nachweisen.

Genau auf diesem Verfahren setzt das System der digitalen Signaturen auf.
Für eine zu signierende Nachricht wird zuerst, unter Zuhilfenahme einer "Hashfunktion", eine "Hashsumme" erzeugt. Dabei handelt es sich um eine recht lange, aus Zahlen und Buchstaben bestehende Zeichenkette, die für den menschlichen Betrachter erst einmal nur wie zufälliger Zahlen- und Buchstabensalat aussieht.
Die zum Erstellen dieser Zeichenkette verwendeten Funktionen haben die Eigenschaft, dass sie für die gleiche Eingabe (in unserem Fall die zu signierende Nachricht) immer die gleiche Ausgabe erzeugen. Verändert man die Eingabe auch nur um ein einziges Zeichen, gibt die Funktion eine vollkommen andere Zeichenkette aus. In der Softwaretechnik werden solche Hashfunktionen häufig eingesetzt, um beliebige Daten auf Gleichheit zu überprüfen - man muss dann nur abgleichen, ob die Hashsummen übereinstimmen und nicht mehr prüfen, ob zum Beispiel zwei mehrere Gigabyte große Dateien genau den gleichen Inhalt haben. Anhand der Ausgabe der Hashfunktionen lassen sich übrigens keine Rückschlüsse auf die ursprüngliche Eingabe ziehen.

Nachdem der Autor der zu signierenden Nachricht für die selbige eine Hashsumme erzeugt hat, verschlüsselt er diese mit seinem privaten Schlüssel. Das Ergebnis dieser Verschlüsselung ist die digitale Signatur. Sie wird mit an die Nachricht angehangen und mit ihr zusammen an den Empfänger verschickt.

Was macht der Empfänger mit der digitalen Signatur?
Der Empfänger der Nachricht kann ganz einfach überprüfen, ob die Nachricht korrekt signiert wurde. Dazu nimmt er sich die digitale Signatur und entschlüsselt sie mit dem öffentlichen Schlüssel des Autors. Er erhält daraufhin die unverschlüsselte Hashsumme der Nachricht. Nun kann er selbst die Hashsumme der erhaltenen Nachricht berechnen und abgleichen, ob beide Summen gleich sind. Ist dies der Fall, so wurde die Nachricht nicht verändert und stammt wirklich vom genannten Autor. Der Empfänger kann dies mit den vorhandenen Informationen beweisen.
Unterscheiden sich die Hashsummen hingegen oder tritt schon bei der Dechiffrierung ein Problem auf, liegt entweder ein Fehler, eine Manipulation der Nachricht oder ein Betrugsversuch vor.

Puh, ganz schön harte Kost ... ?!
So funktionieren, ganz stark vereinfacht, digitale Signaturen. Falls du jetzt das Gefühl hast, du hast es noch nicht richtig verstanden, lies den Text ruhig noch ein zweites, drittes oder viertes Mal durch.

Technisch werden die genannten Sachverhalte übrigens mit recht komplizierten mathematischen Methoden umgesetzt. Dem Leser zuliebe spare ich mir hier aber jegliche Ausführungen über modulares Rechnen, elliptische Kurven, Restklassenringe und das Faktorisierungsproblem. Als Anwender kommt man mit all diesen Dingen ohnehin nicht in Berührung, da die verwendete Software das ja alles für einen übernimmt.

Welche Dateien kann ich mit welchen Programmen digital signieren?
Apropos Software, da drängt sich zum Schluss noch die Frage auf, mit welchen Programmen man solche digitalen Signaturen denn nun in der Praxis erzeugen kann und mit was für Dateien das überhaupt geht.

Prinzipiell kann man sämtliche Dateitypen digital signieren (und natürlich auch verschlüsseln). Am häufigsten werden digitale Unterschriften aber im E-Mail-Verkehr und bei PDF-Dateien eingesetzt.
Für die E-Mail- und Datei-Verschlüsselung kann man die kostenlose Open-Source-Software GPG (oder auch PGP) verwenden, die sich auch in die meisten E-Mail-Programme integrieren lässt. Im Bereich der PDF-Verarbeitung gibt es eine Vielzahl an kommerziellen Anwendungen, die digitale Signaturen erzeugen. Aus Deutschland kommt beispielsweise die Software von webpdf.de, die sich auch gut in eine bestehende IT-Infrastruktur einbauen lässt. Im Linux-Umfeld ist die freie Anwendung "Portablesigner" zum Signieren von PDFs sehr beliebt. Passende Programme gibt reichlich und für die meisten findet man auch detaillierte Anleitungen im Netz, die zeigen, wie man Dokumente signieren kann.

Da du jetzt weißt, wie digitale Signaturen funktionieren, ist es Zeit für den nächsten Schritt: Befrage eine Suchmaschine deiner Wahl nach einer geeigneten Software und probier es aus!

Geschnatter

3 Kommentare, selbst mitschnattern << < Seite 1/1 > >>
Thoys, am 31.03.2016 um 01:54 Uhr
Hei Ente,

grandios, genau so werden kopmlexe Themen dem interessierten Volk zugänglich gemacht.

Schön erklärt, danke dir.
Luyin, am 31.03.2016 um 13:13 Uhr
Vielen Dank für den Beitrag!

Finde ihn gut geschrieben und anfängertauglich.

Liebe Grüße! :-)
Gabi, am 25.07.2016 um 19:13 Uhr
Hallo Schnatterentchen,
ich vermisse meinen Lieblingsblog :-(
Hier waren ALLE Erklärungen immer so, dass selbst ich sie verstanden habe ohne erst noch einmal alles nachzugooglen.
Gibts ne neue Seite?
Grüße aus der Nordheide!
Antwort: Hey Gabi,
keine Angst, das Blog ist nicht tot. Ich hatte in den letzten Monaten mit einem größeren Projekt zu tun, das mir keine Zeit ließ, neue Artikel zu schreiben. Ab September gibt's hier wieder (hoffentlich regelmäßig) neue Artikel!