Lỗi thẻ thông minh


8

Tôi có thẻ thông minh CACĐầu đọc thẻ USB SCM microsystem SCR3310 . Tôi đang chạy Windows 7 Ultimate với SP1.

Thiết lập này được sử dụng để làm việc tốt. Khi tôi chèn CAC, chứng chỉ của tôi sẽ ngay lập tức được truyền tới kho lưu trữ chứng chỉ (bằng chứng là Trình quản lý chứng chỉ certmgr.msc) và tôi có thể đăng nhập vào các trang web yêu cầu CAC để truy cập.

Gần đây, tôi đã ngừng truy cập các trang web. Nhìn vào Trình quản lý chứng chỉ, tôi thấy rằng chỉ có một hoặc đôi khi hai chứng chỉ của tôi có mặt. Nếu tôi xóa chúng và lắp lại thẻ của mình, một chứng chỉ khác có thể xuất hiện.

Tôi vừa trở lại và thay thế người đọc bằng cùng một mô hình, vì vậy tôi biết đó không phải là thủ phạm.

Cuối cùng tôi đã nghĩ đến việc xem nhật ký hệ thống và nhận thấy các lỗi sau khi lắp thẻ thông minh:

nhập mô tả hình ảnh ở đây


Các lỗi, theo thứ tự thời gian:

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)

Dường như phần cứng chỉ ra lỗi trong quá trình IOCTL TRANSMIT, điều này được đưa xuống qua khung trình điều khiển chế độ người dùng.

Chỉnh sửa: Tư vấn thông số CCID, có vẻ như thẻ đang phản hồi lại bmCommandStatus = 1 - Failed (error code provided by the error register). Và Error = ICC_PROTOCOL_NOT_SUPPORTED -10 (F6h). Tôi giả sử trình điều khiển dịch lỗi này thành "HResult: Yêu cầu được chỉ định không phải là thao tác hợp lệ cho thiết bị đích." thông điệp.

Ngoài ra, lệnh được gửi là INS = 0xC0, đó là GET RESPONSE .

Làm thế nào nó có thể nói giao thức không được hỗ trợ? Trình điều khiển làm gì khác so với khi nó làm việc? Lưu ý rằng tôi cũng đã thử điều này với một CAC mới và tôi thấy hành vi tương tự. Một vấn đề với đầu đọc thẻ, hoặc trình điều khiển?


Xem xét tôi vừa thay thế đầu đọc (và cài đặt lại trình điều khiển, khởi động lại, v.v.) có vấn đề gì với Thẻ thông minh của tôi không? Tôi giả định không, bởi vì nó không làm việc với một trình đọc trên một hệ thống khác. Tôi chưa thử một trình đọc khác trên cùng một hệ thống.

Trên thực tế, cùng một trình đọc được kết nối với máy ảo Windows 7 trên cùng một máy vật lý hoạt động tốt! Một cái gì đó rõ ràng bị phá vỡ, và nó khiến tôi phát điên khi cố gắng tìm ra cái gì.

Vì vậy, vấn đề là gì?


Tôi vừa có một phiên trò chuyện đáng yêu với một Jasper V từ Microsoft, cung cấp chính xác cái nhìn sâu sắc về vấn đề này: pastebin.com/dvU3dNfa
Jonathon Reinhart

Tôi có cùng một vấn đề, bạn có tìm ra giải pháp không?
Tobia

Tôi đã cài đặt Linux.
Jonathon Reinhart

Xin chào @JonathonReinhart, xin lỗi vì chiếm quyền điều khiển bài đăng này nhưng tôi có cùng một vấn đề, bạn có bao giờ tìm thấy giải pháp không?
Lankymart

Câu trả lời:


2

Chỉ trong trường hợp nếu ai đó sẽ mắc kẹt với vấn đề đó - tôi đã cố gắng khắc phục nó trong suốt cả ngày dài.

Đây là giải pháp:

  1. Đối với Windows 64 bit - chuyển đến khóa đăng ký tại

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

Cần có một số độc giả. Và nếu không, đó là lý do tại sao bạn có thể cài đặt tất cả các trình điều khiển, nhưng vẫn không hoạt động.

  1. Đi tới Device Manager, tìm người đọc trong câu hỏi sau đó tìm chuỗi này trong tab Chi tiết : Bus reported device description.

  2. Tạo một khóa con cho khóa ở trên. Tên phải giống hệt như vậy Bus reported device description. Sau đó thêm một bộ đếm ở cuối. Vì vậy, chìa khóa nên như thế này:

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Cryptography\Calais\Readers\O2Micro CCID SC Reader 0
    
  3. Bây giờ tạo một vài giá trị chuỗi: đầu tiên với tên thiết bị và thứ hai cho các nhóm. Đây là ví dụ của tôi:

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

Đó là nó. Để làm cho nó hoạt động ngắt kết nối đầu đọc và kết nối lại. Trong trường hợp thiết bị nội bộ, bạn có thể phải khởi động lại máy. Và đây là .regví dụ về tệp (thay đổi tên và số thiết bị thành giá trị của riêng bạn):

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

Mặc dù câu hỏi của bạn rất cụ thể, cảm ơn bạn đã chia sẻ những hiểu biết của bạn. +1
Thưởng thức Josipovic

Tôi xin lỗi, nhưng tôi không hiểu những gì cần phải hoàn thành. Thiết bị của tôi được kết nối rõ ràng và trình điều khiển đang liên lạc với người đọc.
Jonathon Reinhart
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.