Solución de problemas de tarjetas inteligentes
En este artículo se explican las herramientas y servicios que los desarrolladores de tarjetas inteligentes pueden usar para ayudar a identificar problemas de certificado con la implementación de tarjetas inteligentes.
La depuración y el seguimiento de problemas de tarjetas inteligentes requiere una variedad de herramientas y enfoques. En las secciones siguientes se proporcionan instrucciones sobre las herramientas y los enfoques que puede usar.
- Certutil
- Depuración y seguimiento mediante el preprocesador de seguimiento de software de Windows (WPP)
- Protocolo Kerberos, Centro de distribución de claves (KDC) y depuración y seguimiento NTLM
- Servicio de tarjeta inteligente
- Lectores de tarjetas inteligentes
- Diagnósticos de CryptoAPI 2.0
Certutil
Para obtener una descripción completa de Certutil, incluidos ejemplos que muestran cómo usarlo, vea Certutil [W2012].
Enumerar los certificados disponibles en la tarjeta inteligente
Para enumerar los certificados que están disponibles en la tarjeta inteligente, escriba certutil.exe -scinfo
.
Nota
No es necesario escribir un PIN para esta operación. Puede presionar ESC si se le pide un PIN.
Eliminación de certificados en la tarjeta inteligente
Cada certificado se incluye en un contenedor. Al eliminar un certificado en la tarjeta inteligente, se elimina el contenedor del certificado.
Para buscar el valor del contenedor, escriba certutil.exe -scinfo
.
Para eliminar un contenedor, escriba certutil.exe -delkey -csp "Microsoft Base Smart Card Crypto Provider" "<ContainerValue>"
.
Depuración y seguimiento mediante WPP
WPP simplifica el seguimiento del funcionamiento del proveedor de seguimiento. Proporciona un mecanismo para que el proveedor de seguimiento registre mensajes binarios en tiempo real. Los mensajes registrados se pueden convertir en un seguimiento legible de la operación. Para obtener más información, vea Diagnóstico con WPP: blog de NDIS.
Habilitación del seguimiento
Con WPP, use uno de los siguientes comandos para habilitar el seguimiento:
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>
Puede usar los parámetros de la tabla siguiente.
Nombre descriptivo | 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 |
Ejemplos
Para habilitar el seguimiento del servicio 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
Para habilitar el seguimiento de scfilter.sys
:
tracelog.exe -kd -rt -start scfilter -guid \#eed7f3c9-62ba-400e-a001-658869df9a91 -f .\scfilter.etl -flags 0xffff -ft 1
Detener el seguimiento
Con WPP, use uno de los siguientes comandos para detener el seguimiento:
tracelog.exe -stop <*FriendlyName*>
logman.exe -stop <*FriendlyName*> -ets
Por ejemplo, para detener un seguimiento:
tracelog.exe -stop scardsvr
logman.exe -stop scardsvr -ets
Depuración y seguimiento del protocolo Kerberos, KDC y NTLM
Puede usar estos recursos para solucionar problemas de estos protocolos y el KDC:
- Sugerencias de solución de problemas de Kerberos y LDAP
- Kit de controladores de Windows (WDK) y Herramientas de depuración para Windows (WinDbg). Puede usar la herramienta de registro de seguimiento en este SDK para depurar errores de autenticación Kerberos.
Para comenzar el seguimiento, puede usar Tracelog
. Los distintos componentes usan GUID de control diferentes, como se explica en estos ejemplos. Para obtener más información, consulte Tracelog
NTLM
Para habilitar el seguimiento para la autenticación NTLM, ejecute el siguiente comando en la línea de comandos:
tracelog.exe -kd -rt -start ntlm -guid \#5BBB6C18-AA45-49b1-A15F-085F7ED0AA90 -f .\ntlm.etl -flags 0x15003 -ft 1
Para detener el seguimiento de la autenticación NTLM, ejecute este comando:
tracelog -stop ntlm
Autenticación Kerberos
Para habilitar el seguimiento para la autenticación Kerberos, ejecute este comando:
tracelog.exe -kd -rt -start kerb -guid \#6B510852-3583-4e2d-AFFE-A67F9F223438 -f .\kerb.etl -flags 0x43 -ft 1
Para detener el seguimiento de la autenticación Kerberos, ejecute este comando:
tracelog.exe -stop kerb
KDC
Para habilitar el seguimiento del KDC, ejecute el siguiente comando en la línea de comandos:
tracelog.exe -kd -rt -start kdc -guid \#1BBA8B19-7F31-43c0-9643-6E911F79A06B -f .\kdc.etl -flags 0x803 -ft 1
Para detener el seguimiento del KDC, ejecute el siguiente comando en la línea de comandos:
tracelog.exe -stop kdc
Para detener el seguimiento desde un equipo remoto, ejecute este comando:
logman.exe -s <ComputerName>
Nota
La ubicación predeterminada para logman.exe es %systemroot%system32. Use la opción -s para proporcionar un nombre de equipo.
Configuración del seguimiento con el Registro
También puede configurar el seguimiento editando los valores del Registro Kerberos que se muestran en la tabla siguiente.
Elemento | Configuración de clave del Registro |
---|---|
NTLM | HKEY_LOCAL_MACHINESYSTEM\CurrentControlSet\Control\Lsa\MSV1_0 Nombre del valor: NtLmInfoLevel Tipo de valor: DWORD Datos de valor: c0015003 |
Kerberos | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos Nombre del valor: LogToFile Tipo de valor: DWORD Datos de valor: 00000001 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters Nombre del valor: KerbDebugLevel Tipo de valor: DWORD Datos de valor: c0000043 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters Nombre del valor: LogToFile Tipo de valor: DWORD Datos de valor: 00000001 |
KDC | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc Nombre del valor: KdcDebugLevel Tipo de valor: DWORD Datos de valor: c0000803 |
Si usó Tracelog
, busque el siguiente archivo de registro en el directorio actual: kerb.etl/kdc.etl/ntlm.etl
.
Si usó la configuración de clave del Registro que se muestra en la tabla anterior, busque los archivos de registro de seguimiento en las siguientes ubicaciones:
- NTLM:
%systemroot%\tracing\msv1_0
- Kerberos:
%systemroot%\tracing\kerberos
- KDC:
%systemroot%\tracing\kdcsvc
Para descodificar archivos de seguimiento de eventos, puede usar Tracefmt
(tracefmt.exe).
Tracefmt
es una herramienta de línea de comandos que da formato y muestra mensajes de seguimiento desde un archivo de registro de seguimiento de eventos (.etl) o una sesión de seguimiento en tiempo real.
Tracefmt
puede mostrar los mensajes en la ventana del símbolo del sistema o guardarlos en un archivo de texto. Se encuentra en el subdirectorio \tools\tracing del Kit de controladores de Windows (WDK). Para obtener más información, consulte Tracefmt
.
Servicio de tarjeta inteligente
El servicio del administrador de recursos de tarjeta inteligente se ejecuta en el contexto de un servicio local. Se implementa como un servicio compartido del proceso de host de servicios (svchost).
Para comprobar si se está ejecutando el servicio de tarjeta inteligente:
- Presione CTRL+ALT+SUPR y, a continuación, seleccione Iniciar administrador de tareas.
- En el cuadro de diálogo Administrador de tareas de Windows , seleccione la pestaña Servicios .
- Seleccione la columna Nombre para ordenar la lista alfabéticamente y, a continuación, escriba s
- En la columna Nombre , busque SCardSvr y, a continuación, busque en la columna Estado para ver si el servicio se está ejecutando o detenido.
Para reiniciar el servicio de tarjeta inteligente:
- Ejecución como administrador en el símbolo del sistema
- Si aparece el cuadro de diálogo Control de cuentas de usuario, confirme que la acción que muestra es la que quiere y, a continuación, seleccione Sí.
- En el símbolo del sistema, escriba
net stop SCardSvr
- En el símbolo del sistema, escriba
net start SCardSvr
Puede usar el siguiente comando en el símbolo del sistema para comprobar si el servicio se está ejecutando: sc queryex scardsvr
.
El ejemplo de código siguiente es una salida de ejemplo de este comando:
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:\>
Lectores de tarjetas inteligentes
Al igual que con cualquier dispositivo conectado a un equipo, se pueden usar Administrador de dispositivos para ver las propiedades y comenzar el proceso de depuración.
Para comprobar si el lector de tarjetas inteligentes funciona:
- Vaya al equipo
- Haga clic con el botón derecho en Equipo y, a continuación, seleccione Propiedades.
- En Tareas, seleccione Administrador de dispositivos
- En Administrador de dispositivos, expanda Lectores de tarjetas inteligentes, seleccione el nombre del lector de tarjetas inteligentes que desea comprobar y, a continuación, seleccione Propiedades.
Nota
Si el lector de tarjetas inteligentes no aparece en Administrador de dispositivos, en el menú Acción, seleccione Buscar cambios de hardware.
Diagnósticos de CryptoAPI 2.0
CryptoAPI 2.0 Diagnostics está disponible en versiones de Windows que admiten CryptoAPI 2.0 y pueden ayudarle a solucionar problemas de infraestructura de clave pública (PKI).
CryptoAPI 2.0 Diagnostics registra eventos en el registro de eventos de Windows. Los registros contienen información detallada sobre la validación de la cadena de certificados, las operaciones del almacén de certificados y la comprobación de firmas. Esta información facilita la identificación de las causas de los problemas y reduce el tiempo necesario para el diagnóstico.
Para obtener más información sobre los diagnósticos de CryptoAPI 2.0, consulte Solución de problemas de una PKI empresarial.