
يحاكي البطاقات الذكية PIV وفق معيار NIST SP 800-73 على نظام Windows باستخدام شهادة PFX ومفتاح خاص، مما يتيح مصادقة البطاقات الذكية لجلسات RDP وCitrix وVMware Horizon.
PIVert هو محاكي بطاقة PIV الذكية وفق معيار NIST SP 800-73. يمكنك تزويد 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
لمحاكاة بطاقة PIV باستخدام ملف PFX، يكفي تحديد ملف 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 عند بدء التشغيل كما في الأعلى.