
Emula smart card PIV conformi a NIST SP 800-73 su Windows utilizzando un certificato PFX e la relativa chiave privata, consentendo l'autenticazione tramite smart card per sessioni RDP, Citrix e VMware Horizon.
PIVert è un emulatore di smart card PIV conforme a NIST SP 800-73. Puoi fornire a PIVert un file PFX contenente un certificato e la relativa chiave privata e lo strumento emulerà la carta per Windows come una vera smart card PIV. La carta può quindi essere utilizzata per l'autenticazione tramite RDP, Citrix e VMWare Horizon usando la funzionalità integrata di reindirizzamento delle smart card.
Su una macchina pulita che non ha mai usato PIVert in precedenza, il primo passo è installare il driver del lettore di smart card virtuale BixVReader. ATTENZIONE: questo installa un certificato di autorità di certificazione radice attendibile auto-firmato, poiché il driver è auto-firmato utilizzando un certificato di test. Il passaggio di installazione imposta anche l'opzione dei criteri di gruppo AllowCertificatesWithNoEKU. Senza questa opzione, per l'autenticazione vengono offerti solo i certificati con EKU Smartcard Logon. Con questa opzione abilitata, anche i certificati con EKU User Authentication sono disponibili per l'autenticazione.
.\PIVert.exe install
[=] AllowCertificatesWithNoEKU on SmartCard Credential Provider not set, enabling...
[+] Enabled AllowCertificatesWithNoEKU on SmartCard Credential Provider
[=] Writing BixVReader.ini config to C:\Windows
[=] Installing driver signing certificate into Root and Trusted Publishers local machine store
[=] Installing driver MSI
[+] Installer completed
Per emulare una smart card PIV utilizzando un file PFX, è sufficiente specificare il file PFX e la password PFX come argomenti della riga di comando.
.\PIVert.exe .\Administrator.pfx password
[=] Connected to Smartcard Data Pipe
[=] Connected to Smartcard Event Pipe
[+] Connected Virtal Smart Card Driver
[+] Virtual card inserted
[=] Press ESC to exit, or any other key to remove and reinsert the virtual card?
[=] Unsupported INS ca with CLA 0
[=] Request for PIV DataObject: CardHolderUniqieID
[=] Request for PIV DataObject: CertPIVAuth
[=] Request for PIV DataObject: CertSign
[=] Request for PIV DataObject: CertKeyMan
[=] Request for PIV DataObject: CertCardAuth
[=] Request for PIV DataObject: KeyHistory
[=] Request for PIV DataObject: CertPIVAuth
[=] Request for PIV DataObject: CertSign
[=] Request for PIV DataObject: CertCardAuth
[=] Request for PIV DataObject: CardHolderUniqieID
[=] Request for PIV DataObject: CertKeyMan
[=] Request for PIV DataObject: KeyHistory
Sembra esserci un bug nel driver (o potenzialmente nel mio codice :D) per cui a volte l'inserimento della virtual card non viene rilevato da Windows a causa di problemi nella lettura dell'ATR dalla smart card virtuale. Per ovviare a questo problema puoi premere un tasto qualsiasi diverso da ESC per rimuovere e reinserire virtualmente la carta. Capirai che è successo quando non vedrai le richieste per i DataObject all'avvio come nell'esempio precedente.