Kreuvfs Allerweltsblog

2007-09-10

GnuPG und digitales Signieren

Abgelegt unter In eigener Sache,Software,Technologie von Kreuvf um 10:45:35

Weil ich am Wochenende mehrere Stunden nach einer für mich verständlichen Erklärung gesucht habe, diese letztendlich im FAQ von GPG gefunden habe und ich finde, dass diese Information nicht weit genug verteilt ist, will ich hiermit dazu beitragen, dass man eher auf diese Information stößt.

Ausgangslage

Mit meinem Wechsel zu Linux habe ich auch vor mich mit GPG-Verschlüsselung zu beschäftigen (in absehbarer Zeit gibt es daher auf kreuvf.de auch meinen Public Key) und im Zuge dessen habe ich mich auch mit dem digitalen Signieren von E-Mails beschäftigt.

Asymmetrische Verschlüsselung

Da wahrscheinlich nicht jeder etwas mit GPG oder dem Begriff der "asymmetrischen Verschlüsselung" anfangen kann, möchte ich dies kurz umreißen.

Bei symmetrischen Verschlüsselungsverfahren wird sowohl für das Verschlüsseln wie auch für das Entschlüsseln der gleiche Schlüssel verwendet. Somit muss dieser Schlüssel beiden Parteien bekannt sein. Das Problem ist nur, dass man einen sicheren Kommunikationskanal finden muss, auf dem dieser Schlüssel übertragen wird. Gibt es diesen nicht, kann der Schlüssel abgefangen werden und jede abgefangene Nachricht kann mitgelesen werden.

Diesem Problem entgeht man durch asymmetrische Verschlüsselungsverfahren, da bei diesen für das Ver- und Entschlüsseln verschiedene Schlüssel verwendet werden müssen. Die Sache läuft dann so ab, dass jeder Teilnehmer zwei Schlüssel hat: einen öffentlichen Schlüssel (Public Key), der für jedermann verfügbar sein darf und für das Verschlüsseln von Nachrichten an den Besitzer des dazugehörigen Private Keys dient, und einen privaten Schlüssel (Private Key), der streng geheimgehalten werden muss und für das Entschlüsseln der mit dem öffentlichen Schlüssel verschlüsselten Nachrichten dient.

Digitales Signieren

Nun kommt aber der Teil, den ich erst nach langer Antwortsuche verstanden habe: Beim digitalen Signieren "unterschreibt" man die eigene Nachricht mit seinem Private Key. Unterschreiben heißt hierbei, wenn ich das richtig verstanden habe, dass von der gesamten Nachricht ein Prüfwert errechnet wird und dieser dann mit dem Private Key verschlüsselt und mit der Nachricht mitgeschickt wird.

Nun ist die Frage: Warum mit dem Private Key verschlüsselt?

Es wurde leider nirgendswo deutlich gemacht – und das hat mich auch so verwirrt -, dass der Private Key auch zum Verschlüsseln dienen kann und nur mit dem Public Key entschlüsselt werden kann. Durch den aus der Entschlüsselung zu Tage tretenden Prüfwert kann dann zusätzlich bestätigt werden, dass die Nachricht nicht manipuliert wurde. Man hat also zwei Fliegen mit einer Klappe geschlagen: Zum einen bestätigt man durch die Entschlüsselbarkeit des Prüfwertes mit dem Public Key, dass der dazugehörige Private Key verwendet wurde. Zum anderen lässt der Prüfwert einem nachvollziehen, ob die Nachricht in irgendeiner Weise manipuliert wurde.

Kommentare zu diesem Artikel abgeben (benötigt Boardaccount)