GnuPG Datei Ver- und Entschlüsselung und Nutzung auf zweitem Rechner

GnuPG zur Verschlüsselung einzusetzen ist sicherlich eine gute Idee. Sei es, dass man einzelne Dateien auf dem Rechner verschlüsselt haben möchte, sei es, dass seine eMails verschlüsselt sind. Einsatzgebiete gibt es viele.
Bei der Verschlüsselung mit einem öffentlichen und einem privaten Schlüssel ist zur Entschlüsselung der geheim zu haltende „Private Schlüssel“ vonnöten. Ohne den geht nichts. Ist der weg, hat man eine große Ansammlung unbrauchbarer Daten. Also hat man (hoffentlich zumindest!) ein Backup des Schlüssels auf einem anderen, möglichst auch verschlüsselten Medium. Und je nach Sicherheitsempfinden befindet sich noch die ein oder andere Kopie ausgelagert an anderen Standorten.

Nun kann es ja immer mal sein, dass man seinen privaten Schlüssel nicht nur auf seinem Hauptrechner sondern auch z.B. auf seinem Laptop einsetzen möchte. Andernfalls könnte man auf dem Hauptrechner verschlüsselte und auf den Laptop kopierte Daten dort nicht entschlüsseln. Umgekehrt, sofern man den öffentlichen Schlüssel auf dem Laptop hat kann man natürlich Daten verschlüsseln, die sich auf dem Hauptrechner entschlüsseln ließen. Also nicht wirklich praktikabel, wenn auch für einige Zwecke vollkommen ausreichend.

Wie bekomme ich nun den privaten Schlüssel von einem Rechner auf den anderen? Reicht ein einfaches Kopieren des ~/.gnupg (.gnupg im Home-Directory) Verzeichnisses auf den zweiten Rechner?

Leider reicht das nicht. Der Schlüsselaustausch ist etwas umständlicher als ein einfaches kopieren.
Unser Quell- und Zielrechner sind in beiden Fällen Linux Rechner mit einem Ubuntu drauf. Natürlich kann das auch zwischen Mac und Linux, Linux und BSD usw. durchgeführt werden. U.U. muss man jedoch kleine Änderungen bei Pfadangaben (Home-Directory beim Mac ist z.B. /Users/username) machen.


  Erstellung einer verschlüsselten Datei

Wir erstellen auf dem Quellsystem (sofern noch nicht vorhanden) eine Testdatei. Textdatei mit Inhalt sollte für den Test ausreichend sein. Also mit seinem Lieblingseditor eine Datei anlegen, wir nennen Sie geheim.
Danach wird diese auf der Konsole mit GnuPG verschlüsselt.

Shell ~$ gpg -e -r eigene@mailadresse.abc geheim

Mit diesem Aufruf wird die Textdatei test für den Empfänger eigene@mailadresse.abc mit dessen öffentlichen Schlüssel verschlüsselt. Die verschüsselte Datei heißt nun geheim.gpg, der File-Type ist

Shell ~$ file geheim.gpg
geheim.gpg: GPG encrypted data

Zum Testen kann man versuchen, sich den Inhalt ausgeben zu lassen. Man wird nichts mehr sehen können.
Die unverschlüsselte Originaldatei sollten wir nun natürlich löschen (rm geheim), damit nicht versehentlich die unverschlüsselte Originaldatei im System liegt….


  Test der Entschlüsselung einer verschlüsselten Datei

Wir haben auf dem Quellrechner (also dort, wo der geheime Schlüssel schon existiert) die verschluesselte Datei geheim.gpg erstellt. Diese wurde mit GnuPG verschlüsselt und ist dort auf dem Rechner mit

Shell ~$ gpg geheim.gpg

entschlüsselbar. Der Inhalt ist lesbar.
Nun kann man diese Datei testweise auf den Zielrechner kopieren und dort das Gleiche versuchen. Der Versuch wird fehlschlagen, gpg meldet einem den fehlenden Schlüssel für die Entschlüsselung der Datei. Der Inhalt bleibt uns verborgen.


Nun kommen wir zum eigentlichen Thema: Export des geheimen Schlüssels, Transport (Austausch des Schlüssels) und Import. Leider etwas schlecht zu erkennen: Vor den mitgegebenen Optionen befinden sich zwei ‚-‚ Zeichen. Also ein „Doppelminus“ vor den Optionen, unbedingt drauf achten!

  • 1.) Secret Keys anzeigen lassen

    Wir lassen uns auf der Konsole des Quellsystems die im Keyring befindlichen geheimen Schlüssel anzeigen:

    Shell ~$ gpg –list-secret-keys

    Es werden einem die geheimen Schlüssel angezeigt, jeweils mit einer Key-ID. Beispielsweise:

    /home/username/.gnupg/secring.gpg
    ——————————–
    sec 1024D/1234ABCD 2011-01-01
    uid Vorname Nachname eigene@mailadresse.abc
    ssb 2048g/A1B2C3D4E5 2011-01-01
    (Eine Übersicht aller geheimen Schlüssel mit Erstellungsdatum.)


    Will man sich alle im eigenen Keyring (Schlüsselbund) befindlichen Schlüssel anzeigen lassen:

    Shell ~$ gpg –list-keys
    (Listet alle öffentlichen Schlüssel auf, die im Keyring vorhanden sind.)


  • 2.) Export des geheimen Schlüssels
    Der Geheime Schlüssel muss nun exportiert werden. Wir exportieren ihn mit einer ASCII Hülle und speichern den Export nach /home/username/EXPORTIERTER-SECRET-KEY.asc. Hierzu geben wir die Key-ID und den Pfad zur exportierten Datei an. Wir gehen davon aus, dass wir uns in /home/username befinden:

    Shell ~$ gpg –armor –export-secret-keys 1234ABCD > EXPORTIERTER-SECRET-KEY.asc

    (alles in einer Zeile angeben; auf das Doppelminus vor den Optionen achten!)

    Erläuterung zum Aufruf:
    1234ABCD ist die GPG-Key-ID (0x1234ABCD). gleicher Export findet statt, wenn man die A1B2C3D4E5 angibt.
    Alternativ kann man statt der Key-ID auch die eMail-Adresse (eigene@mailadresse.abc) eingeben.
    Soll der geheime Schlüssel nicht mit einer ASCII-Hülle ausgegeben und exportiert werden, so lässt man –armor einfach weg.


  • 3.) Schlüsseltransport /-austausch von Quell- aus Zielrechner

    Nun muss der vorher exportierte Schlüssel auf einem sicheren Wege zwischen dem Quell- und dem Zielrechner ausgetauscht werden. Und mit sicher ist auch wirklich sicher gemeint.
    Es bringt nichts, wenn der Weg nun über ungesicherte Transportwege stattfindet. Schließlich ist der geheime Schlüssel unter allen Umständen geheim zu halten. Wird der ausversehen anderen zugänglich gemacht, so kann man alle seine verschlüsselten Daten als unsicher deklarieren und sollte die dringend nach einem Schlüsselwiderruf und -austausch neu verschlüsseln!
    Eine sichere Möglichkeit ist der Transfer per scp (Secure-Copy). Oder über einen USB Stick mit verschlüsseltem Dateisystem.
    Also auf keinen Fall auf die dumme Idee kommen, die Datei auf einen öffentlichen Server per FTP zu transferieren oder ähnliches.
    Und ebenfalls wichtig: Am Ende der ganzen Geschichte den exportierten Schlüssel wieder sicher löschen!
    Weiterhin zu bedenken: Hat man den exportierten Schlüssel zum Beispiel auf einem Fremdsystem liegen, so muss man sein Vertrauenslevel zu diesem System vorher überdenken. Hier besteht immer das Risiko, dass der Schlüssel anderen in den Hände fällt, die Daten nicht gelöscht werden (Dateisystem mit ZFS Snapshots, just in den wenigen Minuten wird ein Snapshot erstellt und dieser kann anderen zugänglich gemacht werden usw. usf.) und der Schlüssel dmait nicht mehr als sicher einzustufen ist. Sein eigenes paranoides Verhalten sollte hier Alarm schlagen 😉


  • 4.) Import des Schlüssels auf dem Zielsystem

    Der vorher exportierte und über einen sicheren Weg übertragene Schlüssel muss nun auf dem Zielsystem in den Schlüsselbund importiert werden

    Shell ~$ gpg –import EXPORTIERTER-SECRET-KEY.asc
    (Schlüssel wir dem Schlüsselbund hinzugefügt.)

    Die Rückmeldung sollte einem den Erfolg mitteilen. Nun wird der geheime Schlüssel in der Auflistung der geheimen Schlüssel mit ausgegeben und kann zur Entschlüsselung der Testdatei geheim.gpg genutzt werden.


Test der Entschlüsselung

Wir testen nun die Entschlüsselung der bis vor den Import sicher verschlüsselten Datei:

Shell ~$ gpg geheim.gpg

Nach Eingabe des Passwortes wird die Datei geheim.gpg entschlüsselt und liegt uns wieder als entschlüsselte Datei geheim vor. Der Inhalt ist wieder lesbar, kann verändert und gespeichert werden.
Bingo 😉


Links
http://www.gnupg.org

Dieser Beitrag wurde unter Dokus und Tipps, Linux/ UNIX abgelegt und mit , , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

1 Antwort zu GnuPG Datei Ver- und Entschlüsselung und Nutzung auf zweitem Rechner

  1. Pingback: Das Entschlüsseln von Dateien als virtueller Schlüssel | RSS Verzeichnis

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert