Page 1 of 1

Smartcard GPG Verschlüsselung mit Thunderbird unter Ubuntu

Posted: Sun 9. Sep 2018, 10:13
by h3rb3rn
aktualisierte Fassung vom 04.03.2019

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
Testen ob der Reader von Linux erkannt wird

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
Generierte Private Keys abfragen

Code: Select all

gpg2 -K
Generierte Public Keys abfragen

Code: Select all

gpg2 -k
Weitere E-Mails mit aufnehmen

Code: Select all

gpg2 --edit-key

Code: Select all

adduid
Name und Email angeben

Optional kann auch ein Foto mit dem Key verknüpft werden. Dieses wird auf dem Keyserver abgelegt.

Code: Select all

addphoto
Option kann Definition welche Hashfunktion für den Key verwendet werden soll

Code: Select all

setpref SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed

Code: Select all

save
Änderungen übernehmen und Konsole verlassen


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
Bitte wählen Sie, welche Art von Schlüssel Sie möchten:
>8
Mögliche Vorgänge eines RSA-Schlüssels: Signieren Verschl. Authentisierung
Achtung: jetzt wird es kompliziert

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:
Ihre Auswahl? S

Mögliche Vorgänge eines RSA-Schlüssels: Signieren Verschl. Authentisierung
Derzeit erlaubte Vorgänge: Verschl.
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? 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
Console verlassen und Änderungen übernehmen
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
Inhalt einfügen

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>>
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