In letzter Zeit hört und liest man immer häufiger von PGP, was ausgeschrieben „Pretty Good Privacy“ heißt und unter anderem für eine bequeme und leistungsfähige Methode steht, Texte und Daten vor unerwünschtem Zugriff zu schützen. Im folgenden Artikel soll über die Möglichkeiten und Risiken von PGP berichtet werden, nicht zuletzt auch, um das Sicherheitsbewußtsein der Computeranwender zu schärfen, denn das liegt teilweise noch sehr im Aigen.
Wer häufiger vertrauliche Daten per DFÜ verschickt oder erhält, wird früher oder später dazu übergehen, diese Daten zu verschlüsseln, so daß nur der tatsächliche Empfänger sie lesen kann. Üblicherweise wird man dazu ein Paßwort-Codierverfahren benutzen, einige bekannte und einfache Vertreter dieser Gattung wurden in [1] vorgestellt. Das Hauptproblem dieser Verfahren ist, daß man dem Empfänger das Paßwort ja mitteilen muß, damit er in der Lage ist, die codierten Daten wieder zu entschlüsseln. Dieses auf dem gleichen Kanal wie die Daten selbst zu verschicken, ist unsinnig, denn dann könnte man sich die Verschlüsselung auch gleich sparen. Man muß dies also auf andere Weise tun, beispielsweise per Telefon, und dabei hoffen, daß niemand mithören kann. Man sollte das Paßwort auch regelmäßig wechseln, was leider ein erneutes Austauschen erforderlich macht.
Das alles ist riskant und unbequem, vor allem dann, wenn es mehrere Empfänger gibt. Eine brauchbare Alternative stellen daher sogenannte Public-Key-Verfahren dar, bei denen mit zwei Schlüsseln gearbeitet wird. Jeder hat dazu einen öffentlich bekannten und einen privaten, geheim zu haltenden Schlüssel. Möchte man also Person X einen Text schicken, den nur sie/er lesen kann, verschlüsselt man ihn mit ihrem/seinem öffentlich bekannten Schlüssel. Der so codierte Text kann nur noch mit X' privatem Schlüssel lesbar gemacht werden, das gewünschte Ziel ist erreicht. Der Hauptvorteil dieser Methode ist, daß man den öffentlichen Schlüssel problemlos per DFÜ austauschen kann, da ein potentieller „Mithörer“ damit allein nichts anfangen kann.
Der bekannteste Vertreter dieser Public-Key-Verfahren ist zweifellos das RSA-Verfahren, das nach seinen Entwicklern Rivest, Shamir und Adleman benannt ist (Details dazu in [1]). Es hat allerdings den Nachteil, daß es prinzipbedingt äußerst langsam beim (De-) Codieren ist und zudem nicht das Optimum an Sicherheit darstellt. Auch wenn einige Artikel über RSA anderes suggerieren, sind die aktuellen Ein-Paßwort-Verfahren in Geschwindigkeit und gebotener Sicherheit überlegen.
PGP, eine Entwicklung von Philip Zimmermann aus den USA, verknüpft nun die Vorteile von „ordinären“ Verschlüsselungstechniken mit denen des RSA-Verfahrens. Für jeden zu codierenden Text wird ein zufälliges Paßwort erzeugt und mit dem öffentlich bekannten Schlüssel des Empfängers codiert. Der eigentliche Text wird dann mit dem erzeugten Schlüssel bzw. Paßwort geschützt, wobei PGP ein Verfahren namens IDEA (International Data Encryption Algorithm) benutzt, das an der ETH in Zürich entwickelt wurde, mit 128 Bit großen Schlüsseln arbeitet und bisher allen „Knackversuchen“ erfolgreich widerstanden hat. Das Entschlüsseln funktioniert entsprechend umgekehrt: Der IDEA-Schlüssel wird mit dem geheimen Key des Empfängers decodiert, womit anschließend wieder der Originaltext erstellt wird. Um die Sicherheit zusätzlich zu erhöhen, wird der Text vor dem Verschlüsseln mit dem ZIP-Algorithmus gepackt, wodurch Knackversuche, die sich an Zeichenhäufigkeiten oder bestimmten Buchstabenkombinationen orientieren, vereitelt werden. Selbstverständlich werden die Daten nach dem Decodieren wieder in die ursprüngliche Form gebracht.
Neben dem Codieren von Texten/Daten bietet PGP aber noch mehr. So kann man eine Nachricht mit einer „digitalen Unterschrift“ versehen, damit eindeutig festgestellt werden kann, daß sie tatsächlich vom genannten Absender stammt und nicht verändert wurde. Dazu wird eine Art „Inhaltsangabe“ der Daten erstellt, die dann mit dem privaten Schlüssel des Absenders codiert wird. Jeder Empfänger kann dann mit Hilfe des öffentlichen Schlüssels nachprüfen, ob die Unterschrift in Ordnung ist. Die „Inhaltsangabe“ kann in etwa mit einer Prüfsumme verglichen werden, nur wird sie so erstellt, daß es unmöglich ist, die Nachricht zu ändern oder eine ähnlich lautende zu verfassen, ohne dabei eine völlig andere Inhaltsangabe zu erhalten.
Die wichtigste Nebenfunktion von PGP aber stellt das Keymanagement dar. Mit seiner Hilfe ist es sehr einfach, eigene Schlüssel zu erstellen und Schlüssel von Gesprächspartnern zu verwalten. PGP benutzt dazu sogenannte „Key-Rings“, das sind Dateien, die die Schlüssel beinhalten. Einer davon ist für die privaten, geheimen Keys gedacht und sollte immer unter Verschluß bleiben. Der zweite Ring beherbergt die öffentlichen Schlüssel (auch die Gegenstücke zu den eigenen, geheimen Keys). Beide Files sollten auch als Backup vorhanden sein, denn der Verlust der eigenen Schlüssel ist äußerst unangenehm.
Wer etwas über das Konzept nachdenkt, wird früher oder später darauf kommen, daß man öffentlichen Schlüsseln, die man erhalten hat, nicht so ohne weiteres vertrauen darf. Niemand garantiert, daß sie tatsächlich dem angegebenen Absender gehören. So könnte sich beispielsweise jemand dazwischengeklinkt und den verschickten öffentlichen Schlüssel einer Person durch seinen eigenen ersetzt haben. Verschickt man nun codierte Nachrichten, im Vertrauen darauf, daß nur der gewünschte Empfänger sie lesen kann, ist der „Eindringling“ in der Lage, den Text zu lesen, da er ja mit seinem Schlüssel codiert wurde. Er könnte sogar danach die Nachricht mit dem öffentlichen Schlüssel des eigentlichen Empfängers erneut codieren und danach weiterleiten, so daß niemand sein Eindringen bemerken kann.
Um dies zu verhindern, bietet PGP zwei Verfahren zur Sicherung öffentlicher Schlüssel an. Zum einen kann von jedem Schlüssel ein „Fingerabdruck“ erzeugt werden, den man dann beispielsweise telefonisch mit dem Absender abgleichen kann. Stimmt der Abdruck, ist auch der Schlüssel in Ordnung (selbstverständlich muß man sicher gehen, daß man auch wirklich mit der richtigen Person gesprochen hat, was unter Umständen nicht so einfach ist). Die zweite Möglichkeit, öffentliche Schlüssel sicherer zu machen, sind Unterschriften. Jeder kann einen öffentlichen Schlüssel, bei dem er sicher ist, daß er dem angegebenen Besitzer auch wirklich gehört, mit dem eigenen geheimen Key unterzeichnen und dem Eigner zurückschicken. Wird der so gekennzeichnete Schlüssel weitergegeben, kann der nächste Empfänger anhand der bereits vorhandenen Unterschriften entscheiden, ob er diesem Schlüssel trauen möchte (selbstverständlich muß er dazu die öffentlichen Keys der Unterzeichner schon selbst besitzen und als vertrauenswürdig gekennzeichnet haben).
Man sieht deutlich, daß PGP sehr gut durchdacht ist und eine sehr hohe Sicherheit bietet. Jedoch ist die beste Software nur so sicher wie ihr Anwender, daher bedarf es eines verantwortungsvollen Einsatzes. So sollte jeder seinen geheimen Schlüssel wie einen wertvollen Schatz hüten, denn fällt er anderen in die Hände, kann viel Schaden angerichtet werden. PGP schützt diesen Schlüssel zwar zusätzlich durch ein Paßwort, doch das sollte niemanden dazu verleiten, nicht aufzupassen. Eine weitere Unsitte, die PGP auf Wunsch vieler Anwender jetzt doch unterstützt, ist es, das eigene Paßwort als Environment-Variable anzulegen, um sich das wiederholte Eintippen zu sparen. Damit stehen sowohl Keyfile als auch das dazugehörige Paßwort irgendwo auf einem Datenträger zur Verfügung, was äußerst riskant sein kann.
Des weiteren sollte man nicht blauäugig jeden öffentlichen Key, den man bekommt, gleich ohne Bedenken benutzen oder gar unterzeichnen. Erst wenn man wirklich sicher sein kann, daß der Schlüssel dem angegebenen Eigentümergehört und korrekt ist, sollte man ihn benutzen. Vor dem Unterzeichnen sollte man sogar 150%ig sicher gehen, denn durch die eigene Unterschrift teilt man anderen mit, daß man von der Korrektheit dieses Schlüssels absolut überzeugt ist.
Selbstverständlich kann man auch versuchen, PGP-verschlüsselte Texte zu knacken. Die „brutale“ Methode, einfach den geheimem Schlüssel zu einem öffentlichen zu ermitteln, erfordert jedoch einen unglaublich hohen Aufwand, der nur durch Einsatz modernster Supercomputer erreichbar ist. Und selbst dann dauert es noch immer sehr lange, den Schlüssel zu knacken. Wer also wirklich höchstvertrauliche Nachrichten bzw. Daten verschlüsseln muß, sollte eher Angst davor haben, daß „konventionelle“ Methoden wie Erpressung oder Gewalt angewandt werden, um an die Inhalte zu kommen.
Wer sich nach dem letzten Absatz fragt, wozu er als Privatmensch überhaupt PGP benutzen soll, ist sicher nicht alleine. Es gibt Leute, die empfehlen, sensible Daten und Texte erst gar nicht per EMail zu verschicken, denn erst codierte Nachrichten würden Interesse bei „Hackern“ wecken [2]. Allerdings ist eine umgedrehte Sichtweise ebenfalls zu berücksichtigen: Je mehr Leute PGP verwenden, insbesondere im privaten Bereich für weniger empfindliche Daten, desto geringer wird die Wahrscheinlichkeit, mit verschlüsselten Nachrichten aufzufallen. Setzt sich PGP also weiter durch, zieht dieses Argument nicht mehr.
Ein weiterer Grund für die Benutzung von PGP ist die im DFÜ-Bereich immer noch vorherrschende Blauäugigkeit vieler Benutzer, getreu dem Motto „Im Netz gibt es nur nette Menschen“. Wer allerdings nur ein wenig nachdenkt, wird merken, wie unsinnig das ist. Wer also Texte verschicken möchte, die privaten Inhalt haben (man kann so ziemlich jede private Information in negativer Weise ausschlachten) oder Daten enthalten, die nicht jeder lesen soll, sollte PGP verwenden. Man kann es in etwa mit einem Briefumschlag vergleichen, der ja in erste Linie auch vor ungewünschten Mitlesern schützen soll, auch wenn der Vergleich natürlich bei näherer Betrachtung etwas hinkt. Sinnvoll ist dies vor allem (aber keineswegs ausschließlich) in großen Netzen wie dem InterNet, wo jede Nachricht über etliche Knotenrechner an ihr Ziel geleitet wird. Bei jeder dieser Zwischenstationen besteht die Möglichkeit, die Daten mitzuprotokollieren, eine Gefahr, die man nicht unterschätzen sollte.
Der Autor von PGP, Philip Zimmermann, hat in Amerika übrigens große Probleme mit den Behörden, die eine Verbreitung von PGP, insbesondere in's Ausland, am liebsten völlig verhindern möchten. Aus Sicht der Geheimdienste ist dies durchaus verständlich, denn PGP wird sicherlich nicht nur zu legalen Zwecken benutzt, es stellt z.B. auch eine ideale Möglichkeit für Terroristen dar, ihre schmutzigen Geschäfte unerkannt per EMail abzusprechen und zu planen. Dies jedoch als Grund zu nehmen, Verschlüsselungsverfahren unter Aufsicht des Staates zu stellen, so daß dieser in der Lage bleibt, Texte zu decodieren oder sie gänzlich zu verbieten, halte ich für unangemessen. Fast jede zivile Errungenschaft läßt sich mißbrauchen, aber trotzdem würde beispielsweise niemand auf die Idee kommen, Autos zu verbieten, weil man damit (Bomben)-Anschläge verüben kann, oder vorzuschreiben, Häuser aus Glas zu bauen, damit sich kein Verbrecher mehr verstecken kann.
Die amerikanischen Exportbestimmungen verbieten die Verbreitung von Verschlüsselungsprogrammen in andere Länder (sie gelten praktisch als Waffen), jedoch hat PGP bisher immer einen Weg gefunden, von Privatleuten in aller Welt genutzt zu werden (zwischenzeitlich wurde PGP sogar außerhalb der USA fertiggestellt und dann zurückimportiert). Für die kommerzielle Nutzung von PGP außerhalb der USA ist bislang keine Regelung gefunden; die Ascom-Tech AG, die die Patentrechte am vom PGP genutzten IDEA-Algorithmus hält, gestattet jedoch für diese Übergangsphase die freie Benutzung. Dem privaten Gebrauch des Algorithmus hat sie unabhängig davon allgemein zugestimmt, es sind keine Lizenzzahlungen nötig.
PGP wurde ursprünglich für DOS-Rechner entwickelt, existiert inzwischen aber bereits für alle wichtigen Systeme, darunter natürlich auch TOS. Dadurch wird aber auch klar, daß PGP nur ein Kommandozeilenprogramm ist, da sonst keine Portabilität gewährleistet wäre. Somit muß man sich also etliche Parameter merken und PGP darüber hinaus als TOS-Programm laufen lassen (Bild 1). Da dieses Problem allerdings bereits bekannt ist (beispielsweise vom gcc oder von POV-Ray), gibt es bereits GEM-Shells, die die Benutzung von PGP per Maus und Dialogen ermöglichen und die Parametersteuerung selbst übernehmen.
Mir selbst sind bislang zwei solche Shells bekannt, Easy-PGP von Manfred Sykor und die PGP-Shell von Randy Hoekstra (Bilder 2 und 3). Persönlich gefällt mir Easy-PGP deutlich besser, da diese Shell problemlos in Multitasking-Umgebungen läuft, die Ausgaben von PGP in ein Fenster leitet und deutlich bequemer zu bedienen ist. Letztlich sollte sich aber jeder selbst ein Bild machen und entscheiden, welche Shell ihm besser gefällt (oder selbst eine schreiben ...)
Die meisten Mail- und Newsreader für den ATARI haben inzwischen auch eine aktive PGP-Unterstützung, die das Verschlüsseln von ausgehenden und das automatische Entschlüsseln von eingegangenen Nachrichten ermöglicht (z.B. Okami 0.26 von Wolfram Rösler). Trotzdem ist die zusätzliche Benutzung einer Shell sinnvoll, um die Spezialfunktionen von PGP bequem benutzen zu können (insbesondere das Keymanagement kann „von Hand“ äußerst mühsam sein).
Die ATARI-Version von PGP ist auf vielen ftps und in den meisten Mailboxen zu finden, die im InterNet verbreitetste Portierung der aktuellen Version 2.6.2 stammt von Harald Denker. Bei der Anschaffung sollte man immer darauf achten, ein „richtiges“ PGP zu erhalten, das nicht in irgendeiner Weise manipuliert wurde, um die Verschlüsselung effektiv wirkungslos zu machen (beispielsweise indem immer der gleiche Key für den IDEA-Algorithmus benutzt wird). Eine gewisse Sicherheit bieten signierte PGP-Executables (solange man dem Unterzeichner vertrauen kann und seinen Schlüssel bereits anderweitig erhalten hat) und ein Test, ob ein Text bei mehrmaligem Verschlüsseln auch wirklich jedesmal ein anderes Ergebnis bringt.
Ich hoffe, dieser Artikel hat Interesse an PGP geweckt und deutlich gemacht, daß Verschlüsselung von Daten und Texten bei der DFÜ nicht nur bei hochsensiblen Informationen angebracht ist. Ich habe hier auch absichtlich keine Anleitung zur Benutzung von PGP mitgeliefert, denn jeder sollte sich - unbedingt - die umfangreiche Dokumentation, die bei PGP mitgeliefert wird, vollständig durchlesen (ist sie nicht vorhanden, sollte man dieses PGP lieber nicht benutzen), selbst wenn er/sie plant, PGP nur über eine GEM-Shell zu steuern. Die Dokumentation enthält nämlich nicht nur Benutzungshinweise, sondern auch weitere wichtige Details und Verhaltensratschläge, damit man PGP verantwortungsvoll und effektiv einsetzen kann.
Zum Abschluß liefere ich noch den Fingerprint meines öffentlichen Schlüssels, damit jeder, der ihn erhält, die Authentizität überprüfen kann (natürlich muß man der Redaktion und dem Verlag genug vertrauen und davon ausgehen, daß er nicht manipuliert wurde):
92 6D 22 37 8F 8D 76 FC
2F FB DD 33 50 2C ED 21
Wer meinen Schlüssel haben möchte, kann mir eine Mail schicken. Meine Adresse (im InterNet): binder@rbg.informatik.th-darmstadt.de
Literatur:
[1] Georg Scheible, Kryptologie oder: Keiner versteht mich (hoffe Ich), ST-Computer, Sonderheft Programmierpraxis, Helm Fachverlag, 4/1992
[2] Sybille Engels, Kriminalität In Datennetzen - Internet-Piraten voraus, Focus 2/1995, Burda-Verlag