Windows-inloggning med PIV Smartcard-autentisering#

Detta dokument förklarar hur man manuellt tillhandahåller PIV-funktionen för en Nitrokey 3 för Windows smartkortsinloggning med en nyckel och ett certifikat.

I framtiden kan denna manuella tillhandahållande automatiseras med hjälp av en Windows MiniDriver.

Varning

PIV-funktionen i Nitrokey 3 anses för närvarande vara instabil och är inte tillgänglig i de stabila firmwareversionerna. För att få den funktionen måste man installera en test-firmware. Efterföljande uppdateringar av firmware kan leda till förlust av data och kryptografiska nycklar. Mer information finns i dokumentationen för uppdatering av fast programvara.

Förutsättningar#

  • En Windows-server med:

    • Active Directory (instruktioner)

    • En certifikatutfärdare med en certifikatmall för inloggningsautentisering med RSA 2048-bitars nycklar:

  • En Windows-användarmaskin som är ansluten till serverns domän.

  • En Nitrokey 3 med PIV

  • Ett Linux-system med pivy och PCSCD installerat (sudo apt install pcscd), för provisionering av Nitrokey (steg 1, 2 och 4). Istället för ett separat Linux-system kan du installera WSL på Windows. Observera att du måste virtuellt koppla Nitrokey till WSL och starta PCSCD (sudo service start pcscd) innan du använder pivy.

1: Skapa en nyckel på Nitrokey#

Nyckeln genereras i kortplats 9A (autentisering).

pivy-tool -a rsa2048 generate 9A

Observera

Om administrationsnyckeln inte är standardnyckeln kan den anges med -A 3des -K 010203040506070801020304050607080102030405060708 . Argumentet till -A kan också vara aes256, och argumentet till -K är nyckeln i hexadecimal form.

Användarens PIN-kod kan också anges med -P 123456, eller -P <value> om den inte är standard. Om -P inte har angetts kommer den att efterfrågas efter nyckelgenereringen.

Detta gäller alla kommandon pivy-tool.

Detta steg kan ta några minuter för RSA-nycklar, eftersom den rena programvaruimplementationen är långsam.

Förväntat resultat:

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

2: Generera en begäran om signering av certifikat (CSR)#

Detta steg genererar ett certifikat för nyckeln i autentiseringsplatsen. pivy-tool -n 'Nitro Test' -u "nitro@test.nitrokey.com" -T user-auth req-cert 9A

Användarnamnet Nitro Test och e-postadressen nitro@test.nitrokey.com måste ändras till egna värden.

Förväntat 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-----

Kopiera begäran om certifikatsignering till en fil request.csr

3: Underteckna CSR#

Flytta filen request.csr från föregående steg till den server som är värd för certifikatutfärdaren. Kontrollera i konsolen för certifikatmallar (certtmpl.msc ) att mallen för användarna kan acceptera ämnesnamn från begäran:

I konsolen för certifikatmallen, i parametern för autentiseringscertifikatmallen, växlar du mellan "supply in request" (tillhandahålla i begäran) på fliken "subject name" (ämnesnamn).

Öppna PowerShell och signera begäran om certifikatsignering med certreq.exe -attrib CertificateTemplate:Nitrotest -submit request.csr

Detta öppnar ett GUI där du kan välja rätt certifikatutfärdare om det finns flera på denna server. Spara certifikatet som certificate.crt

4: Lagra certifikatet på Nitrokey#

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

5: Importera certifikatet till användarkontot#

Flytta certificate.der till användarens Windows-enhet och öppna certifikathanteraren (För användaren, inte maskinen):

Öppna kontrollpanelen "Hantera användarcertifikat".

Importera certifikatet:

I åtgärder, alla uppgifter, hittar du importåtgärden

När detta är gjort loggar du ut. Logga in med Nitrokey genom att använda ”inloggningsalternativ”.