Die Sicherheit des geheimen Schlüssels

Editorial Note

Version 1.0 - August 1998

Ralf Senderek

The Protection of your Secret Key, Version 2.1 October 2003

PREFACE

This document was first published in 1998 to encourage people to use PGP not in blind faith but with a certain degree of understanding of its basic principles and security mechanisms, and of course to increase their consciousness of possible risks which arise with the daily use of PGP.
I hoped to contribute to the efforts of others to make the use of cryptography more transparent and more reliable. But since the old days of classic PGP the further development seems to me to lead into a different direction which has made the use of crypto more complex and more in-transparent leaving the user in a dangerous dependence on crypto code which almost nobody fully understands nor analyses for security, a situation, most users seem to have accepted wilfully.

Something had to be done to tackle the inscrutability problem and I began to work out a concept of a pure crypto program (PCP) that uses only one single basic crypto function and will comprise of only the smallest amount of secure and highly readable code that will be understandable not only by security experts.

As most of the content of the original document is also relevant for the Pure Crypto Project you can access a similar document that will explain the basic principles of the new project and that will make the security mechanisms clear with references to the open source code of PCP.

August 2003

Wie sicher ist die Anwendung von PGP ?
Kann eine digitale Unterschrift gefälscht
oder
eine vertrauliche Mitteilung von anderen mitgelesen werden ?
Kann man sich auf das sichere Funktionieren von PGP verlassen ?

Diese Fragen sind wichtig, aber sie sind nicht einfach zu beantworten. Ich möchte zunächst einen kurzen Überblick über die wesentlichen Ergebnisse der Beurteilung der Sicherheit von PGP geben und werde anschließend versuchen, meine Beurteilung möglichst genau und detailliert zu begründen.

ÜBERBLICK
BEGRÜNDUNG
Die Sicherheit der verwendeten kryptologischen Verfahren
Das Verschlüsselungsverfahren IDEA
Das Public-Key-Verfahren RSA
Das Hashverfahren MD5
Angriffe auf die praktische Anwendung von PGP
Sicherheitskritische Aktionen
Zum Umgang mit der Passphrase
Angriffe auf die Passphrase
Was ist eine gute Passphrase ?
NEUER IST BESSER ? - Die Versionen von PGP
VERWEISE auf andere Informationsquellen
Eine abschließende BITTE

Überblick

Durch den Einsatz von PGP verfolgt man im allgemeinen folgende Ziele:
  • man möchte Vertraulichkeit in der Kommunikation mit anderen erreichen, d.h. es soll ausgeschlossen werden, dass jemand anderes als der Empfänger in der Lage ist, eine Mitteilung im Klartext mitzulesen,
  • man möchte die Verlässlichkeit der Quelle der Information (Authentizität) sicherstellen, d.h. es soll ausgeschlossen sein, dass andere Personen sich unerkannt als Autor einer Nachricht ausgeben können, deren Urheber jemand anderes ist (Schutz des geistigen Eigentums),
  • man möchte die Unverfälschtheit bzw. Echtheit einer Nachricht sicherstellen, d.h. es soll ausgeschlossen sein, dass die Nachricht bewusst oder zufällig verändert wurde.
Die Zertifizierungstelle empfiehlt die Verwendung von PGP-2.6.3i auf der Basis von RSA-Schlüsseln mit einer Mindestlänge von 1024 Bit um diese Ziele verlässlich erreichen zu können. Eine Zertifizierung von DSS/DH-Schlüsseln, die von neueren PGP-Versionen bereitgestellt werden, wird nicht vorgenommen (vgl. dazu die nachfolgenden Argumente).

Es gibt zwei mögliche Strategien, um die Sicherheit der Kommunikation mit PGP anzugreifen:

  • theoretische Angriffe,
    d.h. Angriffe, die sich gegen Schwachstellen der verwendeten kryptologischen Verfahren richten und die die Sicherheit und Verlässlichkeit von PGP grundsätzlich betreffen, und
  • praktische Angriffe,
    die Schwachstellen bei der praktischen Anwendung von PGP ausnutzen, mit der Absicht, durch eine Kompromittierung der Passphrase den geheimen Schlüssel (Secret-Key) zu erlangen oder durch die Verteilung manipulierter öffentlicher Schlüssel den Anwender zu täuschen.
Eine dritte Möglichkeit der Täuschung besteht darin, dass ein Angriff auf die Implementation von PGP versucht wird, d.h. dass der Quellcode des Programms so verändert wird, dass die verwendeten kryptologischen Verfahren manipuliert werden oder dass zusätzlicher Code eingefügt wird, der sicherheitsrelevante Informationen anderen Personen zugänglich macht. Dieser veränderte Code erzeugt dann in seiner kompilierten Fassung ein PGP-Programm, das für den Benutzer nicht mehr vom sicheren Original zu unterscheiden ist. Da es sich hierbei aber um den Versuch handelt, die Sicherheit in der praktischen Anwendung von PGP zu untergraben, werde ich diesen Fall im zweiten Teil behandeln.

Wie im folgenden näher zu begründen ist, sind die theoretischen Angriffe auf PGP unrealistisch, d.h. bei der Verwendung genügend langer RSA-Schlüssel ist eine Gewinnung des geheimen Schlüssels praktisch nicht möglich. Die Sicherheit der verwendeten Verfahren lässt sich aus der Geschichte des Scheiterns der bisherigen Versuche, diese Verfahren zu brechen, ableiten und basiert nicht auf einem frommen Glauben, sondern auf den Ergebnissen der gegenwärtigen Forschung im Bereich der Informatik. Die theoretische Sicherheit muss deshalb immer im Lichte neuer Erkenntnisse neu bewertet werden.

Die Aussichtslosigkeit eines Angriffs auf die verwendeten kryptologischen Verfahren verschiebt allerdings das Interesse potentieller Datenstrolche auf die Schwachstellen bei der praktischen Anwendung des Secret-Keys im alltäglichen Umgang mit PGP. Hier sind eine Reihe von Problemen zu beachten, damit nicht unerkannt die Sicherheit von PGP aufs Spiel gesetzt wird. Von besonderer Bedeutung ist hier die Geheimhaltung der Passphrase, mit der der Secret-Key geschützt wird, ein Problem, das häufig drastisch unterschätzt wird.

Begründung

Die kryptologischen Verfahren, auf denen PGP-2.6.x basiert, haben unterschiedliche Aufgaben, die zunächst kurz skizziert werden sollen, bevor deren Zuverlässigkeit beurteilt wird. Damit ein Benutzer persönlich als alleiniger Empfänger oder als legitimer Urheber einer Nachricht in Erscheinung treten kann, verwendet PGP das asymmetrische Verschlüsselungsverfahren RSA. Mit diesem Verfahren könnte die Verschlüsselung und Entschlüsselung aller relevanten Informationen erfolgen, wenn nicht die Langsamkeit dieses Verfahrens bei langen Schlüsseln den Grund dafür liefern würde, die eigentliche Verschlüsselung der Nachrichten besser mit dem symmetrischen Verschlüsselungsverfahren IDEA durchzuführen und nur für die Koppelung der Fähigkeit zur individuellen Entschlüsselung einer Nachricht und zur Signatur von Informationen an eine Person das RSA-Verfahren einzusetzen. PGP kombiniert hier also ein Verfahren, das auf der Benutzung eines Schlüsselpaares aufbaut, das einer bestimmten Person zugeordnet werden kann (RSA), mit einem Verfahren, das einen zufälligen Sitzungsschlüssel (Session-Key) zur Ver- und Entschlüsselung verwendet (IDEA). Das dritte Verfahren, das bei PGP zum Einsatz kommt, ist das Hashverfahren MD5, dessen Aufgabe allein darin besteht, einen langen Text in eine 39-stellige Dezimalzahl zu verwandeln, die dann als sogenannter "Fingerprint", also als Kurz-Kennzeichen des Textes fungiert und bei der digitalen Signatur den langen Text ersetzt.

Die Sicherheit der verwendeten kryptologischen Verfahren

Das Verschlüsselungsverfahren IDEA

Wie groß ist die Sicherheit, dass nur der legitime Empfänger einer verschlüsselten Nachricht diese im Klartext lesen kann?

PGP (im folgenden meine ich damit immer PGP-2.6.x) verwendet zur Verschlüsselung das Verfahren IDEA, ein symmetrisches Verschlüsselungsverfahren, das mit einem 128-Bit langen Schlüssel, z.B.

1010100101010010010010101010111101010101101100111101010000101110 1000011010110001001011110111001101111011010111111101011011000100

eine Nachricht verschlüsselt, die danach nur durch die Anwendung desselben Schlüssels (deshalb symmetrisch) wieder in den Klartext verwandelt, d.h. entschlüsselt werden kann. Dieses Verfahren spaltet den Klartext in Blöcke von 8 Bytes auf und wandelt diese 64-Bit-Kette in eine andere um. Das Ergebnis der Umwandlung, bei der in mehreren Runden auf Teile des Blocks Additionen, Multiplikationen und Differenztests mit den Bits des Schlüssels ausgeführt werden, hängt von jedem Bit des Schlüssels ab, so dass zur Entschlüsselung des Kryptogramms wieder der 128-Bit lange Schlüssel erforderlich ist. Durch die Länge des IDEA-Schlüssels ist gewährleistet, dass es eine riesige Menge von verschiedenen Schlüsseln gibt (genau: 2128 Stück, also 340 282 366 920 938 463 463 374 607 431 768 211 456), so dass ein "Erraten des Schlüssels" durch systematisches Durchprobieren aller möglichen Schlüssel praktisch unmöglich ist (sog. "brute force attack").

EXKURS

Warum soll ein Computer in der nahen Zukunft nicht fix mal alle IDEA-Schlüssel durchprobieren können?

Weil ein Computer aus prinzipiellen Gründen diese Leistungsfähigkeit nicht haben wird.

Nach dem heutigen Stand der physikalischen Forschung, der sich natürlich ändern kann, ist die Signalübertragung in jedem denkbaren Computersystem durch die Lichtgeschwindigkeit begrenzt.
Dem widersprechen auch nicht die bisherigen "Überlichtgeschwindigkeitsexperimente".

Angenommen das Hochleistungscomputersystem zum Schlüsseltest hat eine maximale Ausdehnung von 0,3 mm, in der die elektronische oder lichtgeleitete Informationsübertragung erfolgt, dann kann es maximal 1 000 000 000 000 Operationen (1012) in jeder Sekunde ausführen, weil es sonst kleiner sein müsste. In 317 Jahren, also 10 003 759 200 Sekunden ist dieses System in der Lage 10 003 759 200 000 000 000 000 Operationen auszuführen. Diese bescheidenen Leistungsfähigkeit von immerhin 1022 Operationen, die in diesen 317 Jahren ausführbar sind, ermöglicht natürlich nicht die Überprüfung von 1022 verschiedenen IDEA-Schlüsseln, weil ein Schlüsseltest sich nicht in einem Taktzyklus erledigen lässt. Aber selbst wenn dies möglich wäre, ist die große Anzahl der möglichen IDEA-Schlüssel von 1038 dann nur zu 0,000 000 000 000 000 029 Prozent durchsucht. Also wird ein einzelner IDEA-Schlüssel auch dann nicht gefunden werden, wenn man "viele" solcher Computersysteme parallel an die Arbeit setzt.

Dieses Argument basiert auf empirischen Annahmen und kann deshalb auch durch die Erfahrung widerlegt werden. Es ist aber sicherlich empirisch falsch, Computersystemen eine "in Zukunft beliebig große Leistungsfähigkeit" zu unterstellen.

Das Public-Key-Verfahren RSA

Für die Verlässlichkeit von PGP ist das Public-Key-Verfahren (
RSA) von entscheidender Bedeutung, weil eine zuverlässige Bindung zwischen einer Person und der Fähigkeit zur Entschlüsselung oder zur Signatur von Informationen bestehen muss.

Auf der sicheren Funktionsfähigkeit des Public-Key-Verfahrens basiert:

  • die Vertraulichkeit der Nachricht, da der IDEA-Schlüssel nur vom wirklichen Adressaten der Nachricht angewendet werden darf, und
  • die Authentizität der Nachricht, so dass eine verlässliche digitale Signatur von Dokumenten möglich ist, und eine vorliegende Information daraufhin überprüft werden kann, ob sie wirklich von einer bestimmten Person stammt oder nicht.
Wird eine Nachricht mit einem IDEA-Schlüssel verschlüsselt, so muss dieser Schlüssel an den Adressaten zusammen mit der verschlüsselten Nachricht übermittelt werden, aber in einer Weise, dass nur diese Person den Schlüssel wiedergewinnen kann und damit in der Lage ist, die Nachricht zu entschlüsseln. Hierzu wird der IDEA-Schlüssel (Session-Key) selbst noch einmal verschlüsselt und zwar mit dem öffentlichen RSA-Schlüssel (Public-Key) des Adressaten. Zu diesem öffentlichen Schlüssel gehört ein Gegenstück, der geheime Schlüssel (Secret-Key), der ausschließlich im Besitz des Adressaten sein darf, damit nur er oder sie in der Lage ist, durch Anwendung des Secret-Keys den IDEA-Schlüssel wiederzugewinnen, den man zur Entschlüsselung der eigentlichen Nachricht braucht.

Die Authentizität der Nachricht ist also nur zu gewährleisten, wenn das Schlüsselpaar (Public-Key, Secret-Key) verlässlich einer bestimmten Person zugeordnet werden kann, und zwar auch dann, wenn man die betreffende Person gar nicht kennt. Für die Gültigkeit einer digitalen Signatur ist die Sicherheit wesentlich, dass nur die fragliche Person selbst in der Lage war, eine Information durch die Anwendung ihres Secret-Keys zu erzeugen und diese Person damit für den Inhalt der Nachricht auch verantwortlich ist. Die Urheberschaft einer Information kann auch nur dann gegenüber anderen nachgewiesen werden, und damit das geistige Eigentum einer Person geschützt werden, wenn es niemand anderem möglich ist, eine Information zu erzeugen, die zu dem Public-Key einer Person passt.

Die praktische Anwendung des RSA-Verfahrens basiert auf der Verwendung dreier sehr großer Zahlen (e,d,n), wenn auch bei der computertechnischen Implementierung des RSA-Verfahrens eine dieser Zahlen klein gewählt wird, ohne dass dadurch die Sicherheit des Verfahrens eingeschränkt wird. Zwei dieser Zahlen, der öffentliche Schlüssel e und die Modulzahl n werden verwendet, um eine Nachricht zu verschlüsseln. Dabei wird prinzipiell die zu verschlüsselnde Nachricht auch als große Zahl aufgefasst, mit e potenziert und von diesem Ergebnis wird so lange die Modulzahl n subtrahiert, bis es kleiner als n ist, d.h. es wird der Rest modulo n bestimmt. Das Ergebnis ist das Kryptogramm, die für den Empfänger verschlüsselte Nachricht. Beim Empfänger wird derselbe Vorgang als Entschlüsselung des Kryptogramms wiederholt, wobei das Kryptogramm als sehr lange Zahl mit dem geheimen Schlüssel d potenziert wird und durch die Restwertbildung mittels der Modulzahl wunderbarerweise wieder der ursprüngliche Klartext entsteht. Von den drei verwendeten Zahlen ist also nur die Zahl d, der geheime Schlüssel, wirklich geheimzuhalten, das Verfahren, die öffentlich bekannten Zahlen e und n, aber auch das Kryptogramm selbst, sind kein Geheimnis und dürfen gefahrlos von jedermann analysiert werden.

Das RSA-Verfahren funktioniert allerdings nur dann, wenn die drei Zahlen (e,d,n) in "geeigneter Weise" zusammenpassen. Dass dies gewährleistet ist, ergibt sich aus der Erzeugung des Schlüsselpaars, einem Verfahren, das auch ein Rezept für das Knacken des RSA-Verfahrens liefert (Faktorisierungsproblem).
Zur Erzeugung eines Schlüsselpaars ist es erforderlich, zwei sehr große Primzahlen p und q zu finden, die als Produkt die Modulzahl ergeben (n = p*q). Aus diesen Primzahlen, die zum Schluss weggeschmissen werden, können sehr schnell die zwei interessanten Zahlen e und d ermittelt werden, die das eigentliche Schlüsselpaar bilden.
Ein Angreifer kennt nun die Modulzahl n, also p*q, und braucht bloß ermitteln, aus welchen beiden Primzahlen n zusammengesetzt ist, d.h. er oder sie muss n faktorisieren, dann ist die Ermittlung des geheimen Schlüssels eine Sache von Sekunden. Erfreulicherweise ist aber das Faktorisierungsproblem bei sehr langen Zahlen mit mehreren hundert Dezimalstellen eine Aufgabe, die extrem viel Arbeit verursacht und damit zu den praktisch unlösbaren Problemen zählt.

Die Sicherheit des RSA-Verfahrens beruht also darauf, dass es praktisch unmöglich ist, die Modulzahl n zu faktorisieren, also aus der Kenntnis der öffentlichen Modulzahl auf die beiden Primzahlen p und q zu schließen, aus denen sich der geheime Schlüssel gewinnen lässt.

Die bisherige Geschichte der Faktorisierung

  • 70-stellige Zahlen werden heute (1998) in 10 Stunden auf einer Workstation faktorisiert.
  • 100-stellige Zahlen werden in 1 Jahr auf einer Workstation faktorisiert.
  • 129-stellige Zahlen :
    Im August 1977 stellte Martin Gardner den Lesern der Zeitschrift "Scientific American" die Aufgabe die Zahl
    114 381 625 757 888 867 669 235 779 967 146 612 010 218 296 721 242 362 562 561 842 935 706 935 245 733 897 830 597 123 563 958 705 058 989 075 147 599 290 026 879 543 541
    zu faktorisieren!
    16 Jahre später im April 1994 präsentierten Paul Leyland (Uni Oxford), Michael Graff (Uni Iowa) und Derek Atkins (MIT) die Faktoren. Dabei wurden etwa 600 freiwillige Internet-Benutzer mitbeschäftigt, die nachts auf Ihren Workstations ein Faktorisierungsprogramm laufen ließen, das von K. Lenstra (Bell Labs, Morristown, New Jersey) stammte.

  • 140-stellige Zahl: ist 1996 die kleinste noch nicht faktorisierte Zahl
  • 140-stellige Zahlen werden in einem großen Rechnernetz in 5 Jahren faktorisiert
  • 160-stellige Zahlen:
    Experten erwarten 1996 eine Faktorisierung in etwa fünf Jahren unter Verwendung der Methode der Zahlkörpersiebe.
  • 200-stellige Zahlen: Die Faktorisierungszeit wird 1998 auf 52 000 000 Jahre geschätzt.


Die minimale Schlüssellänge von 1024 Bit garantiert also, dass die RSA-Modulzahl mindestens 309 Dezimalstellen lang ist und damit für die nächste Zukunft als sicher angesehen werden kann, solange die Faktorisierung von Zahlen keine drastischen Fortschritte macht. Viele PGP-Schlüssel werden heute bereits mit einer Länge von 2048 Bit zertifiziert, was 617 Dezimalstellen entspricht.


Angriffe auf das RSA-Verfahren

Da die Faktorisierung der Modulzahl bei entsprechender Schlüssellänge aussichtslos ist, richten sich die bisher bekannten Angriffe auf das RSA-Verfahren gegen die Implementierung des Algorithmus (timing-attack) bzw. sie setzen voraus, dass der Angreifer in der Lage ist, dem potentiellen Opfer eine selbst gewählte Nachricht zur Signatur vorzulegen (chosen-ciphertext-attack). Diese beiden Formen des Angriffs werden z. B. von W. Unruh beschrieben, so dass ich darauf nicht weiter eingehen möchte.

Um sich vor solcherlei Angriffen zu schützen, sollte man möglichst vermeiden, ein Dokument zu signieren, das beliebige versteckte Daten enthalten kann, z. B. ein fremdes Textverarbeitungsdokument, das je nach Typ erheblich mehr Informationen (zur Formatierung) enthalten kann, als im Klartext zu sehen sind. Der chosen-ciphertext-Angriff basiert nämlich darauf, dass ein Angreifer in der Lage ist, eine Menge von ihm geschickt gewählter Zufallsdaten in die Nachricht einzuschmuggeln, deren Verschlüsselung zusammen mit dem Dokument durch den Secret-Key einer Entschlüsselung des Kryptogramms gleichkommt. Den Secret-Key erhält der Angreifer aber auch dann nicht, wenn sein Angriff auf eine verschlüsselte Nachricht Erfolg hat.

Zweifellos haben die Mathematiker in den vergangenen Jahren große Fortschritte bei der Faktorisierung großer Zahlen gemacht, die J. Buchmann ausführlich in seinem Artikel in Scientific American, Juni 1996 (bzw. Spektrum der Wissenschaft, September 1996) beschreibt. Durch die massive Nutzung neuerer Computertechnologie wurden gänzlich neue Verfahren zur Faktorisierung entwickelt, die sich wesentlich von den herkömmlichen Methoden unterscheiden.

So entwickelte bereits 1985 W. Lenstra das Verfahren der Elliptischen Kurven, mit dem auf der Basis heutiger Workstationtechnologie innerhalb von drei Wochen 30-stellige Faktoren gefunden werden können. Dieses Verfahren hat den Vorteil, dass es auch dann zum Ziel führt, wenn die zu faktorisierende Zahl mehrere tausend Dezimalstellen hat. Ist also die RSA-Zahl aus einem kleinen und einem großen Faktor zusammengesetzt, so kann der kleinere Faktor mit dieser Methode in akzeptabler Zeit gefunden werden. Es ist deshalb wesentlich, dass bei der Erzeugung von RSA-Schlüsseln zwei etwa gleich große Primzahlen geeigneter Länge verwendet werden, um eine schnelle Faktorisierung zu verhindern.

Ein anderes Verfahren, das quadratische Sieb, erfordert zur Faktorisierung einer großen Zahl die Lösung eines linearen Gleichungssystems mit einer riesigen Menge von linearen Gleichungen. Mit dieser Methode gelang es 1993 eine 120-stellige RSA-Zahl zu faktorisieren, wobei 252222 Gleichungen mit 245810 Unbekannten gelöst werden mussten. Diese Arbeit, die auf einem einzigen Rechner etwa 50 Jahre in Anspruch genommen hätte, konnte parallelisiert und so in wesentlich kürzerer Zeit erledigt werden. Mit der auf einem ähnlichen Prinzip aufbauenden Methode des Zahlkörpersiebs, die erheblich schneller arbeitet als das quadratische Sieb, konnte 1996 erfolgreich eine 130-stellige Zahl in ihre Faktoren zerlegt werden.

Betrachtet man den Fortschritt in der Faktorisierung innerhalb der letzten zehn Jahre, so ist damit zu rechnen, dass in naher Zukunft 150-stellige Zahlen faktorisierbar sind, auch wenn heute kein bekannter Algorithmus in der Lage wäre, diese Arbeit in vernünftiger Zeit zu leisten. Möglicherweise findet man aber auch einen gänzlich neuen Algorithmus, der heute sichere RSA-Schlüssel dann völlig wertlos macht. Es gilt also, die Entwicklungen auf dem Gebiet der Faktorisierung genau zu beobachten und bei der Bewertung von RSA-Schlüssellängen zu berücksichtigen.

Das Hash-Verfahren MD5

Die Integrität oder Echtheit einer Nachricht, also die Sicherheit. dass das erhaltene Dokument beim Transport über Datennetze nicht verändert worden ist, hängt vom Hash-Verfahren MD5 ab, mit dem ein Fingerprint des Dokumentes erzeugt wird.

Was ist ein Fingerprint ?

Ein Fingerprint ist eine große Zahl (bei MD5 eine 39-stellige Dezimalzahl), die eindeutig zu einer Nachricht passt. Der Fingerprint wird durch eine sog. Einwegfunktion (Hash-Verfahren) aus der Nachricht errechnet, so dass sichergestellt ist, dass die Veränderung eines einzigen Bits in der Nachricht zu einem gänzlich anderen Ergebnis führt. Auf diese Weise kann eine (auch minimale) Veränderung der Nachricht sicher erkannt werden. Gleichzeitig muss durch das Hash-Verfahren ausgeschlossen sein, dass man vom Fingerprint auf die Nachricht zurückschließen kann. Die Berechnung der Einwegfunktion ist nicht umkehrbar! Das bedeutet aber auch, dass es nicht möglich ist, eine andere Nachricht so zu konstruieren (als Fälschung), dass sie denselben Fingerprint wie das Original ergibt, weil es 1038 verschiedene Hashwerte gibt und die Anwendung des Hash-Verfahrens einen dieser Werte liefert, der nicht vorher bestimmbar ist. Es ist zwar möglich, dass ein anderer Text zufällig denselben Fingerprint (Hashwert) liefert, denn die Menge der Hashwerte ist zwar groß, aber begrenzt. Eine solche Kollision ist aber nicht absichtlich herzustellen, weil man dann 1038 Varianten testen müsste. Die Einwegfunktion liefert im Idealfall keinen Ansatzpunkt dafür, durch eine geeignete Wahl der Fälschung das erwünschte Ergebnis zu erreichen.
Und die Wahrscheinlichkeit, dass zwei beliebige Texte denselben Hashwert haben ist nur :
0,000 000 000 000 000 000 000 000 000 000 000 000 029 Prozent (1/2128).

Der Geburtstags-Angriff auf MD5

Wieviele Personen sind erforderlich, damit die Wahrscheinlichkeit, dass zwei von ihnen am gleichen Tag Geburtstag haben, 50 Prozent beträgt ?

Die falsche Antwort lautet: 365/2 = 182 Personen.

In Wirklichkeit sind es erheblich weniger, nämlich 23, so dass übertragen auf die Fälschung einer digitalen Unterschrift daraus ein Vorteil erwächst. Wenn der Angreifer nicht ein bestimmtes Dokument fälschen will, sondern sich darauf beschränkt, dem potentiellen Opfer ein Dokument zur Unterschrift vorzulegen, zu dem er, nein sie, eine entsprechende Fälschung gefunden hat, die den gleichen MD5-Fingerprint aufweist, so ist eine Fälschung der digitalen Signatur mit einem solchen "geeigneten Pärchen" (gutartiges und bösartiges Dokument) möglich.

Die Anzahl solcher Fälschungspärchen, die man durchprobieren muss, um ein funktionierendes zu finden, ist nun nicht mehr 2127 (170 141 183 460 469 231 731 687 303 715 884 105 728) sondern "bloß noch" 264 (18 446 744 073 709 551 616) also 1019 Dokumentenpaare. Ein geeignetes Dokumentenpärchen zu finden ist immer noch "verdammt viel Arbeit", kann aber nicht grundsätzlich (vgl. die Argumentation zum Erraten des IDEA-Schlüssels) ausgeschlossen werden.

Begründung

Bei N verschiedenen Dokumenten (gutartige und bösartige zusammen) gibt es N(N-1)/2 Paare, wobei die Wahrscheinlichkeit, dass eines dieser Dokumente mit einem anderen Dokument denselben MD5-Hashwert teilt 1/K beträgt, unter der Annahme, dass es insgesamt K = 2128 verschiedene Hashwerte gibt.
Nach oben abgeschätzt muss man die Hälfte von N2 Pärchen durchprobieren. Wenn die Wahrscheinlichkeit für eine Kollision 50 Prozent betragen soll, dann folgt:
(N2 * 1/K) / 2 = 0,5
also N = sqrt(K) = 264
Unter den 18 446 744 073 709 551 616 verschiedenen Pärchen sollte also mit grosser Wahrscheinlichkeit eines sein, das zur Fälschung der digitalen Signatur geeignet ist.
FAZIT Bei der Verwendung einer geeignet großen Schlüssellänge ist ein Angriff auf die kryptologischen Verfahren, die PGP verwendet, praktisch aussichtslos.
Diese "theoretische Sicherheit" muss ständig an den aktuellen Ergebnissen der kryptologischen Forschung gemessen werden.

Angriffe auf die praktische Anwendung von PGP

Mit der praktischen Unmöglichkeit von Angriffen auf die kryptologischen Verfahren, die PGP verwendet, richtet sich natürlicherweise das Interesse von potentiellen Angreifern auf die praktische Anwendung von PGP selbst.

Sicherheitskritische Aktionen

Bei der Anwendung von PGP in der Praxis wird ab und zu der geheime Schlüssel benötigt, etwa um eine digitale Signatur zu leisten oder um vertrauliche Daten zu entschlüsseln. Bei der Anwendung des Secret-Keys (Sicherheitskritische Aktion) lauern Gefahren, welche die praktisch sicheren kryptologischen Verfahren von PGP mit einem Schlag wertlos machen können, so dass hierbei besondere Vorsicht geboten ist. Besonders bedeutsam ist deshalb für den Benutzer ein Bewusstsein für die mögliche Verletzlichkeit der ansonsten extrem hohen Sicherheit von PGP.

Erfreulicherweise sind viele der alltäglichen Arbeiten völlig unproblematisch, weil bei ihnen nur öffentliche Schlüssel (Public-Keys) verwendet werden. Wenn Sie also die Signaturen anderer Personen prüfen wollen, die beispielsweise unter den emails stehen, die Sie bekommen haben, dann kommt nur der Public-Key des Absenders zur Anwendung. Auch wenn Sie vertrauliche Informationen zu anderen Personen senden, müssen Sie diese Informationen mit dem Public-Key des Empfängers verschlüsseln.

Die Aufnahme eines solchen Public-Keys einer fremden Person in den Keyring , d.h. in die Datei, in der Public-Keys gesammelt werden, ist aber eine sicherheitskritische Aktion, weil Sie mit der Aufnahme des neuen Public-Keys definitiv anerkennen, dass der ihnen vorliegende Public-Key, den Sie häufig aus nicht vertrauenswürdigen Quellen (etwa Key-Servern) erhalten haben, tatsächlich identisch ist mit dem Public-Key der fremden Person, so wie sie ihn selbst erzeugt hat. Das kann ein Problem sein, wenn Sie, was häufig vorkommt, die betreffende Person gar nicht kennen, bzw. wenn Sie nur über einen unsicheren Kanal wie das Internet mit ihr kommunizieren können.

Natürlich können Sie auch einen öffentlichen Schlüssel als "untrusted" in Ihren Keyring aufnehmen, ohne dass Ihr Secret-Key zur Anwendung kommt, aber sobald Sie die Vertrauenswürdigkeit eines Schlüssels selbst dokumentieren wollen, muss Ihr Secret-Key benutzt werden, um den neuen Schlüssel zu signieren.

Wie lässt sich nun die Vertrauenswürdigkeit eines fremden öffentlichen Schlüssels beurteilen? PGP sieht hier zwei mögliche Wege der Lösung dieses Problems vor. Entweder beschaffen Sie sich durch einen direkten, verlässlichen Kontakt mit der betreffenden Person den FINGERPRINT des neuen öffentlichen Schlüssels und vergleichen diese Information "aus erster Hand" mit dem Fingerprint des aus unsicherer Quelle geschöpften Public-Keys. Bestätigt das die Echtheit des Public-Keys, dann können Sie den neuen Public-Key selbst zertifizieren, d.h. Sie leisten mit Ihrem eigenen geheimen Schlüssel (Secret-Key) eine Signatur unter dem neuen Public-Key bei der Aufnahme in Ihren Keyring.

Ist der neue Public-Key aber bereits innerhalb einer Zertifizierungsstruktur von einer Zertifizierungsstelle, der Sie vertrauen, zertifizert, so wird auch bei der Aufnahme dieses neuen Schlüssels in Ihren Keyring keine neue Signatur von Ihnen erforderlich sein. Voraussetzug dafür ist es, dass Sie den Public-Key der Zertifizierungsstelle selbst signiert haben und eine Legitimierung neuer Schlüssel durch die Zertifizerungsstelle ermöglicht haben. Diese Entscheidungen treffen Sie bei der Aufnahme des Public-Keys der Zertifizierungsstelle in Ihren Keyring, was selbstverständlich auch eine sicherheitskritische Aktion darstellt.

Aber selbst wenn Sie einen nicht zertifizierten Schlüssel in Ihren Keyring aufnehmen, dann müssen Sie die Anerkennung der Echtheit des Schlüssels nur einmal mir Ihrer Signatur bestätigen. Bei der täglichen Anwendung der unterschiedlichen öffentlichen Schlüssel anderer Personen kommt der eigene Secret-Key niemals zum Einsatz. Die sicherheitskritischen Aktionen reduzieren sich also im Alltag auf das Signieren eigener Dokumente (als "krönender Abschluss" der schöpferischen Arbeit) und auf die Entschlüsselung von Nachrichten, die nur für Ihre Augen bestimmt sind.

Achten Sie darauf, dass Sie immer, wenn eine solche sicherheitskritische Aktion ausgeführt wird, Ihre Passphrase eingeben müssen!

Erfolgt nämlich die Aufforderung zur Eingabe der Passphrase nicht, dann ist die Passphrase irgendwo gespeichert oder gar nicht gesetzt, was ihre Kompromittierung drastisch erleichtert, oder mit Ihrer PGP-Arbeitsumgebung, eventuell sogar mit dem von Ihnen verwendeten PGP-Programm, ist etwas fundamental faul. Sobald Ihnen das auch nur ein einziges Mal passiert, sollten Sie sofort Ihre Passphrase ändern, wodurch Ihr Secret-Key neu verschlüsselt wird, und Sie sollten die Sicherheit Ihrer Arbeitsumgebung prüfen (lassen). Auf Mehrbenutzer-Anlagen besteht die Gefahr, dass jemand in den Besitz des Systemverwalter-Passwortes gelangt, oder durch einen Angriff auf bestimmte Sicherheitslücken in Systemprogrammen Systemverwalterrechte (root-Rechte) erlangt und so die Arbeitsumgebung verändern kann. Es ist daher immer ratsam, wenn Sie ein "seltsames Verhalten" ihrer Arbeitsumgebung bemerken, Ihren Systemverwalter darauf hinzuweisen.

Sobald jemand in den Besitz Ihrer Passphrase gekommen ist, braucht er oder sie nur noch Ihren Secret-Key(-Ring) und kann dann in Ihrem Namen signieren und Ihre vertraulichen Daten entschlüsseln. In der Praxis kann man versuchen durch Zugriffsrechte des Betriebssystems zu verhindern, dass andere Personen den Secret-Key-Ring kopieren. Obwohl man durch geeeignete Netzumgebungen den Zugriff auf sensible Daten einschränken kann, lässt es sich jedoch nicht garantieren, dass der verschlüsselte Secret-Key nicht in die Hände fremder Personen fällt, beispielsweise bei einem Einbruchdiebstahl. Im normalen Betrieb eines vernetzten Computersystems besteht trotzdem ein großer Unterschied zwischen einem verantwortungsvoll administrierten Mehrbenutzersystem mit Zugriffsschutz und einer völlig schutzlosen Arbeitsumgebung auf einem Arbeitsplatz-PC. Da im schlimmsten Fall aber von der Entwendung des verschlüsselten Secret-Keys ausgegangen werden muss, kommte es auf die Qualität der Passphrase an, mit der der Secret-Key geschützt ist.

Zum Umgang mit der Passphrase

Auch wenn Sie eine gut durchdachte Passphrase gefunden haben (besser zwei, damit Sie diese im Bedarfsfall sicher ändern können), sollten Sie folgende Fehler unbedingt vermeiden, damit Ihre Passphrase dauerhaft geheim bleibt.
  • Schreiben Sie die Passphrase niemals (im Klartext) auf!

  • Verwenden Sie die Passphrase niemals für etwas anderes (z.B. als login-Passwort). Selbst Ähnlichkeiten könnten Rückschlüsse erleichtern, wenn Sie mal nicht aufpassen.

  • Teilen Sie die Passphrase in keiner Situation einem anderen Menschen mit, Sie zerstören damit die Bindung Ihres Schlüsselpaares an eine Person, nämlich Sie. Kein Mensch hat das Recht, Ihren Secret-Key anzuwenden, also widerstehen Sie jedem Versuch anderer Personen, "aus Ihnen Ihre Passphrase rauszuquetschen" und betrachten Sie die Versuche von Personen, in den Besitz fremder Passworte zu gelangen, nicht als Kavaliersdelikt, sondern als einen perfiden Angriff auch auf Ihre Sicherheit in Computernetzen. Solche Versuche des "social engineering" zerstören das Vertrauen in die Zuverlässigkeit kryptologischer Verfahren und müssen deshalb als sozialschädigendes Verhalten betrachtet werden, insbesondere wenn das Recht des Individuums auf einen privaten Schlüssel durch die Ausnutzung von Abhängigkeitsverhältnissen (z.B. in einer Firma) bedroht wird. Privacy ist ein Recht und kein gütiges Zugeständnis.

  • Sorgen Sie dafür, dass Sie bei der Anwendung Ihrer Passphrase nicht beobachtet werden. Jeder, der den Sinn von Kryptologie verstanden hat, wird es vermeiden, "Ihnen auf die Finger zu schauen". Menschen ohne Problembewusstsein oder mit zweifelhaften Absichten erkennt man leicht an Ihrem Verhalten in solchen Situationen. Sie müssen nicht umständlich Ihr Recht verteidigen, "Ihre Passphrase ungesehen eintippen zu dürfen", fordern Sie es als eine Selbstverständlichkeit ein.

  • Vergessen Sie Ihre Passphrase niemals. Wenn Sie sich an Ihre Passphrase nicht mehr erinnern können, befinden Sie sich in derselben Situation wie jemand, der es auf Ihren Secret-Key abgesehen hat, mit dem Unterschied, dass Sie sich niemals bei der Eingabe Ihrer Passphrase mehr überraschen können. In dieser Situation gibt es keine Hilfe mehr. Es ist jedoch unwahrscheinlich, dass Ihnen das passiert, wenn Sie regelmäßig PGP benutzen.

  • Machen Sie ein sogenanntes "key-revocation-certificate", das ist ein von Ihnen selbst signiertes Dokument, in dem Ihr öffentlicher Schlüssel als ungültig erklärt wird. Dieses Dokument können Sie wie Ihren öffentlichen Schlüssel (über Key-Server) weiterverbreiten, wenn der schlimmste Fall eingetreten ist, dass Sie Ihren öffentlichen Schlüssel einmal zurückziehen müssen oder wenn Sie dies aus guten Gründen tun wollen. Sorgen Sie aber dafür, dass Ihr Revokation-Zertifikat sicher verwahrt wird.

  • Machen Sie außerdem ein Backup Ihres Secret-Key-Rings und verschließen Sie diese Kopie an einem sicheren Ort.

Angriffe auf die Passphrase

Schwachstellen des Betriebssystems

Wenn Sie eine vertrauliche Nachricht erhalten haben, wird diese nach der Entschlüsselung mit Ihrem Secret-Key in der Regel im Klartext auf der Festplatte gespeichert. Nach dem Löschen dieser Klartextdatei mit sensitiven Daten ist die Datei zwar aus dem Dateisystem verschwunden, aber es ist dennoch möglich, die physikalisch gespeicherten Daten wiederzugewinnen, weil nur die Verbindung zwischen dem inzwischen vernichteten Dateinamen und den ursprünglichen Datenblöcken auf dem Speichermedium durch das Löschen der Datei aufgelöst worden ist. Damit die vertraulichen Daten wirklich vernichtet werden, muss die Datei in ihrer gesamten Länge vor dem Löschen mit anderen Daten überschrieben werden und das möglichst mehrmals. PGP sieht für diesen Zweck eine Option -w (wipe) vor, die allerdings den Inhalt einer existierenden Klartextdatei nur einmal überschreibt. Sogenannte "file wiping utilities" erledigen diese Aufgabe zuverlässig durch mehrmaliges Überschreiben.

Manche Editoren legen eigenständig temporäre Dateien an, in denen für die Dauer der Erstellung eine Kopie des Textes gespeichert wird. Nach Abschluss der Arbeit werden diese "tempfiles" häufig nur gelöscht, nicht aber "gewiped", so dass auch auf diese Weise sensitive Daten unzerstört auf dem Datenträger zurückbleiben.

Auch die PASSPHRASE steht in Gefahr auf einem Speichermedium zu landen , wenn das Betriebssystem den verfügbaren Hauptspeicher durch "swappen" erweitert. Während UNIX diesen Swapbereich vom eigentlichen Dateisystem trennt und also Zugriffsrechte des Systemverwalters (root-Rechte) erforderlich sind, um diesen Teil der Festplatte analysieren zu können, speichert MS-WINDOWS Teile des Hauptspeichers direkt in das Dateisystem (Auslagerungsdatei), so dass jeder, der Zugang zu Ihrer Festplatte hat, mit ein wenig Glück Ihre Passphrase oder Teile vertraulicher Informationen im swapfile im Klartext finden kann. Besonders in einer LAN-Umgebung ist ein swapfile eine ernste Gefahr für die Sicherheit Ihrer Passphrase. Das Beste wäre sicherlich auf "swappen" unter WINDOWS ganz zu verzichten, bzw. das swapfile vor dem Ausschalten des Computers zu "wipen", denn Löschen vernichtet nicht den Inhalt des swapfiles.

Das Betriebssystem UNIX schränkt die Möglichkeit, beliebige Datenblöcke zu untersuchen, auf die Person des Systemverwalters ein. Dieser hat prinzipiell auch Zugriff auf den Hauptspeicher (/dev/kmem) des Computersystems und kann somit während der Ausführung eines PGP-Prozesses im Hauptspeicher nach der Passphrase fahnden. Scheuen Sie sich also nicht, Ihren Systemverwalter auf dieses Problem anzusprechen. Ein verantwortungsbewusster Systemverwalter wird sich die größte Mühe geben zu verhindern, dass andere Personen das root-Passwort anwenden können und er oder sie wird Ihnen sicherlich etwas sagen können, das Sie überzeugt, darauf zu vertrauen, dass die mögliche Gefährdung Ihrer Passphrase durch root-Zugriffe nicht stattfindet. An diesem Punkt basiert die Sicherheit ihres Secret-Keys auf dem Berufsethos und der Professionalität einer anderen Person, die für das UNIX-System verantwortlich ist.

Schnüffel-Angriffe

Mit hohem technischen Aufwand lassen sich verschiedene Möglichkeiten realisieren, die zur Preisgabe Ihrer Passphrase führen, die aber für die "normale" Anwendungssituation als sehr unwahrscheinlich bewertet werden können. Es ist möglich, mit versteckter Video-Überwachung oder einem präparierten Keyboard, das bei jedem Tastendruck eine andere Radiofrequenz abstrahlt, die Tastatureingabe abzufangen und damit das gesamte Kryptosystem zu kompromittieren. Auch sind inzwischen Möglichkeiten bekannt geworden, aus der elektromagnetischen Abstrahlung des Computersystems Informationen zu rekonstruieren (van Eck Radiation). Wie realistisch eine solche Bedrohung wirklich ist, lässt sich nur schwer beurteilen, der notwendige technische Aufwand ist jedoch nicht zu groß, um eine solche Gefahr grundsätzlich auszuschließen.

Ohne großen Aufwand lassen sich auf Betriebssystemen ohne Zugriffsschutz (DOS/WINDOWS) "key-logging utilities" bzw. "key-press snooping tools" installieren, die jeden Tastendruck registrieren und entweder abspeichern oder über ein Netzwerk senden. Die keylogger ersetzen die Bestandteile des Betriebssystems, die die Tastatureingabe kontrollieren durch veränderten Code und stellen damit eine Veränderung des Betriebssystems dar. Auf DOS/WINDOWS-Systemen sind keylogger ohne Probleme von jedermann zu installieren, der Zugriff auf die Festplatte hat. Eine derartige Veränderung lässt sich aber auch in Abwesenheit durch einen Boot-Virus erreichen.
Für einen wirksamen Schutz gegen eine solche Veränderung des Betriebssystems ist es erforderlich, die Unversehrtheit der entsprechenden Betriebssystemroutinen für die Eingabe regelmäßig zu prüfen, am besten vor jeder Anwendung von PGP. Dies lässt sich erreichen, indem man von wichtigen Bestandteilen des Betriebssystems MD5-Fingerprints anfertigt und diese mit den Fingerprints der aktuellen Betriebssystemroutinen (evtl. automatisch) vergleicht, so dass eine Veränderung des Betriebssystems nicht unentdeckt bleibt.

Für UNIX-Systeme setzt "key-logging" die Zugriffsrechte auf die entsprechenden Gerätedateien (Terminals) voraus und wird damit für andere Personen im Normalfall ausgeschlossen. Eine Veränderung der Eingaberoutinen des Betriebssystems ist auch hier ausschließlich mit root-Rechten möglich. Allerdings weist das X-Window-System (X11R6), die graphische Benutzeroberfläche unter UNIX, einen konzeptionellen Designfehler auf, der für "key-press snooping" ausgenutzt werden kann, ohne dass dafür root-Rechte erforderlich sind. Nähere Informationen dazu findet man im Crash Course in X Windows Security von Rune Braathen. Man sollte also vermeiden, die Passphrase während einer X-Window-Session einzugeben und sollte für diesen Zweck auf die zeilenorientierte Console zurückschalten. Ist Ihnen dies nicht möglich, dann können Sie den Zugriff auf Ihren X-Server auf den lokalen Rechner mit dem UNIX-Kommando "xhost -" einschränken, so dass Ihnen nur noch Gefahr von Benutzern droht, die sich im gleichen Moment auf Ihrem lokalen Rechner angemeldet haben.

Bequemlichkeit und "superneue features"

Die Arbeit in einer vernetzten Umgebung hat viele Vorteile, bringt aber für die sichere Anwendung von PGP auch eine Menge neuer Risiken ins Spiel. In TCP/IP-Netzen sind "packet sniffer" eine realistische Bedrohung. Die Möglichkeit, beliebige Datenpakete beim Transfer über Netze mitprotokollieren zu können lässt sich aber durch den Einsatz kryptologischer Verfahren wirkungslos machen. Durch den Einsatz der Secure Shell (SSH) als Ersatz für rlogin kann die Authentisierung eines Benutzers gegenüber einem entfernten Computersytem mittels RSA erfolgen, so dass anschließend die gesamte Sitzung konventionell verschlüsselt (z.B. Tripel-DES) über das Netz übertragen wird und so von packet sniffern nicht mehr ausgenutzt werden kann. Dieser verschlüsselte Kontakt zu einem entfernten Computersystem erfordert nur einen geringen zusätzlichen Aufwand; es muss für jedes beteiligte Computersystem selbst und für jeden Benutzer ein RSA-Schlüsselpaar erzeugt und zwischen den Systemen ausgetauscht werden. Ein beliebiger Kontakt zu jedem möglichen System (wie bei telnet oder rlogin) ist so nicht mehr möglich. Auch hier wird deutlich, dass ein Gewinn an Sicherheit nur auf Kosten einer universellen Bequemlichkeit zu haben ist. Die Verwendung der Secure Shell erlaubt dafür aber wirklich lange und entsprechend sichere Passworte zum Schutz des RSA-Secret-Keys.

Wie sicher ist Ihre Quelle für PGP ?

Da der Quelltext von PGP öffentlich bekannt ist, ist es möglich, dass eine veränderte Version von PGP, welche die Passphrase speichert und über das Netz per email versendet, ihren Weg als legitime Originalversion in den Software-Verteilungsprozess findet. Auch hier spricht die Bequemlichkeit zunächst für die Benutzung der Version, die bereits in Ihrer Software-Distribution "fix und fertig konfiguriert" vorhanden ist. Sie sollten sich aber die Mühe machen, sich eine Version von PGP zu verschaffen, die aus überprüften Quelltexten neu kompiliert wurde. Die legitimen Quelltexte von PGP-2.6.3i sind von Stale Schumacher signiert (Key-ID CCEF447D), so dass sich die Integrität der Software überprüfen lässt, wenn man den Public-Key von Stale Schumacher aus sicherer Quelle erhalten hat. Fragen Sie Ihren Systemverwalter bzw. Ihre Zertifizierungsstelle nach einer selbstgeprüften Version von PGP oder erzeugen Sie sich selbst eine solche. Auf jeden Fall sollten Sie, wenn Sie ein vertrauenswürdiges PGP-Programm haben, einen MD5-Fingerprint herstellen und sicher verwahren. In regelmäßigen Abständen können Sie dann die Integrität ihrer aktuellen PGP-Binärdatei mit diesem Fingerprint verifizieren.

Insbesondere für WINDOWS sind eine Reihe von PGP-Shells entwickelt worden, die dem Benutzer die Mühe abnehmen, selbst PGP auf der Kommandozeile anzuwenden. Statt dessen werden die Mechanismen der Entschlüsselung, der digitalen Signatur und der Schlüsselverwaltung hinter einer Reihe " komfortabler Buttons und Checkboxen" versteckt. Auch hierbei besteht die Gefahr, dass die Eingabe der Passphrase innerhalb solcher Shells unerwünschte Nebeneffekte haben kann, besonders, wenn die PGP-Shell als reine Binärdatei ohne die Veröffentlichung der Quelltexte vertrieben wird.

Mit der Unterstützung von JAVA, JAVA-Script und ACTIVE-X durch die neueste Generation von Web-Browsern sind ernste Sicherheitslücken bekannt geworden, die unautorisierte Zugriffe über das Netz auf die lokalen Daten des Benutzers möglich machen. Die Tendenz der Software-Industrie "superneue features" möglichst frühzeitig, d.h. in einem unausgetesteten Stadium bereitzustellen, wird die zukünftige Entwicklung der Web-Browser - zumal in der absehbaren Konkurrenzsituation zwischen Netscape und Microsoft - zu Lasten der Sicherheit negativ beeinflussen.
Der von der Benutzergemeinde unisono vertretene Bedarf an Komfort und Benutzerfreundlichkeit lässt für die Zukunft befürchten, dass sicherheitsrelevante Angriffe über Applets und "unfreundliche" Web-Seiten zunehmen werden. Schon heute sind im WWW Websites aktiv, die auf der Basis von JAVA-Applets v. a. zerstörerische Wirkungen beabsichtigen. In Zukunft könnten entsprechende Webseiten auch dem Ziel der unentdeckten Informationsbeschaffung dienen. Dieser Gefahr lässt sich am besten dadurch begegnen, dass für die sicherheitsrelevanten Arbeiten mit PGP ein System benutzt wird, das nicht auch noch als Experimentierplattform für Web-Browser eingesetzt wird.

Was ist eine gute Passphrase ?

Im folgenden werde ich Kriterien diskutieren, die Sie bei der Wahl ihrer Passphrase berückschtigen sollten, wenn Sie nicht die Sicherheit ihres Secret-Keys aufs Spiel setzen wollen.

Wie lang sollte eine Passphrase sein?

Mit der Passphrase schützen Sie Ihren Secret-Key vor der Anwendung durch andere Personen. Wenn Sie die gleiche Sicherheit für Ihre Passphrase haben wollen, die Ihnen das IDEA-Verschlüsselungsverfahren bietet, dann wäre eine 128-Bit-Zeichenkette aus 0 und 1 wie oben beschrieben eine gleichwertige Lösung.
Schreibt man für je 4 Bit eine Hexadezimalzahl, so läuft diese Lösung darauf hinaus, dass Sie sich z.B. die Passphrase "A9 52 4A AF 55 B3 D4 2E 86 B1 2F 73 7B 5F D6 C4" merken müssen, eine Aufgabe, die den digitalen Normalverbraucher wahrscheinlich überfordert.

Da die Passphrase etwas ist, das man nie vergessen darf, denn sonst ist der Secret-Key unbrauchbar, müssen Lösungen gefunden werden, die zuverlässig funktionieren. Hier bieten sich zwei Strategien an, die beide mit einer Einbuße an Sicherheit verbunden sind, um die Merkbarkeit der Passphrase zu ermöglichen:

  • Die Anzahl der Ziffern wird solange reduziert, bis man sie sich merken kann
  • oder statt einer zufälligen Reihenfolge von Ziffern wird "Sinn" in die Passphrase gebracht.
In beiden Fällen stellt sich die Frage, bis zu welcher Länge eine Passphrase noch als sicher gelten kann. Mit den Argumenten zur Leistungsfähigkeit eines Computersystems habe ich gezeigt, dass es für die absehbare Zukunft sicherlich ausreicht, dafür zu sorgen, dass sich die Arbeit zum "systematischen Erraten" der Passphrase im Bereich um 1022 Operationen bewegt. Wählt man die Passphrase so, dass es prinzipiell 1022 mögliche Passphrasen gibt, dann wird man sich im sicheren Bereich bewegen. Für diesen Aufwand reichen aber 72 Bits, also 9 Bytes, da 272 etwa 4,7 * 1021 beträgt.

Strategie 1 : Zufalls-Zeichenketten

Eine verkürzte, aber dennoch sichere Passphrase wäre also etwa "4C 72 1A FD 94 5B BA 39 E6". Wenn Sie meinen, sich so etwas sicher merken zu können, spricht viel für diese Lösung.

Die Anzahl der Zeichen kann dadurch weiter verringert werden, dass mehr als 16 Zeichen (0-9A-F) verwendet werden. Nimmt man zu den 26 Kleinbuchstaben alle Großbuchstaben, Ziffern und die üblichen über die Tastatur eingebbaren Sonderzeichen, so ergeben sich etwa 70 verschiedene Symbole und damit reichen 12 solcher zufällig gewählter Zeichen aus, um die erforderliche Arbeit (7012 = 1,4 * 1022) zu verursachen.
Ihre Passphrase wäre dann etwa: e8ZWr!ySFt?m.

Nun kann man die Anzahl der verfügbaren Zeichen leicht durch die Verwendung der <SHIFT>, <CTRL> und <ALT>-Tasten , sowie der Kombination <CTRL><ALT> mit den 46 Tasten eines normalen Keyboards auf 160 Zeichen steigern, so dass man dann mit immerhin 10 Zeichen auskommt :
G<ALT>)a<CTRL>#Hs<CTRL><ALT>e.3<ALT>wY .

Der Gewinn, den man durch die Benutzung der Metatasten erreicht ist also bescheiden und mit weniger als 10 Zufallzeichen ist auch so eine sichere Passphrase nicht zu erzeugen!

Strategie 2 : "sinnvolle" Zeichenketten

Versucht man nun, die Passphrase mit Sinn zu füllen, so scheiden eine ganze Menge "sinnloser" Kombinationen aus der Menge der zu testenden Passphrasen aus und entweder verlängert sich dadurch die Passphrase erheblich oder man nimmt eine drastische Verschlechterung der Qualität der Passphrase in Kauf.

Ein deutschsprachiges Lexikon enthält vielleicht 60000 verschiedene Eintragungen, so dass man durch eine willkürliche Auswahl von 5 verschiedenen Worten wiederum genügend (nämlich 600005 = 7,7 * 1023) Kombinationen erzeugt.
Ihr sicheres Passwort Konnex_Proprätor_Einzelmitgliedschaft_Klassenlotterie_Subkultur hat nun aber eine Länge von 59 Zeichen. Das ist der Preis dafür, dass nun jedes der 5 Elemente sinnvoll ist und Sie sich nur noch die Reihenfolge merken müssen.

Ein einziges Wort aus einem Wörterbuch reicht sicher als Passphrase nicht aus. R. T. Williams beschreibt den Versuch mit der heutigen Computertechnologie (PC-486 und PGP-2.6.2) PGP-Passphrasen zu testen und kommt bei zwei Tests pro Sekunde in einem Tag leicht auf 172800 Worte, so dass jedes Wörterbuch damit erschöpfend durchforstet werden kann.

Will man nun ein einziges Wort als Passphrase verwenden, so ist es ratsam ein möglichst zufälliges Wort auszuwählen, das für niemanden außer Ihnen einen Sinn hat. GoIsl,AoBsb. wäre gar kein schlechter Kandidat für meine Passphrase, wenn niemand auf den Gedanken kommen könnte, dass sich dahinter das Kant-Zitat "Gedanken ohne Inhalt sind leer, Anschauungen ohne Begriffe sind blind." verbirgt, ein Gedanke, auf den die Menschen, die wissen, dass ich mich berufsmäßig mit Philosophie beschäftige, sicher verfallen werden, so dass diese Passphrase für mich wertlos ist. Gelingt es Ihnen aber eine solche "Abkürzung" zu erfinden, die niemand, der Sie kennt, vermuten würde, dann wäre das bei entsprechender Länge (und unter reichlicher Verwendung von <CTRL> <ALT>) eine gute Passphrase.

Unbrauchbare Passphrasen

Unbrauchbare Passphrasen sind sicherlich diejenigen, deren systematisches Ausprobieren erheblich weniger Arbeit erfordert als 1022 Operationen. So ist bekannt, dass die NSA (National Security Agency) ohne Probleme 40-Bit-Schlüssel (5 Byte) ermittelt, was einer Zufalls-Zeichenkette mit 7 Zeichen (von 70) entspricht, denn daraus ergeben sich "nur" 1012 verschiedene Möglichkeiten.

FAZIT Der Schutz ihrer PASS-PHRASE ist der entscheidende Faktor, der die Sicherheit von PGP bestimmt.

Die Mühe, die Sie investieren, um eine gute Passphrase auszuwählen und um Ihre Arbeitsumgebung optimal zu schützen, aber auch das Bewußtsein für die Möglichkeiten praktischer Angriffe auf PGP, ist die Basis ihrer Sicherheit und die Basis für das Vertrauen anderer Menschen in den Wert kryptographischer Anwendungen wie PGP.

Neuer ist besser ? - Die Versionen von PGP

Als PGP-5.0 1997 vorgestellt wurde, versprach diese neue Version alle bisherigen Schwächen von PGP-2.6.x zu beseitigen und den Weg für eine breite Nutzung starker Kryptographie insbesondere auf modernen, graphischen Standard-Arbeitsplatzrechnern freizumachen. Obwohl ich glaube, dass die Anwendung von PGP-2.6.x mit seinen Kommandozeilenoptionen keine Überforderung des verantwortungsbewussten, normalen Computeranwenders darstellt, sind Verbesserungen der alltäglichen Handhabung des Programms und insbesondere die Integration in verfügbare Standardanwendungen sicherlich zu begrüßen, wenn für den Anwender jederzeit deutlich wird, was er gerade tut und welche Konsequenzen dies hat. So wichtig diese Fragen der Benutzerfreundlichkeit für die weitere Verbreitung von PGP auch sein mögen, so möchte ich mich hier auf die Beurteilung der Sicherheit der neuen Möglichkeiten von PGP-5.x konzentrieren, denn einige dieser "Verbesserungen", die mit Blick auf die Anpassung von PGP an die Erfordernisse einer modernen Informationstechnologie vorgenommen worden sind, erweisen sich meines Erachtens als höchst zweifelhaft, wenn nicht sogar als unvereinbar mit dem Ziel des Schutzes der Privatsphäre in Computernetzen.

Erfreulicherweise ist PGP-5.x abwärtskompatibel, so dass alle RSA-Schlüssel, die mit PGP-2.6.x erzeugt wurden, weiterhin gültig sind und so alle signierten Dokumente überprüft bzw. alle verschlüsselten Nachrichten entschlüsselt werden können. Die drei Verfahren RSA, IDEA und MD5 können in PGP-5.x weiterhin angewendet werden. Darüberhinaus stellt PGP-5.x allerdings einen neuen Schlüsseltyp zur Verfügung (d.h. genauer gesagt zwei Schlüssel, einen für die Signatur (DSS) und einen für die Verschlüsselung (DH/ElGamal)), der als Ersatz für die alten RSA-Schlüssel vorgesehen ist und angeblich die neuesten Entwicklungen im Bereich der Kryptographie nutzbar macht. In der neuen Version PGP-5.x ersetzt der Secure Hash Algorithmus (SHA-1) mit 160-Bit Hashwerten die alte 128-Bit Hashfunktion MD5. Zur Erzeugung digitaler Signaturen ersetzt der Digital Signature Algorithmus (DSA) mit maximal 1024 Bit das RSA-Verfahren. Für die asymmetrische Verschlüsselung der Session-Keys, für die bisher das RSA-Verfahren eingesetzt wurde, wird nun eine Variante des ElGamal-Algorithmus (Diffie/Hellman-Variante) mit maximal 4096-Bit Schlüsseln verwendet und für die symmetrische Verschlüsselung stellt PGP-5.x neben IDEA auch noch die Algorithmen CAST (128-Bit) und Triple-DES (168 Bit) zur Verfügung.

Damit stellt sich nun die Frage, wie die Sicherheit der neuen Verfahren insbesondere DSA und ElGamal/Diffie-Hellman im Vergleich zu den bisherigen Verfahren MD5 und RSA zu bewerten ist. Welche Aufgabe - analog zum Faktorisierungsproblem bei RSA - ist von einem potentiellen Datenstrolch zu leisten, um den Secret-Key zu erlangen?

Sowohl beim Digital Signature Algorithmus als auch beim ElGamal-Verfahren gibt es eine Beziehung zwischen dem geheimen Schlüssel X und dem öffentlichen Schlüssel Y :

Y = GX mod P

Die Basis G (Generator) und die Restwertbildung mit Hilfe der großen Primzahl P sorgen dafür, dass aus der Kenntnis von Y praktisch kein Rückschluss auf den geheimen Schlüssel X möglich ist. Ein potentieller Datenstrolch müsste nämlich eine (Logarithmen-) Tabelle berechnen, in der für eine große Anzahl von geheimen Schlüsseln X der jeweilige öffentliche Schlüssel Y (mod P) berechnet wird, so dass umgekehrt zu einem gegebenen Public-Key der zugehörige Secret-Key nachgeschlagen werden könnte.

Beim DSS (Digital Signature Standard) wird nun die Größe der verwendeten Primzahl P auf 1024 Bit beschränkt, was im Vergleich zum RSA-Verfahren, bei dem üblicherweise 1024-2048 Bit Modulzahlen verwendet werden, als unbedeutende Einschränkung erscheint. Viel wichtiger aber ist für den Datenstrolch, dass dieser Standard auch den Zahlenbereich für den Secret-Key auf maximal 160-Bit einschränkt, denn so reicht es aus, einen relevanten Teil dieses Zahlenbereichs von 0 bis 2160 zu untersuchen, wobei die Größe der Primzahl P nur den Rechenaufwand pro Test steigert, aber nicht die Menge der geheimen Schlüssel beeinflusst.

Der fragliche Zahlenbereich, aus dem der Secret-Key ausgewählt wird, ist zwar immer noch sehr groß, aber es wäre ein Missverständnis, die Länge des Secret-Keys mit der Länge des DSS-Schlüssels (der Länge der Primzahl) zu verwechseln. Außerdem könnte eine Analyse des Zufallszahlengenerators, mit dessen Hilfe die Secret-Keys erzeugt werden, Hinweise darauf geben, wie der Bereich möglicher Secret-Keys weiter einzuschränken wäre. Ob bei der Verschlüsselung mit Hilfe des ElGamal-Verfahrens auch eine Beschränkung der Anzahl der Secret-Keys stattfindet, wäre eine lohnenswerte Untersuchung, die für die Beurteilung der Sicherheit dieses Verfahrens relevant wäre.

Das neue Schlüssel-Format

Mit der Einführung der neuen DSS/DH-Schlüssel wurde auch das Format geändert, in dem diese Schlüssel gespeichert werden. Dies wird auch sichtbar in der Änderung des Dateinamens für die Schlüsselringe, die nun nicht mehr pubring.pgp und secring.pgp sondern neuerdings pubring.pkr und secring.skr heißen. In dieses neue Schlüsselformat ist in der kommerziellen Version PGP-5.5 ein Datenbereich hinzugefügt worden, das CAF (Corporate Access Field), das drastische Veränderungen mit sich bringt. Das CAF ist nämlich dafür vorgesehen, einen zweiten Schlüssel, den Message-Recovery-Key der Firma im Schlüsselzertifikat des Benutzers zu speichern, so dass bei der Benutzung seines öffentlichen Schlüssels die vertrauliche Nachricht automatisch ein zweites Mal mit dem Message-Recovery-Key verschlüsselt wird, so dass damit der Zugriff der Firma auf den Inhalt der Nachricht gewährleistet ist. Der Firmenschlüssel wird bei der Erzeugung des Schlüsselpaars für den Benutzer durch einen Signaturprozess fest mit dem öffentlichen Schlüssel des Benutzers verbunden, so dass immer gleichzeitig beide Schlüssel, der öffentliche Schlüssel des Benutzers und der Message-Recovery-Key der Firma verwendet wird, wenn jemand eine vertrauliche Nachricht sendet. Aus diesem Grund wird auch dann, wenn ein Schlüssel über einen Keyserver abgefragt wird, zusätzlich zum Schlüssel des Adressaten der entsprechende Message-Recovery-Key mitübertragen. Mir ist nicht bekannt, durch welchen Mechanismus hierbei verhindert werden kann, dass im Nachhinein und ohne Zustimmung des Betroffenen ein anderer bzw. manipulierter Message-Recovery-Key mit dem angeforderten öffentlichen Schlüssel verbunden werden kann.

Es wäre falsch, diesen Mechanismus lediglich als einen "komfortablen Ersatz" für die bereits existierende Möglichkeit der Verschlüsselung für Benutzergruppen misszuverstehen. Denn während die Nutzung dieser Möglichkeit "in einem Rutsch" eine vertrauliche Nachricht an verschiedene Personen zu senden auf einer freiwilligen Entscheidung des Absenders beruht, ist die Eintragung eines zweiten Schlüssels im Schlüsselzertifikat des Benutzers mit der Abschaffung seiner Privatsphäre im Netz gleichzusetzen. So sehr auch dieser Mechanismus den organisatorischen Bedürfnissen der Wirtschaft entsprechen mag, so fundamental widerspricht diese zwangsweise Hinterlegung einer für eine zentrale Aufsichtsbehörde lesbaren Kopie jeder vertraulichen Nachricht den legitimen Interessen der Benutzer nach einem wirksamen Schutz ihrer Privatsphäre und ihrer Persönlichkeit - und, wie ich meine, auch den ursprünglichen Absichten des Projekts Pretty Good Privacy.

Die offensichtlichen Gefahren, die sich aus der Abschaffung der Eigenverantwortlichkeit der Benutzer durch die Einführung dieses zwangsweisen Überwachungsmechanismus ergeben, werden v.a. dann wirksam, wenn unter dem Deckmantel der kryptographischen "Innovation" ein neues Schlüsselformat mit CAF schleichend eingeführt und anschließend im Rahmen gesetzlicher Regulierungsbemühungen als legales Schlüsselformat sanktioniert wird. Das legitime Interesse an Message-Recovery lässt sich nämlich auch auf der Basis von Eigenverantwortlichkeit des Adressaten durch "encryption to groups" lösen, ohne dass alle Absender von vertraulichen Nachrichten durch den Entmündigungsschlüssel gezwungen werden, eine lesbare Kopie bei einer zentralen Stelle zu hinterlegen. Wenn die Verantwortung für den sinnvollen Einsatz kryptographischer Verfahren weiterhin von eigenverantwortlichen Menschen wahrgenommen werden soll, ist es m. E. wesentlich, das alte Schlüsselformat ohne CAF (PGP-2.6.x) nicht nur weiterhin zu verwenden, sondern auch offensiv vor den drohenden Gefahren der neuen Möglichkeiten zu warnen, um ihre unreflektierte, schleichende Einführung ohne eine öffentliche Diskussion zu verhindern. Es ist zu hoffen, dass die Bemühungen um die Entwicklung eines offenen Standards für PGP (OpenPGP) dazu führen werden, dass eine Kopplung des öffentlichen Schlüssels eines Benutzers mit weiteren Schlüsseln definitiv ausgeschlossen werden kann.

Verweise auf andere Informationsquellen

Eine abschließende BITTE

Ich habe versucht, die Informationen, die mir zur Verfügung stehen, zu einer begründeten Bewertung der Sicherheit von PGP zu verarbeiten. Möglicherweise sind mir dabei Fehler unterlaufen oder ich habe falsche Konsequenzen gezogen. Bitte zögern Sie nicht, mir Ihre Kritik mitzuteilen, ich freue mich auf Ihre Bemerkungen.

Danke !

Ganz herzlich danken möchte ich Stefan Kelm für die hilfreiche Unterstützung beim Entwurf dieses Dokuments und meinem Freund Thomas Schoch für die moralische Unterstützung bei der Realisierung des gesamten Projektes.