- PGPi
-
Pretty Good Privacy (PGP) ist ein von Phil Zimmermann entwickeltes Programm zur Verschlüsselung und zum Unterschreiben von Daten.
Inhaltsverzeichnis
Eigenschaften
PGP benutzt ein sogenanntes Public-Key-Verfahren, das heißt, es gibt ein eindeutig zugeordnetes Schlüsselpaar:
Genutzt wird ein öffentlicher Schlüssel, mit dem jeder die Daten für den Empfänger verschlüsseln kann, und ein privater geheimer Schlüssel, den nur der Empfänger besitzt und der durch ein Kennwort geschützt ist. Nachrichten an einen Empfänger werden mit seinem öffentlichen Schlüssel verschlüsselt und können dann ausschließlich durch den privaten Schlüssel des Empfängers entschlüsselt werden. Diese Verfahren werden auch asymmetrische Verfahren genannt, da Sender und Empfänger zwei unterschiedliche Schlüssel verwenden.
Die erste Version wurde 1991 geschrieben und verwendete einen RSA-Algorithmus zur Verschlüsselung der Daten. Spätere Versionen benutzten den Diffie-Hellman-Schlüsselaustausch (DH/DSS).
Bei PGP wird aber nicht die ganze Nachricht asymmetrisch verschlüsselt, denn dies wäre viel zu rechenintensiv. Stattdessen wird die eigentliche Nachricht symmetrisch und nur der verwendete Schlüssel asymmetrisch verschlüsselt (Hybride Verschlüsselung). Dazu wird jedes Mal ein symmetrischer Schlüssel zufällig erzeugt.
Dieser symmetrische Schlüssel wird dann per RSA- oder Elgamal-Kryptosystem mit dem öffentlichen Schlüssel des Empfängers verschlüsselt und der Nachricht hinzugefügt. Dadurch ist es möglich, eine Nachricht für mehrere Empfänger gleichzeitig zu verschlüsseln. Eine für mehrere Empfänger verschlüsselte Nachricht sieht dann folgendermaßen aus:
asymmetrisch verschlüsselter Schlüssel der Nachricht für Empfänger 1 asymmetrisch verschlüsselter Schlüssel der Nachricht für Empfänger n symmetrisch verschlüsselte Nachricht PGP basiert dabei auf dem sogenannten Web of Trust, bei dem es keine zentrale Zertifizierungsinstanz gibt, sondern sogenannte Ketten des Vertrauens.
Geschichte
Phil Zimmermann schrieb die erste Version 1991. Sein Ziel war es, dass alle Bürger und insbesondere Bürgerbewegungen auch vor dem Zugriff durch Geheimdienste sicher verschlüsselte Nachrichten austauschen können (starke Verschlüsselung).[1]
PGP durfte in seinen Anfangsjahren nicht lizenzfrei aus den USA exportiert werden, da es, ähnlich wie Waffen, unter das US-Exportgesetz fiel. Danach unterlagen Kryptosysteme mit Schlüsseln von mehr als 40 Bit Länge für die symmetrische Verschlüsselung besonderen Exportbestimmungen. Die ersten PGP-Versionen verwendeten den IDEA mit 128 Bit Schlüssellänge. Ende der 90er Jahre liberalisierten die USA diese Gesetze.[1]
Um die Exportbeschränkung zu umgehen, wurde der vollständige Quellcode 1995 in dem Buch „PGP Source Code and Internals“ von Phil Zimmermann veröffentlicht. Als Buch konnte die Software legal aus den USA exportiert werden. Es wurde von über 60 Freiwilligen per Hand abgetippt. Aus dem abgetippten Programmcode wurde dann eine international verfügbare Version von PGP (PGPi) kompiliert.[1]
Die Firma PGP Corporation stellte bis Version 8 mit PGP Freeware ein eigenständiges Produkt für nicht-kommerzielle Anwender bereit. Seit Version 9 gibt es stattdessen nur noch die Testversion von PGP Desktop Professional 9. Für 30 Tage kann sie uneingeschränkt benutzt werden. Nach Ablauf der Frist werden Funktionsumfang und Nutzungsrechte auf einen Umfang reduziert, der etwa dem ehemaligen PGP Freeware entspricht. Ver- und Entschlüsselung von E-Mails ist auch nach Ablauf der Testphase möglich, aber nur für nicht-kommerzielle Zwecke zulässig.
PGP wurde 1997 von NAI (McAfee) aufgekauft und dort in die eigene Produktlinie integriert. McAfee hat PGP jedoch nie erfolgreich am Markt positionieren können und auch die Weiterentwicklung wurde nicht mit dem nötigen Engagement betrieben. Aufgrund der Tatsache, dass der Quelltext von PGP durch McAfee zeitweilig nicht offengelegt wurde und Features implementiert wurden, welche die automatische Verschlüsselung an einen weiteren Empfänger ermöglichten (Additional Decryption Key ADK), ist PGP in dieser Zeit stark in die Kritik geraten. 2002 hat McAfee die Marke PGP aufgegeben und an eine Gruppe ehemaliger Mitarbeiter von PGP rund um Phil Zimmermann verkauft. Diese neu gegründete PGP Corporation hat alle Rechte an PGP von McAfee zurückgekauft und im Laufe der folgenden Jahre das Produktportfolio erheblich erweitert und von Beginn an alle Quelltexte wieder offengelegt. Die neue PGP hat sich am Markt erfolgreich entwickelt und ist heute in vielen Ländern vertreten, darunter auch in Deutschland, wo die PGP Corporation im Jahr 2005 die deutsche Glück & Kanja Technology AG [1] übernommen hat und damit die heute in Frankfurt sitzende PGP Deutschland AG gründete.
Nicht zuletzt wegen der intransparenten Situation in der Zeit, in der PGP im Eigentum der McAfee war, wurde bis 1998 der OpenPGP-Standard (RFC 2440, überarbeitete Fassung seit November 2007: RFC 4880) entwickelt. Das unter der GNU-GPL stehende Programm GnuPG war ursprünglich die erste Implementation von OpenPGP und wurde als freie Alternative zu PGP entwickelt. Zu PGP gibt es mittlerweile viele Erweiterungen des OpenPGP-Standards, so dass der reibungslose Austausch von Daten nicht immer garantiert ist.
Funktionsweise
Man kann mit PGP wahlweise eine Nachricht signieren, verschlüsseln oder signieren und verschlüsseln. Die Signatur dient dazu, die Echtheit der Nachricht zu garantieren. In der Praxis wird man Nachrichten wenn man sie verschlüsselt immer auch signieren. Hingegen sind signierte unverschlüsselte Nachrichten sehr verbreitet.
Erzeugen einer digitalen Signatur
Um sicherzugehen, dass eine abgefangene Nachricht nicht manipuliert oder ersetzt wurde, muss der Sender als erstes Authentizität und Integrität der Nachricht mittels digitaler Signatur erzeugen. Dabei wird auf die Klartextnachricht eine Hash-Funktion wie zum Beispiel MD5 angewandt. Dadurch entsteht ein Message Digest (eindeutiger Fingerprint) der Nachricht, der wesentlich kürzer ist als die Nachricht selbst, was die Generierung der Digitalen Signatur vereinfacht. Anschließend wird aus dem Message Digest unter Verwendung des privaten Schlüssels des Senders eine Signatur erzeugt. (Dabei wird allerdings ein anderes Verfahren angewendet als zum Verschlüsseln der Nachricht selbst. Der Signatur-Chiffre kann mittels des öffentlichen Schlüssels jederzeit wieder dechiffriert werden, allerdings nur, wenn tatsächlich der zugehörige private Schlüssel verwendet wurde, s. u.)
Verschlüsselung
Als zweiten Schritt kann der Sender nun die Verschlüsselung der Nachricht vornehmen. Hierbei wird die Klartextnachricht und die Digitale Signatur aus dem ersten Schritt genommen und komprimiert, zur Reduktion der Größe und Erschwerung der Kryptoanalyse. Diese komprimierten Daten werden nun mit dem zufällig generierten Session Key KM symmetrisch zum Ciphertext verschlüsselt. Da es sich um einen zufällig erstellten Einmalschlüssel handelt, muss dieser dem Empfänger mitgeteilt werden. Dazu wird der Schlüssel KM mit dem öffentlichen Schlüssel des Empfängers asymmetrisch verschlüsselt und an die verschlüsselte Nachricht angehängt. Zu guter Letzt müssen die Bits des Ciphertextes und des verschlüsselten Schlüssels noch E-Mail-freundlich gemacht werden. Dazu werden diese mittels Base64 in ASCII-Zeichen codiert. Nun kann die PGP-Nachricht an den Empfänger gesendet werden, damit dieser die Nachricht nach der Entschlüsselung lesen kann. Neben der Verwendung für E-Mails kann PGP auch für andere Nachrichtenkanäle verwendet werden.
Entschlüsselung
Zu Beginn muss der Empfänger die vorliegenden ASCII-Zeichen mit Base64 wieder decodieren, um an den Ciphertext und den verschlüsselten Session Key zu gelangen. Jetzt kann der Session Key durch den privaten Schlüssel des Empfängers entschlüsselt werden und damit gleich anschließend der Ciphertext wieder in die komprimierte Kombination aus Klartextnachricht und Digitaler Signatur entschlüsselt werden. Um schlussendlich an die Nachricht zu gelangen, muss diese nur noch dekomprimiert werden. Allerdings soll auch noch die Authentizität des Senders und die Integrität der Nachricht sichergestellt werden. Dazu wird auf den Klartext die gleiche Hash-Funktion wie beim Sender angewandt und die digitale Signatur mit dem öffentlichen Schlüssel des Senders mittels einer Umkehrfunktion dechiffriert. Wurde zum Erstellen der Signatur tatsächlich der zugehörige private Schlüssel verwendet, stimmen die beiden Klartexte des Message Digests überein und man kann mit hoher Wahrscheinlichkeit davon ausgehen, dass die Nachricht nicht verändert wurde und tatsächlich von einem bestimmten Sender stammt.
Siehe auch
Quellen
Weblinks
- Phil Zimmermann Erfinder von PGP
- PGP Corporation entwickelt aktuelle Versionen freier und kommerzieller PGP-Produkte
- PGP Deutschland AG – Deutsche Niederlassung der PGP Corp. mit Informationen und Support in deutscher Sprache
- OpenPGP-Arbeitsgruppe entwickelt OpenPGP-Standards RFC 2440, RFC 3156 und Nachfolger
- GNU Privacy Guard (GPG) ist Open-Source-Software als Ersatz für PGP (multilingual)
- GPG For Windows (gpg4win) ist ein einfach zu installierendes Gesamtpaket
- DFN-CERT PGP-Keyserver zum Eintragen und Nachschlagen von PGP-Schlüsseln
- Liste öffentlicher PGP-Schlüsselserver
- Links zum Thema PGP im Open Directory Project
- c’t-Krypto-Kampagne
- PGP-Kompatibilitätstabellen Welche PGP-Version unterstützt welche Schlüsseltypen und Algorithmen? (englisch, sehr umfangreich, veraltet)
Wikimedia Foundation.