Kryptologie

Keine Angst, hier wird es nicht um Kryptologieeinzelheiten gehen, auch nicht um die mathematischen Grundlagen.

Im Zusammenhang mit E-Mail kommt heute regelmäßig ein Verfahren zum Einsatz, das Public Key Verfahren genannt wird:

Woraus besteht ein Schlüssel für das Public Key Verfahren?

 Ein Teil des Schlüssels enthält Informationen, z. B. zu den verwendeten Algorithmen (Rechenverfahren), zum Herausgeber des Schlüssels, zum Inhaber des Schlüssels etc.
Ein Teil, der Public Key (öffentlicher Schlüssel) wird benutzt, um digitale Inhalte (Dateien, E-Mails, Telefongespräche) zu verschlüsseln. Dieser Teil des Schlüssels kann von jedem verwendet werden, der ihn kennt. Oft wird der öffentliche Schlüssel im Impressum von Websites veröffentlicht oder an E-Mails angehängt. Er soll und muss öffentlich sein und ist nicht irgendwie gesichert. Der Public Key wird außerdem zur Überprüfung digitaler Unterschriften verwendet.

Der letzte Teil ist der Secret Key (geheimer oder privater Schlüssel). Dieser Schlüssel wird benötigt, um eine verschlüsselte Nachricht wieder lesbar zu machen und um digitale Inhalte digital zu signieren. Der geheime Schlüssel darf keinesfalls weitergegeben werden und wird auf Ihrem Rechner passwortverschlüsselt gespeichert.

Also:

Öffentlicher Schlüssel, frei zugänglich, wird zum Verschlüsseln einer Information verwendet und wird zur Prüfung einer digitalen Signatur benötigt.

Privater Schlüssel, geheim zu halten und gesichert zu verwahren, dient der Entschlüsselung verschlüsselter Nachrichten und der digitalen Signatur.

Immer wieder muss betont werden, dass der geheime Schlüsselteil nicht zugeteilt werden darf, sondern immer auf dem eigenen Rechner erzeugt werden sollte.

PKI (Public Key Infrastructure bzw. Verfahrensorganisation)

Warum so kompliziert?, fragen Sie sich vielleicht. Es geht prinzipiell um die Kommunikation zwischen Fremden. Freunde können Ihre Schlüssel austauschen und dann genauso sicher kommunizieren wie mit dem Public Key Verfahren, wie übermittelt man aber einem Fremden seinen Schlüssel? Man kann ja erst sicher kommunizieren, wenn die Schlüssel ausgetauscht sind.

Das Public Key Verfahren ermöglicht, mathematisch begründet, eine Einwegkryptologie. Man kann tatsächlich die verschlüsselte Nachricht, auch wenn man den Verschlüsselungs-Key besitzt (das ist der Public Key), die Nachricht nicht wieder dechiffrieren. Eine Entschlüsselung ist nur mit dem zum Public Key gehörenden Secret Key möglich (den sie aber nicht haben).

Dies stellt die Vertraulichkeit einer Nachricht dar, also, dass sie nur der Empfänger lesen kann. Allein, die Ab"hör"sicherheit ist nicht unbedingt das Wesentlichste. Viele von Ihnen werden nie abgehört werden und das einfach deshalb, weil Sie nichts zu verbergen haben oder weil die Kriminellen technisch noch nicht so weit sind (wenn sie soweit wären, dann hätten Sie schon etwas zu verbergen, z. B. Ihren Friseurtermin, denn dann sind Sie vermutlich nicht im Hause und ein Einbruch verläuft effektiv und reibungslos). Viele von Ihnen werden aber bereits jetzt oder bald mit E-Mails in betrügerischer Absicht konfrontiert werden. Den Kriminellen geht es um die unbedarfte Preisgabe von Zugangsdaten zu Bank- oder Zahlungsverkehrsdiensten oder sie möchten Sie gerne dadurch erpressen, dass Ihnen wichtige Daten nur gegen Lösegeld wieder entschlüsselt werden. Hauptschutz gegen dieses Unwesen ist die Identitätsfeststellung, also, wer schickt Ihnen eigentlich diese z. B. „Sicherheitswarnung“. Im Abschnitt zu E-Mail haben Sie gelesen, dass in eine E-Mail (in die Kopfzeile der E-Mail) wirklich alles als Absender, Betreff oder sogar Empfänger eingetragen werden kann.  In der Regel ist dies bei betrügerischen E-Mails auch der Fall. Darum die elektronische Unterschrift…

…meiner Ansicht nach ist neben der Vertraulichkeit der Nachricht (keiner kann sie lesen außer dem Empfänger) die Frage nach der Authenzitität des Absenders ebenso entscheidend. Weil Sie Ihren Public Key veröffentlichen, kann Ihnen prinzipiell jeder eine verschlüsselte Nachricht senden, z. B. der Kriminelle, der sich als Ihre Bank ausgibt. Noch schlimmer, eine verschlüsselte Nachricht erhöht möglicherweise deren Wertigkeit, sie verleiht ihr völlig unberechtigtes Vertrauen.

Um sicher zu stellen, dass eine Nachricht vom angegebenen Absender stammt und um sicher zu stellen, dass sie auf ihrem elektronischen Weg nicht manipuliert wurde, gibt es die digitale Signatur.

Die digitale Signatur gibt Auskunft über den Signierenden und belegt, wiederum mit einem mathematischen Verfahren, die Integrität der Nachricht, also dass Sie zwischen Signierung und Empfang nicht verändert wurde.

Jetzt kommt noch mal was Kompliziertes ins Spiel, der hash-Wert. Der Hashwert wird, stark vereinfacht ausgedrückt, durch die mathematische Verknüpfung zweier Informationen ermittelt. Eine ist z. B. Ihre Nachricht, die zweite ein (feststehender) Hash-Schlüssel (eine Art Verschlüsselungstabelle), der im Schlüssel verankert ist. Ich gebe kein Beispiel, es gibt aber mannigfach Literatur hierzu. Stellen Sie sich einfach vor, eine Nachricht wird mit einer sehr großen Zahl (2128 oder 2256) mit einer mathematischen Funktion bearbeitet. Am Ende erhält man eine sehr große Prüfsumme (Finger Print = Fingerabdruck), die sich nur für diese Nachricht in Kombination mit dem verwendeten Hash-Schlüssel ergeben kann. Ein Hash Verfahren gilt bereits dann als nicht sicher, wenn es gelingt, zu einem gegebenen Hash-Wert (Prüfsumme) eine zur gehashten Nachricht unterschiedliche Nachricht herzustellen. Aktuell als sicher gilt sha-256. Diese Hashwerte (Finger Prints) kommen auch bei der Identifizierung kryptologischer Schlüssel zum Einsatz. Wie jede digitale Information können Keys gehasht werden. Jeder digitale Schlüssel hat einen Fingerabdruck, viele PKI-Verwender teilen den Fingerabdruck ihrer Schlüssel auf ihrer Website, meist im Impressum mit. Der Vergleich der Angabe, die der Inhaber des Schlüssels zum Fingerabdruck macht und dem was Ihr Kryptologieprogramm aus dem Schlüssel ausliest, zeigt zuverlässig, ob der Schlüssel zum angegebenen Inhaber gehört (der Inhaber veröffentlich den Finger Print und Ihr Kryptogramm zeigt diesen Wert für den verwendeten Schlüssel an). Hat der Verwender des Schlüssels keine Angaben in öffentlichen Medien gemacht, fragen Sie einfach, z. B. telefonisch, nach seinem Finger Print.

Eine solche unveränderte Nachricht, dies ist der unkomplizierte Teil, wird als valid (gültig oder korrekt) bezeichnet. Wenn Ihnen z. B. Thunderbird/ Enigmail „Korrekte und nicht vertrauenswürdige Signatur“ mitteilt, wissen Sie, dass die Nachricht so abgeschickt wurde wie sie angekommen ist. Was ist mit dem „nicht vertrauenswürdig“ gemeint?

Die Identität des Absenders lässt sich nicht, jedenfalls nicht allein auf mathematischem Weg, feststellen, und hier kommt die PKI (Public Key Infrastructure), also eine Infrastruktur für Glaubwürdigkeit ins Spiel und hier scheiden sich die beiden etablierten Verfahren PKCS#7 (X.509 Zertifikat) und openPGP.

PKCS#7 bzw. X.509

X.509 ist hierarchisch organisiert. Es gibt Beglaubigungsinstanzen (CA, Certificate Authorities), die bestätigen, dass ein Schlüssel zu seinem Inhaber gehört. Der normale Ablauf ist so:

1. Sie erzeugen ein Schlüsselpaar (öffentlicher und geheimer Schlüssel).
2. Sie senden den öffentlichen Schlüssel zusammen mit Identitätsunterlagen an eine CA.
3. Diese sendet Ihnen Ihr Zertifikat (beglaubigter öffentlicher Schlüssel).

Dies kostet in der Regel Geld, es gibt aber auch kostenlose Zertifikate, diese beglaubigen aber meist nur eine E-Mail-Adresse (und hier reicht für die Identitätsfeststellung auch schon, dass mit dieser E-Mail-Adresse Kommunikation zwischen CA und Antragsteller möglich ist. Fast immer wird der geheime Schlüssel bei diesen kostenlosen Zertifikaten kommerzieller CAs von der CA erzeugt und Ihnen übersandt, unter Sicherheitsaspekten ist dies nicht überzeugend).

Weil die großen CA viel zu tun haben, gibt es intermediate certificates, für so etwas wie Zwischenhändler.

CACert, eine, würde man in Deutschland sagen, gemeinnützige Organisation, versucht einen Mittelweg, anständige Zertifikate ohne dafür bezahlen zu müssen. Infos finden Sie unter cacert.org.

Jedenfalls haben die X.509 Zertifikate großer Anbieter den Vorteil, dass deren Root-Zertifikate bereits als vertrauenswürdig in die großen Programme (Browser, E-Mail-Programme) eingepflegt sind, Sie Ihnen also automatisch vertrauen, falls Sie eines der großen Programme verwenden.

Stichwort Root-Zertifikat: An irgendeiner Stelle muss jemand, Sie oder Ihr Programmhersteller Vertrauen aussprechen. Ein integriertes Root-Zertifikat bedeutet, dass Ihr Programm allen Zertifikaten vertraut, die sich von diesem Zertifikat ableiten. Diese Ableitung geschieht durch eine Signierung, Zertifizierung, Beglaubigung eines Schlüsselpaars (X.509 Zertifikat) durch eine (möglichst anerkannte CA). Wie jeden digitalen Inhalt kann man also auch digitale Schlüssel signieren.

X.509 CAs führen CRLs (Rückruflisten), also Listen, in denen ungültig gemachte Zertifikate aufgelistet sind.

openPGP

openPGP geht einen etwas anderen Weg.

Wie gehabt wird ein Schlüsselpaar erzeugt, dieses aber nur eigenbeglaubigt. Das Vertrauen soll dadurch hergestellt werden, dass möglichst viele peers (Freunde, Gleichgesinnte etc.) den Schlüssel zertifizieren, also dem Schlüsselinhaber ihr Vertrauen aussprechen. Das funktioniert ganz gut in kleinen abgeschotteten Gruppen, z. B. einem Seminar an der Uni oder in der Familie, ist aus meiner Sicht aber ein Konzept, das sich nicht durchgesetzt hat. Einerseits wächst die Schlüsselgröße mit der eigenen Beliebtheit wie eine Facebook-Freundesliste, andererseits ist außerhalb des Bekanntenkreises kein Vertrauen gewonnen.

Seit vielen Jahren bietet das ct‘ Magazin im Rahmen einer Kryptokampagne eine Zertifizierung von openPGP-Schlüsseln an. Hier kann man bei persönlichem Erscheinen und Identitätsnachweis eine Zertifizierung erlangen. Die Leute von CACert bieten Ähnliches an, hier ist die Identifizierungsbasis das schon zertifizierte X.509 Zertifikat. Für Lizenzkunden biete auch ich eine Zertifizierung nach Identitätsfeststellung an. Meine Grundlage sind Kopien von Identitätsnachweisen und natürlich ein identifizierbarer Zahlungsvorgang.  

openPGP Schlüssel können Sie individuell beglaubigen, also z. B. durch (interne) Zertifizierung des Schlüssels von Heini Meier, dann wird programmseitig festgestellt, dass Sie der Signatur Heini Meiers vertrauen. Oder Sie vertrauen einer der selbsternannten Zertifizierungsstellen (siehe oben). Wenn Heini Meiers Schlüssel von einer Zertifizierungsstelle Ihres Vertrauens beglaubigt ist, Sie dieser Zertifizierungsstelle das Beglaubigungsvertrauen (Stufe 2) ausgesprochen haben (also den Schlüssel dieser Stelle entsprechend signiert haben), dann ist die individuelle Zertifizierung des Schlüssels von Heini Meier nicht mehr erforderlich. Vertrauensbeweise gegenüber Zertifizierungsstellen betreffen nur Ihr Vertrauen in deren Redlichkeit bei der Identitätsprüfung, also: Wenn ct magazine den Heini Meier zertifiziert hat, dann glaube ich, dass es der auch ist (weil ct dies geprüft hat). In WiSiKo zertifizieren Sie hierzu den Schlüssel der „ct magazine ca“ intern mit der Vertrauensreichweite „2“ (Sie vertrauen auch den Leuten, deren Schlüssel durch ct magazine ca zertifiziert wurden).
Nochmals, um einen Schlüssel als vertrauenswürdig anzusehen, müssen Sie entweder direkt diesen Schlüssel zertifizieren oder Sie zertifizieren einen Beglaubiger dieses Schlüssels. Dazu muss der jeweilige Schlüssel vorliegen. WiSiKo liefert die Schlüssel der drei mir bekannten Stellen mit, die openPGP- Schlüssel  zertifizieren. Ich denke, Sie sollten, auch um das System in Gang zu bringen, alle mit WiSiKo gelieferten CA Schlüssel mit Beglaubigungsreichweite „2“ zertifizieren (wie dies geht, finden Sie in den Erläuterungen zu WiSiKo). Natürlich muss die Beglaubigung eines CA Schlüssels nur einmal erfolgen.

Es spricht nichts dagegen, ein eigenes pgp CA aufzubauen. Sind Sie z. B. eine Schule, also ein überschaubarer Rahmen, können Sie die Schlüssel der Schüler und Lehrer zertifizieren. Sind Sie ein Amtsgericht, können Sie die zugelassenen Anwälte zertifizieren. Mehr zu diesem Thema gibt es an anderer Stelle, nämlich in den Erläuterungen zu WiSiKo.

Es spricht nicht nur nichts dagegen, eine eigene Zertifizierungsstelle aufzubauen, es ist sogar eine Art Königsweg, kostengünstig, zuverlässig, absolut sicher und eigentlich auch wirklich leicht zu verstehen. Dies geht mit X.509 nicht oder nur für sehr große Organisationen, das Bundesfinanzministerium geht mit den Elster-Zertifikaten diesen Weg. Was unsere Regierung von openPGP abhält  könnte sein, dass die digitale Identität mit der Möglichkeit zur Verschlüsselung der Kommunikation einher geht. Ein zweiter Grund dürfte darin zu finden sein, dass openPGP nicht institutionell bestätigt ist. Für kleinere Organisationseinheiten, deren Überwachungsinteresse nicht vorhanden oder gering ist, sollte dies kein Hinderungsgrund sein.

Zuletzt noch ein wohl notwendiger Hinweis: Kryptologische Schlüssel sollten personengebunden sein. Technisch können Sie natürlich auch Schlüssel für Ihre Organisation erstellen, dies bedeutet aber, dass alle, die für diese Organisation signieren dürfen, Zugang zum Schlüssel haben und wenn nur eine dieser Personen ihre Vertrauenswürdigkeit verliert, ja dann müssen Sie den Schlüssel widerrufen. Denn: Das Passwort oder die Passphrase schützen nur den Zugang zur  jeweiligen Kopie des Schlüssels, signiert wird mit dem Schlüssel selbst. Ein Schlüssel kann in mehreren Kopien existieren, jeweils mit anderen Passwörtern geschützt, und wenn Ihr nicht mehr vertrauenswürdiger Mitarbeiter seine Schlüsselkopie mitgenommen hat, dann kann er immer weiter signieren oder ihm zugängliches Material entschlüsseln.

Ein weiterer Vorteil des Verzichts auf einen Firmenschlüssel: Sie können Signaturen zuordnen. Ein Nachteil: Welchen Schlüssel soll der Korrespondenzpartner zum Verschlüsseln einer Nachricht an die Firma verwenden? Okay, hier ist ein Mittelweg gefragt, richten Sie eine Poststelle für eingehende Nachrichten ein, diese kann dann die Nachrichten an die zuständigen Mitarbeiter weiterleiten.  Ich habe mir einige Gedanken zu sicherer E-Mail in Unternehmen gemacht, erste Ergebnisse können Inhaber einer Professional License verwenden und weitere Features werden hinzukommen.

WiSiKo ist keine Voraussetzung für den Einsatz dieser seit langem vorhandenen Technologien, auch nicht das erste Programm, das sie verwendet. Vielleicht ist es aber der erste Versuch, X.509 und openPGP unter einen Hut zu bringen und der erste Beweis, dass es, zumindest bei E-Mail, ohne weiteres geht.