
Émule les cartes à puce PIV NIST SP 800-73 sur Windows à l'aide d'un certificat et d'une clé privée PFX, permettant l'authentification par carte à puce pour les sessions RDP, Citrix et VMware Horizon.
PIVert est un émulateur de carte à puce PIV conforme à la norme NIST SP 800-73. Vous pouvez fournir à PIVert un fichier PFX contenant un certificat et la clé privée correspondante, et l'outil émulera la carte auprès de Windows comme une véritable carte PIV. La carte peut ensuite être utilisée pour l'authentification via RDP, Citrix et VMWare Horizon en utilisant la fonctionnalité intégrée de redirection de carte à puce.
Sur une machine propre qui n'a jamais utilisé PIVert auparavant, la première étape consiste à installer le pilote de lecteur de carte à puce virtuel BixVReader. ATTENTION, cela installe un certificat d'autorité de certification racine auto-signé approuvé, car le pilote est auto-signé à l'aide d'un certificat de test. L'étape d'installation définit également l'option de stratégie de groupe AllowCertificatesWithNoEKU. Sans cette option, seuls les certificats avec l'EKU Smartcard Logon sont proposés pour l'authentification. Avec cette option activée, les certificats avec l'EKU User Authentication sont également disponibles pour l'authentification.
.\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
Pour émuler une carte PIV à l'aide d'un fichier PFX, il vous suffit de spécifier le fichier PFX et le mot de passe PFX comme arguments de ligne de commande.
.\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
Il semble y avoir un bug dans le pilote (ou potentiellement dans mon code :D) où parfois l'insertion de la carte virtuelle n'est pas détectée par Windows en raison de problèmes de lecture de l'ATR de la carte virtuelle. Pour contourner ce problème, vous pouvez appuyer sur n'importe quelle touche autre que ÉCHAP pour retirer et réinsérer virtuellement la carte. Vous saurez que cela s'est produit lorsque vous ne verrez pas les demandes de DataObjects au démarrage comme ci-dessus.