PGP

Aus Metapedia
Wechseln zu: Navigation, Suche
Baum metapedia.png
Dieser Artikel oder Unterabschnitt ist noch sehr kurz und befindet sich gerade im Aufbau bzw. bedarf einer Überarbeitung oder Erweiterung. Hilf bitte mit, ihn zu verbessern und entferne anschließend diese Markierung.
→ Du kannst ihn hier bearbeiten.

PGP (engl.: Pretty Good Privacy, auf deutsch etwa: „Ziemlich Gute Privatsphäre“) ist ein von Phil Zimmermann entwickeltes Programm zum Signieren und zur asymetrischen Verschlüsselung von Daten.

Geschichte

Die erste, 1991 geschriebene Version des Programmes verwendete einen RSA-Algorithmus zur Verschlüsselung der Daten; spätere Versionen benutzten den Diffie-Hellman-Schlüsselaustausch (DH/DSS).

Da PGP in seinen Anfangsjahren aufgrund des US-Exportgesetzes, nach dem Kryptographie-Programme mit einer Schlüssellänge von mehr als 40 Bit besonderen Exportbestimmungen unterlagen, nicht lizenzfrei aus den USA exportiert werden durfte, veröffentlichte Zimmermann 1995 den vollständigen Quelltext des Programmes in dem nicht diesen Bestimmungen unterliegendem Buch „PGP Source Code and Internals“, der daraufhin von Freiwilligen abgetippt und zu einer international verfügbaren Version von PGP (PGPi) kompiliert wurde. Ende der 90er Jahre lockerte dann die VSA dieses Gesetz.

Funktionsweise

PGP ermöglicht es, eine Nachricht zu signieren, zu verschlüsseln oder zu signieren und zu verschlüsseln. Während die Verschlüsselung sicherstellt, daß Daten nur von dazu Berechtigten gelesen bzw. genutzt werden können, dient die Signatur dazu, die Echtheit bzw. Urheberschaft der Nachricht zu garantieren.

Um eine sichere Kommunikation über unsichere Kanäle zu ermöglichen, verwendet PGP asymmetrische Verschlüsselung. Dabei erzeugt ein Nutzer ein aus einen öffentlichen und einem privatem Schlüssel bestehendes, in spezieller mathematischer Beziehung zueinander stehendes Schlüsselpaar. Der öffentliche Schlüssel kann von anderen benutzt werden, um Nachrichten für den Besitzer des Schlüsselpaares zu verschlüsseln oder um Nachrichten, die von diesem Besitzer signiert wurden, zu verifizieren. Der idealerweise nur dem Besitzer bekannte private Schlüssel hingegen wird von ihm zum Entschlüsseln von einem Sender mit seinem öffentlichen Schlüssel verschlüsselten Nachrichten benutzt bzw. dient ihm zur Signierung von Nachrichten.

Signieren

Um sicherzustellen, daß eine Nachricht nicht manipuliert oder ersetzt werden kann, muss der Sender einer Nachricht eine digitale Signatur erzeugen. Dabei wird auf den Klartext zunächst eine kryptologische Hashfunktion wie bspw. SHA-1 angewandt, wodurch ein eindeutiger Fingerabdruck (Message Digest) der Nachricht entsteht, der wesentlich kürzer ist als die Nachricht selbst. Anschließend wird unter Verwendung des privaten Schlüssels des Senders aus diesem Fingerabdruck eine Signatur erzeugt, die vom Empfänger mit dem öffentlichen Schlüssel des Senders wieder entschlüsselt und damit verifiziert werden kann.

Verschlüsselung

Um eine Nachricht zu verschlüsseln, wird zunächst ein zufälliger Sitzungsschlüssel (Session Key) generiert, um mit diesem dann die Klartextnachricht, gegebenenfalls zusammen mit der zuvor erzeugten Signatur, zu verschlüsseln. Der Sitzungsschlüssel wird daraufhin mit dem öffentlichen Schlüssel des Empfängers verschlüsselt und der Nachricht angehängt. Anschließend können die Bits dieser PGP-Nachricht noch mittels Base64 in ASCII-Zeichen (ASCII-Armor) kodiert werden, um sie bspw. in eBriefen versenden zu können.

Entschlüsselung

Eine mit einem öffentlichen Schlüssel verschlüsselte Nachricht kann ausschließlich von dem Besitzer des zu dem öffentlichen Schlüssel gehörenden privaten Schlüssels entschlüsselt werden. Dazu wird zunächst – nachdem die Nachricht gegebenenfalls mit Base64 dekodiert wurde – der der Nachricht angehängte, vom Sender erzeugte und mit dem öffentlichen Schlüssel des Empfängers verschlüsselte Sitzungschlüssel mit dem privaten Schlüssel des Empfängers entschlüsselt.

Verifizieren

Sollte der Sender die Nachricht signiert haben, wird die Authentizität des Senders und die Integrität der Nachricht verifiziert, indem auf die Nachricht die gleiche Hash-Funktion wie die zuvor vom Sender benutze angewandt wird, um ebenso wie dieser einen Fingerabdruck der Nachricht zu erzeugen, den man dann, nachdem man den der Nachricht beigefügten verschlüsselten Fingerabdruck mit dem öffentlichen Schlüssel des Senders mittels einer Umkehrfunktion entschlüsselt hat, mit diesem vergleicht. Stammt die Nachricht tatsächlich von dem Sender, der diese mit seinem privaten Schlüssel signiert hat, und wurden nicht verändert, stimmen die beiden Fingerabdrücke überein und man kann mit hoher Wahrscheinlichkeit von der Authentizität des Senders und der Integrität der Nachricht ausgehen.

Siehe auch

  • GPG, eine als Ersatz für PGP dienende freie Implementierung des OpenPGP-Standards mit einigen Zusatzfunktionen.

Verweise

  • Darius Shahtahmasebi: Big Brother is keeping 'Five Eyes' on you, RT, 7. September 2018 – VSA, Großbritannien, Kanada, Australien und Neuseeland verlangen von großen IT-Firmen drohend Hintertür für alle Verschlüsselungsanwendungen