Ich habe eine CAC- Smartcard und einen SCM Microsystems SCR3310 USB-Kartenleser . Ich verwende Windows 7 Ultimate mit SP1.
Dieses Setup funktionierte einwandfrei. Wenn ich mein CAC einfügte, wurden meine Zertifikate sofort an den Zertifikatspeicher weitergegeben (wie vom Zertifikatsmanager belegt certmgr.msc
), und ich konnte mich auf Websites anmelden, für deren Zugriff ein CAC erforderlich war.
Vor kurzem konnte ich nicht mehr auf die Websites zugreifen. Wenn ich in Certificate Manager nachschaue, sehe ich, dass nur ein oder manchmal zwei meiner Zertifikate vorhanden sind. Wenn ich sie lösche und meine Karte erneut einlege, wird möglicherweise ein anderes Zertifikat angezeigt.
Ich bin gerade zurückgekehrt und habe den Leser durch das gleiche Modell ersetzt, daher weiß ich, dass es nicht der Schuldige ist.
Ich dachte schließlich daran, mir das Systemprotokoll anzusehen, und bemerkte beim Einsetzen der Smartcard die folgenden Fehler:
Die Fehler in chronologischer Reihenfolge:
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)
Es scheint, dass die Hardware während des einen Fehler anzeigte IOCTL TRANSMIT
, der durch das Benutzermodus-Treiber-Framework herunterrutschte.
Bearbeiten: In der CCID-Spezifikation wird angezeigt, dass die Karte mit antwortet
bmCommandStatus = 1 - Failed (error code provided by the error register)
. Und Error = ICC_PROTOCOL_NOT_SUPPORTED -10 (F6h)
. Ich gehe davon aus, dass der Treiber diesen Fehler in "HResult: Die angegebene Anforderung ist keine gültige Operation für das Zielgerät" übersetzt. Botschaft.
Außerdem wurde als Befehl INS = 0xC0 gesendet, was GET RESPONSE ist .
Wie kann es sagen, dass das Protokoll nicht unterstützt wird? Was macht der Fahrer anders als wenn es funktioniert hat? Beachten Sie, dass ich dies auch gerade mit einem neuen CAC versucht habe und ein ähnliches Verhalten sehe. Ein Problem mit dem Kartenleser oder dem Treiber?
Wenn man bedenkt, dass ich gerade das Lesegerät ausgetauscht (und Treiber neu installiert, neu gestartet usw.) habe, stimmt etwas mit meiner Smart Card nicht? Ich gehe davon aus nicht, denn es tut auf einem anderen System mit einem anderen Leser zu arbeiten. Ich habe keinen anderen Leser auf demselben System ausprobiert.
Tatsächlich funktioniert derselbe Reader, der mit einer Windows 7-VM auf demselben physischen Computer verbunden ist, einwandfrei! Etwas ist eindeutig kaputt und es macht mich verrückt, herauszufinden, was.
Also, wo liegt das Problem?