Windows-Anmeldung mit PIV-Smartcard-Authentifizierung#

Dieses Dokument erklärt, wie Sie die PIV-Funktion einer Nitrokey 3 für Windows Smartcard-Anmeldung manuell mit einem Schlüssel und einem Zertifikat bereitstellen.

In Zukunft kann diese manuelle Bereitstellung durch einen Windows MiniDriver automatisiert werden.

Warnung

Die PIV-Funktion des Nitrokey 3 gilt derzeit als instabil und ist in den stabilen Firmware-Versionen nicht verfügbar. Um diese Funktion zu erhalten, ist es erforderlich, eine Test-Firmware zu installieren. Spätere Firmware-Updates können zu einem Verlust von Daten und kryptografischen Schlüsseln führen. Weitere Informationen finden Sie unter in der Dokumentation zum Firmware-Update.

Voraussetzungen#

  • Ein Windows-Server mit:

    • Active Directory (Anweisungen)

    • Eine Zertifizierungsstelle (CA) mit einer Zertifikatsvorlage für die Anmeldeauthentifizierung mit RSA-2048-Bit-Schlüsseln:

  • Ein Windows-Benutzerrechner, der mit der Domäne des Servers verbunden ist

  • Ein Nitrokey 3 mit PIV

  • Ein Linux-System mit pivy und PCSCD installiert (sudo apt install pcscd), um den Nitrokey bereitzustellen (Schritt 1, 2 und 4). Anstelle eines separaten Linux-Systems können Sie WSL unter Windows installieren. Beachten Sie, dass Sie virtuell den Nitrokey an WSL anschließen und PCSCD starten müssen (sudo service start pcscd), bevor Sie pivy verwenden.

1: Erzeugen Sie einen Schlüssel auf dem Nitrokey#

Der Schlüssel wird in Steckplatz 9A (Authentifizierung) erzeugt.

pivy-tool -a rsa2048 generate 9A

Bemerkung

Wenn der Verwaltungsschlüssel nicht der Standardschlüssel ist, kann er mit -A 3des -K 010203040506070801020304050607080102030405060708 angegeben werden. Das Argument für -A kann auch aes256 sein, und das Argument für -K ist der Schlüssel in hexadezimaler Form.

Die Benutzer-PIN kann auch mit -P 123456, oder -P <value> angegeben werden, wenn sie nicht der Standard ist. Wenn -P nicht angegeben wird, wird sie nach der Schlüsselerzeugung abgefragt.

Dies gilt für alle pivy-tool Befehle.

Dieser Schritt kann bei RSA-Schlüsseln einige Minuten dauern, da die reine Softwareimplementierung langsam ist.

Erwartete Ausgabe:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKO5ENwrK3qKBAgDkyq1tfiw5JxnoCEIiM3Vc+8Eylux04r1sgjHEyqbOvpScObZuchxFZZ5LdeHynvFn3c07K4HpoZ/7NjLzUYOmlVAy4wpEwRs9psbrT6wbvHVLyffZiiSPW15HHQKcUZZ30WDunh5m7xzvY9ej810QIW/P724MFWTbRdpqmG8m1qWCUM5dqkmpiprI/WeD+VmTcQWbJJ+oyoPyxmwzGyAotl7mVC6EYdcfvyBSNQdVdGfYGxjNEec4aWxoFRg4ADfpPnYD+gLxHcj/9s7o/wdMhXRiSio1tjsEjaeuOICGLaiiLGMfLxpfEApb8qJgsEFgYl6kn PIV_slot_9A@9E424375A38449E59B3DF89D9B90E601

2: Erzeugen einer Zertifikatssignierungsanforderung (CSR)#

In diesem Schritt wird ein Zertifikat für den Schlüssel im Authentifizierungsschlitz erzeugt. pivy-tool -n 'Nitro Test' -u "nitro@test.nitrokey.com" -T user-auth req-cert 9A

Der Nitro Test-Benutzername und die nitro@test.nitrokey.com-E-Mail-Adresse müssen auf eigene Werte geändert werden.

Erwartetes Ergebnis:

-----BEGIN CERTIFICATE REQUEST-----
MIIC4DCCAcgCAQEwFTETMBEGA1UEAwwKTml0cm8gVGVzdDCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBAMo7kQ3CsreooECAOTKrW1+LDknGegIQiIzdVz7w
TKW7HTivWyCMcTKps6+lJw5tm5yHEVlnkt14fKe8WfdzTsrgemhn/s2MvNRg6aVU
DLjCkTBGz2mxutPrBu8dUvJ99mKJI9bXkcdApxRlnfRYO6eHmbvHO9j16PzXRAhb
8/vbgwVZNtF2mqYbybWpYJQzl2qSamKmsj9Z4P5WZNxBZskn6jKg/LGbDMbICi2X
uZULoRh1x+/IFI1B1V0Z9gbGM0R5zhpbGgVGDgAN+k+dgP6AvEdyP/2zuj/B0yFd
GJKKjW2OwSNp644gIYtqKIsYx8vGl8QClvyomCwQWBiXqScCAwEAAaCBhTCBggYJ
KoZIhvcNAQkOMXUwczAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIGwDAfBgNV
HSUEGDAWBggrBgEFBQcDAgYKKwYBBAGCNxQCAjAyBgNVHREEKzApoCcGCisGAQQB
gjcUAgOgGQwXbml0cm9AdGVzdC5uaXRyb2tleS5jb20wDQYJKoZIhvcNAQELBQAD
ggEBAH6XBlBmc7dQP0mt7uXOyIu8xRSYSfxKBJGjPl0IKDHWke3/4frU5C99/KS/
b9/T4JrlZa/9letjMj8hV4a+pdE0Gpxy+Ac1a9XlMki35UESOXC0JSyirBBLnNtD
qtHKtfPeQ3Csbsj57qjdqBMlWII5cz3jO9EpEG2FgxreJwY5s58KuKit01AJDIWt
GYg9P7MblEEO8iPjcFqccsPTRgU04COT6dOFZ8bGZ18UsnAVMXPOdcR7cppp8mL+
QZCyqdk1m+91rtkJPkqVUK/0o8MJj5k3Ch4ANvQEWnOabRumJaHDu4PmhsqLnQJA
eGQvuPRBmR71GRkGmqu+e1oyze8=
-----END CERTIFICATE REQUEST-----

Kopieren Sie die Zertifikatssignierungsanforderung in eine Datei request.csr

3: Unterschreiben Sie den CSR#

Verschieben Sie die Datei request.csr aus dem vorherigen Schritt auf den Server, auf dem sich die Zertifizierungsstelle befindet. Überprüfen Sie in der Konsole für die Zertifikatsvorlage (certtmpl.msc ), dass die Vorlage für die Benutzer Subject-Namen aus der Anforderung akzeptieren kann:

Schalten Sie in der Konsole der Zertifikatsvorlage in den Parametern für die Authentifizierungszertifikatsvorlage auf der Registerkarte "Betreffname" die Option "in Anfrage liefern" ein.

Öffnen Sie die PowerShell und signieren Sie die Zertifikatssignierungsanforderung mit certreq.exe -attrib CertificateTemplate:Nitrotest -submit request.csr

Dadurch wird eine grafische Benutzeroberfläche geöffnet, in der Sie die richtige Zertifizierungsstelle auswählen können, wenn es auf diesem Server mehrere gibt. Speichern Sie das Zertifikat als certificate.crt

4: Speichern Sie das Zertifikat auf dem Nitrokey#

cat certificate.der | pivy-tool write-cert 9A

5: Importieren Sie das Zertifikat in das Benutzerkonto#

Verschieben Sie certificate.der auf das Windows-Gerät des Benutzers, und öffnen Sie den Zertifikatsmanager (Für den Benutzer, nicht für den Rechner):

Öffnen Sie das Kontrollfeld "Benutzerzertifikat verwalten".

Importieren Sie das Zertifikat:

Unter Aktionen, alle Aufgaben, finden Sie die Importaktion

Melden Sie sich anschließend ab. Melden Sie sich mit dem Nitrokey an, indem Sie die „Anmeldeoptionen“ verwenden