Pretty Good Privacy
Pretty Good Privacy (OpenPGP) ist der bekannteste und am weitesten verbreitete offene Standard für die Verschlüsselung von Dateien und E-Mails. Die bekanntesten Implementierungen dieser asynchronen Kryptografie nach dem Kerckhoff-Prinzip ist GnuPG.
die Schlüssel
Ein kleines Video erklärt das Prinzip der verteilten Briefumschläge/Schlösser (alias öffentliche Schlüssel) und der nicht veröffentlichten privaten Schlüssel.
Privater Schlüssel
Ist ein Geheimer Schlüssel mit dem eine digitale Unterschrift unter beliebige Daten gesetzt werden kann. Diese kann dann durch Besitzer des Öffentlichen Schlüssels mathematisch verifiziert werden. Dieses Signatur-Verfahren stellt die Integrität der unterschriebenen Daten sicher.
Öffentlicher Schlüssel
Bildlich gesprochen ist das die Blaupause für einen Briefumschlag den nur der Besitzer des privaten Schlüssels öffnen kann. Darin können beliebige Daten abgelegt oder versendet werden, damit kann die Vertraulichkeit von Daten gesichert werden.
Je nach Verwendungszweck sind diese Schlüssel für jeden auffindbar - durch einen Namen oder sogar ergänzende Informationen wie E-Mail-Adressen, Kommentare oder Bilder gekennzeichnet - oder nur an gewünschte Kommunikationspartner übergeben.
Die tatsächliche Erkennung des Schlüssels ist jedoch über den Fingerabdruck möglich.
Web of Trust
Das Web of Trust ist ein Netzwerk gegenseitigen Vertrauens. Es basiert auf der Annahme, dass
- Menschen sich über n Ecken kennen und
- der Aufwand zur Überprüfung von Fingerabdrücken der Schlüssel damit beherrschbarer wird
- Menschen ohne persönliche Bekanntschaft über gemeinsame Bekannte systematisch verifizieren können ob das Gegenüber vertrauenswürdig ist .
Diese Annahmen sind natürlich nicht immer zutreffend.
GnuPG
Praxis mit GnuPG
In diesem Abschnitt befinden sich Inhalte, welche noch angepasst werden müssen, da Sie auf noch nicht verfassten Inhalten basieren. |
GnuPG mit GNU/Linux
Einen guten Start bieten die Seiten zur Erklärung:
man gpg
gpg --help
Einstellungen zu GnuPG
Für Einstellungen des Nutzers sollte die Datei ~/.gnupg/gpg.conf unbedingt selbst bearbeitet werden.
Näheres auf Empfehlung von riseup
Schlüssel erstellen
Basics
Auf der Kommandozeile mit GnuPG sieht das dann so aus:
gpg --gen-key
- 1
- 4096
- 1y
- j
- (irgend)ein Name (z.B. der Nutzer-Anteil der Email-Adresse)
- mailadresse@fakultativ.foo
- Kommentare sind oft unsinn
- F
- Das sichere Passwort
- Das sichere Passwort
- warten auf Zufallswerte, geht schneller wenn man nebenbei an dem Rechner arbeitet oder spezielle Hardware dafür hat
Mit Enigmail (in Thunderbird etc)
Ambitioniert
tbc: mit gesondertem Schlüssel zum Wiederrufen
Kinderleicht
Der Schwierigkeitsgrad der Handhabung ist eine Frage der Sicherheit. Je einfacher das System ist, desto weniger Sicherheitsmaßnahmen (technisch, organisatorisch) können angewendet werden.
Dennoch macht es Sinn auch ohne große Sicherheitsvorkehrungen Kryptografie zu verwenden, ein gutes Beispiel hierfür ist p≡p (noch im Crowdfunding).
Private Schlüssel auflisten
Wenn man wissen will, welche privaten Schlüssel dem Nutzer bereitstehen oder ggf. noch importiert werden müssen:
gpg -K
Wiederrufszertifikat erstellen
tbc ...
Wiederrufszertifikat benutzen
Schlüssel von Kommunikationspartnern suchen/importieren
aus einer Datei
gpg --import ${datei}
von einem Server
Schlüssel können auf zwei Arten von Keyservern importiert werden
gpg --search-keys ${emailadresse}
gpg --recv-key ${key-id}
Schlüsseln von Kommunikationspartnern vertrauen - lokal signieren
- lokal signieren mit lsign - lokale Signaturen werden nicht auf Server übertragen
Statt lsign kann auch sign verwendet werden, aber diese Signatur wird dann ggf. öffentlich. Dies kann im Sinne des WoT aber auch gewollt sein.
- $
gpg --edit-key ${key-id oder bestandteil von email bzw. name}
- >
help
- >
trust
- ?
3
- >
lsign
- ?
j
- :
${Das geheime Passwort}
- save
(Öffentlich) Signieren
Auch hier wird dem Schlüssel Vertrauen verliehen, aber dies ggf. öffentlich.
Daher sollte hier auch sorgfältig geprüft werden, ob die Person zu dem Schlüssel gehört den man gerade unterschreiben möchte.
- Dazu eignet sich grundsätzlich mindestens der Fingerprint und ggf. die anderen Eigenschaften des Schlüssel
gpg --fingerprint ${key-id oder ein bestandteil von name oder mail-adresse}
Dieser angezeigte Fingerprint sollte mit der Angabe der Person (z.B. vorgelesen, abgedruckt auf einer Visitenkarte etc.) verglichen werden!
Zusätzliche Eigenschaften wie Algorithmus und Schlüssellänge sollten auch übereinstimmen, gerade ungewöhnliche Schlüssellängen könnten sogar ein Hinweis auf einen gefälschten Schlüssel (forget key) sein.
Der Rest ist einfach; s.o., verwende sign
statt lsign
.
Schlüssel an Server senden
gpg --send-keys ${liste von schlüssel-ids}
Signatur einer Nachricht überprüfen
eine Nachricht verschlüsseln
eine Nachricht entschlüsseln
GnuPG mit Windows
mit gpg4win
- z.B. für Outlook
Siehe auch
Etwas detaillierter bieten andere Quellen Aufklärung:
- Verteidigung gegen die dunklen Künste mit der FSF in vielen Sprachen
- Schritt für Schritt Anleitung zur Pretty Good Privacy-Einrichtung von der FSFW Dresden
- Die Dokumentation des Projektes hat schon von Anbeginn gute Gründe geliefert
- Anleitung von Netzpolitik.org
- ein www-Kurs zu PGP
- on managing PGP keys
Technische Hintergründe zu und geschichtliche Entwicklung von Verschlüsselungstechniken