Tôi có thẻ thông minh CAC và Đầ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:
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ì?