GPG
Kurz: “GNU Privacy Guard” — eine freie Implementierung des OpenPGP-Standards zum Ver- und Entschlüsseln sowie digitalen Signieren von Dateien und E-Mails.
Genauer: GPG nutzt asymmetrische Verschlüsselung: Jeder Nutzer hat ein Schlüsselpaar aus öffentlichem und privatem Schlüssel. Verschlüsselte Nachrichten an eine Person werden mit deren öffentlichem Schlüssel verschlüsselt und können nur mit dem zugehörigen privaten Schlüssel gelesen werden. GPG wird häufig für signierte Git-Commits, verschlüsselte E-Mails und das Signieren von Software-Releases genutzt. Grafische Oberflächen wie Kleopatra machen die Schlüsselverwaltung zugänglicher als die reine Kommandozeile.
Im Detail
Typische GPG-Kommandozeilenbefehle für den Alltag:
# Neues Schlüsselpaar erzeugen
gpg --full-generate-key
# Öffentlichen Schlüssel exportieren, um ihn zu teilen
gpg --export --armor deine@email.de > public-key.asc
# Datei mit dem öffentlichen Schlüssel des Empfängers verschlüsseln
gpg --encrypt --recipient empfaenger@email.de datei.txt
# Verschlüsselte Datei mit eigenem privatem Schlüssel entschlüsseln
gpg --decrypt datei.txt.gpg
# Git-Commit mit dem eigenen Schlüssel signieren
git commit -S -m "Commit-Nachricht"Ein zentrales Konzept bei GPG ist das “Web of Trust”: Statt einer zentralen Zertifizierungsstelle (wie bei TLS-Zertifikaten) verifizieren sich Nutzer gegenseitig, indem sie den öffentlichen Schlüssel einer Person signieren, deren Identität sie persönlich geprüft haben (z. B. bei einer “Key-Signing-Party”). Je mehr vertrauenswürdige Signaturen ein Schlüssel sammelt, desto mehr vertrauen auch Dritte ihm — ein dezentrales Gegenstück zur hierarchischen Zertifikatsstruktur des Web.
GPG-Schlüssel haben außerdem einen “Fingerprint” — einen eindeutigen Hash-Wert des öffentlichen Schlüssels, über den man dessen Echtheit über einen zweiten, unabhängigen Kanal verifizieren kann (z. B. mündlich vorgelesen oder auf einer Visitenkarte gedruckt), bevor man dem Schlüssel vertraut.
Geschichte und Motivation
GPG entstand 1999 als freie, quelloffene Alternative zu PGP (“Pretty Good Privacy”, 1991 von Phil Zimmermann entwickelt), das zeitweise proprietär und in den USA sogar exportbeschränkt war (starke Kryptografie galt lange als “Waffentechnologie” im Sinne der US-Exportkontrollgesetze). GPG implementiert denselben offenen OpenPGP-Standard (RFC 4880) und ist vollständig interoperabel mit anderen OpenPGP-Programmen — eine mit GPG verschlüsselte Nachricht kann auch mit jeder anderen konformen PGP-Implementierung entschlüsselt werden.
Web of Trust vs. hierarchisches Zertifikatsmodell
Der fundamentale konzeptionelle Unterschied zu TLS-Zertifikaten liegt im Vertrauensmodell: TLS setzt auf eine kleine Anzahl zentraler, hierarchisch organisierter Zertifizierungsstellen, denen Browser standardmäßig vertrauen. GPGs “Web of Trust” ist komplett dezentral — es gibt keine zentrale Autorität, sondern jeder Nutzer entscheidet selbst, wem er vertraut, und dieses Vertrauen kann transitiv weitergegeben werden (ich vertraue Person A, A vertraut Person B, also vertraue ich B mit etwas geringerer Sicherheit). Das macht das System zensurresistenter und unabhängiger von einzelnen Institutionen, aber auch weniger benutzerfreundlich — die meisten alltäglichen Nutzer bauen nie ein echtes Web of Trust auf und verlassen sich stattdessen auf direkt ausgetauschte, manuell verifizierte Fingerprints.
Praktische Einsatzgebiete
Neben verschlüsselten E-Mails (in der Praxis heute vergleichsweise selten genutzt, weil Metadaten wie Betreff und Empfänger trotzdem sichtbar bleiben und die Benutzerfreundlichkeit gering ist) hat sich GPG vor allem in der Software-Entwicklung etabliert: Linux-Distributionen signieren ihre Software-Pakete mit GPG, damit Paketmanager (z. B. apt, pacman) vor der Installation prüfen können, dass ein Paket wirklich vom angegebenen Maintainer stammt und nicht unterwegs manipuliert wurde. Git unterstützt signierte Commits und Tags (git commit -S), die GitHub/GitLab mit einem “Verified”-Badge kennzeichnen — ein Schutz gegen Angreifer, die versuchen, sich in einer Commit-Historie als ein anderer Entwickler auszugeben.
Schlüssel-Widerruf
Ein wichtiges, oft übersehenes GPG-Konzept ist das Widerrufszertifikat: Bereits beim Erzeugen eines Schlüsselpaars sollte man ein Revocation Certificate generieren und sicher aufbewahren (getrennt vom eigentlichen privaten Schlüssel) — verliert man später den Zugriff auf den privaten Schlüssel (verlorene Passphrase, gestohlenes Gerät) oder wird er kompromittiert, lässt sich damit der öffentliche Schlüssel als “widerrufen” markieren, ohne dass man den privaten Schlüssel dafür noch braucht. Ohne vorbereitetes Widerrufszertifikat gibt es keinen sauberen Weg mehr, andere vor einem kompromittierten Schlüssel zu warnen.
Siehe auch: Kleopatra, Asymmetrische Verschlüsselung