Autentificare Windows cu autentificare PIV Smartcard#

Acest document explică modul în care se aprovizionează manual funcția PIV a unui card inteligent de conectare Nitrokey 3 pentru Windows cu o cheie și un certificat.

În viitor, această aprovizionare manuală poate fi automatizată prin intermediul unui MiniDriver Windows.

Atenționare

Funcția PIV a Nitrokey 3 este considerată în prezent instabilă și nu este disponibilă în versiunile stabile de firmware. Pentru a obține această funcționalitate este necesară instalarea unui firmware de testare. Actualizările ulterioare ale firmware-ului pot duce la pierderea datelor și a cheilor criptografice. Vă rugăm să consultați documentația de actualizare a firmware-ului pentru mai multe informații.

Condiții prealabile#

  • Un server Windows cu:

    • Active Directory (instrucțiuni)

    • O autoritate de certificare (CA), cu un șablon de certificat pentru autentificarea la conectare utilizând chei RSA pe 2048 biți:

  • O mașină utilizator Windows alăturată la domeniul serverului

  • Un Nitrokey 3 cu PIV

  • Un sistem Linux cu pivy și PCSCD instalat (sudo apt install pcscd), pentru a furniza Nitrokey (pașii 1, 2 și 4). În loc de un sistem Linux separat, puteți instala WSL pe Windows. Rețineți că trebuie să atașați virtual Nitrokey la WSL și să porniți PCSCD (sudo service start pcscd) înainte de a utiliza pivy.

1: Generați o cheie pe Nitrokey#

Cheia este generată în slotul 9A (autentificare).

pivy-tool -a rsa2048 generate 9A

Notă

Dacă cheia de administrare nu este cea implicită, aceasta poate fi specificată cu -A 3des -K 010203040506070801020304050607080102030405060708 . Argumentul pentru -A poate fi, de asemenea, aes256, iar argumentul pentru -K este cheia în hexazecimal.

PIN-ul utilizatorului poate fi, de asemenea, specificat cu -P 123456, sau -P <value> dacă nu este cel implicit. Dacă nu este furnizat -P, acesta va fi cerut după generarea cheii.

Acest lucru este valabil pentru toate comenzile pivy-tool.

Acest pas poate dura câteva minute pentru cheile RSA, deoarece implementarea software-ului pur este lentă.

Ieșire așteptată:

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

2: Generarea unei cereri de semnare a certificatului (CSR)#

Această etapă generează un certificat pentru cheia din slotul de autentificare. pivy-tool -n 'Nitro Test' -u "nitro@test.nitrokey.com" -T user-auth req-cert 9A

Numele de utilizator Nitro Test și adresa de e-mail nitro@test.nitrokey.com trebuie să fie schimbate în valori proprii.

Rezultatul așteptat:

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

Copiați cererea de semnare a certificatului într-un fișier request.csr

3: Semnați RSC#

Mutați fișierul request.csr de la pasul anterior pe serverul care găzduiește autoritatea de certificare. Verificați în consola de șabloane de certificate (certtmpl.msc ) că șablonul pentru utilizatori poate accepta numele subiectului din cerere:

În consola șablonului de certificat, în parametrul pentru șablonul de certificat de autentificare, activați "supply in request" în fila "subject name".

Deschideți PowerShell și semnați cererea de semnare a certificatului cu certreq.exe -attrib CertificateTemplate:Nitrotest -submit request.csr

Se va deschide o interfață grafică în care puteți selecta autoritatea de certificare corectă, dacă există mai multe pe acest server. Salvați certificatul ca certificate.crt

4: Stocați certificatul pe Nitrokey#

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

5: Importați certificatul în contul de utilizator#

Mutați certificate.der pe dispozitivul Windows al utilizatorului și deschideți managerul de certificate (Pentru utilizator, nu pentru mașină):

Deschideți panoul de control "manage user certificate control panel"

Importați certificatul:

În acțiuni, toate sarcinile, puteți găsi acțiunea de import

După ce ați făcut acest lucru, deconectați-vă. Conectați-vă cu Nitrokey folosind „Sign-in options” (opțiuni de conectare)