Solução de problemas de cartão inteligente
Este artigo explica ferramentas e serviços que os desenvolvedores de cartão inteligentes podem usar para ajudar a identificar problemas de certificado com a implantação de cartão inteligente.
A depuração e o rastreamento de problemas de cartão inteligentes exigem uma variedade de ferramentas e abordagens. As seções a seguir fornecem diretrizes sobre ferramentas e abordagens que você pode usar.
- Certutil
- Depuração e rastreamento usando o pré-processador de rastreamento de software do Windows (WPP)
- Protocolo Kerberos, KDC (Key Distribution Center) e depuração e rastreamento do NTLM
- Serviço de Cartão Inteligente
- Leitores de cartão inteligentes
- Diagnóstico do CryptoAPI 2.0
Certutil
Para obter uma descrição completa do Certutil, incluindo exemplos que mostram como usá-lo, consulte Certutil [W2012].
Listar certificados disponíveis no cartão inteligente
Para listar certificados disponíveis no cartão inteligente, digite certutil.exe -scinfo
.
Observação
A inserção de um PIN não é necessária para essa operação. Você pode pressionar o ESC se for solicitado um PIN.
Excluir certificados no cartão inteligente
Cada certificado é fechado em um contêiner. Ao excluir um certificado no cartão inteligente, você está excluindo o contêiner do certificado.
Para localizar o valor do contêiner, digite certutil.exe -scinfo
.
Para excluir um contêiner, digite certutil.exe -delkey -csp "Microsoft Base Smart Card Crypto Provider" "<ContainerValue>"
.
Depuração e rastreamento usando WPP
O WPP simplifica o rastreamento da operação do provedor de rastreamento. Ele fornece um mecanismo para o provedor de rastreamento registrar mensagens binárias em tempo real. As mensagens registradas podem ser convertidas em um rastreamento legível pelo homem da operação. Para obter mais informações, consulte Diagnóstico com WPP – o blog do NDIS.
Habilitar o rastreamento
Usando o WPP, use um dos seguintes comandos para habilitar o rastreamento:
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>
Você pode usar os parâmetros na tabela a seguir.
Nome amigável | GUID | Sinalizadores |
---|---|---|
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 |
Exemplos
Para habilitar o rastreamento para o serviço 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 o rastreamento para scfilter.sys
:
tracelog.exe -kd -rt -start scfilter -guid \#eed7f3c9-62ba-400e-a001-658869df9a91 -f .\scfilter.etl -flags 0xffff -ft 1
Parar o rastreamento
Usando o WPP, use um dos seguintes comandos para interromper o rastreamento:
tracelog.exe -stop <*FriendlyName*>
logman.exe -stop <*FriendlyName*> -ets
Por exemplo, para parar um rastreamento:
tracelog.exe -stop scardsvr
logman.exe -stop scardsvr -ets
Protocolo Kerberos, KDC e depuração e rastreamento do NTLM
Você pode usar esses recursos para solucionar problemas desses protocolos e do KDC:
- Dicas de solução de problemas kerberos e LDAP
- WDK (Windows Driver Kit) e Ferramentas de Depuração para Windows (WinDbg). Você pode usar a ferramenta de log de rastreamento neste SDK para depurar falhas de autenticação kerberos.
Para começar a rastrear, você pode usar Tracelog
. Diferentes componentes usam GUIDs de controle diferentes, conforme explicado nesses exemplos. Para obter mais informações, consulte Tracelog
NTLM
Para habilitar o rastreamento para autenticação NTLM, execute o seguinte comando na linha de comando:
tracelog.exe -kd -rt -start ntlm -guid \#5BBB6C18-AA45-49b1-A15F-085F7ED0AA90 -f .\ntlm.etl -flags 0x15003 -ft 1
Para interromper o rastreamento da autenticação NTLM, execute este comando:
tracelog -stop ntlm
Autenticação Kerberos
Para habilitar o rastreamento para autenticação Kerberos, execute este comando:
tracelog.exe -kd -rt -start kerb -guid \#6B510852-3583-4e2d-AFFE-A67F9F223438 -f .\kerb.etl -flags 0x43 -ft 1
Para parar o rastreamento da autenticação Kerberos, execute este comando:
tracelog.exe -stop kerb
KDC
Para habilitar o rastreamento do KDC, execute o seguinte comando na linha de comando:
tracelog.exe -kd -rt -start kdc -guid \#1BBA8B19-7F31-43c0-9643-6E911F79A06B -f .\kdc.etl -flags 0x803 -ft 1
Para parar o rastreamento do KDC, execute o seguinte comando na linha de comando:
tracelog.exe -stop kdc
Para parar o rastreamento de um computador remoto, execute este comando:
logman.exe -s <ComputerName>
Observação
O local padrão para logman.exe é %systemroot%system32. Use a opção -s para fornecer um nome de computador.
Configurar o rastreamento com o registro
Você também pode configurar o rastreamento editando os valores do registro Kerberos mostrados na tabela a seguir.
Elemento | Configuração da chave do registro |
---|---|
NTLM | HKEY_LOCAL_MACHINESYSTEM\CurrentControlSet\Control\Lsa\MSV1_0 Nome do valor: NtLmInfoLevel Tipo de valor: DWORD Dados de valor: c0015003 |
Kerberos | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos Nome do valor: LogToFile Tipo de valor: DWORD Dados de valor: 00000001 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters Nome do valor: KerbDebugLevel Tipo de valor: DWORD Dados de valor: c0000043 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters Nome do valor: LogToFile Tipo de valor: DWORD Dados de valor: 00000001 |
KDC | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc Nome do valor: KdcDebugLevel Tipo de valor: DWORD Dados de valor: c0000803 |
Se você usou Tracelog
, procure o seguinte arquivo de log no diretório atual: kerb.etl/kdc.etl/ntlm.etl
.
Se você usou as configurações da chave do registro mostradas na tabela anterior, procure os arquivos de log de rastreamento nos seguintes locais:
- NTLM:
%systemroot%\tracing\msv1_0
- Kerberos:
%systemroot%\tracing\kerberos
- KDC:
%systemroot%\tracing\kdcsvc
Para decodificar arquivos de rastreamento de eventos, você pode usar Tracefmt
(tracefmt.exe).
Tracefmt
é uma ferramenta de linha de comando que formata e exibe mensagens de rastreamento de um arquivo de log de rastreamento de eventos (.etl) ou de uma sessão de rastreamento em tempo real.
Tracefmt
pode exibir as mensagens na janela Prompt de Comando ou salvá-las em um arquivo de texto. Ele está localizado no subdiretório \tools\tracing do WDK (Windows Driver Kit). Para obter mais informações, consulte Tracefmt
.
Serviço de Cartão Inteligente
O serviço smart cartão resource manager é executado no contexto de um serviço local. Ele é implementado como um serviço compartilhado do processo de host de serviços (svchost).
Para marcar se o serviço smart card estiver em execução:
- Pressione CTRL+ALT+DEL e selecione Iniciar Gerenciador de Tarefas
- Na caixa de diálogo Gerenciador de Tarefas do Windows, selecione a guia Serviços
- Selecione a coluna Nome para classificar a lista em ordem alfabética e digite s
- Na coluna Nome , procure SCardSvr e procure na coluna Status para ver se o serviço está em execução ou parado
Para reiniciar o serviço de Cartão Inteligente:
- Executar como administrador no prompt de comando
- Se a caixa de diálogo Controle de Conta de Usuário for exibida, confirme se a ação exibida é o que você deseja e selecione Sim
- No prompt de comando, digite
net stop SCardSvr
- No prompt de comando, digite
net start SCardSvr
Você pode usar o seguinte comando no prompt de comando para marcar se o serviço está em execução: sc queryex scardsvr
.
O exemplo de código a seguir é uma saída de exemplo deste 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:\>
Leitores de cartão inteligentes
Assim como em qualquer dispositivo conectado a um computador, Gerenciador de Dispositivos pode ser usado para exibir propriedades e iniciar o processo de depuração.
Para marcar se o leitor de cartão inteligente estiver funcionando:
- Navegar até o computador
- Clique com o botão direito do mouse no computador e selecione Propriedades
- Em Tarefas, selecione Gerenciador de Dispositivos
- Em Gerenciador de Dispositivos, expanda leitores smart cartão, selecione o nome do leitor de cartão inteligente que você deseja marcar e selecione Propriedades
Observação
Se o leitor de cartão inteligente não estiver listado no Gerenciador de Dispositivos, no menu Ação, selecione Verificar se há alterações de hardware.
Diagnóstico do CryptoAPI 2.0
O Diagnóstico do CryptoAPI 2.0 está disponível em versões do Windows que dão suporte ao CryptoAPI 2.0 e podem ajudá-lo a solucionar problemas de PKI (infraestrutura de chave pública).
O CryptoAPI 2.0 Diagnostics registra eventos no log de eventos do Windows. Os logs contêm informações detalhadas sobre validação da cadeia de certificados, operações do repositório de certificados e verificação de assinatura. Essas informações facilitam a identificação das causas dos problemas e reduzem o tempo necessário para o diagnóstico.
Para obter mais informações sobre o Diagnóstico do CryptoAPI 2.0, confira Solução de problemas de um PKI enterprise.