Errori della smart card


8

Ho una smart card CAC e un lettore di schede USB SC3310 SCM Microsystems . Sto eseguendo Windows 7 Ultimate con SP1.

Questa configurazione funzionava bene. Quando inserivo il mio CAC, i miei certificati si propagavano immediatamente all'archivio certificati (come evidenziato da Certificate Manager, certmgr.msc) e potevo accedere a siti Web che richiedevano un CAC per l'accesso.

Di recente, ho smesso di poter accedere ai siti Web. Guardando Gestione certificati, vedo che solo uno, o talvolta due dei miei certificati sono presenti. Se li elimino e reinserisco la mia carta, potrebbe apparire un certificato diverso.

Sono appena tornato e ho sostituito il lettore con lo stesso modello, quindi so che non è il colpevole.

Alla fine ho pensato di esaminare il registro di sistema e ho notato i seguenti errori durante l'inserimento della smart card:

inserisci qui la descrizione dell'immagine


Gli errori, in ordine cronologico:

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)

Sembra che l'hardware abbia indicato un errore durante il processo IOCTL TRANSMIT, che si è diffuso nel framework del driver in modalità utente.

Modifica: consultando le specifiche CCID, sembra che la scheda risponda bmCommandStatus = 1 - Failed (error code provided by the error register). E Error = ICC_PROTOCOL_NOT_SUPPORTED -10 (F6h). Suppongo che il driver traduca questo errore in "HResult: la richiesta specificata non è un'operazione valida per il dispositivo di destinazione." Messaggio.

Inoltre, il comando inviato era INS = 0xC0, ovvero GET RESPONSE .

Come può dire che il protocollo non è supportato? Cosa sta facendo diversamente il conducente rispetto a quando ha funzionato? Nota che ho appena provato questo con un nuovo CAC e sto riscontrando un comportamento simile. Un problema con il lettore di schede o il driver?


Considerando che ho appena sostituito il lettore (e reinstallato i driver, riavviato, ecc.) C'è qualcosa che non va nella mia Smart Card? Sto assumendo no, perché fa il lavoro con un altro lettore su un altro sistema. Non ho provato un lettore diverso sullo stesso sistema.

In effetti, lo stesso lettore collegato a una macchina virtuale Windows 7 sulla stessa macchina fisica funziona perfettamente! Qualcosa è chiaramente rotto, e mi sta facendo impazzire cercando di capire cosa.

Quindi qual'è il problema?


Ho appena avuto una bella sessione di chat con un Jasper V di Microsoft, che ha fornito informazioni esattamente zero sul problema: pastebin.com/dvU3dNfa
Jonathon Reinhart il

Ho lo stesso problema, trovi una soluzione?
Tobia,

Ho installato Linux.
Jonathon Reinhart,

Ciao @JonathonReinhart, mi dispiace dirottare questo post ma ho lo stesso identico problema, trovi mai una soluzione?
Lankymart,

Risposte:


2

Nel caso in cui qualcuno si fosse bloccato con quel problema, ho cercato di risolverlo per un giorno intero.

Ecco la soluzione:

  1. Per Windows a 64 bit: passare alla chiave di registro all'indirizzo

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

Dovrebbero esserci già dei lettori. E in caso contrario, questo è il motivo per cui potresti avere tutti i driver installati, ma ancora non funzionare affatto.

  1. Vai Device Manager, trovare il lettore in questione poi guardare fuori per questa stringa nella scheda Dettagli: Bus reported device description.

  2. Crea una sottochiave per la chiave sopra. Il nome dovrebbe essere esattamente lo stesso Bus reported device description. Quindi aggiungi un contatore alla fine. Quindi la chiave dovrebbe essere come questa:

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Cryptography\Calais\Readers\O2Micro CCID SC Reader 0
    
  3. Ora crea un paio di valori stringa: il primo con il nome del dispositivo e il secondo per i gruppi. Ecco il mio esempio:

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

Questo è tutto. Per farlo funzionare, scollegare il lettore e ricollegarlo. In caso di dispositivi interni, potrebbe essere necessario riavviare il computer. Ed ecco l' .regesempio di file (cambia il nome e il numero del dispositivo con i tuoi valori):

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

Sebbene la tua domanda sia molto specifica, grazie per aver condiviso le tue opinioni. +1
Davor Josipovic il

Mi dispiace, ma non capisco che cosa dovrebbe realizzare. Il mio dispositivo è chiaramente collegato e il driver sta comunicando con il lettore.
Jonathon Reinhart,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.