PGP verstehen: Verschlüsselung und Signaturen
PGP schützt den Inhalt von Nachrichten und Dateien. Dazu verbindet es schnelle symmetrische Verschlüsselung mit einem öffentlichen und einem privaten Schlüssel. Digitale Signaturen können zusätzlich zeigen, ob Daten verändert wurden und ob sie mit einem bestimmten privaten Schlüssel signiert wurden.
Auf dieser Seite lernst du nicht die Bedienung eines bestimmten Programms, sondern das Grundprinzip hinter PGP und OpenPGP.
Hake ab, was du schon kannst — und komm am Ende hierher zurück!
Was bedeutet PGP?
Stell dir vor, du möchtest eine vertrauliche Datei versenden. Eine normale E-Mail schützt ihren Inhalt nicht automatisch auf dem gesamten Weg bis zur empfangenden Person. PGP kann den Inhalt so verschlüsseln, dass nur der vorgesehene private Schlüssel ihn wieder zugänglich macht.
PGP
Pretty Good Privacy, kurz PGP, bezeichnet ursprünglich ein 1991 von Phil Zimmermann entwickeltes Programm. Heute wird der Name häufig auch für die dahinterstehende Methode oder eine Produktfamilie verwendet.
OpenPGP beschreibt standardisierte Formate und Abläufe für verschlüsselte Nachrichten und Signaturen. GnuPG, auch GPG genannt, ist eine freie Implementierung von OpenPGP. Die drei Begriffe sind daher verwandt, aber nicht gleichbedeutend.
PGP kann verschiedene Schutzziele unterstützen:
- Vertraulichkeit: Unbefugte sollen den Inhalt nicht lesen können.
- Integrität: Veränderungen am Inhalt sollen erkennbar sein.
- Authentizität: Eine Signatur soll prüfbar mit einem bestimmten Schlüssel verbunden sein.
Verschlüsselung allein bestätigt jedoch noch nicht, wer eine Nachricht geschrieben hat. Dafür ist eine digitale Signatur nötig.
Wie verschlüsselt PGP eine Nachricht?
Warum wird eine Nachricht nicht einfach vollständig mit dem öffentlichen Schlüssel verschlüsselt? Asymmetrische Verfahren sind für große Datenmengen vergleichsweise aufwendig. Symmetrische Verfahren arbeiten schneller, benötigen aber auf beiden Seiten denselben geheimen Schlüssel. PGP verbindet deshalb beide Verfahren.
Sitzungsschlüssel
Ein Sitzungsschlüssel ist ein zufällig erzeugter symmetrischer Schlüssel, der für eine Nachricht oder einen Vorgang verwendet wird. Mit ihm werden die eigentlichen Nutzdaten verschlüsselt.
Jede Person besitzt ein zusammengehöriges Schlüsselpaar:
- Der öffentliche Schlüssel darf weitergegeben werden.
- Der private Schlüssel bleibt geheim und sollte zusätzlich durch eine starke Passphrase geschützt werden.
Der Ablauf beim Senden
- Das Programm erzeugt einen zufälligen Sitzungsschlüssel.
- Es verschlüsselt die Nachricht schnell und symmetrisch mit diesem Sitzungsschlüssel.
- Es verschlüsselt den Sitzungsschlüssel mit dem öffentlichen Schlüssel der empfangenden Person.
- Es versendet die verschlüsselte Nachricht zusammen mit dem geschützten Sitzungsschlüssel.
Der Ablauf beim Empfangen
- Die empfangende Person entschlüsselt den Sitzungsschlüssel mit ihrem privaten Schlüssel.
- Mit dem Sitzungsschlüssel entschlüsselt das Programm anschließend die Nachricht.
Mira möchte Leo eine vertrauliche Datei schicken. Sie besitzt Leos geprüften öffentlichen Schlüssel.
Miras PGP-Programm erzeugt den Sitzungsschlüssel S und verschlüsselt damit die Datei. Anschließend schützt es S mit Leos öffentlichem Schlüssel. Leo verwendet seinen privaten Schlüssel, um S zurückzugewinnen. Erst danach kann sein Programm mit S die Datei entschlüsseln.
Miras eigener privater Schlüssel wird für diese Verschlüsselung nicht benötigt. Er wäre wichtig, wenn Mira die Datei zusätzlich signieren möchte.
Verschlüsseln für Leo: Leos öffentlicher Schlüssel wird verwendet. Entschlüsseln bei Leo: Leos privater Schlüssel wird benötigt.
Wie funktioniert eine digitale Signatur?
Eine verschlüsselte Nachricht kann vertraulich sein, ohne die Identität des Absenders zu beweisen. Eine digitale Signatur erfüllt eine andere Aufgabe: Sie macht Veränderungen prüfbar und verbindet die Daten mit einem privaten Signaturschlüssel.
Hashwert
Eine Hashfunktion bildet Daten beliebiger Länge auf einen Wert fester Länge ab. Schon eine kleine Änderung der Daten soll zu einem anderen Hashwert führen. Der Hashwert ist keine verschlüsselte Kopie, aus der sich die ursprüngliche Nachricht zurückrechnen lässt.
Signieren und Prüfen
- Das Programm berechnet den Hashwert der Nachricht.
- Aus diesem Hashwert erzeugt es mithilfe des privaten Schlüssels des Absenders die Signatur.
- Nachricht und Signatur werden gemeinsam übermittelt.
- Die empfangende Person berechnet selbst den Hashwert der erhaltenen Nachricht.
- Sie prüft die Signatur mit dem öffentlichen Schlüssel des behaupteten Absenders.
Eine erfolgreiche Prüfung zeigt, dass die geprüften Daten seit dem Signieren nicht verändert wurden und dass die Signatur zum passenden privaten Schlüssel gehört. Ob dieser Schlüssel wirklich der behaupteten Person gehört, muss jedoch gesondert geklärt sein.
Mira signiert eine Datei mit ihrem privaten Schlüssel. Leo prüft die Signatur mit Miras öffentlichem Schlüssel.
Wird die Datei nach dem Signieren verändert, passt die Signaturprüfung nicht mehr zum neu berechneten Hashwert. Leo erhält eine Warnung. Er sollte sie nicht ignorieren, denn sie kann auf eine Veränderung, einen falschen Schlüssel oder eine beschädigte Übertragung hinweisen.
Verschlüsselung und Signatur lassen sich kombinieren: Mira kann eine Nachricht für Leo verschlüsseln und sie zusätzlich mit ihrem eigenen privaten Schlüssel signieren.
Warum muss ein öffentlicher Schlüssel geprüft werden?
Ein öffentlicher Schlüssel darf offen verteilt werden. Das bedeutet aber nicht, dass jeder gefundene Schlüssel automatisch der angegebenen Person gehört.
Angenommen, ein Angreifer gibt seinen eigenen öffentlichen Schlüssel als Leos Schlüssel aus. Mira würde ihre Nachricht dann für den Angreifer verschlüsseln. Die Mathematik könnte korrekt funktionieren, obwohl die Zuordnung zur Person falsch ist.
Fingerprint
Ein Fingerprint ist eine kompakte Kennzeichnung eines öffentlichen Schlüssels. Zwei Personen können ihn über einen vertrauenswürdigen, unabhängigen Weg vergleichen, um die Schlüsselzuordnung zu prüfen.
Eine direkte Möglichkeit besteht darin, den Fingerprint persönlich oder über einen bereits vertrauenswürdigen Kanal zu vergleichen. OpenPGP kennt außerdem das Web of Trust: Personen bestätigen durch Signaturen, dass sie die Zuordnung eines öffentlichen Schlüssels geprüft haben.
Eine Signaturkette kann zusätzliches Vertrauen schaffen. Sie ersetzt aber keine sorgfältige Entscheidung darüber, wem du bei der Schlüsselprüfung vertraust. Eine lange Kette ist nicht automatisch zuverlässig.
Die Veröffentlichung eines Schlüssels beweist nicht seine Identität. Prüfe nicht nur, ob ein Schlüssel technisch funktioniert, sondern auch, wem er gehört.
Welche Grenzen hat PGP?
PGP kann Inhalte wirksam schützen, ist aber keine vollständige Sicherheits- oder Anonymitätslösung.
- Metadaten bleiben sichtbar: Bei E-Mails können unter anderem Kommunikationspartner und die Betreffzeile erkennbar bleiben. Schreibe deshalb keine vertraulichen Angaben in den Betreff.
- Keine automatische Anonymität: Verschlüsselung verbirgt den Inhalt, nicht zwingend die beteiligten Personen oder den Kommunikationszeitpunkt.
- Schlüsselverlust: Geht der private Schlüssel verloren und existiert keine sichere Wiederherstellungsmöglichkeit, können verschlüsselte Daten unzugänglich bleiben.
- Schlüsseldiebstahl: Gelangt der private Schlüssel samt nutzbarer Passphrase an Unbefugte, können diese seine Funktionen missbrauchen.
- Fehlbedienung: Ein ungeprüfter öffentlicher Schlüssel, eine ignorierte Signaturwarnung oder ein ungeschütztes Gerät kann den Schutz unterlaufen.
- Softwarefehler: Sichere Grundideen garantieren keine fehlerfreie Implementierung. Auch das Mailprogramm und die Darstellung von Nachrichten gehören zum Sicherheitskontext.
- Transport und Inhalt sind verschieden: PGP schützt vor allem den Inhalt Ende zu Ende. Transportverschlüsselung wie TLS schützt Verbindungen auf dem Übertragungsweg. Beide Schutzarten können sich ergänzen.
Historische Angaben zu Algorithmen, Programmbefehlen und empfohlenen Schlüssellängen altern. Deshalb lässt sich aus alten PGP-Versionen keine allgemeingültige heutige Konfiguration ableiten. Entscheidend bleiben eine gepflegte Implementierung, geschützte private Schlüssel und korrekt geprüfte Schlüsselzuordnungen.
Karteikasten
Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.
Alles auf einen Blick
- PGP
- Hybride Verschlüsselung: Sitzungsschlüssel schützt den Inhalt, öffentlicher Schlüssel schützt den Sitzungsschlüssel
- Empfangen: privater Empfängerschlüssel gibt den Sitzungsschlüssel frei
- Signatur: Hashwert und privater Senderschlüssel ermöglichen die Prüfung
- Vertrauen: Fingerprint oder geprüfte Bestätigungen ordnen Schlüssel einer Person zu
- Grenzen: Metadaten, Bedienfehler, Schlüsselverlust und Softwarefehler bleiben relevant
- Gesamtschutz: Inhaltsverschlüsselung und Transportverschlüsselung ergänzen sich
Abschluss-Check
Wenn du alle drei Fälle begründen kannst, kannst du den vollständigen PGP-Lernweg erklären: hybrid verschlüsseln, Signaturen getrennt prüfen, Schlüssel zuverlässig zuordnen und praktische Grenzen beachten.
Mit Google fortfahren