Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
centos:nitrokey:start [24.11.2018 17:44. ] – [udev-Regeln] django | centos:nitrokey:start [18.11.2024 19:05. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 97: | Zeile 97: | ||
===== Anwendungsfälle - Software ===== | ===== Anwendungsfälle - Software ===== | ||
- | ==== Nitrokey | + | ==== Nitrokey |
Da es sich bei der Chipkarte des **Nitrokey Start** um eine standardkompatible OpenPGP-Karte handelt, kann der Kryptostick mit Hilfe von **[[https:// | Da es sich bei der Chipkarte des **Nitrokey Start** um eine standardkompatible OpenPGP-Karte handelt, kann der Kryptostick mit Hilfe von **[[https:// | ||
# yum install gnupg2 | # yum install gnupg2 | ||
Zeile 156: | Zeile 156: | ||
^ | ^ | ||
^ General key info | Diese primäre USer ID wird angezeigt, sobald ein entsprechender | ^ General key info | Diese primäre USer ID wird angezeigt, sobald ein entsprechender | ||
+ | |||
+ | |||
+ | === card-edit === | ||
+ | Mit Hilfe des Befehls '' | ||
+ | |||
+ | $ gpg --card-edit | ||
+ | < | ||
+ | Version ..........: 2.0 | ||
+ | Manufacturer .....: unmanaged S/N range | ||
+ | Serial number ....: 43243711 | ||
+ | Name of cardholder: [nicht gesetzt] | ||
+ | Language prefs ...: [nicht gesetzt] | ||
+ | Sex ..............: | ||
+ | URL of public key : [nicht gesetzt] | ||
+ | Login data .......: [nicht gesetzt] | ||
+ | Signature PIN ....: zwingend | ||
+ | Key attributes ...: 2048R 2048R 2048R | ||
+ | Max. PIN lengths .: 127 127 127 | ||
+ | PIN retry counter : 3 3 3 | ||
+ | Signature counter : 0 | ||
+ | Signature key ....: [none] | ||
+ | Encryption key....: [none] | ||
+ | Authentication key: [none] | ||
+ | General key info..: [none] | ||
+ | |||
+ | gpg/ | ||
+ | |||
+ | == User-Befehle == | ||
+ | Mit Hilfe des Befehls **help** können wir uns anzeigen lassen, welche Optionen im jeweiligen Modus Benutzer oder Admin zur Verfügung stehen. | ||
+ | gpg/ | ||
+ | < | ||
+ | admin Zeige Admin-Befehle | ||
+ | help Diese Hilfe zeigen | ||
+ | list Alle vorhandenen Daten auflisten | ||
+ | fetch Holen des Schlüssels mittels der URL auf der Karte | ||
+ | passwd | ||
+ | verify | ||
+ | unblock | ||
+ | |||
+ | == Admin-Befehle == | ||
+ | Mit dem Befehl **admin** können wir in den Admin-Modus/ | ||
+ | gpg/ | ||
+ | |||
+ | Admin-Befehle sind erlaubt | ||
+ | |||
+ | gpg/ | ||
+ | < | ||
+ | admin Zeige Admin-Befehle | ||
+ | help Diese Hilfe zeigen | ||
+ | list Alle vorhandenen Daten auflisten | ||
+ | name | ||
+ | url Schlüssel-holen-URL ändern | ||
+ | fetch Holen des Schlüssels mittels der URL auf der Karte | ||
+ | login Ändern der Logindaten | ||
+ | lang | ||
+ | sex Ändern des Geschlechts des Kartenbesitzers | ||
+ | cafpr Ändern des CA-Fingerabdrucks | ||
+ | forcesig | ||
+ | generate | ||
+ | passwd | ||
+ | verify | ||
+ | unblock | ||
+ | |||
+ | == Individuelle Konfiguration - Stick personalisieren == | ||
+ | Zunächst wollen wir unseren Stick personalisieren, | ||
+ | \\ | ||
+ | \\ | ||
+ | | **Name of cardholder** | ||
+ | | **Language prefs** | ||
+ | | **Sex** | ||
+ | | **URL of public key** | Angabe einer URL, mit der der public-key mit Hilfe des Befehls fetch unter '' | ||
+ | | **Login data** | ||
+ | |||
+ | Zum Ändern dieser Daten müssen wir nach der Anmeldung an der Karte mit dem Befehl **admin**in den Admin Bereich wechseln. | ||
+ | $ gpg --card-edit | ||
+ | |||
+ | < | ||
+ | Version ..........: 2.0 | ||
+ | Manufacturer .....: unmanaged S/N range | ||
+ | Serial number ....: 43243711 | ||
+ | Name of cardholder: [nicht gesetzt] | ||
+ | Language prefs ...: [nicht gesetzt] | ||
+ | Sex ..............: | ||
+ | URL of public key : [nicht gesetzt] | ||
+ | Login data .......: [nicht gesetzt] | ||
+ | Signature PIN ....: zwingend | ||
+ | Key attributes ...: 2048R 2048R 2048R | ||
+ | Max. PIN lengths .: 127 127 127 | ||
+ | PIN retry counter : 3 3 3 | ||
+ | Signature counter : 0 | ||
+ | Signature key ....: [none] | ||
+ | Encryption key....: [none] | ||
+ | Authentication key: [none] | ||
+ | General key info..: [none] | ||
+ | |||
+ | gpg/ | ||
+ | |||
+ | | ||
+ | |||
+ | Admin-Befehle sind erlaubt | ||
+ | |||
+ | Wir ändern zunächst den Namen des Karteninhabers **Name of cardholder**: | ||
+ | | ||
+ | |||
+ | Familienname des Kartenbesitzers: | ||
+ | Vorname des Kartenbesitzers: | ||
+ | |||
+ | Als nächstes definieren wir die Sprache des Kartenbenutzers: | ||
+ | | ||
+ | |||
+ | Spracheinstellungen de | ||
+ | |||
+ | Im nächsten Schritt setzen wir das Geschlecht des Karteninhabers: | ||
+ | | ||
+ | |||
+ | Geschlecht: (Männlich (M), Weiblich (F) oder Leerzeichen): | ||
+ | |||
+ | Nun setzen wir noch den Anmelde-/ | ||
+ | | ||
+ | |||
+ | Logindaten (Kontenname): | ||
+ | |||
+ | Zu guter Letzt setzen wir nun die URL, von der der public-key mit Hilfe des Befehls **fetch** unter '' | ||
+ | | ||
+ | |||
+ | URL um den öffentlichen Schlüssel zu holen: https:// | ||
+ | |||
+ | Somit ergeben sich folgende benutzerindividuellen Daten auf der Karte: | ||
+ | | ||
+ | |||
+ | < | ||
+ | Version ..........: 3.3 | ||
+ | Manufacturer .....: unmanaged S/N range | ||
+ | Serial number ....: 43243711 | ||
+ | Name of cardholder: Django aka BOfH | ||
+ | Language prefs ...: de | ||
+ | Sex ..............: | ||
+ | URL of public key : https:// | ||
+ | Login data .......: django | ||
+ | Signature PIN ....: nicht zwingend | ||
+ | Key attributes ...: 2048R 2048R 2048R | ||
+ | Max. PIN lengths .: 64 64 64 | ||
+ | PIN retry counter : 3 0 3 | ||
+ | Signature counter : 0 | ||
+ | Signature key ....: [none] | ||
+ | Encryption key....: [none] | ||
+ | Authentication key: [none] | ||
+ | General key info..: [none]</ | ||
+ | |||
+ | Nun können wir die Erstinitialisierung abschließen und den Einstellungsdialog mit dem Befehl **quit** verlassen. | ||
+ | | ||
+ | |||
+ | === Schlüssel generieren ==== | ||
+ | Wir wollen uns nun einen neuen GPG-Schlüssel in der SmartCard erzeugen und rufen hierzu den Befehl **generate** auf. Wir werden nun menügeführt durch eine Reihe von Standardfragen geführt, welche alle relevante Daten abfragen, die zur Generierung des Hauptschlüssels wie auch der Unterschlüssel die für die Aufgaben Signatur, Verschlüsselung und Authentifizierung benötigt werden. | ||
+ | $ gpg --card-edit | ||
+ | |||
+ | | ||
+ | |||
+ | Admin-Befehle sind erlaubt | ||
+ | |||
+ | | ||
+ | < | ||
+ | Welche Schlüssellänge wünschen Sie für den Signatur-Schlüssel? | ||
+ | Welche Schlüssellänge wünschen Sie für den Verschlüsselungs-Schlüssel? | ||
+ | Welche Schlüssellänge wünschen Sie für den Authentisierungs-Schlüssel? | ||
+ | Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll. | ||
+ | 0 = Schlüssel verfällt nie | ||
+ | < | ||
+ | <n>w = Schlüssel verfällt nach n Wochen | ||
+ | <n>m = Schlüssel verfällt nach n Monaten | ||
+ | <n>y = Schlüssel verfällt nach n Jahren | ||
+ | Wie lange bleibt der Schlüssel gültig? (0) | ||
+ | Schlüssel verfällt nie | ||
+ | Ist dies richtig? (j/N) j | ||
+ | |||
+ | GnuPG erstellt eine User-ID um Ihren Schlüssel identifizierbar zu machen. | ||
+ | |||
+ | Ihr Name (" | ||
+ | Email-Adresse: | ||
+ | Kommentar: Bastard Operator from Hell | ||
+ | Sie haben diese User-ID gewählt: | ||
+ | " | ||
+ | |||
+ | Ändern: (N)ame, (K)ommentar, | ||
+ | |||
+ | \\ | ||
+ | |||
+ | <WRAP center round alert 90%> | ||
+ | Leider bricht die Generierung des Schlüssels an dieser Stelle mit dem folgenden Fehler ab: < | ||
+ | Schlüsselerzeugung fehlgeschlagen: | ||
+ | |||
+ | Dabei ist es unerheblich ob nun eine Schlüssellänge von **2048** oder **4096** ausgewählt wird! | ||
+ | |||
+ | Ähnlich wie schon beim Vorgängermodell **[[centos: | ||
+ | |||
+ | </ | ||
+ | |||
+ | === vorhandenen Schlüssel importieren === | ||
+ | Da aktuell((Stand: | ||
+ | |||
+ | == PGP-Schlüssel generieren == | ||
+ | Zunächst erzeugen wir uns also einen PGP-Schlüssel, | ||
+ | $ gpg --gen-key | ||
+ | < | ||
+ | This is free software: you are free to change and redistribute it. | ||
+ | There is NO WARRANTY, to the extent permitted by law. | ||
+ | |||
+ | Bitte wählen Sie, welche Art von Schlüssel Sie möchten: | ||
+ | (1) RSA und RSA (voreingestellt) | ||
+ | (2) DSA und Elgamal | ||
+ | (3) DSA (nur signieren/ | ||
+ | (4) RSA (nur signieren/ | ||
+ | Ihre Auswahl? 1 | ||
+ | RSA-Schlüssel können zwischen 1024 und 4096 Bit lang sein. | ||
+ | Welche Schlüssellänge wünschen Sie? (2048) 4096 | ||
+ | Die verlangte Schlüssellänge beträgt 4096 Bit | ||
+ | Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll. | ||
+ | 0 = Schlüssel verfällt nie | ||
+ | < | ||
+ | <n>w = Schlüssel verfällt nach n Wochen | ||
+ | <n>m = Schlüssel verfällt nach n Monaten | ||
+ | <n>y = Schlüssel verfällt nach n Jahren | ||
+ | Wie lange bleibt der Schlüssel gültig? (0) | ||
+ | Schlüssel verfällt nie | ||
+ | Ist dies richtig? (j/N) j | ||
+ | |||
+ | GnuPG erstellt eine User-ID um Ihren Schlüssel identifizierbar zu machen. | ||
+ | |||
+ | Ihr Name (" | ||
+ | Email-Adresse: | ||
+ | Kommentar: | ||
+ | Sie haben diese User-ID gewählt: | ||
+ | " | ||
+ | |||
+ | Ändern: (N)ame, (K)ommentar, | ||
+ | Sie benötigen eine Passphrase, um den geheimen Schlüssel zu schützen. | ||
+ | |||
+ | Wir müssen eine ganze Menge Zufallswerte erzeugen. | ||
+ | unterstützen, | ||
+ | tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen. | ||
+ | gpg: Schlüssel 2ADD88EB ist als uneingeschränkt vertrauenswürdig gekennzeichnet | ||
+ | Öffentlichen und geheimen Schlüssel erzeugt und signiert. | ||
+ | |||
+ | gpg: " | ||
+ | gpg: 3 marginal-needed, | ||
+ | gpg: Tiefe: 0 gültig: | ||
+ | gpg: nächste " | ||
+ | pub | ||
+ | Schl.-Fingerabdruck = EBCE 68E4 42BD 55B6 03A4 8613 2D4D 70B0 2ADD 88EB | ||
+ | uid Django aka Bastard Operator from Hell < | ||
+ | sub | ||
+ | </ | ||
+ | |||
+ | == PGP-Unterschlüssel - subkeys == | ||
+ | <WRAP center round tip 95%> | ||
+ | Bei der **[[https:// | ||
+ | </ | ||
+ | |||
+ | Werfen wir zur genaueren Betrachtung einfach einen Blick in unseren öffentlichen Schlüsselbund mit Hilfe des Programms **gpg**, etweder mit der Option '' | ||
+ | $ gpg2 --list-keys | ||
+ | |||
+ | < | ||
+ | ------------------------------ | ||
+ | pub | ||
+ | uid Django aka Bastard Operator from Hell < | ||
+ | sub | ||
+ | </ | ||
+ | |||
+ | Obwohl wir zuvor "nur einen" // | ||
+ | |||
+ | Beide Schlüssel sehen wir auch, wenn wir uns den Inhalt des secrings anzeigen lassen. Hierzu verwenden wir die Option '' | ||
+ | $ gpg2 --list-secret-keys | ||
+ | < | ||
+ | ------------------------------ | ||
+ | sec | ||
+ | uid Django aka Bastard Operator from Hell < | ||
+ | ssb | ||
+ | </ | ||
+ | |||
+ | * //**Worin besteht nun der genaue Unterschied? | ||
+ | * //**Warum nun der ganze Aufstand mit diesem Unterschlüssel? | ||
+ | |||
+ | Fragen wir den Status unseres Nitrokey Start ab, so sehen wir dort am Ende drei Speicherplätze für unterschiedliche Unterschlüssel, | ||
+ | * **Signature key** : Unterschlüssel zum Signieren | ||
+ | * **Encryption key** : Unterschlüssel zum Verschlüsseln | ||
+ | * **Authentication key**: Unterschlüssel zum Authentifizieren | ||
+ | |||
+ | $ gpg2 --card-status | ||
+ | < | ||
+ | Version ..........: 2.0 | ||
+ | Manufacturer .....: unmanaged S/N range | ||
+ | Serial number ....: 43243711 | ||
+ | Name of cardholder: [not set] | ||
+ | Language prefs ...: de | ||
+ | Sex ..............: | ||
+ | URL of public key : [not set] | ||
+ | Login data .......: [not set] | ||
+ | Signature PIN ....: forced | ||
+ | Key attributes ...: 2048R 2048R 2048R | ||
+ | Max. PIN lengths .: 64 64 64 | ||
+ | PIN retry counter : 3 0 3 | ||
+ | Signature counter : 0 | ||
+ | Signature key ....: [none] | ||
+ | Encryption key....: [none] | ||
+ | Authentication key: [none] | ||
+ | General key info..: [none] | ||
+ | </ | ||
+ | |||
+ | Damit wir nun die drei benötigten Unterschlüssel an die richtige Stelle unseres Nitrokey Start verschieben können, müssen wir noch ein paar Vorbereitungen treffen: | ||
+ | - Erstellen weiterer Unterschlüssel für die Themen: | ||
+ | - Signierung | ||
+ | - Authentifizierung | ||
+ | - Verschieben der privaten Unterschlüssel aus dem Schlüsselbund, | ||
+ | - Verschieben des //primären Signierungs Schlüssel// | ||
+ | |||
+ | Die öffentlichen Schlüssel bleiben nach wie vor im Schlüsselbund auf unserer Festplatte // | ||
+ | |||
+ | Bevor wir nun zum Punkt **1. Erstellen weiterer Unterschlüssel** widmen können rufen wir uns die **ID** des primären Signierungs-Schlüssel in Erinnerung. | ||
+ | $ gpg2 --list-keys | grep pub | ||
+ | |||
+ | / | ||
+ | pub | ||
+ | |||
+ | In unserem Konfigurationsbeispiel hier ist dies die Key-ID: **2ADD88EB**. Zunächst erstellen wir besagten Unterschlüssel zum Signieren: | ||
+ | $ gpg2 --expert --edit-key 2ADD88EB | ||
+ | < | ||
+ | This is free software: you are free to change and redistribute it. | ||
+ | There is NO WARRANTY, to the extent permitted by law. | ||
+ | |||
+ | Geheimer Schlüssel ist vorhanden. | ||
+ | |||
+ | pub 4096R/ | ||
+ | | ||
+ | sub 4096R/ | ||
+ | [ uneing.] (1). Django aka Bastard Operator from Hell < | ||
+ | |||
+ | gpg></ | ||
+ | Das Erzeugen von Unterschlüssel erfolgt mit Hilfe des Befehls '' | ||
+ | gpg> addkey | ||
+ | < | ||
+ | |||
+ | Sie benötigen eine Passphrase, um den geheimen Schlüssel zu entsperren. | ||
+ | Benutzer: " | ||
+ | 4096-Bit RSA Schlüssel, ID 2ADD88EB, erzeugt 2018-11-24 | ||
+ | |||
+ | Bitte wählen Sie, welche Art von Schlüssel Sie möchten: | ||
+ | (3) DSA (nur signieren/ | ||
+ | (4) RSA (nur signieren/ | ||
+ | (5) Elgamal (nur verschlüsseln) | ||
+ | (6) RSA (nur verschlüsseln) | ||
+ | (7) DSA (Leistungsfähigkeit selber einstellbar) | ||
+ | (8) RSA (Leistungsfähigkeit selber einstellbar) | ||
+ | Ihre Auswahl?</ | ||
+ | |||
+ | Da wir einen **RSA**-Unterschlüssel zum Signieren erzeugen möchten, wählen wir hier die Option **4**. Bei der Schlüssellänge verwenden wir wie auch schon bei der Erstellung des initialen Schlüsselpaares **4096**; die Laufzeit des Unterschlüssels wählen wir entsprechend gleich oder kürzer wie beim //primären Signierungs-Schlüssel//, | ||
+ | |||
+ | Ihre Auswahl? 4 | ||
+ | < | ||
+ | Welche Schlüssellänge wünschen Sie? (2048) 4096 | ||
+ | Die verlangte Schlüssellänge beträgt 4096 Bit | ||
+ | Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll. | ||
+ | 0 = Schlüssel verfällt nie | ||
+ | < | ||
+ | <n>w = Schlüssel verfällt nach n Wochen | ||
+ | <n>m = Schlüssel verfällt nach n Monaten | ||
+ | <n>y = Schlüssel verfällt nach n Jahren | ||
+ | Wie lange bleibt der Schlüssel gültig? (0) | ||
+ | Schlüssel verfällt nie | ||
+ | Ist dies richtig? (j/N) j | ||
+ | Wirklich erzeugen? (j/N) j | ||
+ | Wir müssen eine ganze Menge Zufallswerte erzeugen. | ||
+ | unterstützen, | ||
+ | tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen. | ||
+ | |||
+ | pub 4096R/ | ||
+ | | ||
+ | sub 4096R/ | ||
+ | sub 4096R/ | ||
+ | [ uneing.] (1). Django aka Bastard Operator from Hell < | ||
+ | |||
+ | gpg></ | ||
+ | |||
+ | Das Gleiche machen wir nun erneut für unseren Authentifizierungs-Unterschlüssel. | ||
+ | | ||
+ | < | ||
+ | |||
+ | Sie benötigen eine Passphrase, um den geheimen Schlüssel zu entsperren. | ||
+ | Benutzer: " | ||
+ | 4096-Bit RSA Schlüssel, ID 2ADD88EB, erzeugt 2018-11-24 | ||
+ | |||
+ | Bitte wählen Sie, welche Art von Schlüssel Sie möchten: | ||
+ | (3) DSA (nur signieren/ | ||
+ | (4) RSA (nur signieren/ | ||
+ | (5) Elgamal (nur verschlüsseln) | ||
+ | (6) RSA (nur verschlüsseln) | ||
+ | (7) DSA (Leistungsfähigkeit selber einstellbar) | ||
+ | (8) RSA (Leistungsfähigkeit selber einstellbar) | ||
+ | Ihre Auswahl?</ | ||
+ | |||
+ | Für unseren Verschlüsselungs-Unterschlüssel wählen wir nun eben hier entsprechend die Option **8**. | ||
+ | |||
+ | Ihre Auswahl? 8 | ||
+ | < | ||
+ | Derzeit erlaubte Vorgänge: Signieren Verschl. | ||
+ | |||
+ | (U) Umschalten der Signaturfähigkeit | ||
+ | (V) Umschalten der Verschlüsselungsfähigkeit | ||
+ | (A) Umschalten der Authentisierungsfähigkeit | ||
+ | (Q) Beenden | ||
+ | |||
+ | Ihre Auswahl?</ | ||
+ | |||
+ | Uns wir nun angezeigt, dass aktuell Signierung und Verschlüsselung vorausgewählt wurde: '' | ||
+ | < | ||
+ | |||
+ | Mögliche Vorgänge eines RSA-Schlüssels: | ||
+ | Derzeit erlaubte Vorgänge: Signieren | ||
+ | |||
+ | (U) Umschalten der Signaturfähigkeit | ||
+ | (V) Umschalten der Verschlüsselungsfähigkeit | ||
+ | (A) Umschalten der Authentisierungsfähigkeit | ||
+ | (Q) Beenden | ||
+ | |||
+ | Ihre Auswahl? u | ||
+ | |||
+ | Mögliche Vorgänge eines RSA-Schlüssels: | ||
+ | Derzeit erlaubte Vorgänge: | ||
+ | |||
+ | (U) Umschalten der Signaturfähigkeit | ||
+ | (V) Umschalten der Verschlüsselungsfähigkeit | ||
+ | (A) Umschalten der Authentisierungsfähigkeit | ||
+ | (Q) Beenden | ||
+ | |||
+ | Ihre Auswahl? a | ||
+ | |||
+ | Mögliche Vorgänge eines RSA-Schlüssels: | ||
+ | Derzeit erlaubte Vorgänge: Authentisierung | ||
+ | |||
+ | (U) Umschalten der Signaturfähigkeit | ||
+ | (V) Umschalten der Verschlüsselungsfähigkeit | ||
+ | (A) Umschalten der Authentisierungsfähigkeit | ||
+ | (Q) Beenden | ||
+ | |||
+ | Ihre Auswahl?</ | ||
+ | |||
+ | An der nun definierten Option '' | ||
+ | Ihre Auswahl? q | ||
+ | < | ||
+ | Welche Schlüssellänge wünschen Sie? (2048) 4096 | ||
+ | Die verlangte Schlüssellänge beträgt 4096 Bit | ||
+ | Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll. | ||
+ | 0 = Schlüssel verfällt nie | ||
+ | < | ||
+ | <n>w = Schlüssel verfällt nach n Wochen | ||
+ | <n>m = Schlüssel verfällt nach n Monaten | ||
+ | <n>y = Schlüssel verfällt nach n Jahren | ||
+ | Wie lange bleibt der Schlüssel gültig? (0) | ||
+ | Schlüssel verfällt nie | ||
+ | Ist dies richtig? (j/N) j | ||
+ | Wirklich erzeugen? (j/N) j | ||
+ | Wir müssen eine ganze Menge Zufallswerte erzeugen. | ||
+ | unterstützen, | ||
+ | tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen. | ||
+ | |||
+ | pub 4096R/ | ||
+ | | ||
+ | sub 4096R/ | ||
+ | sub 4096R/ | ||
+ | sub 4096R/ | ||
+ | [ uneing.] (1). Django aka Bastard Operator from Hell < | ||
+ | |||
+ | gpg></ | ||
+ | |||
+ | GnuPG listet nun den Primary Schlüssel zum Signieren und alle Unterschlüssel auf mit dem jeweiligen Verwendungszweck **usage** auf. **E** steht für Verschlüsseln, | ||
+ | |||
+ | Zu guter letzt speichern wir nun mit dem Befehl **save** unsere gerade erstellen Unterschlüssel im Schlüsselspeicher auf der Festplatte ab. | ||
+ | gpg> save | ||
+ | |||
+ | Fragen wir nun erneut den Schlüsselbund mit den secret-keys ab sehen wir nun unsere drei Unterschlüssel. | ||
+ | $ gpg2 -K | ||
+ | < | ||
+ | ------------------------------ | ||
+ | sec | ||
+ | uid Django aka Bastard Operator from Hell < | ||
+ | ssb | ||
+ | ssb | ||
+ | ssb | ||
+ | |||
+ | == backup des vorhandenen Keyrings aus dem Userverzeichnis == | ||
+ | <WRAP center round important 95%> | ||
+ | Bevor wir unseren Schlüsselspeicher im Userverzeichnis bei den späteren Verschiebeaktionen nicht versehentlich schrotten, kann für Restore-Zwecke ein Backup und ein sicheres Verwahren des Schlüsselspeichers angeraten sein. | ||
+ | |||
+ | $ cp -a ~/.gnupg ~/ | ||
+ | </ | ||
+ | |||
+ | == Schlüssel in die ChipCard des Nitrokey Start verschieben == | ||
+ | Nun werden wir die vorhin generierten Schlüssel an Ort und Stelle in die SmartCard des Nitrokey Start verschieben. Hierzu verwenden wir den Befehl **'' | ||
+ | $ gpg2 --edit-key 2ADD88EB | ||
+ | < | ||
+ | This is free software: you are free to change and redistribute it. | ||
+ | There is NO WARRANTY, to the extent permitted by law. | ||
+ | |||
+ | Geheimer Schlüssel ist vorhanden. | ||
+ | |||
+ | pub 4096R/ | ||
+ | | ||
+ | sub 4096R/ | ||
+ | sub 4096R/ | ||
+ | sub 4096R/ | ||
+ | [ uneing.] (1). Django aka Bastard Operator from Hell < | ||
+ | |||
+ | gpg> </ | ||
+ | |||
+ | Für später merken wir uns nun in Welcher Reichenfolge die Unterschlüssel aufgelistet werden bzw. welche Key-ID zu welcher Aktion gehört. Die Key-ID **0** ist die des primären Signierungs-Schlüssel! | ||
+ | * Sub-Key **1** - **B815F8ED** - **E** = encrypt = verschlüsseln | ||
+ | * Sub-Key **2** - **25704226** - **S** = sign = signieren | ||
+ | * Sub-Key **3** - **E8B122B0** - **A** = authorize = authentifizieren | ||
+ | |||
+ | Da wir die privaten Schlüssel unserer drei Unterschlüssel verschieben wollen, wechseln wir von der Ansicht der öffentlichen in die Ansicht der privaten Schlüssel. | ||
+ | gpg> toggle | ||
+ | |||
+ | < | ||
+ | ssb 4096R/ | ||
+ | ssb 4096R/ | ||
+ | ssb 4096R/ | ||
+ | (1) Django aka Bastard Operator from Hell < | ||
+ | |||
+ | gpg> </ | ||
+ | |||
+ | Als erstes verschieben wir den privaten Verschlüsselungs-Unterschlüssel. Hierzu wählen wir diesen mit Eingabe von " | ||
+ | |||
+ | gpg> key 1 | ||
+ | < | ||
+ | ssb* 4096R/ | ||
+ | ssb 4096R/ | ||
+ | ssb 4096R/ | ||
+ | (1) Django aka Bastard Operator from Hell < | ||
+ | |||
+ | gpg></ | ||
+ | |||
+ | Nun verschieben wir den ausgewählten Schlüssel in die SmartCard des Nitrokey. Als Ziel wählen wir dann richtiger Weise die Option **2** = // | ||
+ | gpg> keytocard | ||
+ | |||
+ | < | ||
+ | Encryption key....: [none] | ||
+ | Authentication key: [none] | ||
+ | |||
+ | Wählen Sie den Speicherort für den Schlüssel: | ||
+ | (2) Verschlüsselungs-Schlüssel | ||
+ | Ihre Auswahl? 2 | ||
+ | |||
+ | Sie benötigen eine Passphrase, um den geheimen Schlüssel zu entsperren. | ||
+ | Benutzer: " | ||
+ | 4096-Bit RSA Schlüssel, ID B815F8ED, erzeugt 2018-11-24 | ||
+ | |||
+ | |||
+ | sec 4096R/ | ||
+ | ssb* 4096R/ | ||
+ | | ||
+ | ssb 4096R/ | ||
+ | ssb 4096R/ | ||
+ | (1) Django aka Bastard Operator from Hell < | ||
+ | |||
+ | gpg> </ | ||
+ | |||
+ | Als nächstes verschieben wir den privaten Signierungs-Unterschlüssel aus, in dem wir erst den bereits ausgewählten Verschlüsselungs-Key abwählen und dann den Signierungs-Key anwählen. | ||
+ | gpg> key 1 | ||
+ | < | ||
+ | ssb 4096R/ | ||
+ | | ||
+ | ssb 4096R/ | ||
+ | ssb 4096R/ | ||
+ | (1) Django aka Bastard Operator from Hell < | ||
+ | </ | ||
+ | gpg> key 2 | ||
+ | < | ||
+ | ssb 4096R/ | ||
+ | | ||
+ | ssb* 4096R/ | ||
+ | ssb 4096R/ | ||
+ | (1) Django aka Bastard Operator from Hell < | ||
+ | </ | ||
+ | |||
+ | Nun verschieben wir den privaten Signierungs-Unterschlüssel in Richtung SmartCard des Nitrokey Start. Hier wählen wir nun die **1** für // | ||
+ | gpg> keytocard | ||
+ | < | ||
+ | Encryption key....: 7EDD 7456 77A7 F355 C4A8 930E 29E1 FED4 B815 F8ED | ||
+ | Authentication key: [none] | ||
+ | |||
+ | Wählen Sie den Speicherort für den Schlüssel: | ||
+ | (1) Signatur-Schlüssel | ||
+ | (3) Authentisierungs-Schlüssel | ||
+ | Ihre Auswahl? 1 | ||
+ | |||
+ | Sie benötigen eine Passphrase, um den geheimen Schlüssel zu entsperren. | ||
+ | Benutzer: " | ||
+ | 4096-Bit RSA Schlüssel, ID 25704226, erzeugt 2018-11-24 | ||
+ | |||
+ | |||
+ | sec 4096R/ | ||
+ | ssb 4096R/ | ||
+ | | ||
+ | ssb* 4096R/ | ||
+ | | ||
+ | ssb 4096R/ | ||
+ | (1) Django aka Bastard Operator from Hell < | ||
+ | |||
+ | gpg></ | ||
+ | |||
+ | Zu guter Letzt fehlt nun noch unser Authentifizierungs-Unterschlüssel. Wir wählen also wieder den Schlüssel **2** ab und den Schlüssel **3** aus. | ||
+ | gpg> key 2 | ||
+ | < | ||
+ | ssb 4096R/ | ||
+ | | ||
+ | ssb 4096R/ | ||
+ | | ||
+ | ssb 4096R/ | ||
+ | (1) Django aka Bastard Operator from Hell < | ||
+ | </ | ||
+ | gpg> key 3 | ||
+ | < | ||
+ | ssb 4096R/ | ||
+ | | ||
+ | ssb 4096R/ | ||
+ | | ||
+ | ssb* 4096R/ | ||
+ | (1) Django aka Bastard Operator from Hell < | ||
+ | </ | ||
+ | |||
+ | Nun verschieben wir den privaten Authentifizierungs-Unterschlüssel in Richtung SmartCard des Nitrokey Start. Hier wählen wir nun die **3** für // | ||
+ | gpg> keytocard | ||
+ | < | ||
+ | Encryption key....: 7EDD 7456 77A7 F355 C4A8 930E 29E1 FED4 B815 F8ED | ||
+ | Authentication key: [none] | ||
+ | |||
+ | Wählen Sie den Speicherort für den Schlüssel: | ||
+ | (3) Authentisierungs-Schlüssel | ||
+ | Ihre Auswahl? 3 | ||
+ | |||
+ | Sie benötigen eine Passphrase, um den geheimen Schlüssel zu entsperren. | ||
+ | Benutzer: " | ||
+ | 4096-Bit RSA Schlüssel, ID E8B122B0, erzeugt 2018-11-24 | ||
+ | |||
+ | |||
+ | sec 4096R/ | ||
+ | ssb 4096R/ | ||
+ | | ||
+ | ssb 4096R/ | ||
+ | | ||
+ | ssb* 4096R/ | ||
+ | | ||
+ | (1) Django aka Bastard Operator from Hell < | ||
+ | |||
+ | gpg></ | ||
+ | |||
+ | Zum Abschluss speichern wir nun unsere Änderungen im lokalen key-ring mit dem Befehl **save**. | ||
+ | gpg> save | ||
+ | |||
+ | Wenn wir jetzt den Kartenstatus abfragen, werden unsere drei Unterschlüssel entsprechend mit angezeigt. | ||
+ | $ gpg2 --card-status | ||
+ | |||
+ | < | ||
+ | Version ..........: 2.0 | ||
+ | Manufacturer .....: unmanaged S/N range | ||
+ | Serial number ....: 43243711 | ||
+ | Name of cardholder: Michael Nausch | ||
+ | Language prefs ...: de | ||
+ | Sex ..............: | ||
+ | URL of public key : [nicht gesetzt] | ||
+ | Login data .......: django | ||
+ | Signature PIN ....: zwingend | ||
+ | Key attributes ...: 4096R 4096R 4096R | ||
+ | Max. PIN lengths .: 127 127 127 | ||
+ | PIN retry counter : 3 3 3 | ||
+ | Signature counter : 0 | ||
+ | Signature key ....: 9EF2 5BA7 4935 4D52 B2F7 0044 86AF 96F5 2570 4226 | ||
+ | created ....: 2018-11-24 18:38:34 | ||
+ | Encryption key....: 7EDD 7456 77A7 F355 C4A8 930E 29E1 FED4 B815 F8ED | ||
+ | created ....: 2018-11-24 18:20:41 | ||
+ | Authentication key: 5CE2 A469 770B F92A 7279 DB2E 494E 8C46 E8B1 22B0 | ||
+ | created ....: 2018-11-24 18:50:42 | ||
+ | General key info..: pub 4096R/ | ||
+ | sec | ||
+ | ssb> | ||
+ | Kartennummer: | ||
+ | ssb> | ||
+ | Kartennummer: | ||
+ | ssb> | ||
+ | Kartennummer: | ||
+ | </ | ||
+ | |||
+ | === Öffentlichen Schlüssel ausgeben === | ||
+ | Damit wir später unseren öffentlichen Schlüssel auch weitergeben oder zu einem [[https:// | ||
+ | $ gpg --export --armor django@nausch.org > django@nausch.org.publickey | ||
+ | |||
+ | Diese Date enthält unseren Schlüssel in ASCCI-lesbarer Form. | ||
+ | $ cat django@nausch.org.publickey | ||
+ | <file key django@nausch.org.publickey> | ||
+ | Version: GnuPG v2.0.22 (GNU/Linux) | ||
+ | |||
+ | mQINBFqxBeoBEACb8vp3slLjFEokgbIJQ1JVlqlFtzcDxgtAZWe+hE0kz8Emw231 | ||
+ | Ni0QZbjBOxDJPfuoIekeTCSAEFKZQUF/ | ||
+ | AS9cY4UqNN4IUTyGzZNZnhIWyVlwJ0CaiB1zpZZqUVYrbfRnhc8xiFPiDjiZVkXS | ||
+ | DjSNmJlloXKyX0tpmrZ6cB/ | ||
+ | 8/ | ||
+ | X2Y2dMi5pcsiwNwJ0DUVVKz8udRfCFyFp3i+QiZ/ | ||
+ | JkldAw2Mos8VqXbjd4wdNAipw4l8ySl+WWgqcST5YWNtQfcipy4Cz1aQNBjlwT2F | ||
+ | ko8RdOnwsSzqrtXFqBginAvg0kflK+i11X0/ | ||
+ | bJpSCdl5CozWRYbVWzkv2NiYaI7dWTxCHenWPmbP0Z9VDm6dNH15V1TXvvrRdUt8 | ||
+ | h9DEXob+fPH9P5YCyD6+FlIjoTiKFB7pNtULRVfCG8kM0BwnvCM7/ | ||
+ | 0HTWhkFwFAQB6JUIPadVQHQJ/ | ||
+ | tCNNaWNoYWVsIE5hdXNjaCA8bWljaGFlbEBuYXVzY2gub3JnPokCPwQTAQIAKQUC | ||
+ | WrEF6gIbAwUJA8JnAAcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAAAoJEASBlPdr | ||
+ | M+i8WUEP/ | ||
+ | pDNNT1C7OhjeTr49Em9BFli+kPbfSLl5bFnJSuxvlOPY1PH/ | ||
+ | ZabZgwy0T5kZvVOv6H4b5RiHgj/ | ||
+ | cPKV+sXDqpN2GNeUvpBARDaU2vyYuY5XvhHj+xe0jodr7Snn/ | ||
+ | r9bym7Iv/ | ||
+ | WtMTSfSNry9wu6KtrYPcjK7K/ | ||
+ | KuzpG/ | ||
+ | xt3Q7EKc/ | ||
+ | RT4UX80XClE2YksNroMHlhfRMrdMIMxvKNps2iYqiCe6lRZItSCYMgrQK/ | ||
+ | BxZO9sm8tA13sZuXLxJqXkLtKntKSgfQG3cg0Zr0QhwPTAIHTvJqg4nvpbYdOBmK | ||
+ | HVGumzQtc+8y1+E842OllkIYQwBSg5+/ | ||
+ | KGFrYSBCYXN0YXJkIE9wZXJhdG9yIGZyb20gSGVsbCkgPGRqYW5nb0BuYXVzY2gu | ||
+ | b3JnPokCPwQTAQIAKQUCWrEG1QIbAwUJA8JnAAcLCQgHAwIBBhUIAgkKCwQWAgMB | ||
+ | Ah4BAheAAAoJEASBlPdrM+i8v6oP/ | ||
+ | JlVZx3loLq/ | ||
+ | XJWmw96sMXR5PaekwhYtB08SYDDj9TxQrTS8YSg00KGdrZyqGLMFU46xILaC3LLx | ||
+ | PFyyx8SX2Jiw8QSvtLxhDJBOyT6m+E4iIcYa6mJm1Sp9iz9kMgRzgPhsq2sRCZZh | ||
+ | Fgszhug7DTec6/ | ||
+ | EMD8M7m08oc2ibCYqVwRrzd5o4lUZ59Wilx1COOxLzJpzpmO6v1x+HeiIRDALLSD | ||
+ | FsJKAHfyqFhBp9Lie2YlrZmVRR1rN9Odjqc6wnb10veYwvZ1vJGP7ybjoWvSnxV8 | ||
+ | 4abx8Q10NaLNlVUXN8m4hBZdnBsfpi75TftxiHzXO8I4meLkL/ | ||
+ | tF66ZVd2IDEVzR6x1P8QlGCLXEa4XBc50oWgn0O1QUSlAD6HXBYFJCyhnPVcmbr2 | ||
+ | 25crUXV0llAWxETVtIj2/ | ||
+ | vd7ebGgrjLzk2T5/ | ||
+ | xT2cLwLItCZEamFuZ28gKEJPZkgpIDxkamFuZ29AbWFpbHNlcnZlci5ndXJ1PokC | ||
+ | PwQTAQIAKQUCWrEHFgIbAwUJA8JnAAcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheA | ||
+ | AAoJEASBlPdrM+i8SY0QAI8MQR8tEtMQ8IpIeRISBJfCgjwRVHKHySjMztorJYlv | ||
+ | 42FBuI4jo6LgQ7xehzHdgW8fATMmEwRekm4OcwEpGtDYXj5z2gwHejB4JQ/ | ||
+ | TP2aLl+3wA3RoqEqKi5JYb23PRK31Yl7lRIoBrdq2ygfIwinLDz9HbPD1On32pBc | ||
+ | nZQXk+HOHy+bZ2bKNLNta4dcQW+oyH0ZD625kd82XKGKQdnaDo1hu5RT2PtQO9VX | ||
+ | p8gfarI+r33IpceZYP+Dufa/ | ||
+ | yANBbXiuRXWseGcw0OuCr+4MS/ | ||
+ | Bz5G17ThpIQFS/ | ||
+ | B2eMEP5XjfZ9nLv2EYtnmEdiFcFs0PLna2eCl70gBoHZXUKN/ | ||
+ | vmnNDbKxwGesy1BaVnjIWtDtZL4pxxFCB14TqDUxSs2kZkR9wE263Ae6q7m+hWqt | ||
+ | 8Yob2GUK16u93JiON1czL0gEmTFO3JYOqbAqNlh3qKPnRBR53eApu4vcCrLEZTAP | ||
+ | 2YushC2/ | ||
+ | uQINBFqxBeoBEAC6WQNcYwfFcb9uLZe/ | ||
+ | IjXinobGMxRrC9NsmcTP0XhhUhq8BP8AsJfz22EfUl5ofcZSAknOt6vdQxfWdSU/ | ||
+ | yEGQW4m7lSaBD9s+APvd7ACT1631doUXOC5Kqzbwvk1kJtHue8/ | ||
+ | 4/ | ||
+ | W541zUTrib/ | ||
+ | zMHjnFKE8oQhpBBmI5tMIEq5mDthT9b6mFZkvhG2mVaFBv74LVxsd2OD7l4+F/ | ||
+ | fu9iJjHDp9u/ | ||
+ | 6u221deBhooxjCZQmIp3B6JybmjRMYRC3s9+hkn2u46DIy/ | ||
+ | fYc99gzwMzg/ | ||
+ | kHwAYtNnkvWFfLdtRJXLuGZED/ | ||
+ | Ch5bOhK9UCcKJdQ6yoEWcqlolUk7LHXeEkQYM/ | ||
+ | iQIlBBgBAgAPBQJasQXqAhsMBQkDwmcAAAoJEASBlPdrM+i8aacP/ | ||
+ | IwUNAZW0Gm5AG6vg/ | ||
+ | 4O6aqo+tqVpeCPtKzLdBp7a69mQ7+z7QbwBwyiRSvsvnnSu9RdnCCEmAj+E01djx | ||
+ | DmZfT94pvz70MBY3rt7hjRNgm1d2RtmcwkyMwE7vTuSakIlPLH4yG7deMEZDxjYK | ||
+ | yLZl+0gISJQXNwaVY2jTX5iglYI8pyoE+aRREEbeqaQKuqKvuOLsnGF26RSNBWg6 | ||
+ | YIuuNKP86xNkXKrr5HqqUmjWNHg4QorKfTk4gtcR3gzH9U3ysUqP+gWIuP78PICq | ||
+ | 4mPT60OCp7XyRhGgiRO5/ | ||
+ | 3PbO2poj6sJSyHSs3LZnW2bweb0uPfNlbTSWIzqoUHbSS/ | ||
+ | eYJEmJ+Zx0uVsKpeGtKIgV/ | ||
+ | lJsUFf1e/ | ||
+ | 4Wn33thSBjcLF1fG14PiX0XA5P9or7n/ | ||
+ | Snc41CqWfodSavfwnWe8Nf6bLwNs0WOYmQINBFv5lnkBEADAstefWzpzeZy1TVl4 | ||
+ | nM5KmyvPmPMciQaL2+j2irsTPt/ | ||
+ | bzS1k8W5hyLFMq3TL3uo+u6we3+B6fgGL+3XktN5aMAuX24hOLLWnm8/ | ||
+ | woHJNviL9kYI7YBVz859RrSWXHiduV4eFYDKH7zBO+ZzwkAnRmakicnr4n6+1bKv | ||
+ | sXsBQGdB/ | ||
+ | sXZHOIB0hgy2FSlyJwjWycms8pknZJ71JlpiTN5SrSG5rnogLCnNF1siy7ag92gq | ||
+ | LNR8712tlWAgHBE+duFyRHa/ | ||
+ | Cmjt+OwRYo1vh5ekgb9kTo3V+gnULKPNleneuni2M2NILishQcHdnB9HqZEyhWBN | ||
+ | 7LODG2kH8LBwDk4gCR2giu03csvpQXagwlSRoBDoyDu9euyhrRV7LzhTQMax9s+q | ||
+ | nsE8TC3VnmsdiZzGJEANL7vO4KGjCY40BTP5AbZzb8B0gtlSAlYf+kEnUYg8geyE | ||
+ | fd4OfkJ86BwPTAo+SX3ZBxPnFDMS74cTuPtIbBG0tvlSh5V8BV3snxir4O1aqL75 | ||
+ | 8/ | ||
+ | cmF0b3IgZnJvbSBIZWxsIDxkamFuZ29AbWFpbHNlcnZlci5ndXJ1PokCOQQTAQIA | ||
+ | IwUCW/ | ||
+ | RKMQAIxF/ | ||
+ | 42fwuG0xEgpk3ZhAmhPQPZzLOkJLa0MphdO1uTGnuPax4iT67FjZrTT6D0bc0DSE | ||
+ | R66XGqRcPx2UYkXjjrx9fqm8gZv6zvh0Ouk+/ | ||
+ | jzBC/ | ||
+ | lNPqPC1/ | ||
+ | sAWKQhCLyVsY9HeTN+rGWuewpYKjquIHmfxQwQQ0c+pLT/ | ||
+ | Kl83/ | ||
+ | A6UKVaOMfsYWxTOS2VGzneP6ipcHJvTpQ4R4l5Fzh4rJGv1D186w2o9ve3zA6Ivv | ||
+ | INDHX4LVbfdH/ | ||
+ | nIOC7w+fp14vIjDl3jl9mOlhMb6HZqXjNaSPGH58fkRCSUfcWkqwraBQ46C84gSo | ||
+ | fAG9l5Bz1c7SkZ8jZg0xCKTIehjpN8x2wJFHnc+Uc5dDpjMjuQINBFv5lnkBEADq | ||
+ | brqkm05OQq1EVMWhGYcBCpZjHgR9tsgmBd6/ | ||
+ | buUD5kuA1rQ/ | ||
+ | n9I3ho39wdICSY522qdTME4iRjfh8Nnz7k7yWBHhOyjRoETeBMFtT+wLrbT2h/ | ||
+ | 5XZ2HdZM4y9KSvKj9QY2tVGCMv1WHicHrbctl+sQE3QscHjpqYfKLU9XsG8zRkDv | ||
+ | sDJldp5aOjRxnbdr/ | ||
+ | LcIwEGbhd4WHL82ZPZvYV8XoS1/ | ||
+ | DmOTUhiyGbR5+q3l5vahkWPGaXJzMp7GS4IcGHjZR30cz8so2b/ | ||
+ | dbauKpSVBZ/ | ||
+ | dm846U6WVsnSEKblcRo8fUesMezSxrAZMMcceLYIyGBv93wfrQuQF/ | ||
+ | FvIHtsOzBle5gQLhYewZJZ5nDeun39ruKfNyoPqxwXJ1mIteHaIrVrCJT3IIYszf | ||
+ | FcRksVY6vY50eUoXn4nI1NSv4BWGqiK71/ | ||
+ | +ZZ5AhsMAAoJEC1NcLAq3YjrhgAP/ | ||
+ | RDI8kxjfHnwVDsA3i80qWJ4jgCvwgXM1stmN4xIE/ | ||
+ | G3GvCHxFAmbZD65Kv32YZqii7GfX+0Xn3L2O1ZVXatzG8dgU7olJ0y+0/ | ||
+ | 6hf3f4ivsh9D8YYVyJFXBc9U67O5q+tZMuEb7su6ypIEby2BWmtr1Q6xb64N4nfH | ||
+ | ROgtlFHLXciVbDFM4FimUmH4IGDV7XCBm11+XUxaEMa6KLJiyZZj2iL7uZE7C9/ | ||
+ | xIkCBXFd7zGnLmKJu1XqKxAoPL8CEsohyME/ | ||
+ | tULrfVT2Hemcrocx0EIuqsReOUB9VEe7EtCEDG4vmQ3Ni6Eb+L8inxbB1Anwzr06 | ||
+ | 8H+78As2KleYFx4Li2vTUmKx57NDFcAH4jl9zy/ | ||
+ | bG4teqKxE5f4xdCS/ | ||
+ | KKHbxEOFyKE5gepharYxMy2lLjKL31u89XYULhncQkFQmCDtWwKoeD9XnwUuiFri | ||
+ | JadOP8vyNTP3n99EaEzCC4jzPhes0rSQnBSYcM/ | ||
+ | Q5p4i37xuQINBFv5mqoBEADiQKASQcZE4ZexBeSL0M1lIPu3XsIbujSNh7V3KJ1q | ||
+ | rplno74h/ | ||
+ | +HlFs0Cldy+Kk5pprAl5z5iLLh9+HL+vart6c4hPNL4eiiQufi2wXrwp6bC5za/ | ||
+ | MV8IXpX0FbWXOKCzYV2mciNeXaJ1EeE99BnQN2PJ4XdWdjRZuyPWo4oj6Ze07f1M | ||
+ | 17o0s/ | ||
+ | +kqe8NaPVRmdwiaPGl4D79B5dpFUsmDfYUnzTOl3PdTsE65xKJ+wjcXbXk8vl6b4 | ||
+ | pUnC7SJaOmtCIPEQyyDEwzJ7u+yOupb2varLLzRPpQLtbtTj9JNqryTHrZ9mcA6T | ||
+ | +pulUBKU5PlZUQbVroeKUOETjVzInhb9NAgOmsEsz6hra1OTO2hWdH+SDrIfTKrx | ||
+ | MQOTFT0Nnvbu65l+cp8tH9H9EtyfYkVQh8/ | ||
+ | GGeMN4tf1p8P905+Um6p8Avkb7/ | ||
+ | arkOdwkiCBW9rU2dj75kpI4z+2shYOC87lmGmVyzEUctV3gCvsPrIXmvxwxkunVr | ||
+ | +QARAQABiQQ+BBgBAgAJBQJb+ZqqAhsCAikJEC1NcLAq3YjrwV0gBBkBAgAGBQJb | ||
+ | +ZqqAAoJEIavlvUlcEImOVQP/ | ||
+ | prVChQUP/ | ||
+ | 6owBrntsXYwfsvvQMZEylfW4wiFYZ9PbTt4KS1oRTnyINFKUwLjf8I7TBNMv98q9 | ||
+ | 8FHogLR1y3BYvkYTMqFcVC6pblzyIfkeB+7TMvfrWHBnG4YHCvp+YUJtWP/ | ||
+ | gNvSHX5hXevUXZMnq6hNI2QVNOIhjvsT1Gp2/ | ||
+ | 5ZH20Z066nvIZ/ | ||
+ | fZSjOBNgDiXh6hrm/ | ||
+ | NriaCU0F6HDO+ywdpL1Dptj6D/ | ||
+ | jplqyThhWgifUfJrAivkZjyg/ | ||
+ | X5Oqp11EA4Av8/ | ||
+ | R6Y1znsAM0p3KjsWgTyxC9/ | ||
+ | cCFnSMYP/ | ||
+ | 86nHDZivHp11SKFbBfNWHTZaU4X5J60Ve8cn6ggWYAfkvJxELt6umw3SXw+oLRRe | ||
+ | WbJGJXM2NUAyCATgbLAa+frCFgvspO/ | ||
+ | RjZguv+6NbmSFxMFbuRSb+kQp2iyy6g6MKBo9buJoMveH2wWyIw485s3Ij5ukdpY | ||
+ | U7eZRkljTm3TnSDOjatrTcw/ | ||
+ | M57+Hv8My275jG4d2DbMoeWRmft+mo4J2At9v1LXlgG2G3w6GlB7st4Gz6f3N/ | ||
+ | 8XNAKE11Ps9AEHFygD4tbEJeKAAkCXzsC/ | ||
+ | bVxapqAMS4O2mCUYR9mvD6NRO2wti2uIkjU0cI6MeSidq/ | ||
+ | ImPpqlRR3CIFCv3adP8ATlgAfFAwGKxUu2Ev9UkkYEDc/ | ||
+ | bLmM4Eb5Ro1y3w8EMw3H7LdyU8GQCr8wLbujVowYcQBzyffgSdq3jbsu17OEk6tN | ||
+ | X8UlzMsOnPtwjRG/ | ||
+ | EADCgCvBPdwrYXqcWxH26kWJP4lwbhN7CPVFJ8tC3eKJ4Vc7uAoPIkJmQTrLW5jm | ||
+ | QYBeOcqUGV2zuN38JUIsaSBlIn8b6kZ1iURR2REl9cR5pPZNXdF+1GnMWYurm58V | ||
+ | 6W0LJqvOA396fQN7ZVYC9FDVzlGv51xdmULVU0GZnlgq7jvaY6ySSInW041uWXBC | ||
+ | pEuyd6frC4B9ehPAWANQB/ | ||
+ | Q5SO7leb9S/ | ||
+ | e0OeTHHT5g+gZNN5ULKGBRnqOxk/ | ||
+ | 5OZQolcEgQALEFSJSEfbonhAivkktDpYsMsYscSaJXPG+ft+cJTxV8ewfv4oHui1 | ||
+ | nBF8H+RvBlikU50esQMplk/ | ||
+ | vsMbyNDv9/ | ||
+ | BBw8hQeIM5swvHNYTHZWQjWS0ZQmMAvqM5lnnhND9gKqFHNr4833Kq8fBgW+vdHF | ||
+ | cM4DOVgcqiINhX8Ac4GqOqtctFq2T08UWUPUddE4QuLjpQARAQABiQIfBBgBAgAJ | ||
+ | BQJb+Z2CAhsgAAoJEC1NcLAq3Yjr27oQAJ9jwPlwmz9cdRYC1MN3V7YRCtaeUxEI | ||
+ | vFR+q2wKTV4H7rwIZiU+O5L3fyfNVA2/ | ||
+ | z2hsfA+cX6v0bFMTIQI1Jfzwduy8FTt6wrtfW5nwJKI5K7qTgxkzO/ | ||
+ | AYOzBCE1mhOJyR2vUS5QRbcuLXJV9klcY6LYw9GkKsf+7ivd5wqEYDvTog6qlW3o | ||
+ | 53DWU0LQcYmQG0PRqn3I8G1dEUAxWxy34WTuqW5TE8x9wI6qZeUYyt3/ | ||
+ | b/ | ||
+ | xKh+Ej/ | ||
+ | KHcfklnFrY9sdX9BPefIlha/ | ||
+ | RmmtAsqORFZkpblJNqxmUM861H1mh8q71x25iIpTczld5X4L7MB85kyXK3gYR4EP | ||
+ | YaP7QSWSbSvomlNSDibZPkBEik+VpK5kJ6gvaXUmETwpTEdeNw7kcc9r35FYWLid | ||
+ | 08y+Q6cJyfy5I1tcfUpIr5qHGIqFQ28BGr4KT9GzVoVdGWn9x+xKsIP3Ft1q378q | ||
+ | RDp46CjW4gse | ||
+ | =WChe | ||
+ | -----END PGP PUBLIC KEY BLOCK-----</ | ||
+ | |||
+ | === Verschlüsseln und entschlüsseln === | ||
+ | Nun werden wir kurz einmal testen, ob wir mit Hilfe der Hardware-Schlüssel-Karte eine Datei ver- und wieder entschlüsseln können. | ||
+ | |||
+ | - Zunächst Wir legen uns erst einmal ein beliebiges Testdokument an. < | ||
+ | - Nun verschlüsseln wir dieses Textdokument: | ||
+ | -rw-rw-r--. 1 django django 962 24. Nov 20:38 testdatei.txt.pgp</ | ||
+ | Version: GnuPG v2.0.22 (GNU/Linux) | ||
+ | |||
+ | hQIMA8oyvX4CemyZAQ/ | ||
+ | 4dFI2XipORxOS6KIJ+xp9IcziV4D+RpqmI0kjCy/ | ||
+ | nAvrZIL5SWKMPUnozKDlACAt4LifvPdejyMhDgaUBt+YHJGt8N7xKNg9MvKZ+kN2 | ||
+ | 0kHDsTUPGfjgaFl9lntLIuoqX8qROG7PuKbAIJoOI0eQKhmOhXC9Bc/ | ||
+ | DMysmwv2sXHiftkJLw94znC+If+Kc0ql2MyvsqgcMelvTyov6jOy8hopf2SkwTSJ | ||
+ | LLtSMxOq/ | ||
+ | IJYrwd4ip6R7Q9uPm3eAx/ | ||
+ | RIrMeuiGQ+igF/ | ||
+ | y7NXNCwKqxv46ZzIhdUikxYvBcbT5Xc8ME82Z648M0pcBCo4L3q2TmbEvCPobj0/ | ||
+ | 2qzpNrO9YVAvhqiqFlfu4cdV5Jf+sRDGMoTRjae9fut+oA8Hi6gmR92nsnX223Wn | ||
+ | oG34HfLTJKLNTT/ | ||
+ | bgEvj9LJp5YbZJbd7mO+YTJ4N1NNJ8yeKXrL9f0gx7otGI54tpPrk58JJQnCxG3o | ||
+ | ldJT1hH1Iq6QrOZ6kGDF5oLhoRHzQzh8QQkD5bD9YVHC03V4c00eXDCEk5jDvSld | ||
+ | GClAjm+uZQngqfUwHhMZ | ||
+ | =mDf3 | ||
+ | -----END PGP MESSAGE-----</ | ||
+ | - Nun entschlüsseln wir unser Dokument wieder.< | ||
+ | " | ||
+ | |||
+ | === Schlüssel aus dem lokalen Schlüsselspeicher entfernen === | ||
+ | Löschen wir nun den kompletten Schlüssel aus der lokalen Schlüsseldatei, | ||
+ | $ gpg --delete-secret-key michael.nausch@it.piratenpartei.de | ||
+ | < | ||
+ | This is free software: you are free to change and redistribute it. | ||
+ | There is NO WARRANTY, to the extent permitted by law. | ||
+ | |||
+ | |||
+ | sec 4096R/ | ||
+ | |||
+ | Diesen Schlüssel aus dem Schlüsselbund löschen? (j/N) j | ||
+ | Dies ist ein privater Schlüssel! - Wirklich löschen? (j/N) j | ||
+ | </ | ||
+ | |||
+ | <WRAP center round alert 95%> | ||
+ | __**Doch Achtung: | ||
+ | Hier wird der komplette Schlüssel gelöscht, also den **privaten Primären Signing Key** und nicht nur die Proxy-Einträge! Dies kann zu Problemen bei der späteren Verwendung des Nitrokey Start auf der Konsole führen, da das gpg-Programm versucht den Schlüssel im Schlüsselbund zu finden! | ||
+ | </ | ||
+ | |||
+ | Der gpg-Befehl '' | ||
+ | |||
+ | Wir exportieren also erst einmal die Unterschlüssel und legen diese in einer lokalen Datei ab. Zunächst holen wir uns aber noch die Schlüssel-IDs da wir diese beim Exportieren eiegns angeben müssen. | ||
+ | $ gpg2 --list-secret-keys | ||
+ | < | ||
+ | ------------------------------ | ||
+ | sec | ||
+ | uid Django aka Bastard Operator from Hell < | ||
+ | ssb> | ||
+ | ssb> | ||
+ | ssb> | ||
+ | </ | ||
+ | Nun exportieren wir die Unterschlüssel mit Hilfe folgenden Aufrufs, bei dem wir die IDs der Unterschlüssel gefolgt von einem **!** jeweils angeben: | ||
+ | $ gpg2 -o subkeys --export-secret-subkeys B815F8ED! 25704226! E8B122B0! | ||
+ | |||
+ | Nun löschen wir den primären Signierungsschlüssel inkl. der Unterschlüssel. | ||
+ | $ gpg2 --delete-secret-key django@nausch.org | ||
+ | < | ||
+ | This is free software: you are free to change and redistribute it. | ||
+ | There is NO WARRANTY, to the extent permitted by law. | ||
+ | |||
+ | |||
+ | sec 4096R/ | ||
+ | |||
+ | Diesen Schlüssel aus dem Schlüsselbund löschen? (j/N) j | ||
+ | Dies ist ein privater Schlüssel! - Wirklich löschen? (j/N) j</ | ||
+ | |||
+ | Ein erneuter Aufruf des privaten Schlüsselspeichers zeigt und, dass dort nun keine Einträge mehr vorhanden sind. | ||
+ | $ gpg2 --list-secret-keys | ||
+ | |||
+ | Nun importieren wir wieder die zuvor gesicherten privaten Unterschlüssel | ||
+ | $ gpg2 --import subkeys | ||
+ | < | ||
+ | gpg: Schlüssel 2ADD88EB: " | ||
+ | gpg: Anzahl insgesamt bearbeiteter Schlüssel: 1 | ||
+ | gpg: | ||
+ | gpg: gelesene geheime Schlüssel: 1 | ||
+ | gpg: geheime Schlüssel importiert: 1</ | ||
+ | |||
+ | Lassen wir uns nun den Inhalt des privaten Schlüsselbundes anzeigen, sehen wir die zurückgesicherten Unterschlüssel wieder. | ||
+ | $ gpg2 --list-secret-keys | ||
+ | < | ||
+ | ------------------------------ | ||
+ | sec# 4096R/ | ||
+ | uid Django aka Bastard Operator from Hell < | ||
+ | ssb> | ||
+ | ssb> | ||
+ | ssb> | ||
+ | |||
+ | Zu guter letzt vernichten wir die Datei mit den gesicherten privaten Unterschlüsseln. | ||
+ | $ shred --zero --remove subkeys | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
=== change-pin === | === change-pin === | ||
- | Wie schon mit der **[[centos:nitrokey: | + | <WRAP center round warn 95%> |
+ | **WICHTIG**: | ||
+ | Unbedingt vor dem ersten Ändern der PINs ist es notwendig, erst einmal Schlüssel zu generieren bzw. zu importieren! Denn sonst schlägt das Ändern der Benutzer-PIN fehl, bzw. wird die Benutzer-PIN beim Überschreiben von Schlüsseln auf den Default-Wert von **123456** zurückgesetzt. Die Default-PIN für den Admin lautet **12345678**. | ||
+ | </ | ||
+ | |||
+ | Mit Hilfe des Befehls '' | ||
Die Benutzer-PIN (Menüpunkt **1**) wird benötigt für den täglichen Betrieb wie z.B. zum Entsperren des Token, oder zum Signieren und Verschlüsseln. Die Mindestlänge für den User-Pin beträgt 6 Zeichen. | Die Benutzer-PIN (Menüpunkt **1**) wird benötigt für den täglichen Betrieb wie z.B. zum Entsperren des Token, oder zum Signieren und Verschlüsseln. Die Mindestlänge für den User-Pin beträgt 6 Zeichen. | ||
Zeile 164: | Zeile 1177: | ||
Die Admin-PIN (Menüpunkt **3**) wird für die Karten-/ | Die Admin-PIN (Menüpunkt **3**) wird für die Karten-/ | ||
- | <WRAP center round important | + | <WRAP center round important |
Wird die Benutzer-PIN 3x falsch eingeben, wird die Karte gesperrt und kann dann nur mit der Admin-PIN oder dem Reset-Code zurückgesetzt werden. Wenn Sie den falschen Admin-Pin dreimal eingeben, wird die Karte unbrauchbar und kann dann lediglich mit einem Factory-Reset (Verlußt aller Kartendaten!) zurück gesetzt werden! | Wird die Benutzer-PIN 3x falsch eingeben, wird die Karte gesperrt und kann dann nur mit der Admin-PIN oder dem Reset-Code zurückgesetzt werden. Wenn Sie den falschen Admin-Pin dreimal eingeben, wird die Karte unbrauchbar und kann dann lediglich mit einem Factory-Reset (Verlußt aller Kartendaten!) zurück gesetzt werden! | ||
+ | |||
+ | Ferner ist darauf zu achten, dass zunächst die Admin-PIN und erst dann die Nutzer-PIN geändert. Ansonsten wird nämlich der // | ||
</ | </ | ||
Die Reset-PIN (Menüpunkt **4**) kann nur zum Zurücksetzen der Benutzer-PIN verwendet werden. Die Mindestlänge für den Reset-Code beträgt 8 Zeichen. Der Reset-Code Fehlerzähler kann wiederum mit der Admin-PIN zurückgesetzt werden. Wird nach zweimaliger Falscheingabe der Benutzer- wie auch der Admin-PIN und dann die richtige PIN eingeben, wird der Fehlerzähler zurückgesetzt. | Die Reset-PIN (Menüpunkt **4**) kann nur zum Zurücksetzen der Benutzer-PIN verwendet werden. Die Mindestlänge für den Reset-Code beträgt 8 Zeichen. Der Reset-Code Fehlerzähler kann wiederum mit der Admin-PIN zurückgesetzt werden. Wird nach zweimaliger Falscheingabe der Benutzer- wie auch der Admin-PIN und dann die richtige PIN eingeben, wird der Fehlerzähler zurückgesetzt. | ||
- | Worin besteht nun aber der genaue Unterschied zwischen dem Reset-Code und der Admin-PIN? Möchte man in einer Organisation Nitrokey | + | Worin besteht nun aber der genaue Unterschied zwischen dem Reset-Code und der Admin-PIN? Möchte man in einer Organisation Nitrokey |
$ gpg --change-pin | $ gpg --change-pin | ||
- | < | + | < |
1 - change PIN | 1 - change PIN | ||
Zeile 183: | Zeile 1198: | ||
Ihre Auswahl?</ | Ihre Auswahl?</ | ||
- | Beim Menüpunkt 1 können wir z.B. die Benutzer-PIN | + | Wir ändern also zu erste die Admin-PIN durch Auswahl des Menüpunkts **3** aus und erst anschliessend |
{{ : | {{ : | ||
+ | |||
+ | < | ||
+ | PIN changed. | ||
+ | |||
+ | 1 - change PIN | ||
+ | 2 - unblock PIN | ||
+ | 3 - change Admin PIN | ||
+ | 4 - set the Reset Code | ||
+ | Q - quit | ||
+ | |||
+ | Ihre Auswahl? 1 | ||
+ | PIN changed. | ||
+ | |||
+ | 1 - change PIN | ||
+ | 2 - unblock PIN | ||
+ | 3 - change Admin PIN | ||
+ | 4 - set the Reset Code | ||
+ | Q - quit | ||
+ | |||
+ | Ihre Auswahl? q</ | ||
+ | |||
+ | ==== Nitrokey und Thunderbird ==== | ||
+ | Unseren zuvor präparierten Kryptostick wollen wir nun verwenden um bei Thunderbird unsere elektronische Kommunikation per eMail abzusichern. Hierzu werden wir nun den schlüssel dem betreffenden Konto zuweisen. | ||
+ | Über das Menü wählen wir den Punkt **Konten-Einstellungen** aus. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Beim passenden Konto wählen wir dann die Option **OpenPGP-Sicherheit** aus. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Hier wählen wir nun den Schlüssel aus, den wir zuvor erstellt und auf die SmartCard des Kryptostick Start verschoben hatten. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Sobald wir nun eine Nachricht verschicken die signiert werden soll, wird vor dem Versand die PIN abgefragt und die Nachricht mit dem Signatur-Unterschlüssel unterschrieben. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Sobald wir eine verschlüsselte Nachricht öffnen, werden wir nach der PIN gefragt, damit der Schlüssel zum Entschlüsseln auf der SmartCard freigeschalten werden kann. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Habne wir die PIN richtig eigegeben, wird die entschlüsselte Nachricht angezeigt. | ||
+ | |||
+ | {{ : | ||