Windows-login met PIV Smartcard-authenticatie#
In dit document wordt uitgelegd hoe u de PIV-functie van een Nitrokey 3 for Windows smartcard handmatig van een sleutel en een certificaat kunt voorzien.
In de toekomst kan deze handmatige voorziening worden geautomatiseerd via een Windows MiniDriver.
Vereisten#
Een Windows server met:
Active Directory (instructies)
Een certificaatautoriteit (CA), met een certificaatsjabloon voor inlogverificatie met RSA 2048 bit sleutels:
Certificaatautoriteit (instructies)
Authenticatiesjabloon (instructies)
Een Windows-gebruikersmachine die is aangesloten op het domein van de server
Een Nitrokey 3 met PIV
Een Linux-systeem met pivy en PCSCD geïnstalleerd (
sudo apt install pcscd
), om de Nitrokey te provisioneren (stap 1, 2 en 4). In plaats van een apart Linux-systeem kunt u WSL op Windows installeren. Merk op dat u virtueel de Nitrokey aan WSL moet koppelen en PCSCD moet starten (sudo service start pcscd
) voordat u pivy gebruikt.
1: Genereer een sleutel op de Nitrokey#
De sleutel wordt gegenereerd in slot 9A (authenticatie).
pivy-tool generate 9A -a rsa2048
Notitie
Als de administratiesleutel niet de standaardsleutel is, kan deze worden opgegeven met -A 3des -K 010203040506070801020304050607080102030405060708
. Het argument voor -A
kan ook aes256
zijn, en het argument voor -K
is de sleutel in hexadecimaal.
De gebruikers-PIN kan ook worden opgegeven met -P 123456
, of -P <value>
als het niet de standaard is. Als -P
niet is opgegeven, wordt er na het genereren van de sleutel om gevraagd.
Dit geldt voor alle pivy-tool
commando’s.
Deze stap kan een paar minuten duren voor RSA-sleutels, aangezien de pure software-implementatie traag is.
Verwachte output:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKO5ENwrK3qKBAgDkyq1tfiw5JxnoCEIiM3Vc+8Eylux04r1sgjHEyqbOvpScObZuchxFZZ5LdeHynvFn3c07K4HpoZ/7NjLzUYOmlVAy4wpEwRs9psbrT6wbvHVLyffZiiSPW15HHQKcUZZ30WDunh5m7xzvY9ej810QIW/P724MFWTbRdpqmG8m1qWCUM5dqkmpiprI/WeD+VmTcQWbJJ+oyoPyxmwzGyAotl7mVC6EYdcfvyBSNQdVdGfYGxjNEec4aWxoFRg4ADfpPnYD+gLxHcj/9s7o/wdMhXRiSio1tjsEjaeuOICGLaiiLGMfLxpfEApb8qJgsEFgYl6kn PIV_slot_9A@9E424375A38449E59B3DF89D9B90E601
2: Genereer een certificaatondertekeningsverzoek (CSR)#
Deze stap genereert een certificaat voor de sleutel in de authenticatiesleuf. pivy-tool req-cert 9A -n ‘Nitro Test’ -u “nitro@test.nitrokey.com” -T user-auth
De Nitro Test
gebruikersnaam en het nitro@test.nitrokey.com
e-mailadres moeten worden gewijzigd in eigen waarden.
Verwachte output:
-----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-----
Kopieer het verzoek om ondertekening van het certificaat naar een bestand request.csr
3: Onderteken het CSR#
Verplaats het request.csr bestand uit de vorige stap naar de server die de certificaatautoriteit host. Controleer in de certificaatsjabloonconsole (certtmpl.msc
) dat het sjabloon voor de gebruikers onderwerpsnamen uit het verzoek kan accepteren:

Open PowerShell en onderteken het verzoek om ondertekening van het certificaat met certreq.exe -attrib CertificateTemplate:Nitrotest -submit request.csr
.
Dit opent een GUI waar u de juiste Certificate Authority kunt selecteren als er meerdere zijn op deze server. Sla het certificaat op als certificate.crt
.
4: Bewaar het certificaat op de Nitrokey#
cat certificate.der | pivy-tool write-cert 9A
5: Importeer het certificaat naar de gebruikersaccount#
Verplaats certificate.der
naar het Windows-apparaat van de gebruiker, en open de certificaatmanager (Voor de gebruiker, niet de machine):

Importeer het certificaat:

Zodra dit is gebeurd, logt u uit. Log in met de Nitrokey via de “aanmeldingsopties”.