Erreurs de carte à puce

8

J'ai une carte à puce CAC et un lecteur de carte USB SCM Microsystems SCR3310 . J'utilise Windows 7 Ultimate avec SP1.

Cette configuration fonctionnait très bien. Lorsque j'insérais mon CAC, mes certificats se propageaient immédiatement vers le magasin de certificats (comme en témoigne le gestionnaire de certificats certmgr.msc), et je pouvais me connecter à des sites Web nécessitant un CAC pour y accéder.

Récemment, j'ai cessé de pouvoir accéder aux sites Web. En regardant dans le Gestionnaire de certificats, je vois qu'un seul, ou parfois deux de mes certificats sont présents. Si je les supprime et que je réinsère ma carte, un certificat différent peut apparaître.

Je viens de rentrer et j'ai remplacé le lecteur par le même modèle, donc je sais que ce n'est pas le coupable.

J'ai finalement pensé à consulter le journal système et j'ai remarqué les erreurs suivantes lors de l'insertion de la carte à puce:

entrez la description de l'image ici


Les erreurs, par ordre chronologique:

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)

Il semble que le matériel ait indiqué une défaillance au cours de la IOCTL TRANSMIT, qui s'est répercutée dans le cadre du pilote en mode utilisateur.

Edit: En consultant la spécification CCID, il semble que la carte répond avec bmCommandStatus = 1 - Failed (error code provided by the error register). Et Error = ICC_PROTOCOL_NOT_SUPPORTED -10 (F6h). Je suppose que le pilote traduit cette erreur en "HResult: la demande spécifiée n'est pas une opération valide pour le périphérique cible." message.

En outre, la commande envoyée était INS = 0xC0, qui est GET RESPONSE .

Comment peut-il dire que le protocole n'est pas pris en charge? Que fait le conducteur différemment de son fonctionnement? Notez que je viens également d'essayer cela avec un nouveau CAC, et je vois un comportement similaire. Un problème avec le lecteur de carte ou le pilote?


Étant donné que je viens de remplacer le lecteur (et les pilotes réinstallés, redémarrés, etc.), y a-t-il un problème avec ma carte à puce? Je suppose pas, parce qu'il fait le travail avec un autre lecteur sur un autre système. Je n'ai pas essayé un lecteur différent sur le même système.

En fait, le même lecteur connecté à une machine virtuelle Windows 7 sur la même machine physique fonctionne très bien! Quelque chose est clairement cassé, et ça me rend fou d'essayer de comprendre quoi.

Alors quel est le problème?

Jonathon Reinhart
la source
Je viens d'avoir une belle session de chat avec un Jasper V de Microsoft, qui n'a fourni aucun aperçu du problème: pastebin.com/dvU3dNfa
Jonathon Reinhart
J'ai le même problème, trouvez-vous une solution?
Tobia
J'ai installé Linux.
Jonathon Reinhart
Salut @JonathonReinhart, désolé de détourner ce message mais j'ai exactement le même problème, avez-vous déjà trouvé une solution?
Lankymart

Réponses:

2

Juste au cas où quelqu'un resterait avec ce problème - j'ai essayé de le réparer pendant une journée entière.

Voici la solution:

  1. Pour Windows 64 bits - passez à la clé de registre à

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

Il devrait déjà y avoir des lecteurs. Et sinon, c'est la raison pour laquelle vous pouvez avoir tous les pilotes installés, mais ne fonctionne toujours pas du tout.

  1. Aller à Device Manager, trouver le lecteur en question puis regarder cette chaîne dans l' onglet Détails: Bus reported device description.

  2. Créez une sous-clé pour la clé ci-dessus. Le nom doit être exactement le même que celui-là Bus reported device description. Ajoutez ensuite un compteur à la fin. La clé devrait donc être comme celle-ci:

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Cryptography\Calais\Readers\O2Micro CCID SC Reader 0
    
  3. Créez maintenant quelques valeurs de chaîne: la première avec le nom du périphérique et la seconde pour les groupes. Voici mon exemple:

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

C'est ça. Pour le faire fonctionner, déconnectez le lecteur et reconnectez-le. En cas de périphériques internes, vous devrez peut-être redémarrer la machine. Et voici l' .regexemple de fichier (changez le nom et le numéro de l'appareil en vos propres valeurs):

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
la source
Bien que votre question soit très spécifique, merci de partager vos idées. +1
Davor Josipovic
Je suis désolé, mais je ne comprends pas ce que cela est censé accomplir. Mon appareil est clairement connecté et le pilote communique avec le lecteur.
Jonathon Reinhart