ข้อผิดพลาดของสมาร์ทการ์ด


8

ฉันมีCACมาร์ทการ์ดและการ์ด USB SCM Microsystems SCR3310 อ่าน ฉันใช้ Windows 7 Ultimate กับ SP1

การตั้งค่านี้ใช้ในการทำงานได้ดี เมื่อฉันจะแทรก CAC ของฉันใบรับรองของฉันจะเผยแพร่ไปยังที่เก็บใบรับรองทันที (ตามหลักฐานโดยตัวจัดการใบรับรองcertmgr.msc) และฉันสามารถเข้าสู่เว็บไซต์ที่ต้องใช้ CAC เพื่อเข้าถึง

เมื่อเร็ว ๆ นี้ฉันหยุดการเข้าถึงเว็บไซต์ เมื่อดูในตัวจัดการใบรับรองฉันเห็นว่ามีใบรับรองเพียงใบรับรองเดียวหรือบางครั้งมีอยู่สองใบรับรอง หากฉันลบพวกเขาและใส่การ์ดอีกครั้งใบรับรองอื่นอาจปรากฏขึ้น

ฉันเพิ่งกลับมาและแทนที่ผู้อ่านด้วยรุ่นเดียวกันดังนั้นฉันจึงรู้ว่าไม่ใช่ผู้ร้าย

ในที่สุดฉันก็คิดว่าจะดูบันทึกของระบบและสังเกตเห็นข้อผิดพลาดต่อไปนี้เมื่อใส่สมาร์ทการ์ด:

ป้อนคำอธิบายรูปภาพที่นี่


ข้อผิดพลาดตามลำดับเวลา:

Smart Card Service    Event ID: 610
   Smart Card Reader 'SCM Microsystems SCR33xx v2.0 USB SC Reader 0' rejected
   IOCTL TRANSMIT: Incorrect function.  If this error persists, your smart card
   or reader may not be functioning correctly.

   Command Header: 00 c0 00 00

WudfUsbccidDrv        Event ID: 11
   A Request has returned failure.
   MsgType: 0x80
   ICCStatus: 0x0
   CmdStatus: 0x1
   Error: 0xf6               // ICC_PROTOCOL_NOT_SUPPORTED
   SW1: 0x0
   SW2: 0x0

WudfUsbccidDrv        Event ID: 11
   An operation has failed (0x0, 0x0, 0x0, 0x0).
   ScT0Transmit: Failed to send request at TPDU level.
   HResult: The specified request is not a valid operation for the target device.
   // Note: this one comes from WUDFUsbccidDriver.dll CMyDevice::UsbScT0Transmit+7D0h

WudfUsbccidDrv        Event ID: 10
   Request[0](CLS=0x0,INS=0xc0,P1=0x0,P2=0x0,Lc=0,Le=256,.NETServiceMethod=0x0)

ปรากฏว่าฮาร์ดแวร์ระบุความล้มเหลวในระหว่างIOCTL TRANSMITที่ไหลผ่านกรอบไดรเวอร์โหมดผู้ใช้

แก้ไข:ให้คำปรึกษาข้อมูลจำเพาะ CCID bmCommandStatus = 1 - Failed (error code provided by the error register)ก็ปรากฏว่าบัตรมีการตอบสนองกลับมาพร้อมกับ และError = ICC_PROTOCOL_NOT_SUPPORTED -10 (F6h). ฉันสมมติว่าไดรเวอร์แปลข้อผิดพลาดนี้เป็น "HResult: คำขอที่ระบุไม่ใช่การทำงานที่ถูกต้องสำหรับอุปกรณ์เป้าหมาย" ข่าวสาร

นอกจากนี้คำสั่งจะถูกส่งเป็น INS = 0xc0 ซึ่งเป็นรับการตอบสนอง

มันพูดได้อย่างไรว่าโปรโตคอลไม่รองรับ คนขับทำอะไรแตกต่างจากตอนทำงาน โปรดทราบว่าฉันเพิ่งลองสิ่งนี้ด้วย CAC ใหม่และฉันก็เห็นพฤติกรรมที่คล้ายกัน มีปัญหากับเครื่องอ่านการ์ดหรือไดรเวอร์หรือไม่?


เมื่อพิจารณาว่าฉันเพิ่งเปลี่ยนผู้อ่าน (และติดตั้งไดรเวอร์ใหม่บูตใหม่ ฯลฯ ) มีอะไรผิดปกติกับสมาร์ทการ์ดหรือไม่ ฉันคิดว่าไม่ได้เพราะมันจะทำงานร่วมกับผู้อ่านคนอื่นในระบบอื่น ฉันไม่ได้ลองใช้ตัวอ่านอื่นในระบบเดียวกัน

ในความเป็นจริงผู้อ่านเดียวกันที่เชื่อมต่อกับ Windows 7 VM บนเครื่องทางกายภาพเดียวกันทำงานได้ดี! มีอะไรบางอย่างแตกหักอย่างชัดเจนและมันทำให้ฉันพยายามที่จะคิดออกว่าอะไร

แล้วปัญหาคืออะไร


ฉันเพิ่งได้แชทเซสชันที่น่ารักกับ Jasper V จาก Microsoft ที่ให้ข้อมูลเชิงลึกเกี่ยวกับปัญหา: pastebin.com/dvU3dNfa
Jonathon Reinhart

ฉันมีปัญหาเดียวกันคุณหาทางแก้ไขหรือไม่?
เบี

ฉันติดตั้ง Linux
Jonathon Reinhart

สวัสดี @ JonathonReinhart ขอโทษที่จี้โพสต์นี้ แต่ฉันมีปัญหาเดียวกันคุณเคยพบวิธีแก้ปัญหาหรือไม่?
Lankymart

คำตอบ:


2

ในกรณีที่มีใครบางคนติดอยู่กับปัญหานั้น - ฉันพยายามที่จะแก้ไขมันตลอดทั้งวัน

นี่คือทางออก:

  1. สำหรับ Windows 64 บิต - ข้ามไปที่คีย์รีจิสทรีที่

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Cryptography\Calais\Readers
    

ควรมีผู้อ่านบางส่วนแล้ว และถ้าไม่ใช่นั่นคือเหตุผลที่คุณอาจติดตั้งไดรเวอร์ทั้งหมด แต่ก็ยังไม่สามารถใช้งานได้เลย

  1. ไปหาอ่านในคำถามแล้วมองออกไปสำหรับสายนี้ในรายละเอียดแท็บ:Device ManagerBus reported device description

  2. สร้างคีย์ย่อยสำหรับคีย์ด้านบน ชื่อควรตรงกับชื่อนั้นBus reported device descriptionทุกประการ จากนั้นเพิ่มเคาน์เตอร์ที่ท้าย ดังนั้นที่สำคัญควรเป็นเช่นนี้:

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Cryptography\Calais\Readers\O2Micro CCID SC Reader 0
    
  3. ตอนนี้สร้างค่าสตริงที่สอง: อันแรกกับชื่ออุปกรณ์และที่สองสำหรับกลุ่ม นี่คือตัวอย่างของฉัน:

    Device = O2Micro CCID SC Reader 0
    
    Groups = SCard$DefaultReaders
    

แค่นั้นแหละ. หากต้องการให้มันตัดการเชื่อมต่อกับเครื่องอ่านและเชื่อมต่อกลับเข้าไป ในกรณีของอุปกรณ์ภายในคุณอาจต้องรีบูตเครื่อง และนี่คือ.regตัวอย่างไฟล์ (เปลี่ยนชื่ออุปกรณ์และหมายเลขเป็นค่าของคุณเอง):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Cryptography\Calais\Readers\O2Micro CCID SC Reader 0]
"Device"="O2Micro CCID SC Reader 0"
"Groups"=hex(7):53,00,43,00,61,00,72,00,64,00,24,00,44,00,65,00,66,00,61,00,75,\
00,6c,00,74,00,52,00,65,00,61,00,64,00,65,00,72,00,73,00,00,00,00,00

แม้ว่าคำถามของคุณจะเฉพาะเจาะจงมากขอบคุณสำหรับการแบ่งปันข้อมูลเชิงลึกของคุณ +1
Davor Josipovic

ฉันขอโทษ แต่ฉันไม่เข้าใจว่าควรทำอย่างไร อุปกรณ์ของฉันเชื่อมต่ออย่างชัดเจนและไดรเวอร์กำลังสื่อสารกับผู้อ่าน
Jonathon Reinhart
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.