Schützen Sie Ihre sensiblen Daten mit dem Linux-Befehl gpg
. Nutzen Sie eine hochmoderne Verschlüsselung, um Ihre privaten Informationen zu sichern. Wir zeigen Ihnen, wie Sie mit gpg
Schlüssel verwalten, Dateien verschlüsseln und entschlüsseln können.
Der Gnu Privacy Guard (GPG) ermöglicht es Ihnen, Dateien sicher zu verschlüsseln, sodass nur der autorisierte Empfänger diese wieder entschlüsseln kann. Im Detail implementiert GPG
den OpenPGP-Standard. Es baut auf einem Programm namens Pretty Good Privacy (PGP) auf, welches 1991 von Phil Zimmermann entwickelt wurde.
Das Prinzip von GPG
basiert auf der Verwendung von zwei Verschlüsselungsschlüsseln für jede Person. Jeder Nutzer besitzt einen privaten und einen öffentlichen Schlüssel. Der öffentliche Schlüssel kann Daten entschlüsseln, die mit dem zugehörigen privaten Schlüssel verschlüsselt wurden.
Um eine Datei sicher zu versenden, verschlüsseln Sie diese mit Ihrem privaten Schlüssel sowie mit dem öffentlichen Schlüssel des Empfängers. Für die Entschlüsselung benötigt der Empfänger seinen privaten Schlüssel und Ihren öffentlichen Schlüssel.
Hieraus ergibt sich, dass öffentliche Schlüssel geteilt werden müssen. Sie brauchen den öffentlichen Schlüssel des Empfängers, um die Datei zu verschlüsseln, und der Empfänger benötigt Ihren öffentlichen Schlüssel, um sie zu entschlüsseln. Es ist unbedenklich, Ihre öffentlichen Schlüssel öffentlich zu machen. Tatsächlich existieren für diesen Zweck spezielle Public-Key-Server. Private Schlüssel hingegen müssen streng geheim gehalten werden. Ihr öffentlicher Schlüssel darf publik sein, aber Ihr privater Schlüssel muss sicher und vor unbefugtem Zugriff geschützt aufbewahrt werden.
Die Einrichtung von GPG
erfordert einige Schritte mehr als die eigentliche Nutzung. Glücklicherweise ist die Konfiguration meist nur einmal erforderlich.
Erstellung Ihrer Schlüssel
Der Befehl gpg
ist in allen gängigen Linux-Distributionen vorinstalliert, wie beispielsweise Ubuntu, Fedora und Manjaro.
Die Verwendung von GPG
ist nicht auf E-Mails beschränkt. Sie können auch Dateien verschlüsseln und diese zum Download bereitstellen oder auf physischem Wege weitergeben. Dennoch müssen Sie die generierten Schlüssel einer E-Mail-Adresse zuordnen. Wählen Sie hierfür die gewünschte E-Mail-Adresse aus.
Hier ist der Befehl zur Erstellung Ihrer Schlüssel. Die Option --full-generate-key
initiiert eine interaktive Sitzung in Ihrem Terminalfenster, in der Ihre Schlüssel generiert werden. Sie werden aufgefordert, eine Passphrase einzugeben. Diese Passphrase sollten Sie sich unbedingt merken. Eine Kombination aus drei oder vier einfachen Wörtern, verbunden durch Satzzeichen, ist ein guter und robuster Ansatz für Passwörter und Passphrasen.
gpg --full-generate-key
Sie werden aufgefordert, einen Verschlüsselungstyp aus einem Menü auszuwählen. Wenn es keinen triftigen Grund für eine andere Wahl gibt, geben Sie 1
ein und drücken Sie die Eingabetaste.
Anschließend müssen Sie die Bitlänge für die Verschlüsselungsschlüssel wählen. Akzeptieren Sie den Standardwert, indem Sie die Eingabetaste drücken.
Sie müssen nun die Gültigkeitsdauer des Schlüssels angeben. Wenn Sie das System testen, wählen Sie eine kurze Gültigkeit, z.B. 5
für fünf Tage. Für einen dauerhaften Schlüssel wählen Sie eine längere Dauer, z.B. 1 year
für ein Jahr. Der Schlüssel ist dann 12 Monate gültig und muss danach erneuert werden. Bestätigen Sie Ihre Auswahl mit Y
.
Nun müssen Sie Ihren Namen und Ihre E-Mail-Adresse eingeben. Optional können Sie noch einen Kommentar hinzufügen.
Sie werden aufgefordert, Ihre Passphrase einzugeben. Diese benötigen Sie jedes Mal, wenn Sie mit Ihren Schlüsseln arbeiten, daher ist es wichtig, dass Sie diese nicht vergessen.
Klicken Sie auf die Schaltfläche „OK“, nachdem Sie Ihre Passphrase eingegeben haben. Dieses Fenster wird Ihnen bei der Arbeit mit gpg
öfter begegnen. Merken Sie sich daher Ihre Passphrase gut.
Die Schlüsselgenerierung erfolgt und Sie kehren zur Kommandozeile zurück.
Erstellung eines Widerrufszertifikats
Wenn Ihr privater Schlüssel in fremde Hände gerät, müssen Sie die alten Schlüssel von Ihrer Identität trennen und neue erstellen. Hierfür benötigen Sie ein Widerrufszertifikat. Wir erstellen dies jetzt und bewahren es an einem sicheren Ort auf.
Der Option --output
muss der Dateiname für das zu erstellende Zertifikat folgen. Die Option --gen-revoke
veranlasst gpg
, ein Widerrufszertifikat zu erstellen. Sie müssen die E-Mail-Adresse angeben, die Sie beim Generieren der Schlüssel verwendet haben.
gpg --output ~/revocation.crt --gen-revoke [email protected]
Sie werden aufgefordert, die Erstellung des Zertifikats zu bestätigen. Drücken Sie Y
und die Eingabetaste. Sie werden nach dem Grund für die Erstellung des Zertifikats gefragt. Da wir dies präventiv tun, wissen wir den genauen Grund nicht. Wählen Sie 1
als plausiblen Grund und drücken Sie die Eingabetaste.
Sie können optional eine Beschreibung hinzufügen. Beenden Sie die Eingabe der Beschreibung mit zweimaligem Drücken der Eingabetaste.
Sie werden aufgefordert, Ihre Einstellungen zu bestätigen. Drücken Sie Y
und die Eingabetaste.
Das Zertifikat wird generiert. Sie erhalten eine Meldung, die die Notwendigkeit der sicheren Aufbewahrung des Zertifikats betont.
In diesem Zusammenhang wird eine Person namens Mallory erwähnt. In Diskussionen über Kryptographie werden häufig Bob und Alice als die beiden Kommunikationspartner verwendet. Es gibt aber noch weitere Figuren. Eve ist eine Lauscherin, Mallory ist ein böswilliger Angreifer. Wichtig ist, dass Sie das Zertifikat sicher aufbewahren.
Wir entziehen dem Zertifikat nun alle Rechte, außer denen unseres Nutzers.
chmod 600 ~/revocation.crt
Überprüfen wir mit ls
, welche Rechte die Datei nun besitzt:
ls -l
Das ist ideal. Außer dem Dateibesitzer – uns – kann niemand etwas mit dem Zertifikat anfangen.
Importieren eines öffentlichen Schlüssels
Um eine Nachricht zu verschlüsseln, die eine andere Person entschlüsseln kann, benötigen Sie deren öffentlichen Schlüssel.
Wenn Ihnen der Schlüssel als Datei zur Verfügung gestellt wurde, können Sie ihn mit dem folgenden Befehl importieren. In diesem Beispiel heißt die Schlüsseldatei „mary-geek.key“.
gpg --import mary-geek.key
Der Schlüssel wird importiert und der Name sowie die E-Mail-Adresse, die mit diesem Schlüssel verknüpft sind, werden angezeigt. Diese Angaben sollten natürlich mit der Person übereinstimmen, von der Sie den Schlüssel erhalten haben.
Es ist auch möglich, dass die Person, von der Sie einen Schlüssel benötigen, diesen auf einen öffentlichen Schlüsselserver hochgeladen hat. Diese Server speichern die öffentlichen Schlüssel von Personen weltweit. Die Server synchronisieren sich regelmäßig, sodass die Schlüssel universell verfügbar sind.
Der öffentliche Schlüsselserver des MIT ist ein beliebter Server, der regelmäßig synchronisiert wird. Die Suche dort sollte in der Regel erfolgreich sein. Wenn ein Schlüssel erst kürzlich hochgeladen wurde, kann es einige Tage dauern, bis er angezeigt wird.
Der Option --keyserver
muss der Name des zu durchsuchenden Schlüsselservers folgen. Der Option --search-keys
muss entweder der Name der gesuchten Person oder deren E-Mail-Adresse folgen. Hier verwenden wir die E-Mail-Adresse:
gpg --keyserver pgp.mit.edu --search-keys [email protected]
Es wird eine Liste der gefundenen Übereinstimmungen angezeigt, die nummeriert sind. Um einen Eintrag zu importieren, geben Sie die entsprechende Nummer ein und bestätigen Sie mit der Eingabetaste. In diesem Fall gibt es nur eine Übereinstimmung, also geben wir 1
ein und drücken die Eingabetaste.
Der Schlüssel wird importiert und wir sehen den Namen und die E-Mail-Adresse, die mit diesem Schlüssel verknüpft sind.
Verifizierung und Signierung eines Schlüssels
Wenn Ihnen eine Person, die Sie kennen, eine öffentliche Schlüsseldatei gegeben hat, können Sie davon ausgehen, dass sie dieser Person gehört. Wenn Sie den Schlüssel von einem öffentlichen Schlüsselserver heruntergeladen haben, sollten Sie möglicherweise verifizieren, ob der Schlüssel tatsächlich der Person gehört, für die er bestimmt ist.
Die Option --fingerprint
veranlasst gpg
, eine kurze Folge von zehn Gruppen mit je vier hexadezimalen Zeichen zu erstellen. Sie können die Person bitten, Ihnen den Fingerabdruck ihres Schlüssels mitzuteilen.
Anschließend können Sie mit der Option --fingerprint
denselben Fingerabdruck generieren und vergleichen. Wenn die beiden übereinstimmen, wissen Sie, dass der Schlüssel der entsprechenden Person gehört.
gpg --fingerprint [email protected]
Der Fingerabdruck wird generiert.
Wenn Sie sich sicher sind, dass der Schlüssel echt ist und der Person gehört, der er zugeordnet sein soll, können Sie den Schlüssel signieren.
Auch ohne Signatur können Sie den Schlüssel zum Ver- und Entschlüsseln von Nachrichten von und an die Person nutzen. Allerdings wird gpg
Sie jedes Mal fragen, ob Sie fortfahren möchten, da der Schlüssel nicht signiert ist. Wir verwenden die Option --sign-key
und geben die E-Mail-Adresse der Person an, damit gpg
weiß, welcher Schlüssel zu signieren ist.
gpg --sign-key [email protected]
Sie sehen Informationen zum Schlüssel und zur Person und werden aufgefordert zu bestätigen, dass Sie den Schlüssel signieren möchten. Drücken Sie Y
und die Eingabetaste, um den Schlüssel zu signieren.
So teilen Sie Ihren öffentlichen Schlüssel
Um Ihren Schlüssel als Datei weiterzugeben, müssen Sie ihn aus Ihrem lokalen gpg
-Schlüsselspeicher exportieren. Hierfür verwenden wir die Option --export
, gefolgt von der E-Mail-Adresse, mit der Sie den Schlüssel generiert haben. Der Option --output
muss der Name der Datei folgen, in die der Schlüssel exportiert werden soll. Die Option --armor
weist gpg
an, eine ASCII-Ausgabe anstelle einer Binärdatei zu erstellen.
gpg --output ~/dave-geek.key --armor --export [email protected]
Werfen wir mit less
einen Blick in die Schlüsseldatei:
less dave-geek.key
Der Schlüssel wird in seiner ganzen Pracht angezeigt:
Sie können Ihren öffentlichen Schlüssel auch über einen öffentlichen Schlüsselserver teilen. Die Option --send-keys
sendet den Schlüssel an den Schlüsselserver. Der Option --keyserver
muss die Webadresse des öffentlichen Schlüsselservers folgen. Um anzugeben, welcher Schlüssel gesendet werden soll, muss der Fingerabdruck des Schlüssels in der Kommandozeile bereitgestellt werden. Beachten Sie, dass zwischen den Gruppen von vier Zeichen keine Leerzeichen stehen.
(Den Fingerabdruck Ihres Schlüssels können Sie mit der Option --fingerprint
anzeigen lassen.)
gpg --send-keys --keyserver pgp.mit.edu 31A4E3BE6C022830A804DA0EE9E4D6D0F64EEED4
Sie erhalten eine Bestätigung, dass der Schlüssel gesendet wurde.
Dateien verschlüsseln
Endlich können wir eine Datei verschlüsseln und an Mary senden. Die Datei heißt Raven.txt.
Die Option --encrypt
weist gpg
an, die Datei zu verschlüsseln, und die Option --sign
weist gpg
an, die Datei mit Ihren Daten zu signieren. Die Option --armor
weist gpg
an, eine ASCII-Datei zu erstellen. Der Option -r
(Empfänger) muss die E-Mail-Adresse der Person folgen, an die Sie die Datei senden möchten.
gpg --encrypt --sign --armor -r [email protected]
Die Datei wird mit demselben Namen wie das Original erstellt, jedoch mit dem Suffix „.asc“ versehen. Werfen wir einen Blick hinein.
less Raven.txt.asc
Die Datei ist völlig unlesbar und kann nur von jemandem entschlüsselt werden, der Ihren öffentlichen Schlüssel und Marys privaten Schlüssel besitzt. Die einzige Person, die beides hat, sollte Mary sein.
Wir können die Datei nun an Mary senden, in der Gewissheit, dass sie niemand anderes entschlüsseln kann.
Dateien entschlüsseln
Mary hat eine Antwort geschickt. Diese befindet sich in einer verschlüsselten Datei namens coded.asc. Wir können sie mit der Option --decrypt
sehr einfach entschlüsseln. Die Ausgabe leiten wir in eine andere Datei namens plain.txt um.
Beachten Sie, dass wir gpg
nicht mitzuteilen brauchen, von wem die Datei stammt. gpg
kann dies aus dem verschlüsselten Inhalt der Datei ableiten.
gpg --decrypt coded.asc > plain.txt
Sehen wir uns die Datei plain.txt an:
less plain.txt
Die Datei wurde erfolgreich entschlüsselt.
Aktualisieren Ihrer Schlüssel
In regelmäßigen Abständen können Sie gpg
auffordern, die vorhandenen Schlüssel mit einem öffentlichen Schlüsselserver zu vergleichen und alle geänderten Schlüssel zu aktualisieren. Sie können dies alle paar Monate oder nach Erhalt eines Schlüssels von einem neuen Kontakt durchführen.
Die Option --refresh-keys
veranlasst gpg
, die Prüfung durchzuführen. Der Option --keyserver
muss der Schlüsselserver Ihrer Wahl folgen. Da die Schlüssel zwischen den öffentlichen Servern synchronisiert werden, ist es unerheblich, welchen Server Sie auswählen.
gpg --keyserver pgp.mit.edu --refresh-keys
gpg
antwortet mit einer Liste der überprüften Schlüssel und informiert Sie, ob sich welche geändert oder aktualisiert haben.
Datenschutz ist ein wichtiges Thema
Datenschutz ist heutzutage ein allgegenwärtiges Thema. Egal aus welchen Gründen Sie Ihre Daten schützen möchten, gpg
bietet eine einfache Möglichkeit, Ihre Dateien und Kommunikation mit einer sehr starken Verschlüsselung zu sichern.
Es gibt weitere Anwendungsmöglichkeiten für gpg
. Es gibt ein Plugin für Thunderbird namens Enigmail. Dieses integriert sich direkt in Ihre gpg
-Konfiguration, sodass Sie E-Mail-Nachrichten direkt aus Thunderbird verschlüsseln können.