OpenPGP-Schlüsselerzeugung auf dem Gerät¶
Compatible Nitrokeys |
|||||||
|---|---|---|---|---|---|---|---|
✓ active |
⨯ inactive |
⨯ inactive |
✓ active |
⨯ inactive |
✓ active |
✓ active |
⨯ inactive |
Die folgende Anleitung erklärt die Erzeugung von OpenPGP-Schlüsseln direkt auf dem Nitrokey. Dies geschieht über die Kommandozeilenschnittstelle von GnuPG. Sie müssen also GnuPG auf Ihrem System installiert haben. Die neueste GnuPG-Version für Windows finden Sie hier und die neueste Version für MacOS finden Sie hier. Nutzer von Linux-Systemen installieren GnuPG bitte mit Hilfe des Paketmanagers.
Bemerkung
These instructions are based on GnuPG version 2.2.6 or higher. Some Linux Distributions have an older version installed. In this case please choose a different method as listed here or install a newer version if possible.
Schlüsselerzeugung¶
The following descriptions explain the basic key generation on-device via GnuPG’s command line interface. The default behaviour is to generate RSA keys of 2048 bit size. If you want to change the key algorithm and length, have a look at the next section first.
Öffnen Sie eine Kommandozeile und geben Sie gpg2 --card-edit ein.
To open the Windows command line please push the Windows-key and R-key. Now type cmd.exe in the text field and hit enter. To open a Terminal on macOS or GNU/Linux please use the application search (e.g. spotlight on macOS).
> gpg2 --card-edit
Reader ...........: 20A0:4108:0000320E0000000000000000:0
Application ID ...: D27600012401020100050000320E0000
Version ..........: 2.1
Manufacturer .....: ZeitControl
Serial number ....: 0000320E
Name of cardholder: [not set]
Language prefs ...: de
Sex ..............: unspecified
URL of public key : [not set]
Login data .......: [not set]
Signature PIN ....: forced
Key attributes ...: rsa2048 rsa2048 rsa2048
Max. PIN lengths .: 32 32 32
PIN retry counter : 3 0 3
Signature counter : 0
Signature key ....: [none]
Encryption key....: [none]
Authentication key: [none]
General key info..: [none]
gpg/card>
Nun befinden Sie sich in der interaktiven Oberfläche von GnuPG. Aktivieren Sie die Admin-Befehle mit admin und verwenden Sie anschließend generate, um die Erzeugung der Schlüssel zu starten.
gpg/card> admin
Admin commands are allowed
gpg/card> generate
Make off-card backup of encryption key? (Y/n) n
Please note that the factory settings of the PINs are
PIN = '123456' Admin PIN = '12345678'
You should change them using the command --change-pin
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0)
Key does not expire at all
Is this correct? (y/N) y
GnuPG needs to construct a user ID to identify your key.
Real name: Jane Doe
Email address: jane@example.com
Comment:
You selected this USER-ID:
"Jane Doe <jane@doecom>"
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
gpg: key 817E149CA002B92F marked as ultimately trusted
gpg: revocation certificate stored as '/home/nitrokey//.gnupg/openpgp-revocs.d/E62F445E8BB4B5085C031F5381
7E149CA002B92F.rev'
public and secret key created and signed.
gpg/card>
</jane@doe.com></n></n></n></n>
Bitte erstellen Sie nicht das vorgeschlagene Off-Card-Backup. Dieses „Backup“ speichert nur den Verschlüsselungsschlüssel, nicht aber die Signatur- und Authentifizierungsschlüssel. Im Falle eines Geräteverlustes können Sie nicht den gesamten Schlüsselsatz wiederherstellen. Es handelt sich also einerseits um kein vollständiges Backup (verwenden Sie stattdessen diese Anleitung, wenn Sie eines benötigen) und andererseits riskieren Sie, dass jemand anderes in den Besitz Ihres Schlüssels kommt. Der Vorteil der Schlüsselgenerierung auf dem Gerät besteht darin, dass die Schlüssel sicher gespeichert werden. Wir empfehlen daher, diese halbe Sicherung zu überspringen.
Jetzt haben Sie einen kompletten Schlüsselsatz auf Ihrem Gerät, der für die verschiedenen Anwendungen, die auf unserer Website aufgeführt sind, verwendet werden kann. Geben Sie quit ein und drücken Sie die Eingabetaste zum Beenden.
Schlüsselattribute ändern¶
In diesem Abschnitt geht es um das Ändern der Schlüsselattribute. Wenn Sie die Standardwerte verwenden möchten, können Sie mit dem nächsten Abschnitt fortfahren.
Öffnen Sie eine Kommandozeile und geben Sie gpg2 --card-edit --expert ein.
> gpg2 --card-edit --expert
Reader ...........: 20A0:4108:0000320E0000000000000000:0
Application ID ...: D27600012401020100050000320E0000
Version ..........: 2.1
Manufacturer .....: ZeitControl
Serial number ....: 0000320E
Name of cardholder: [not set]
Language prefs ...: de
Sex ..............: unspecified
URL of public key : [not set]
Login data .......: [not set]
Signature PIN ....: forced
Key attributes ...: rsa2048 rsa2048 rsa2048
Max. PIN lengths .: 32 32 32
PIN retry counter : 3 0 3
Signature counter : 0
Signature key ....: [none]
Encryption key....: [none]
Authentication key: [none]
General key info..: [none]
Nun befinden Sie sich in der interaktiven Oberfläche von GnuPG. Wie Sie im Feld „Schlüsselattribute“ oben sehen können, ist der Standardwert rsa2048 eingestellt. Um diese zu ändern, aktivieren Sie die Admin-Befehle mit admin und verwenden anschließend key-attr, um die Attribute der Schlüssel zu ändern.
gpg/card> admin
Admin commands are allowed
gpg/card> key-attr
Changing card key attribute for: Signature key
Please select what kind of key you want:
(1) RSA
(2) ECC
Your selection? 1
What keysize do you want? (2048) 4096
The card will now be re-configured to generate a key of 4096 bits
Changing card key attribute for: Encryption key
Please select what kind of key you want:
(1) RSA
(2) ECC
Your selection? 1
What keysize do you want? (2048) 4096
The card will now be re-configured to generate a key of 4096 bits
Changing card key attribute for: Authentication key
Please select what kind of key you want:
(1) RSA
(2) ECC
Your selection? 1
What keysize do you want? (2048) 4096
The card will now be re-configured to generate a key of 4096 bits
Sie können das Attribut für jeden Schlüssel (d. h. Signatur-, Verschlüsselungs- und Authentifizierungsschlüssel) auswählen. Die meisten Leute werden die gleichen Attribute für jeden Schlüssel verwenden. Geben Sie list ein, um die Ergebnisse angezeigt zu bekommen (sehen Sie sich das Feld „Schlüsselattribute“ an, das jetzt rsa4096 lautet).
gpg/card> list
Reader ...........: 20A0:4108:0000320E0000000000000000:0
Application ID ...: D27600012401020100050000320E0000
Version ..........: 2.1
Manufacturer .....: ZeitControl
Serial number ....: 0000320E
Name of cardholder: [not set]
Language prefs ...: de
Sex ..............: unspecified
URL of public key : [not set]
Login data .......: [not set]
Signature PIN ....: forced
Key attributes ...: rsa4096 rsa4096 rsa4096
Max. PIN lengths .: 32 32 32
PIN retry counter : 3 0 3
Signature counter : 0
Signature key ....: [none]
Encryption key....: [none]
Authentication key: [none]
General key info..: [none]
Geben Sie quit ein und drücken Sie die Eingabetaste, um den Vorgang zu beenden, oder fahren Sie direkt mit dem vorherigen Abschnitt fort, um die Schlüssel mit den gerade eingestellten Schlüsselattributen tatsächlich zu erzeugen.
Die folgende Tabelle zeigt, welcher Algorithmus auf welchem Gerät verwendet werden kann.
Algorithm |
Start |
Pro + Storage |
Pro 2 + Storage 2 |
|---|---|---|---|
rsa1024 |
✓ |
✓ |
|
rsa2048 |
✓ |
✓ |
✓ |
rsa3072 |
✓ |
✓ |
|
rsa4096 |
✓ |
✓ |
|
Kurve25519 (ECC) |
✓ |
||
NIST (ECC) |
✓ |
✓ |
|
Brainpool (ECC) |
✓ |
||
secp256k1 |
✓ |
Exportieren des öffentlichen Schlüssels und Keyserver-Verwendung¶
Obwohl Sie Ihren Nitrokey sofort nach der Schlüsselerzeugung auf Ihrem System verwenden können, müssen Sie Ihren öffentlichen Schlüssel auf jedes System importieren, auf dem Sie den Nitrokey verwenden möchten. Um vorbereitet zu sein, haben Sie also zwei Möglichkeiten: Entweder Sie speichern den öffentlichen Schlüssel an einem beliebigen Ort und verwenden ihn auf einem anderen System oder Sie speichern den öffentlichen Schlüssel auf einer Webseite/Schlüsselserver.
Erzeugen einer Public-Key-Datei¶
Um eine einfache Datei mit Ihrem öffentlichen Schlüssel zu erhalten, können Sie einfach gpg2 --armor --export keyID > pubkey.asc verwenden. Verwenden Sie entweder den Fingerabdruck als „keyID“ (schauen Sie sich gpg -K an, um ihn zu erhalten) oder verwenden Sie einfach Ihre E-Mail-Adresse als Bezeichner.
You can carry this file with you or send it to anyone who you like. This file is not secret at all. If you want to use the Nitrokey on another system, you first import this public key via gpg2 --import pubkey.asc and then types gpg2 --card-status so that the system knows where to look for this key. That’s all.
Hochladen des öffentlichen Schlüssels¶
Wenn Sie eine öffentliche Schlüsseldatei nicht mit sich führen wollen, können Sie sie auf den Keyserver hochladen. Dies können Sie tun, indem Sie gpg --keyserver search.keyserver.net --send-key keyID eingeben. Wenn Sie einen anderen Rechner benutzen, können Sie es einfach importieren, indem Sie gpg --keyserver search.keyserver.net --recv-key keyID eingeben.
Another possibility is to change the URL setting on your card.
Run gpg --card-edit again and first set the URL where the key is situated (e.g. on the keyserver or on your webpage etc.) via the url command.
From now on you can import the key on another system by just using the fetch command within the gpg --card-edit environment.