
Windows पर PFX प्रमाणपत्र और निजी कुंजी का उपयोग करके NIST SP 800-73 PIV स्मार्ट कार्ड का अनुकरण करता है, जिससे RDP, Citrix और VMware Horizon सत्रों के लिए स्मार्ट-कार्ड प्रमाणीकरण सक्षम होता है।
PIVert एक NIST SP 800-73 PIV स्मार्ट कार्ड इम्यूलेटर है। आप PIVert को एक PFX फ़ाइल दे सकते हैं जिसमें एक प्रमाणपत्र और संबंधित निजी कुंजी होती है, और यह टूल Windows को कार्ड को एक वास्तविक PIV कार्ड के रूप में दिखाएगा। फिर इस कार्ड का उपयोग RDP, Citrix और VMWare Horizon पर अंतर्निहित स्मार्ट कार्ड रीडायरेक्शन सुविधा का उपयोग करके प्रमाणीकरण के लिए किया जा सकता है।
एक साफ मशीन पर जिसने पहले कभी PIVert का उपयोग नहीं किया है, पहला कदम BixVReader वर्चुअल स्मार्ट कार्ड रीडर ड्राइवर को स्थापित करना है। चेतावनी, यह एक स्व-हस्ताक्षरित विश्वसनीय रूट प्रमाणपत्र प्राधिकरण प्रमाणपत्र स्थापित करता है क्योंकि ड्राइवर एक परीक्षण प्रमाणपत्र का उपयोग करके स्व-हस्ताक्षरित है। स्थापना चरण AllowCertificatesWithNoEKU समूह नीति विकल्प भी सेट करता है। इस विकल्प के बिना, केवल Smartcard Logon EKU वाले प्रमाणपत्र प्रमाणीकरण के लिए पेश किए जाते हैं। इस विकल्प को सक्षम करने पर, User Authentication EKU वाले प्रमाणपत्र भी प्रमाणीकरण के लिए उपलब्ध होते हैं।
.\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
PFX फ़ाइल का उपयोग करके PIV कार्ड का इम्यूलेशन करने के लिए, आप केवल PFX फ़ाइल और PFX पासवर्ड को कमांड लाइन तर्क के रूप में निर्दिष्ट करते हैं।
.\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
ऐसा प्रतीत होता है कि ड्राइवर में एक बग है (या संभवतः मेरे कोड में :D) जिसके कारण कभी-कभी Windows द्वारा वर्चुअल कार्ड सम्मिलन का पता नहीं लगाया जाता है, क्योंकि वर्चुअल कार्ड से ATR पढ़ने में समस्याएँ होती हैं। इस समस्या से निपटने के लिए आप ESC के अलावा कोई भी कुंजी दबा सकते हैं ताकि कार्ड वर्चुअल रूप से निकाला और पुनः सम्मिलित किया जा सके। आपको पता चल जाएगा कि ऐसा कब हुआ है, क्योंकि आपको स्टार्ट-अप पर उपरोक्त जैसे DataObjects के लिए अनुरोध नहीं दिखाई देंगे।