Smartcard-Fehler

8

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:

Geben Sie hier die Bildbeschreibung ein


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?

Jonathon Reinhart
quelle
Ich hatte gerade eine schöne Chat-Sitzung mit einem Jasper V von Microsoft, die genau null Einblick in das Problem lieferte: pastebin.com/dvU3dNfa
Jonathon Reinhart
Ich habe das gleiche Problem, finden Sie eine Lösung?
Tobia
Ich habe Linux installiert.
Jonathon Reinhart
Hallo @JonathonReinhart, tut mir leid, diesen Beitrag zu entführen, aber ich habe genau das gleiche Problem. Finden Sie jemals eine Lösung?
Lankymart

Antworten:

2

Nur für den Fall, dass jemand an diesem Problem festhalten würde - ich habe versucht, es wie einen ganzen Tag lang zu beheben.

Hier ist die Lösung:

  1. Für 64-Bit-Windows - springen Sie zum Registrierungsschlüssel unter

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

Es sollte schon einige Leser geben. Und wenn nicht, ist dies der Grund, warum möglicherweise alle Treiber installiert sind, aber immer noch überhaupt nicht funktionieren.

  1. Gehen Sie zu Device Manager, suchen Sie den betreffenden Leser und suchen Sie diese Zeichenfolge auf der Registerkarte Details : Bus reported device description.

  2. Erstellen Sie einen Unterschlüssel für den obigen Schlüssel. Der Name sollte genau so sein Bus reported device description. Fügen Sie dann am Ende einen Zähler hinzu. Der Schlüssel sollte also so sein:

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Cryptography\Calais\Readers\O2Micro CCID SC Reader 0
    
  3. Erstellen Sie nun einige Zeichenfolgenwerte: den ersten mit dem Gerätenamen und den zweiten für Gruppen. Hier ist mein Beispiel:

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

Das ist es. Damit es funktioniert, trennen Sie das Lesegerät und schließen Sie es wieder an. Bei internen Geräten müssen Sie den Computer möglicherweise neu starten. Und hier ist das .regDateibeispiel (ändern Sie den Gerätenamen und die Gerätenummer in Ihre eigenen Werte):

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
Vladimir Molodnyakov
quelle
Obwohl Ihre Frage sehr spezifisch ist, bedanken Sie sich für Ihre Erkenntnisse. +1
Davor Josipovic
Es tut mir leid, aber ich verstehe nicht, was dies bewirken soll. Mein Gerät ist eindeutig angeschlossen und der Treiber kommuniziert mit dem Lesegerät.
Jonathon Reinhart