Smartcard GPG Verschlüsselung mit Thunderbird unter Ubuntu
Posted: Sun 9. Sep 2018, 10:13
aktualisierte Fassung vom 04.03.2019
Herzlichen Dank für die Anleitung an Volker Zeihs vom TIF-IT, dem Hackerspace in Gotha
Basisvoraussetzung schaffen
Testen ob der Reader von Linux erkannt wird
Grundlangen GPG Verschlüsselung + Extra
Quelle: https://alexcabal.com/creating-the-perfect-gpg-keypair/
Abschnitt GPG Zertifikate
Masterkey anlegen
Generierte Private Keys abfragen
Generierte Public Keys abfragen
Weitere E-Mails mit aufnehmen
Name und Email angeben
Optional kann auch ein Foto mit dem Key verknüpft werden. Dieses wird auf dem Keyserver abgelegt.
Option kann Definition welche Hashfunktion für den Key verwendet werden soll
Änderungen übernehmen und Konsole verlassen
Subkeys generieren
Noch mehr Subkeys gernerieren (mehr Subkeys, mehr gut)
Noch mal mehr Subkeys gnerieren für SSH
Wir wollen nur Authentifizieren. Es gibt keine Anzeige, welche anzeigt welche Option gerade aktiv ist. Daher muss jede Option einzeln kontrolliert werden durch Auswahl S V A
Beispiel:
Link: https://pgp.mit.edu
Wir erstellen ein Widerrufszertifikat zum widerrufen des Schlüssels (sehr sehr gut weglegen!!!)
Backup anlegen
Abschnitt Smartcard
Einrichten der Smartcard
Keys auf Karte überspielen
Inhalt einfügen
Setzen der Umgebungsvariable, damit SSH den GPG Agent findet
Ergänzung:
wenn gpg2 > fetch nicht funktioniert
Mögliche Bezugsquelle für Smartcards => floss-shop.de
Der Talk vom TIF-IT auf den Datenspuren 2018
Link: https://media.ccc.de/v/DS2018-9323-der_ ... _smartcard
Herzlichen Dank für die Anleitung an Volker Zeihs vom TIF-IT, dem Hackerspace in Gotha
Basisvoraussetzung schaffen
Code: Select all
sudo apt install pcsc* gpg2* gnupg2 scdaemon
Code: Select all
pcsc_scan
Grundlangen GPG Verschlüsselung + Extra
Quelle: https://alexcabal.com/creating-the-perfect-gpg-keypair/
Abschnitt GPG Zertifikate
Masterkey anlegen
Code: Select all
gpg2 --gen-key
Code: Select all
gpg2 -K
Code: Select all
gpg2 -k
Code: Select all
gpg2 --edit-key
Code: Select all
adduid
Optional kann auch ein Foto mit dem Key verknüpft werden. Dieses wird auf dem Keyserver abgelegt.
Code: Select all
addphoto
Code: Select all
setpref SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
Code: Select all
save
Subkeys generieren
Code: Select all
gpg2 --edit-key --expert h3rb3rn@brainlard.de
Bitte wählen Sie, welche Art von Schlüssel Sie möchten:
> (4) RSA (nur signieren/beglaubigen)
Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll.
> 3y
Noch mehr Subkeys gernerieren (mehr Subkeys, mehr gut)
Code: Select all
addkey
Bitte wählen Sie, welche Art von Schlüssel Sie möchten:
> 6
Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll.
> 3y
Noch mal mehr Subkeys gnerieren für SSH
Code: Select all
addkey
Achtung: jetzt wird es kompliziertBitte wählen Sie, welche Art von Schlüssel Sie möchten:
>8
Mögliche Vorgänge eines RSA-Schlüssels: Signieren Verschl. Authentisierung
Wir wollen nur Authentifizieren. Es gibt keine Anzeige, welche anzeigt welche Option gerade aktiv ist. Daher muss jede Option einzeln kontrolliert werden durch Auswahl S V A
Beispiel:
Durch Auswahl S hatten wir Signieren deaktiviert, nur noch Verschlüsselung ist aktiv. Wir wollen aber Authentifizieren, daher müssen wir mit V auch Verschlüsselung deaktivieren und mit A die Authentifizierung aktivieren.Ihre Auswahl? S
Mögliche Vorgänge eines RSA-Schlüssels: Signieren Verschl. Authentisierung
Derzeit erlaubte Vorgänge: Verschl.
Console verlassen und Änderungen übernehmenIhre Auswahl? V
Mögliche Vorgänge eines RSA-Schlüssels: Signieren Verschl. Authentisierung
Derzeit erlaubte Vorgänge:
(S) Umschalten der Signaturnutzbarkeit
(V) Umschalten der Verschlüsselungsnutzbarkeit
(A) Umschalten der Authentisierungsnutzbarkeit
(Q) Beenden
Ihre Auswahl? A
Mögliche Vorgänge eines RSA-Schlüssels: Signieren Verschl. Authentisierung
Derzeit erlaubte Vorgänge: Authentisierung
Mögliche Vorgänge eines RSA-Schlüssels: Signieren Verschl. Authentisierung
Derzeit erlaubte Vorgänge: Authentisierung
(S) Umschalten der Signaturnutzbarkeit
(V) Umschalten der Verschlüsselungsnutzbarkeit
(A) Umschalten der Authentisierungsnutzbarkeit
(Q) Beenden
Ihre Auswahl?
> Q
Code: Select all
save
Link: https://pgp.mit.edu
Wir erstellen ein Widerrufszertifikat zum widerrufen des Schlüssels (sehr sehr gut weglegen!!!)
Code: Select all
gpg2 -a --output filename.gpg-revocation-certifacate --gen-revoke deine@email.tld
gpg2 -a --output revoke_cert_deine_at_emailadresse-tld --gen-revoke deine@emailadresse.tld
sec rsa4096/***0*****8****1*****5*** 2018-09-09 Vorname Nachname <deine@emailadresse.tld>
Ein Widerrufszertifikat für diesen Schlüssel erzeugen? (j/N) j
Grund für den Widerruf:
0 = Kein Grund angegeben
1 = Hinweis: Dieser Schlüssel ist nicht mehr sicher
2 = Schlüssel ist überholt
3 = Schlüssel wird nicht mehr benutzt
Q = Abbruch
(Wahrscheinlich möchten Sie hier 1 auswählen)
Ihre Auswahl? 0
Geben Sie eine optionale Beschreibung ein. Beenden mit einer leeren Zeile:
>
Grund für Widerruf: Kein Grund angegeben
(Keine Beschreibung angegeben)
Ist das OK? (j/N) j
Widerrufszertifikat wurde erzeugt.
Bitte speichern Sie es auf einem Medium, welches Sie wegschließen
können; falls Mallory (ein Angreifer) Zugang zu diesem Zertifikat
erhält, kann er Ihren Schlüssel unbrauchbar machen. Es wäre klug,
dieses Widerrufszertifikat auch auszudrucken und sicher aufzubewahren,
falls das ursprüngliche Medium nicht mehr lesbar ist. Aber Obacht: Das
Drucksystem kann unter Umständen anderen Nutzern eine Kopie zugänglich
machen.
Backup anlegen
Code: Select all
gpg2 --export-secret-keys --armor deine@emailadresse.tld > backup_deine_at_emailadresse-tld.gpg-key
Code: Select all
gpg2 --export --armor deine@emailadresse.tld > \<deine@emailadresse.tld\>.public.gpg-key
Abschnitt Smartcard
Einrichten der Smartcard
Code: Select all
gpg2 --card-edit
gpg/card> admin
gpg/card> passwd
gpg/card> admin
Admin-Befehle sind erlaubt
gpg/card> help
quit Menü verlassen
admin Zeige Admin-Befehle
help Diese Hilfe zeigen
list Alle vorhandenen Daten auflisten
name Kartenbesitzernamen ändern
url Schlüssel-holen-URL ändern
fetch Holen des Schlüssels mittels der URL auf der Karte
login Ändern der Logindaten
lang Ändern der Spracheinstellungen
sex Ändern des Geschlechts des Kartenbesitzers
cafpr Ändern des CA-Fingerabdrucks
forcesig Umschalten des "Signature-force-PIN"-Schalters
generate neue Schlüssel erzeugen
passwd Menü für Ändern oder Entsperren der PIN
verify überprüfe die PIN und liste alle Daten auf
unblock die PIN mit dem Rückstellcode wieder freigeben
factory-reset alle Schlüssel und Daten löschen
gpg/card> passwd
gpg: OpenPGP Karte Nr. D2760001240102000006544301790000 erkannt
1 - change PIN
2 - unblock PIN
3 - change Admin PIN
4 - set the Reset Code
Q - quit
Ihre Auswahl? 1 (default PIN 123456)
PIN changed.
1 - change PIN
2 - unblock PIN
3 - change Admin PIN
4 - set the Reset Code
Q - quit
Ihre Auswahl? 3 (default PIN 12345678)
PIN changed.
1 - change PIN
2 - unblock PIN
3 - change Admin PIN
4 - set the Reset Code
Q - quit
Ihre Auswahl? Q
gpg/card> passwd
gpg/card> name
gpg/card> url (hpk://pgp.mit.edu)
gpg/card> quit
Keys auf Karte überspielen
Code: Select all
gpg2 --edit-key --expert deine@emailadresse.tld
gpg> key
sec rsa4096/*******0815*1***********
erzeugt: 2018-09-09 verfällt: niemals Nutzung: SC
Vertrauen: ultimativ Gültigkeit: ultimativ
ssb rsa4096/*******0815*2***********
erzeugt: 2018-09-09 verfällt: niemals Nutzung: E
ssb rsa2048/*******0815*3***********
erzeugt: 2018-09-09 verfällt: 2021-09-08 Nutzung: S
ssb rsa2048/*******0815*4***********
erzeugt: 2018-09-09 verfällt: 2021-09-08 Nutzung: E
ssb rsa2048/*******0815*5***********
erzeugt: 2018-09-09 verfällt: 2021-09-08 Nutzung: A
[ ultimativ ] (1). Vorname Nachname <deine@emailadresse.tld>
[ ultimativ ] (2) Vorname Nachname <deineandere@emailadresse.tld>
gpg> key *******0815*5***********
sec rsa4096/*******0815*1***********
erzeugt: 2018-09-09 verfällt: niemals Nutzung: SC
Vertrauen: ultimativ Gültigkeit: ultimativ
ssb rsa4096/*******0815*2***********
erzeugt: 2018-09-09 verfällt: niemals Nutzung: E
ssb rsa2048/*******0815*3***********
erzeugt: 2018-09-09 verfällt: 2021-09-08 Nutzung: S
ssb rsa2048/*******0815*4***********
erzeugt: 2018-09-09 verfällt: 2021-09-08 Nutzung: E
ssb* rsa2048/*******0815*5***********
erzeugt: 2018-09-09 verfällt: 2021-09-08 Nutzung: A
[ ultimativ ] (1). Vorname Nachname <deine@emailadresse.tld>
[ ultimativ ] (2) Vorname Nachname <deineandere@emailadresse.tld>
gpg> keytocard
Wählen Sie den Speicherort für den Schlüssel:
(3) Authentisierungs-Schlüssel
Ihre Auswahl? 3
sec rsa4096/*******0815*1***********
erzeugt: 2018-09-09 verfällt: niemals Nutzung: SC
Vertrauen: ultimativ Gültigkeit: ultimativ
ssb rsa4096/*******0815*2***********
erzeugt: 2018-09-09 verfällt: niemals Nutzung: E
ssb rsa2048/*******0815*3***********
erzeugt: 2018-09-09 verfällt: 2021-09-08 Nutzung: S
ssb rsa2048/*******0815*4***********
erzeugt: 2018-09-09 verfällt: 2021-09-08 Nutzung: E
ssb* rsa2048/*******0815*5***********
erzeugt: 2018-09-09 verfällt: 2021-09-08 Nutzung: A
[ ultimativ ] (1). Vorname Nachname <deine@emailadresse.tld>
[ ultimativ ] (2) Vorname Nachname <deineandere@emailadresse.tld>
gpg> key *******0815*4***********
gpg> keytocard
Wählen Sie den Speicherort für den Schlüssel:
(1) Signatur-Schlüssel
(3) Authentisierungs-Schlüssel
Ihre Auswahl? 1
gpg> key *******0815*3***********
gpg> keytocard
gpg> save
Code: Select all
cd ~
cd .gnupg
vim gpg.conf
Code: Select all
keyid-format 0xlong
keyserver hkp://pgp.mit.edu
Code: Select all
gpg2 --send-keys *******0815*1***********
Setzen der Umgebungsvariable, damit SSH den GPG Agent findet
Code: Select all
export SSH_AUTH_SOCK=/run/user/1000/gnupg/S.gpg-agent.ssh
Ergänzung:
wenn gpg2 > fetch nicht funktioniert
Code: Select all
gpg2 --keyserver pgp.mit.edu --receive-keys <<key-id>>
Der Talk vom TIF-IT auf den Datenspuren 2018
Link: https://media.ccc.de/v/DS2018-9323-der_ ... _smartcard