Windows-login med PIV Smartcard-autentificering#

Dette dokument forklarer, hvordan man manuelt klargør PIV-funktionen på et Nitrokey 3 for Windows smartcard-logon med en nøgle og et certifikat.

I fremtiden kan denne manuelle tilrådighedsstillelse automatiseres via en Windows MiniDriver.

Advarsel

PIV-funktionen i Nitrokey 3 betragtes i øjeblikket som ustabil og er ikke tilgængelig i de stabile firmwareversioner. For at opnå denne funktionalitet er det nødvendigt at installere en test-firmware. Efterfølgende firmwareopdateringer kan føre til tab af data og kryptografiske nøgler. Se venligst dokumentationen til firmwareopdateringen for flere oplysninger.

Forudsætninger#

  • En Windows-server med:

    • Active Directory (instruktioner)

    • En certifikatudstedende myndighed (CA) med en certifikatskabelon til logon-godkendelse ved hjælp af RSA 2048 bit-nøgler:

  • En Windows-brugermaskine, der er tilknyttet serverens domæne

  • En Nitrokey 3 med PIV

  • Et Linux-system med pivy og PCSCD installeret (sudo apt install pcscd), til provisionering af Nitrokey (trin 1, 2 og 4). I stedet for et separat Linux-system kan du installere WSL på Windows. Bemærk, at du skal virtuelt vedhæfte Nitrokey til WSL og starte PCSCD (sudo service start pcscd), før du bruger pivy.

1: Generer en nøgle på Nitrokey#

Nøglen genereres i slot 9A (autentifikation).

pivy-tool -a rsa2048 generate 9A

Bemærk

Hvis administrationsnøglen ikke er standardnøglen, kan den angives med -A 3des -K 010203040506070801020304050607080102030405060708 . Argumentet til -A kan også være aes256, og argumentet til -K er nøglen i hexadecimal.

Brugerens PIN-kode kan også angives med -P 123456, eller -P <value>, hvis den ikke er standard. Hvis -P ikke er angivet, vil der blive spurgt efter den, når nøglen er genereret.

Dette gælder for alle pivy-tool-kommandoer.

Dette trin kan tage et par minutter for RSA-nøgler, da den rene softwareimplementering er langsom.

Forventet output:

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

2: Generer en Certificate Signing Request (CSR)#

Dette trin genererer et certifikat til nøglen i autentificeringssporet. pivy-tool -n 'Nitro Test' -u "nitro@test.nitrokey.com" -T user-auth req-cert 9A

Brugernavnet Nitro Test og e-mailadressen nitro@test.nitrokey.com skal ændres til egne værdier.

Forventet resultat:

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

Kopier anmodningen om signering af certifikatet til en fil request.csr

3: Underskriv CSR’en#

Flyt filen request.csr fra det foregående trin til den server, der er vært for certifikatudstederen. Kontroller i konsollen for certifikatskabeloner (certtmpl.msc ), at skabelonen for brugerne kan acceptere emnenavne fra anmodningen:

I konsollen for certifikatskabeloner skal du i parameteren for skabelonen for autentifikationscertifikatet slå "supply in request" fra under fanen "subject name".

Åbn PowerShell, og signér anmodningen om signering af certifikatet med certreq.exe -attrib CertificateTemplate:Nitrotest -submit request.csr

Dette vil åbne en GUI, hvor du kan vælge den korrekte Certificate Authority, hvis der er flere på denne server. Gem certifikatet som certificate.crt

4: Gem certifikatet på Nitrokey#

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

5: Importer certifikatet til brugerkontoen#

Flyt certificate.der til brugerens Windows-enhed, og åbn certifikatadministratoren (For brugeren, ikke maskinen):

Åbn kontrolpanelet "Administrer brugercertifikat"

Importer certifikatet:

Under handlinger, alle opgaver, kan du finde importhandlingen

Når dette er gjort, skal du logge ud. Log ind med Nitrokey ved at bruge »sign-in options«