- OpenPGP
-
OpenPGP ist in der Informationstechnik ein Standard für Verschlüsselungs-Software, der auf PGP 5.x basiert. OpenPGP ist ein Internet-Standard und im RFC 4880 standardisiert. Das Dokument beschreibt das Datenformat, um Informationen verschlüsselt zu speichern und digitale Signaturen zu erzeugen. Auch wird das Format von Zertifikaten festgelegt, die landläufig auch als „Schlüssel“ bezeichnet werden.
Inhaltsverzeichnis
Allgemeines
Eine der Hauptanwendungen ist die Signierung und Verschlüsselung von E-Mails, wobei dies auf mehrere Arten geschehen kann:
- als binärer Anhang nach dem MIME-Standard (RFC 2045)
- als Base64-kodierter Text plus Prüfsumme (Radix-64; ursprüngliches Textformat von PGP. Zur Unterscheidung zum neueren PGP/MIME-Format wird es als E-Mail-Format nachträglich auch PGP/INLINE genannt)
- als MIME-Erweiterung nach RFC 3156 (auch PGP/MIME genannt)
Zusammen mit S/MIME (welches X.509-Zertifikate verwendet) gehört der OpenPGP-Standard zu den wichtigsten Standards für E-Mail-Verschlüsselung.
Entstanden ist OpenPGP im Jahr 1998 als Reaktion auf diverse Entwicklungen:
- die in PGP verwendeten Algorithmen (IDEA und RSA) waren patentiert und konnten nicht beliebig verwendet werden. Insbesondere gab es in den USA Gesetze, die den Export von starker Verschlüsselung (ab 40 Bit) verboten.
- das Programm PGP wurde kommerziell durch die Firma PGP Inc. vertrieben und es gab (falsche) Gerüchte, dass eine Hintertür in dem Programm eingebaut wäre, da es über eine sogenannte ADK-Funktion (Additional Decryption Key) verfügte.
- Ende 1997 wurde PGP Inc. von Network Associates Inc. (NAI) übernommen, die Mitglied der Key Recovery Alliance waren.
Das OpenPGP-Protokoll wird mittlerweile von vielen Produkten unterstützt. Prominente Vertreter sind das kommerzielle PGP und das unter der GNU-GPL stehende GnuPG.
Das ebenfalls weit verbreitete S/MIME-Protokoll verwendet dagegen X.509-Zertifikate und ist deshalb grundsätzlich nicht kompatibel zu OpenPGP. Es existieren Applikationen, welche OpenPGP-Schlüssel im RSA-Format in X.509-Zertifikate umwandeln können.
Es gibt ferner die OpenPGP Alliance als Zusammenschluss mehrerer Hersteller, die sich dem OpenPGP-Format verpflichtet fühlen. Allerdings ist die entsprechende Webseite seit ca. 2001 nicht mehr aktualisiert worden.
Prinzip
OpenPGP benutzt ein hybrides Kryptosystem, das die Vorteile der asymmetrischen Kryptosysteme (sichere Schlüsselübertragung) mit denen der symmetrischen Kryptosysteme (hohe Geschwindigkeit) kombiniert.
Die asymmetrische Verschlüsselung
Statt wie bei einem symmetrischen System nur einen Schlüssel sowohl für Ver- als auch Entschlüsselung zu verwenden, besteht bei einem asymmetrischen System ein Schlüsselpaar aus zwei zusammengehörigen Schlüsseln. Daten, die mit einem Schlüssel verschlüsselt wurden, können ausnahmslos nur mit dem anderen Schlüssel wieder entschlüsselt werden; es ist nicht möglich, die Verschlüsselung mit demselben Schlüssel aufzuheben, mit dem sie erstellt wurde.
Das Hauptproblem der ansonsten sehr sicheren symmetrischen Verfahren, den einzigen existierenden Schlüssel sicher zum Kommunikationspartner zu übermitteln, stellt sich somit nicht, denn das Schlüsselpaar kann in einen sogenannten privaten oder geheimen Schlüssel und einen öffentlichen Schlüssel geteilt werden. Um Daten zu verschlüsseln, benötigt der Absender nur den öffentlichen Schlüssel des Empfängers. Dieser öffentliche Schlüssel kann auch auf unsicherem Wege zum Kommunikationspartner gebracht werden, denn Nachrichten, die mit diesem Schlüssel verschlüsselt wurden, können nur mit dem privaten Schlüssel, der bei seinem Besitzer verblieben ist, wieder entschlüsselt werden. Somit ist ausgeschlossen, dass die Daten in falsche Hände geraten.
In der Regel ist sogar eine möglichst weite Verbreitung des öffentlichen Schlüssels wünschenswert, um sicherzustellen, dass keine öffentlichen Schlüssel unter falschem Namen eingeschleust werden.
Das Zusammenspiel von symmetrischer und asymmetrischer Verschlüsselung
Da die asymmetrische Verschlüsselung sehr rechenaufwendig ist, verwendet OpenPGP eine Mischung (Hybrid) aus asymmetrischer und symmetrischer Verschlüsselung:
Im ersten Schritt werden die zu verschlüsselnden Daten mit einem symmetrischen Einmal-Schlüssel, der nur für diese eine Verschlüsselung erzeugt wurde und nie wieder verwendet wird (Sitzungsschlüssel), verschlüsselt. Im zweiten Schritt wird dieser Sitzungsschlüssel wiederum mit einem Schlüssel des asymmetrischen Schlüsselpaares verschlüsselt. Um umgekehrt die Daten wieder zu entschlüsseln, muss zuerst der symmetrische Schlüssel mit dem Bruder des asymmetrischen Schlüssels entschlüsselt werden.
Da der symmetrische Schlüssel im Verhältnis zu den zu verschlüsselnden Daten sehr kurz ist, hält sich auch der Rechenaufwand zur asymmetrischen Verschlüsselung in Grenzen und ist deutlich geringer, als wenn die Daten selbst asymmetrisch verschlüsselt würden.
Signierung
Neben der Verschlüsselung dient OpenPGP auch zur Signierung von Daten (elektronische Unterschrift), damit Empfänger ihre Echtheit und Unverfälschtheit feststellen können. Dazu wird vom Absender eine Prüfsumme (auch Hash-Wert genannt) der Daten gebildet, die dann mit dem privaten Schlüssel verschlüsselt wird (die Daten selbst bleiben unangetastet). Der Empfänger kann die verschlüsselte Prüfsumme mit dem öffentlichen Schlüssel des Absenders wieder entschlüsseln und sie mit der von ihm selbst nach dem gleichen Verfahren erstellten Prüfsumme der Daten vergleichen. Da niemand außer dem Besitzer des privaten Schlüssels (also der Absender) die Prüfsumme so verschlüsseln kann, dass sie mit dem dazugehörigen öffentlichen Schlüssel wieder korrekt entschlüsselt wird (vom Empfänger), ist sichergestellt, dass Daten und Prüfsumme nicht manipuliert werden können.
Schlüsselbeglaubigung
Auch öffentliche Schlüssel können von anderen Schlüsselinhabern signiert werden, um die Echtheit eines Schlüssels zu untermauern. Im Gegensatz zu S/MIME basiert diese Signierung jedoch nicht auf einem hierarchischen System, bei der nur eine übergeordnete Stelle Schlüssel untergeordneter Stellen signieren darf, sondern aus einem Netz des Vertrauens (Web of Trust), in dem jeder Teilnehmer die Schlüssel anderer signieren kann. Die bei der Signatur abgegebene Aussage über das Vertrauen in Schlüssel und Besitzer ermöglicht es Dritten, Rückschlüsse auf die Vertrauenswürdigkeit zu machen. Vertraut zum Beispiel Teilnehmer B Teilnehmer A, könnte B auch dem öffentlichen Schlüssel des ihm unbekannten Teilnehmers C vertrauen, wenn dieser Schlüssel durch A signiert wurde.
Eine weitere, einfache Methode, die Echtheit eines Schlüssels zu prüfen, ist der Vergleich des Fingerabdrucks. Dabei handelt es sich um eine Prüfsumme der Schlüsseldaten in hexadezimaler Form (zum Beispiel „72F0 5CA5 0D2B BA4D 8F86 E14C 38AA E0EB“), die sich leicht im direkten Gespräch, per Telefon oder per Brief vergleichen lässt.
Weblinks
- IETF-OpenPGP-Arbeitsgruppe (engl.)
- GnuPG – GNU Privacy Guard, ein Programm entsprechend dem OpenPGP-Standard (multilingual)
- PGP Corporation – Hersteller des ursprünglichen PGP-Systems
- OpenPGP Alliance (veraltet, engl.)
- The International PGP Home Page (engl.)
Kategorien:- Verschlüsselungssoftware
- Kryptologischer Standard
Wikimedia Foundation.