Partager via


Résolution des problèmes de carte à puce

Cet article explique les outils et services que les développeurs de carte intelligents peuvent utiliser pour aider à identifier les problèmes de certificat liés au déploiement de carte intelligente.

Le débogage et le suivi des problèmes de carte intelligente nécessitent une variété d’outils et d’approches. Les sections suivantes fournissent des conseils sur les outils et les approches que vous pouvez utiliser.

Certutil

Pour obtenir une description complète de Certutil, y compris des exemples qui montrent comment l’utiliser, consultez Certutil [W2012].

Répertorier les certificats disponibles sur le carte intelligent

Pour répertorier les certificats disponibles sur le carte intelligent, tapez certutil.exe -scinfo.

Remarque

L’entrée d’un code confidentiel n’est pas nécessaire pour cette opération. Vous pouvez appuyer sur Échap si vous êtes invité à entrer un code confidentiel.

Supprimer des certificats sur le carte intelligent

Chaque certificat est placé dans un conteneur. Lorsque vous supprimez un certificat sur le carte intelligent, vous supprimez le conteneur du certificat.

Pour rechercher la valeur du conteneur, tapez certutil.exe -scinfo.

Pour supprimer un conteneur, tapez certutil.exe -delkey -csp "Microsoft Base Smart Card Crypto Provider" "<ContainerValue>".

Débogage et suivi à l’aide de WPP

WPP simplifie le suivi du fonctionnement du fournisseur de traces. Il fournit un mécanisme permettant au fournisseur de trace de journaliser les messages binaires en temps réel. Les messages journalisés peuvent être convertis en une trace lisible de l’opération. Pour plus d’informations, consultez Diagnostics avec WPP - Blog NDIS.

Activer la trace

À l’aide de WPP, utilisez l’une des commandes suivantes pour activer le suivi :

tracelog.exe -kd -rt -start <FriendlyName> -guid <GUID> -f .<LogFileName*>.etl -flags <flags> -ft 1
logman.exe start <FriendlyName> -ets -p {<GUID>} -<Flags> -ft 1 -rt -o .<LogFileName><em>.etl -mode 0x00080000</em>

Vous pouvez utiliser les paramètres du tableau suivant.

Nom convivial GUID Flags
scardsvr 13038e47-ffec-425d-bc69-5707708075fe 0xffff
winscard 3fce7c5f-fb3b-4bce-a9d8-55cc0ce1cf01 0xffff
basecsp 133a980d-035d-4e2d-b250-94577ad8fced 0x7
scksp 133a980d-035d-4e2d-b250-94577ad8fced 0x7
msclmd fb36caf4-582b-4604-8841-9263574c4f2c 0x7
credprov dba0e0e0-505a-4ab6-aa3f-22f6f743b480 0xffff
certprop 30eae751-411f-414c-988b-a8bfa8913f49 0xffff
scfilter eed7f3c9-62ba-400e-a001-658869df9a91 0xffff
wudfusbccid a3c09ba3-2f62-4be5-a50f-8278a646ac9d 0xffff

Exemples

Pour activer le suivi pour le service SCardSvr :

tracelog.exe -kd -rt -start scardsvr -guid \#13038e47-ffec-425d-bc69-5707708075fe -f .\scardsvr.etl -flags 0xffff -ft 1
logman.exe start scardsvr -ets -p {13038e47-ffec-425d-bc69-5707708075fe} 0xffff -ft 1 -rt -o .\scardsvr.etl -mode 0x00080000

Pour activer le suivi pour scfilter.sys:

tracelog.exe -kd -rt -start scfilter -guid \#eed7f3c9-62ba-400e-a001-658869df9a91 -f .\scfilter.etl -flags 0xffff -ft 1

Arrêter la trace

À l’aide de WPP, utilisez l’une des commandes suivantes pour arrêter le suivi :

tracelog.exe -stop <*FriendlyName*>
logman.exe -stop <*FriendlyName*> -ets

Par exemple, pour arrêter une trace :

tracelog.exe -stop scardsvr
logman.exe -stop scardsvr -ets

Débogage et suivi du protocole Kerberos, du KDC et NTLM

Vous pouvez utiliser ces ressources pour résoudre les problèmes liés à ces protocoles et au KDC :

Pour commencer le suivi, vous pouvez utiliser Tracelog. Les différents composants utilisent des GUID de contrôle différents, comme expliqué dans ces exemples. Pour plus d’informations, consultez Tracelog

NTLM

Pour activer le suivi pour l’authentification NTLM, exécutez la commande suivante sur la ligne de commande :

tracelog.exe -kd -rt -start ntlm -guid \#5BBB6C18-AA45-49b1-A15F-085F7ED0AA90 -f .\ntlm.etl -flags 0x15003 -ft 1

Pour arrêter le suivi de l’authentification NTLM, exécutez la commande suivante :

tracelog -stop ntlm

Authentification Kerberos

Pour activer le suivi pour l’authentification Kerberos, exécutez la commande suivante :

tracelog.exe -kd -rt -start kerb -guid \#6B510852-3583-4e2d-AFFE-A67F9F223438 -f .\kerb.etl -flags 0x43 -ft 1

Pour arrêter le suivi de l’authentification Kerberos, exécutez la commande suivante :

tracelog.exe -stop kerb

KDC

Pour activer le suivi du KDC, exécutez la commande suivante sur la ligne de commande :

tracelog.exe -kd -rt -start kdc -guid \#1BBA8B19-7F31-43c0-9643-6E911F79A06B -f .\kdc.etl -flags 0x803 -ft 1

Pour arrêter le suivi du KDC, exécutez la commande suivante sur la ligne de commande :

tracelog.exe -stop kdc

Pour arrêter le suivi à partir d’un ordinateur distant, exécutez la commande suivante :

logman.exe -s <ComputerName>

Remarque

L’emplacement par défaut pour logman.exe est %systemroot%system32. Utilisez l’option -s pour fournir un nom d’ordinateur.

Configurer le suivi avec le registre

Vous pouvez également configurer le suivi en modifiant les valeurs de Registre Kerberos indiquées dans le tableau suivant.

Élément Paramètre de clé de Registre
NTLM HKEY_LOCAL_MACHINESYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
Nom de la valeur : NtLmInfoLevel
Type de valeur : DWORD
Données de valeur : c0015003
Kerberos HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos
Nom de la valeur : LogToFile
Type de valeur : DWORD
Données de valeur : 00000001

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
Nom de la valeur : KerbDebugLevel
Type de valeur : DWORD
Données de valeur : c0000043

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
Nom de la valeur : LogToFile
Type de valeur : DWORD
Données de valeur : 00000001
KDC HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc
Nom de la valeur : KdcDebugLevel
Type de valeur : DWORD
Données de valeur : c0000803

Si vous avez utilisé Tracelog, recherchez le fichier journal suivant dans votre répertoire actif : kerb.etl/kdc.etl/ntlm.etl.

Si vous avez utilisé les paramètres de clé de Registre indiqués dans le tableau précédent, recherchez les fichiers journaux de trace aux emplacements suivants :

  • NTLM: %systemroot%\tracing\msv1_0
  • Kerberos: %systemroot%\tracing\kerberos
  • KDC: %systemroot%\tracing\kdcsvc

Pour décoder les fichiers de trace d’événements, vous pouvez utiliser Tracefmt (tracefmt.exe). Tracefmt est un outil en ligne de commande qui met en forme et affiche les messages de suivi à partir d’un fichier journal de suivi d’événements (.etl) ou d’une session de suivi en temps réel. Tracefmt peut afficher les messages dans la fenêtre d’invite de commandes ou les enregistrer dans un fichier texte. Il se trouve dans le sous-répertoire \tools\tracing du Kit de pilotes Windows (WDK). Pour plus d’informations, voir Tracefmt.

Service de carte à puce

Le service Resource Manager smart carte s’exécute dans le contexte d’un service local. Il est implémenté en tant que service partagé du processus hôte de services (svchost).

Pour case activée si le service de carte à puce est en cours d’exécution :

  1. Appuyez sur Ctrl+Alt+Suppr, puis sélectionnez Démarrer le Gestionnaire des tâches
  2. Dans la boîte de dialogue Gestionnaire des tâches Windows, sélectionnez l’onglet Services
  3. Sélectionnez la colonne Nom pour trier la liste par ordre alphabétique, puis tapez s
  4. Dans la colonne Nom , recherchez SCardSvr, puis regardez sous la colonne État pour voir si le service est en cours d’exécution ou arrêté

Pour redémarrer le service de carte à puce :

  1. Exécuter en tant qu’administrateur à l’invite de commandes
  2. Si la boîte de dialogue Contrôle de compte d’utilisateur s’affiche, vérifiez que l’action qu’elle affiche correspond à ce que vous voulez, puis sélectionnez Oui.
  3. À l’invite de commandes, tapez net stop SCardSvr
  4. À l’invite de commandes, tapez net start SCardSvr

Vous pouvez utiliser la commande suivante à l’invite de commandes pour case activée si le service est en cours d’exécution : sc queryex scardsvr.

L’exemple de code suivant est un exemple de sortie de cette commande :

SERVICE_NAME: scardsvr
    TYPE        : 20 WIN32_SHARE_PROCESS
    STATE       : 4 RUNNING
                (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
    WIN32_EXIT_CODE  : 0 (0x0)
    SERVICE_EXIT_CODE : 0 (0x0)
    CHECKPOINT     : 0x0
    WAIT_HINT     : 0x0
    PID        : 1320
    FLAGS       :
C:\>

Lecteurs carte intelligents

Comme pour n’importe quel appareil connecté à un ordinateur, Gestionnaire de périphériques pouvez être utilisé pour afficher les propriétés et commencer le processus de débogage.

Pour case activée si le lecteur carte intelligent fonctionne :

  1. Accédez à Ordinateur
  2. Cliquez avec le bouton droit sur Ordinateur, puis sélectionnez Propriétés
  3. Sous Tâches, sélectionnez Gestionnaire de périphériques
  4. Dans Gestionnaire de périphériques, développez Lecteurs smart carte, sélectionnez le nom du lecteur carte intelligent que vous souhaitez case activée, puis sélectionnez Propriétés

Remarque

Si le lecteur carte intelligent n’est pas répertorié dans Gestionnaire de périphériques, dans le menu Action, sélectionnez Rechercher les modifications matérielles.

CryptoAPI 2.0 Diagnostics

Les diagnostics CryptoAPI 2.0 sont disponibles dans les versions de Windows qui prennent en charge CryptoAPI 2.0 et peuvent vous aider à résoudre les problèmes d’infrastructure à clé publique (PKI).

Les diagnostics CryptoAPI 2.0 journalise les événements dans le journal des événements Windows. Les journaux contiennent des informations détaillées sur la validation de la chaîne de certificats, les opérations de magasin de certificats et la vérification des signatures. Ces informations facilitent l’identification des causes des problèmes et réduisent le temps nécessaire au diagnostic.

Pour plus d’informations sur les diagnostics CryptoAPI 2.0, consultez Résolution des problèmes d’une infrastructure à clé publique d’entreprise.

Voir également

Informations techniques de référence sur les cartes à puce