1976 erfanden die Mathematiker Whitfield Diffie und Martin Hellman die Grundzüge des Public-Key-Verfahrens, mit dem das Problem der Geheimhaltung des Schlüssels gelöst werden konnte. Zum Verschlüsseln wird ein Paßwort benutzt, das aber zum Entschlüsseln nicht taugt. Man unterscheidet bei diesem Verfahren also zwischen dem Geheimschlüssel, der seinen Besitzer nicht verläßt, und dem öffentlichen Schlüssel, der weit verbreitet werden kann und soll. Nur mit dem Geheimschlüssel können Texte lesbar gemacht werden, die mit dem dazu passenden öffentlichen Schlüssel chiffriert wurden.
Dieses Prinzip wurde im »Massachusetts Institute of Technology« (MIT) weiterentwickelt und schließlich im Jahr 1983 als RSA-Verfahren - für Ron Rivest, Adi Shamir, Leonard Adleman - veröffentlicht und patentiert [1]. RSA leistet Verschlüsselung und Authentifizierung. Man kann damit einen Text ver- und entschlüsseln, oder ihn nur signieren.
Zum Verschlüsseln wird der öffentliche Schlüssel verwendet. Die dadurch erzeugte verschlüsselte Datei kann nur durch denjenigen entschlüsselt werden, der den passenden Geheimschlüssel besitzt. Beim Signieren einer Datei dagegen wird an den Klartext eine Zeichenfolge angehängt, die mit dem Geheimschlüssel errechnet wird. Das Programm kann mit Hilfe des öffentlichen Schlüssels erkennen, ob eine solche elektronische Signatur mit genau dem Geheimschlüssel erstellt worden ist, der zu dem (allgemein bekannten) öffentlichen Schlüssel paßt. Damit ist bewiesen, daß die Nachricht von der Stelle stammt, die über den Geheimschlüssel verfügt. Also stammt diese signierte Nachricht vom Ersteller des öffentlichen Schlüssels.
Das Verfahren basiert grundsätzlich darauf, daß zwei große Primzahlen miteinander multipliziert werden. Dann werden mit einer besonderen mathematischen Methode Zahlen errechnet, die mit diesem Produkt - sagen wir - »verwandt« sind; näheres hierzu siehe PGP-FAQ aus dem Brett /NEWS/ANSWERS. Der öffentliche Schlüssel besteht aus diesem Produkt und aus einer der beiden verwandten Zahlen. Die andere verwandte Zahl ist der Geheimschlüssel.
Ein Dritter, der die Nachricht entschlüsseln will ohne den privaten Schlüssel zu kennen, muß dazu das Produkt der Primzahlen in seine Faktoren zerlegen. Das klingt einfach, ist aber mit den heute bekannten mathematischen Prozessen relativ schwierig. Die Sicherheit des Verfahrens ergibt sich aus diesem mathematischen Problem. Sollte dieses Problem irgendwann gelöst werden, ist natürlich das ganze RSA-Verfahren hinfällig [2].
Den RSA-Algorithmus näher zu erklären, führt hier zu weit. Seine Grundzüge sind veröffentlicht und können nachgelesen werden [3]. Zur Verwendung von RSA, wie es in bekannte Programme eingebunden ist, werden besondere mathematische Kenntnisse naturgemäß nicht benötigt.
Der öffentliche Schlüssel wird veröffentlicht und kann von jedem dazu verwendet werden, eine Nachricht so zu chiffrieren, daß sie nur von demjenigen dechiffriert werden kann, der im Besitz des privaten Schlüssels ist. Es ist praktisch nicht möglich, aus dem öffentlichen Schlüssel den privaten Schlüssel zu ermitteln. Dazu würde eine Rechenkapazität benötigt, wie sie auf diesem Planeten nicht in zumutbarer Zeit verfügbar ist. Es ist folglich praktisch nicht möglich, eine mit dem öffentlichen Schlüssel verschlüsselte Nachricht zu dechiffrieren, wenn man nicht den privaten Schlüssel besitzt. Das heißt, daß auch der Absender einer auf diese Weise verschlüsselten Nachricht sie nach dem Verschlüsseln nicht mehr lesen kann.
Der private Schlüssel dagegen muß nur dort vorhanden sein, wo damit entschlüsselt werden soll. Das ist in der Regel genau der Ort, an dem man die entschlüsselte Nachricht zur Kenntnis nehmen möchte, nämlich zuhause am eigenen Bildschirm. Man sollte darauf achten, daß im eigenen Umfeld nicht zu viele Kopien dieses Geheimschlüssels existieren.
Es entfallen die Risiken des Ein-Schlüssel-Verfahrens, die sich aus der Übermittlung des Paßwortes ergeben. Allerdings ist das Verschlüsseln verglichen mit DES auch wesentlich rechenaufwendiger. Man geht davon aus, daß DES-Software in der Regel etwa 100mal schneller arbeitet als RSA-Umsetzungen. Für das DES-Verfahren sind auch spezialisierte Rechenchips konstruiert worden. In diesen »Crypto-Chips« ist DES zwischen 1.000 und 10.000mal schneller als jede bekannte RSA-Software. Es ist zwar davon auszugehen, daß mit der weiteren Verbreitung von RSA dieser Geschwindigkeitsvorsprung schrumpfen wird, allein schon durch die größere Anzahl von Entwicklern, die sich mit möglichen Lösungen des Geschwindigkeitsproblems beschäftigen werden. Aber ein Vorsprung wird bleiben.
Dieser Geschwindigkeitsnachteil ist Grund dafür, daß das Programm »Pretty Good Privacy« (PGP) eigentlich zwei Methoden zur Verschlüsselung benutzt, nämlich RSA und IDEA. Damit wird trotz größtmöglicher Sicherheit gegen unbefugte Entschlüsselung eine akzeptable Geschwindigkeit beim Ver- und Entschlüsseln erreicht.
IDEA ist ein schweizer Algorithmus mit einer Schlüsselgröße von 128 Bit. Er basiert auf nur einem Schlüssel. Durch die größere Schlüssellänge ist IDEA jedoch wesentlich sicherer als das bekannte DES.
Das Programm PGP chiffriert eine Datei, indem es einen zufälligen Einwegschlüssel für die Verschlüsselung mit IDEA erzeugt. Dieser IDEA-Key wird dann per RSA mit dem Public-Key verschlüsselt und an den Anfang der Datei gestellt.
Beim Entschlüsseln wird erst dieser Einwegschlüssel mit dem RSA-Verfahren entschlüsselt, dann die eigentliche Nachricht mit dem Einwegschlüssel nach dem IDEA-Verfahren. Nähere Informationen bietet die Datei »PGPFormat.Doc«, die dem PGP-Vertriebspaket beiliegt.
Die Zeit, die man für das Knacken eines Schlüssels benötigt, der für eines der genannten Verfahren verwendet wird, ist ziemlich lang. Einige Zeitungsmeldungen:
Der Mitsubishi-Konzern hatte Anfang der 90er einen 56-Bit-DES-Schlüssel gefunden, indem er 12 Hewlett-Packard-Workstations etwa 50 Tage lang rechnen ließ. Welche mathematische Methode er dafür verwendete, ist nicht bekannt.
Die FAZ meldete am 8. Juni 1994, daß es amerikanischen Mathematikern dank eines neuen Algorithmus gelungen war, in acht Monaten einen 129 Bit langen RSA -Schlüssel zu knacken. Dabei stand den Wissenschaftlern die Hilfe von etwa 600 Menschen aus 25 Ländern zur Verfügung, mit denen sie in ständigem elektronischen Informationsaustausch standen. Potentiellen Anwendern des Kodierungsverfahrens rieten die Wissenschaftler, auf längere Schlüssel auszuweichen. Zugleich kündigten sie an, in nächster Zeit einen noch effektiveren Algorithmus testen zu wollen.
Man kann wohl davon ausgehen, daß die Mathematiker an Schlüsseln von 512 oder 1024 Stellen deutlich länger zu rechnen haben. Denn grundsätzlich verdoppelt sich mit jedem zusätzlichen Schlüsselbit die benötigte Rechenzeit. Selbst mit einem 512 Bit langen Schlüssel wären diese amerikanischen Mathematiker also noch bis jenseits ihrer Pensionierung beschäftigt.
Weil PGP aber vor allem das IDEA-Verfahren verwendet, könnte man das Verfahren für an sich unsicher halten. Denn ein 128 Bit großer IDEA-Schlüssel kann - wie diese Meldungen nahelegen - wohl innerhalb eines Jahres geknackt werden. Die Sicherheit von PGP besteht jedoch unter anderem darin, daß für jedes verschlüsselte Schreiben ein neuer Key erzeugt wird. Für jede verschlüsselte Datei muß also derselbe Rechenaufwand betrieben werden. Da muß jemand schon verdammt wichtig sein, bis irgend eine staatliche oder private Stelle sich bemüht, diese eine Nachricht zu entschlüsseln.
Was den RSA-Teil des Programms angeht, läßt PGP keine öffentlichen Schlüssel zu, die kürzer als 256 Stellen sind. Nur mit diesem RSA-Schlüssel aber läßt sich der Einwegschlüssel (»Session-Key«) jeder Nachricht entschlüsseln, die an den konkreten PGP-Verwender geschickt wird.
Für die meisten Anwender von Verschlüsselungstechniken dürfte die auf diese Weise gewährte Sicherheit genügen. Wem das an Sicherheit nicht genügt, der kann jährlich einen neuen öffentlichen Schlüssel verbreiten. Denn innerhalb eines Jahres ist ein RSA-Key mit einer Länge von mindestens 512 Bit nicht zu entschlüsseln, und bei Verwendung eines neuen Schlüssels müssen auch die potentiellen Schlüssel-Hacker von vorne anfangen. Allerdings sollte sich jedeR, der das beabsichtigt, folgende Fragen stellen: Wer vertraut einem regelmäßig neu vertriebenen Schlüssel, wer garantiert mit seiner Unterschrift für die Echtheit dieses Schlüssels? Je kürzer ein Schlüssel gilt, desto geringere Chancen bestehen dafür, daß das »Netzwerk des Vertrauens« wirksam werden kann. In den allermeisten Fällen ist also ein häufig erneuerter Schlüssel eher schädlich als nützlich.
Ernst zu nehmen ist dagegen das Risiko, daß ein Unbefugter Zugriff auf den Rechner hat, der zum Lesen und Schreiben verwendet wird. Dieses letzte Risiko minimiert das PGP dadurch, daß vor jedem Zugriff auf diesen Schlüssel ein Paßwort eingegeben werden muß. Ein Paßwort, das im privaten Schlüssel gespeichert wird, nicht etwa im Programm selbst. Leider kann der Anwender diese Sicherheit aushebeln, indem eine Systemvariable namens »PGPPass« eingeführt und automatisch bei jedem Systemstart - über die Autoexec.Bat oder die Config.Sys - geladen wird. Wenn irgend möglich sollte diese Variable nicht verwendet werden.
PGP wehrt Angriffe auf verschlüsselte Daten also mit folgenden Sicherheitskonzepten ab:
Zu den letzten beiden Aspekten ist noch eine Erläuterung nötig. Das weltweite Computernetz hat in der Vergangenheit häufig dazu beigetragen, daß Geheimes nicht lange geheim bleibt. Es genügt genau eine undichte Stelle in einer Organisation, und die aus dieser Quelle sprudelnden Informationen sind fast in Lichtgeschwindigkeit weltweit bekannt. Auf diese Weise wurden Sicherheitslücken in staatlichen Organisationen wie der NASA oder der Telekom offenbar, an die deren Techniker zuvor nicht gedacht hatten. Daher kann man hoffen, daß die Publizität von PGP und der öffentlichen Schlüssel dafür sorgen wird, eventuell vorhandene Sicherheitslücken dieses Systems schnell zu entdecken.
Es hat sich herausgestellt, daß vernünftige Verwender von PGP Angriffe Dritter auf die Vertraulichkeit ihrer Daten nicht befürchten müssen. Wer allerdings seinen Geheimschlüssel verschickt, muß sich nicht darüber wundern, wenn dieser Schlüssel gegen seinen Ersteller eingesetzt wird. Wer Schlüsseln vertraut, die nicht von anderen Menschen außer dem Ersteller signiert worden sind, muß sich ebenfalls nicht darüber wundern, wenn dieser Schlüssel in Wahrheit nicht von der Person stammt, die im Schlüssel als Ersteller und Verwender bezeichnet ist. Und wer schließlich sein PGP-Paßwort auf seinem Rechner im Klartext gespeichert hat - insbesondere durch die Zeile SET PGPPass=["Paßwort"] in der Startdatei seines Rechners, muß sich erst recht nicht darüber aufregen, wenn irgend ein anderer diese Information zu unlauteren Zwecken benutzt. Werden diese Fehler aber vermieden, und geht man selbst sorgfältig mit seinen Signaturen unter fremden Schlüsseln um, dann ist PGP sicherer als Fort Knox.
PGP basiert auf der Idee, einen öffentlichen Schlüssel (Public Key) zu erzeugen, mit dem jeder andere PGP-Nutzer Nachrichten verschlüsseln kann. Solche Nachrichten können nur mit dem dazugehörigen privaten Schlüssel (Secret Key) entschlüsselt werden. Dieser private Schlüssel muß den Herrschaftsbereich des PGP-Verwenders nicht verlassen und bleibt deshalb absolut geheim, sofern der Verwender nicht leichtsinnig damit umgeht. Die Algorithmen RSA und IDEA sowie das sie verwendende Programm PGP bilden daher das sicherste Verschlüsselungssystem, das zur Zeit und auf absehbare Zeit verfügbar ist. Deshalb empfiehlt sich seine Verwendung.
Freies Telekommunikationszentrum Hamburg e.V.
Klaus-Groth-Straße 84
D - 20459 Hamburg
Germany / Allemagne