PGP - Pretty Good Privacy

Version 2.6.x


Index


Beschreibung

PGP 2.6.x ist ein ursprünglich von Philip Zimmermann entwickeltes, weit verbreitetes und kostenfrei erhältliches kryptographisches Werkzeug, das im zusammen mit der Software verteilten Manual wie folgt charakterisiert wird:
PGP combines the convenience of the Rivest-Shamir-Adleman (RSA) public key cryptosystem with the speed of conventional cryptography, message digests for digital signatures, data compression before encryption, good ergonomic design, and sophisticated key management. And PGP performs the public-key functions faster than most other software implementations. PGP is public key cryptography for the masses.
Zum Funktionsumfang gehören u.a. folgende Dienste:

Unterstützte kryptographische Verfahren

Die im zentralen Filesystem der TU Chemnitz unter /uni/global installierte internationale Version PGP 2.6.3ia basiert auf den folgenden drei kryptographischen Algorithmen:

RSA und IDEA gelten gegenwärtig als sehr sicher, da es trotz intensiver Kryptoanalyse durch viele anerkannte Kryptologen aus dem akademischen und kommerziellen Umfeld nicht gelungen ist, diese Verfahren zu brechen. Zumindest liegen darüber keine Veröffentlichungen vor. Man muß dabei aber immer damit rechnen, daß es durchaus (z.B. bei den technisch und personell sehr gut ausgestatteten Geheimdiensten) der Fall sein kann, daß Verfahren existieren, die ein teilweises oder vollständiges Brechen dieser Kryptosysteme gestatten.

Davon wird die Öffentlichkeit nur in Ausnahmefällen erfahren, da sich das Mitteilungsbedürfnis der Geheimdienste und bestimmter staatlicher Behörden sehr stark in Grenzen hält. Ein Beispiel hierfür ist die Geschichte der Public-Key-Kryptographie. Als deren Erfinder werden Whitfield Diffie und Martin Hellman sowie unabhängig von beiden auch Ralph Merkle angesehen. Es gilt allerdings mittlerweile als ziemlich sicher, daß der NSA (National Security Agency der USA) und ähnlichen Organisationen die der Public-Key-Kryptographie zugrunde liegende Idee schon eher als den drei genannten Wissenschaftlern bekannt war. Einige Informationen dazu wurden von Steve Bellovin auf der Seite The Prehistory of Public Key Cryptography [http://www.research.att.com/~smb/nsam-160/] zusammengetragen.

In den dort erwähnten, im Dezember 1997 veröffentlichten Papieren der CESG (Communications-Electronics Security Group, eine britische Regierungsbehörde [http://www.cesg.gov.uk/]) schreibt der mittlerweile verstorbene CESG-Mitarbeiter James H. Ellis, daß er bereits in den 60er Jahren die Idee der Public Key Cryptography (PKC) entwickelt hatte, damals unter der Bezeichnung Non-Secret Encryption (NSE). Im Januar 1970 publizierte er im (geheimen) CESG-Report The Possibility of Secure Non-Secret Digital Encryption sein Existence Theorem, also den Nachweis, daß es NSE bzw. PKC überhaupt geben kann. Aus anderen CESG-Reports geht hervor, daß die CESG das Prinzip der bis heute breit genutzten asymmetrischen Verfahren Diffie-Hellman (1976) und RSA (1978) bereits einige Jahre vor deren Veröffentlichung in der akademischen Gemeinde kannte.

Diese Papiere der CESG stehen unter dem URL http://www.cesg.gov.uk/about/nsecret.htm öffentlich zur Verfügung.

Der Algorithmus MD5 wurde ursprünglich als ein sehr starkes Verfahren betrachtet. Neuere Untersuchungen durch den deutschen Kryptologen Prof. Hans Dobbertin haben aber gezeigt, daß Teile des Verfahrens erfolgreich attackiert werden können, so daß das Vertrauen in die Kollisionsresistenz des MD5 relativ stark gesunken ist. Zwar ist es bisher nicht gelungen, das gesamte Verfahren zu brechen, allerdings wird bei der Entwicklung neuer Protokolle, Verfahren und Werkzeuge der MD5 meist nicht mehr favorisiert, so wie das noch bis etwa 1995/96 der Fall war.

Für weitere Details sei auf die folgenden beiden Dokumente verwiesen:

IDEA, der International Data Encryption Algorithm, ist ein 1991 von Xuejia Lai und James L. Massey entwickeltes symmetrisches Verfahren mit einer festen Schlüssellänge von 128 Bit. Zur Ver- und Entschlüsselung einer Nachricht wird derselbe Schlüssel verwendet. Es sei darauf hingewiesen, daß IDEA patentiert ist und daß man für kommerzielle Anwendungen eine Lizenz benötigt.

PGP 2.6.x chiffriert generell alle Nutzerdaten mit IDEA, wobei der Schlüssel je nach Anwendungsmodus aus einer vom Anwender frei wählbaren Passphrase abgeleitet oder zufällig erzeugt wird. Vor der Verschlüsselung werden die Daten komprimiert. Dazu verwendet PGP Routinen von Mark Adler, Richard B. Wales und Jean-loup Gailly, die aus dem relativ bekannten Paket Info-ZIP stammen.

Das 1978 der Öffentlichkeit vorgestellte RSA-Verfahren gehört zur Klasse der asymmetrischen bzw. Public-Key-Verfahren. Die drei Buchstaben im Namen stehen für die drei Entwickler: Ronald L. Rivest, Adi Shamir und Leonard M. Adleman. Dabei spielt jeweils ein aus einem privaten und einem öffentlichen Schlüssel (Private Key und Public Key) bestehendes Schlüsselpaar eine Rolle. Lediglich der zur Entschlüsselung genutzte Private Key ist geheimzuhalten. Dagegen kann der zur Verschlüsselung verwendete Public Key bedenkenlos öffentlich bekanntgegeben werden.

Möchte man verschlüsselte Nachrichten austauschen, dann genügt es, die öffentlichen Schlüssel der jeweiligen Partner zu beschaffen. Die Gefahr des Abhörens besteht dabei nicht, da die Schlüssel ohnehin öffentlich sind. Lediglich ihre Manipulation muß zuverlässig verhindert werden. Dazu verwendet PGP sog. Zertifikate, die durch eine digitale Signatur die Echtheit eines öffentlichen Schlüssels, d.h. dessen tatsächliche Zugehörigkeit zu seinem vermeintlichen Eigentümer beurkunden.

PGP nutzt den relativ aufwendigen und daher zeitintensiven RSA-Algorithmus nicht zur Verschlüsselung der möglicherweise sehr umfangreichen Daten der Anwender, sondern nur zur Erstellung digitaler Signaturen sowie zur kryptographisch gesicherten Verteilung der zufällig generierten IDEA-Schlüssel, mit denen die Nutzerdaten chiffriert wurden.

Die digitalen Unterschriften werden nicht aus der Nachricht selbst, sondern aus dem mittels der Einweg-Hashfunktion MD5 (MD steht für Message Digest) gebildeten "Fingerabdruck" der Länge 128 Bit erzeugt. Das Verfahren MD5 stammt wiederum von Ronald Rivest und wurde 1992 im RFC 1321: The MD5 Message-Digest Algorithm beschrieben.

Unter einer Hashfunktion versteht man eine Funktion, die mindestens die folgenden zwei Eigenschaften besitzt:

  1. Sie bildet Daten beliebiger Länge auf Werte fester Länge ab.
  2. Der Funktionswert läßt sich aus dem Argument leicht (d.h. mit wenig Aufwand) berechnen.
Für die Kryptographie sind in der Regel Einweg-Hashfunktionen von Interesse, also Hashfunktionen, die sich nur äußerst schwer, d.h. mit extremem Aufwand (der möglichst die gesamte verfügbare Rechen- und Speicherkapazität bei weitem übersteigt) invertieren lassen. Einweg-Hashfunktionen zeichnen sich also durch die beiden folgenden zusätzlichen Eigenschaften aus:
  1. Es ist rechnerisch nicht möglich, eine Nachricht zu ermitteln, die einen vorgegebenen Hashwert besitzt.
  2. Es ist rechnerisch ebenfalls nicht möglich, zu einer gegebenen Nachricht eine zweite, davon verschiedene Nachricht zu konstruieren, die denselben Hashwert wie die erste hat.
Für verschiedene Anwendungsfälle werden kollisionsresistente Einweg-Hashfunktionen gefordert. Darunter versteht man jene Einweg-Hashfunktionen, die als zusätzliche Eigenschaft die Kollisionsresistenz aufweisen. Sie besagt, daß es rechnerisch unmöglich ist, eine Kollision, d.h. zwei unterschiedliche, frei wählbare Nachrichten zu erzeugen, die denselben Hashwert haben, auch wenn es in der Praxis meist unendlich viele derartige Nachrichten gibt.

In seinem Artikel The Status of MD5 After a Recent Attack sagt Dobbertin, daß die von ihm präsentierten Attacken für praktische Anwendungen des MD5 zwar noch keine Gefährdung darstellen, einer solchen aber schon recht nahekommen. Deshalb empfiehlt er, den MD5 künftig nicht mehr in Applikationen einzusetzen, die kollisionsresistente Einweg-Hashfunktionen benötigen, wozu typischerweise Verfahren zur Erstellung digitaler Signaturen zählen. Als Alternativen nennt er SHA-1 und RIPEMD-160. Diese beiden Verfahren werden allerdings von 2.6.x nicht unterstützt. Bei PGP 5.x/6.x kommt dagegen vorzugsweise SHA-1 zur Anwendung.

Wie das folgende Zitat aus einem News-Artikel zeigt, vertritt Markus G. Kuhn die Ansicht, daß die Kollisionsresistenz von Hashfunktionen bei digitalen Signaturen entbehrlich ist:

Dass man fuer digitale Unterschriften Kollisionsresistenz einer Hashfunktion braucht halte ich fuer ein weit verbreitetes Missverstaendnis. Die Einwegeigenschaft sollte ausreichen wenn man gesetzlich alle Hash preimages als unterschrieben ansieht. Nur der Unterschreiber kann Kollisionen ausnutzen, also muss das nur zu seinem Nachteil ausgelegt werden und schon braucht man keine Kollisionsresistenz mehr. Man muss dann nur sicherstellen, dass man keinen Text unterschreibt den man nicht selbst erstellt hat, aber das laesst sich ja durch Hinzufuegen von ein paar Zufallsbits an den Anfang eines Textes bevor man unterschreibt vermeiden.

Aus dem gleichen Grund reicht es voellig, bei PGP nur die ersten 10 Bytes des Fingerprints zu vergleichen. Man kann so Platz auf Visitenkarten sparen ohne Sicherheit einzubuessen.

Es empfiehlt sich natürlich generell, regelmäßig und aufmerksam die neusten kryptographischen Erkenntnisse zu verfolgen, um so früh wie möglich auf erfolgreiche Attacken gegen die eingesetzten kryptographischen Verfahren reagieren zu können.


Aufruf des Programms

Sämtliche PGP-Dienste werden in der Version 2.6.x durch ein einziges Programm erbracht. Die Auswahl der unterschiedlichen Funktionen erfolgt durch entsprechende Kommandozeilenargumente. Der prinzipielle Aufruf sieht so aus:
  pgp [Optionen] [Argumente] 

Anmerkung: Die in eckigen Klammern eingeschlossenen Angaben sind optional.

Eine detaillierte Beschreibung der PGP-Funktionen kann den zur Software mitgelieferten Manuals entnommen werden, die unter dem AFS-Pfad

/afs/tu-chemnitz.de/global/text/doc/pgp-2.6.3i
bzw. unter
/uni/global/text/doc/pgp-2.6.3i
zu finden sind.

In der Mehrzahl der Fälle dürfte allerdings der sehr kompakte Überblick über die wichtigsten Kommandos und deren Syntax genügen, den man durch Aufruf der Online-Hilfe erhält:

  pgp -h

Wer an deutschen Hilfe-Texten interessiert ist, sollte sich die Datei

/uni/global/text/doc/pgp-2.6.3i/config.txt
in das Verzeichnis $HOME/.pgp/ kopieren und dort die Zeile
Language = en
gegen
Language = de
ersetzen.

Hinweis: In der deutschen Hilfe wird die Passphrase als Mantra bezeichnet.


Anwendungsbeispiele

Die nachfolgenden Beispiele sollen einige typische Anwendungsfälle illustrieren:

Bemerkungen zu PGP 5.x/6.x

Für verschiedene Betriebssysteme stehen mehrere Versionen 5.x und 6.x von PGP zur Verfügung. PGP 5.0 ist der Nachfolger von PGP 2.6.x und war ursprünglich als PGP 3.0 geplant. Da es aber in den USA bereits kommerzielle PGP-Versionen 4.x gab, entschied man sich letztlich für die Versionsnummer 5.0, um wieder eine einheitliche und aufsteigende Numerierung aller PGP-Produkte zu erreichen. Einen Überblick über die meisten PGP-Versionen gibt folgende Graphik: http://www.paranoia.com/~vax/pgp_versions.html.

PGP 5.x war anfangs ein Produkt der 1996 von Philip Zimmermann gegründeten Firma Pretty Good Privacy, Inc., die im Dezember 1997 von Network Associates (NAI) gekauft wurde. PGP ist heute ein Produkt von NAI. Dessen Windows-Versionen sind mit einer graphischen Oberfläche ausgestattet und bieten eine nahtlose Integration in verschiedene E-Mail-Programme sowie allgemein in den Windows-Desktop. Daneben steht ab Version 6.5 auch wieder die von PGP 2.6.x her bekannte Kommandozeilen-Schnittstelle zur Verfügung.

Unter dem Namen PGP bietet Network Associates eine ganze Familie kommerzieller und teilweise auch kostenfreier kryptographischer Werkzeuge an. Informationen zu den aktuellen Produkten, Lizenzbedingungen usw. finden sich auf den WWW-Seiten von NAI: http://www.pgp.com/.

Ab PGP 5.0 werden neue kryptographische Verfahren unterstützt und vorzugsweise an Stelle von RSA, IDEA und MD5 eingesetzt:

Diese Verfahren unterliegen im Gegensatz zu RSA und IDEA keinem Patentschutz.

Das RSA-Verfahren wird dabei durch zwei verschiedene asymmetrische Algorithmen ersetzt, für die jeweils separate Paare aus öffentlichem und privatem Schlüssel verwendet werden:

Für das digitale Signieren und das Chiffrieren von Dokumenten werden hier also getrennte Schlüsselpaare genutzt, wogegen bei RSA ein und dasselbe Schlüsselpaar beide Funktionen erfüllt.

Würde jemand z.B. durch staatliche Behörden gezwungen, seinen geheimen RSA-Key offenzulegen, um den Behörden das Dechiffrieren von Nachrichten mit vermeintlich kriminellem Inhalt zu ermöglichen, wären diese Stellen automatisch in der Lage, beliebige Dokumente im Namen der betreffenden Person digital zu signieren, wodurch sämtliche Signaturen, die mit dem offengelegten Schlüssel erstellt wurden bzw. werden, ihren Sinn schlagartig komplett verlieren würden. Bei der Trennung der beiden Schlüsselpaare ist dies nicht der Fall. Die Behörden können mit dem ElGamal-Key zwar Nachrichten dechiffrieren, nicht aber Unterschriften fälschen, solange sie nicht im Besitz des DSA-Keys sind.

Jedem DSA-Signaturschlüssel (primary key) können mehrere ElGamal-Schlüssel (subkeys) zugeordnet werden, die beispielsweise für unterschiedliche Zeiträume gültig sein können. Somit ist ein Wechsel der zur Verschlüsselung genutzten ElGamal-Schlüssel möglich, ohne den Signaturschlüssel tauschen zu müssen. Dabei bleiben alle existierenden Zertifikate gültig, da sich diese immer auf den primären DSA-Schlüssel beziehen.

Bei DSA handelt es sich um den Digital Signature Algorithm. Er wird im Digital Signature Standard (DSS), dem Standard der US-Regierung für digitale Signaturen, spezifiziert: http://csrc.nist.gov/fips/fips186.ps. Trotz starker Kritik vieler Kryptologen begrenzt dieser Standard die Schlüssellänge beim DSA auf 1024 Bit.

SHA-1 ist der Secure Hash Algorithm. Es handelt sich hierbei um eine Einweg-Hashfunktion. Sie wurde im Secure Hash Standard (SHS), einem US-Bundesstandard, spezifiziert: http://csrc.nist.gov/fips/fip180-1.ps. In neueren PGP-Versionen kann außerdem die von Hans Dobbertin, Antoon Bosselaers und Bart Preneel entwickelte Einweg-Hashfunktion RIPEMD-160 genutzt werden: http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html. Beide Funktionen erzeugen jeweils einen 160 Bit langen Hashwert.

Neben IDEA stehen zwei weitere symmetrische Kryptosysteme zur Verfügung:

Beim Algorithmus CAST, der vermutlich nach seinen Autoren Carlisle Adams und Stafford Tavares benannt wurde, handelt es sich um ein relativ neues Entwurfsverfahren für symmetrische Chiffren. PGP nutzt die im RFC 2144: The CAST-128 Encryption Algorithm beschriebene und kostenfrei verfügbare konkrete Realisierung CAST-128 (auch CAST5 genannt) mit 128-Bit-Schlüsseln.

3DES (Triple DES) ist durch die dreifache aufeinanderfolgende Ausführung von DES-Operationen gekennzeichnet. DES ist der weltweit eingesetzte Data Encryption Standard, der seit 1977 den Status eines offiziellen Standards der US-Regierung hat.

DES ist eine relativ alte Chiffre, die bereits Anfang bis Mitte der 70er Jahre entwickelt und seither sehr sorgfältig und intensiv von einer Vielzahl anerkannter Kryptologen analysiert wurde. Dennoch ist bis heute kein allgemein praktikables Verfahren veröffentlicht worden, das es gestattet, den vollständigen DES-Algorithmus auf eine deutlich effizientere Weise als durch eine Brute-Force-Attacke (systematisches Durchprobieren aller Schlüssel) zu brechen. Bei DES handelt es sich nach Meinung verschiedener Experten um das weltweit am intensivsten studierte und am weitesten verbreitete Kryptosystem.

Die DES-Schlüssellänge von 56 Bit ist allerdings unter Beachtung der Leistungsfähigkeit heutiger Computertechnik zu gering, weswegen man mehrere (meist drei) DES-Operationen hintereinander anwendet. Beim Einsatz zweier unterschiedlicher DES-Schlüssel erhöht sich die Schlüssellänge dabei auf 112 Bit, bei drei unterschiedlichen Schlüsseln sogar auf 168 Bit.

Hinweis: Wenn man mit Partnern kommunizieren möchte, die noch PGP 2.6.x verwenden, ist es notwendig, eine PGP-Implementierung einzusetzen, die weiterhin die kryptographischen Algorithmen und externen Nachrichtenformate dieser älteren Versionen beherrscht. Dies ist z.B. bei PGP 6.5.1 der Fall.


GnuPG - ein freier PGP-Ersatz

Mit GnuPG, dem GNU Privacy Guard, steht ein freier, unter der GNU General Public License veröffentlichter Ersatz für PGP zur Verfügung, der nicht auf dem Code der oben diskutierten PGP-Versionen basiert, sondern völlig unabhängig davon (from scratch) implementiert wurde und wird. Hauptautor von GnuPG ist Werner Koch aus Düsseldorf.

GnuPG verfügt gegenwärtig wie PGP 2.6.x ausschließlich über eine Kommandozeilen-Schnittstelle. Durch verschiedene Flags kann der Anwender bei Bedarf unterschiedliche Gruppen von Operationen (Lesen und Schreiben von PGP-Paketen, Langzahlarithmetik, Verschlüsselung, Primzahlengenerierung, ...) sehr detailliert überwachen.

Bei der IETF gibt es eine Arbeitsgruppe, deren Ziel darin besteht, IETF-Standards für die von PGP genutzten Algorithmen und Datenformate zu spezifizieren sowie den MIME-Rahmen zu definieren, der einen Austausch von PGP-Daten über E-Mail oder beliebige andere Protokolle gestattet. Das externe Nachrichtenformat (message-exchange packet format) dieser als OpenPGP bezeichneten Standards ist im RFC 2440:  OpenPGP Message Format spezifiziert. Weitere Informationen über OpenPGP finden sich unter http://www.ietf.org/html.charters/openpgp-charter.html sowie in einem Artikel von Ingmar Camphausen und Lutz Donnerhacke (Mitautor des RFC 2440): Probleme beim PGP-Einsatz in Zertifizierungsstellen und deren Lösung durch PGP 2.6.3in und OpenPGP.

Aktuelle GnuPG-Versionen (z.B. GnuPG 1.0.1) sind vollständig OpenPGP-kompatibel gemäß RFC 2440, unterstützen allerdings nicht die empfohlene MIME-Formatierung nach RFC 2015.

Die GnuPG-Software sowie viele weitere Informationen dazu findet man über die WWW-Seite http://www.gnupg.org.

Auf einige Punkte sei hier speziell hingewiesen:


Weitere Informationsquellen


Holger Trapp

10. Februar 2000