Erros do cartão inteligente

8

Tenho um cartão inteligente CAC e um Leitor de cartões SCM Microsystems SCR3310 USB . Estou executando o Windows 7 Ultimate com o SP1.

Esta configuração costumava funcionar bem. Quando eu inseria meu CAC, meus certificados se propagavam imediatamente para o armazenamento de certificados (conforme evidenciado pelo Certificate Manage, certmgr.msc ), e eu podia fazer logon em sites que precisavam de um CAC para acesso.

Recentemente, deixei de poder acessar os sites. Olhando no Gerenciador de Certificados, vejo que apenas um ou, às vezes, dois dos meus certificados estão presentes. Se eu os excluir e inserir novamente o meu cartão, um certificado diferente pode aparecer.

Acabei de retornar e substituí o leitor pelo mesmo modelo, então sei que não é o culpado.

Eu finalmente pensei em olhar o log do sistema e observei os seguintes erros na inserção do cartão inteligente:

Oserros,emordemcronológica:

SmartCardServiceEventID:610SmartCardReader'SCMMicrosystemsSCR33xxv2.0USBSCReader0'rejectedIOCTLTRANSMIT:Incorrectfunction.Ifthiserrorpersists,yoursmartcardorreadermaynotbefunctioningcorrectly.CommandHeader:00c00000WudfUsbccidDrvEventID:11ARequesthasreturnedfailure.MsgType:0x80ICCStatus:0x0CmdStatus:0x1Error:0xf6//ICC_PROTOCOL_NOT_SUPPORTEDSW1:0x0SW2:0x0WudfUsbccidDrvEventID:11Anoperationhasfailed(0x0,0x0,0x0,0x0).ScT0Transmit:FailedtosendrequestatTPDUlevel.HResult:Thespecifiedrequestisnotavalidoperationforthetargetdevice.//Note:thisonecomesfromWUDFUsbccidDriver.dllCMyDevice::UsbScT0Transmit+7D0hWudfUsbccidDrvEventID:10Request[0](CLS=0x0,INS=0xc0,P1=0x0,P2=0x0,Lc=0,Le=256,.NETServiceMethod=0x0)

ParecequeohardwareindicoufalhaduranteoIOCTLTRANSMIT,quegotejouatravésdaestruturadodriveremmododeusuário.

Editar:consultandoaespecificaçãoCCID,parecequeocartãoestárespondendodevoltacom%código%.EbmCommandStatus=1-Failed(errorcodeprovidedbytheerrorregister).Euestousupondoqueodrivertraduzesseerroparao"HResult: A solicitação especificada não é uma operação válida para o dispositivo de destino." mensagem.

Além disso, o comando enviado é INS = 0xC0, que é OBTER RESPOSTA .

Como se pode dizer que o protocolo não é suportado? O que o motorista está fazendo de maneira diferente de quando funcionou? Note que eu também tentei isso com um novo CAC, e estou vendo um comportamento similar. Um problema com o leitor de cartões ou o driver?

Considerando que acabei de substituir o leitor (e reinstalar drivers, reinicializado, etc.), há algo errado com meu Smart Card? Eu estou assumindo não, porque faz trabalhar com outro leitor em outro sistema. Eu não tentei um leitor diferente no mesmo sistema.

Na verdade, o mesmo leitor conectado a uma VM do Windows 7 na mesma máquina física funciona muito bem! Algo está claramente quebrado e isso está me enlouquecendo tentando descobrir o que.

Então, qual é o problema?

    
por Jonathon Reinhart 12.02.2014 / 06:24

1 resposta

1

Apenas no caso de alguém ficar preso a esse problema - eu tenho tentado consertar isso por um dia inteiro.

Aqui está a solução:

  1. Para o Windows de 64 bits - salte para a chave de registro em

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

Deve haver alguns leitores já. E se não, então essa é a razão pela qual você pode ter todos os drivers instalados, mas ainda não está funcionando.

  1. Vá para Device Manager , localize o leitor em questão e, em seguida, procure esta sequência na guia Detalhes: Bus reported device description .

  2. Crie uma subchave para a chave acima. O nome deve ser exatamente igual ao Bus reported device description . Em seguida, adicione um contador no final. Então a chave deve ser como esta:

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Cryptography\Calais\Readers\O2Micro CCID SC Reader 0
    
  3. Agora, crie um par de valores de string: o primeiro com o nome do dispositivo e o segundo para os grupos. Aqui está o meu exemplo:

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

É isso. Para fazê-lo funcionar desconecte o leitor e conecte-o de volta. No caso de dispositivos internos, você pode ter que reiniciar a máquina. E aqui está o exemplo do arquivo .reg (altere o nome e o número do dispositivo para seus próprios valores):

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
    
por 22.02.2015 / 13:58