30.01.2014
OpenPGP ist ein Datenformat (standardisiert in RFC 4880) für
(asymmetrisch oder symmetrisch) verschlüsselte Daten
signierte Daten / Signaturen
Zertifikate (Dateien mit öffentlichen Schlüsseln)
OpenPGP ist keine Verschlüsselungs- oder Signaturtechnik! Die kryptografischen Methoden (z.B. RSA, DSA, AES, 3DES, SHA-1, SHA-2) findet man auch in vielen anderen Standards (X.509, SSL/TLS, SSH). Deshalb ist OpenPGP grundsätzlich auch nicht sicherer oder weniger sicher als andere Techniken.
Genau wie die Festlegung eines Zeichensatzes und seiner Codierung (z.B. ASCII und UTF-8) sowie von Fonts ein Dokumentenformat (z.B. RTF, MS Word, OpenDocument / OpenPffice / LibreOffice) nicht überflüssig macht, braucht man in der Kryptografie Formate, die den Applikationen sagen, wie die Daten verarbeitet sind, damit die standardisierten Kryptooperationen auf sie angewendet werden können.
wichtige Aspekte von OpenPGP:
Es gibt eine Vielzahl unterstützer Verfahren, sowohl bei den Ciphern (Verschlüsselungsalgorithmen) als auch bei den Hashfunktionen und den asymmetrischen Verfahren.
Die von GnuPG unterstützten Verfahren kann man sich in der Konsole mit gpg --version
anzeigen lassen.
Die Zertifikate können sich im Lauf der Zeit verändern (und tun das auch fast immer): Sie haben einen unveränderlichen Hauptschlüssel, aber es können Unterschlüssel und User-IDs hinzugefügt oder ersetzt werden, die Gültigkeit von Komponenten verlängert werden und vor allem können User-IDs von Dritten zertifiziert werden.
Zertifikate werden – anders als bei X.509 (S/MIME) – nicht von nur einer Instanz beglaubigt, sondern können (auch ohne Zustimmung des Schlüsselbesitzers) von jedem beglaubigt werden. Anders als bei X.509 wird auch nicht das Zertifikat in seiner Gesamtheit beglaubigt, sondern nur die Kombination aus Hauptschlüssel und jeweils einer User-ID. Der Schlüsselbesitzer kann deshalb das Zertifikat später verändern, ohne dass die Beglaubigungen dadurch ungültig werden.
OpenPGP ist – abgesehen von irrelevanten Details – eine echte Obermenge von X.509: Man kann mit OpenPGP alles machen, was mit X.509 möglich ist, aber darüber hinaus kann OpenPGP vieles, das mit X.509 nicht machbar ist.
Die aktuelle Version von OpenPGP (4) ist nicht sinnvoll mit den Anforderungen des Signaturgesetztes zusammenzubringen. Deshalb ist es derzeit (und auf absehbare Zeit) nicht möglich, qualifizierte Signaturen im OpenPGP-Format zu erstellen.
Die folgenden Punkte sind keine direkte Folge des OpenPGP-Standards, sondern beschreiben die Praxis (die sich ändern könnte):
Zertifikate werden nicht zentral (von der ausgebenden Stelle) verwaltet, sondern unterschiedslos in einem einzigen Pool zusammengefasst, der von überall abgefragt oder aktualisiert werden kann. Das hat auch Nachteile, weil man den Pool natürlich nicht für die Aktualität und belastbare Dokumentation der Veränderungen veranwortlich machen kann.
Da Unternehmen als Zertifizierungsstellen keine nennenswerte Rolle spielen (die größte Relevanz dürfte die Heise-Kryptokampagne haben, die aber nur Nebenaktivität eines Verlags ist), ist es schwierig, einen Schlüssel "offiziell" zu machen. Anders als bei X.509 kann man nicht einfach ein paar Root-Zertifikate mit dem Betriebssystem, Browser oder Mailclient ausliefern und hat das Problem damit gelöst. Das dürfte einer der wesentlichen Gründe dafür sein, dass viele verbreitete Mailclients OpenPGP nicht von Haus aus unterstützen.
OpenPGP ist die Basis der Integritätssicherung der Softwareverwaltung aller(?) Linux-Distributionen.