Partilhar via


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

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:

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:

  1. Pressione CTRL+ALT+DEL e selecione Iniciar Gerenciador de Tarefas
  2. Na caixa de diálogo Gerenciador de Tarefas do Windows, selecione a guia Serviços
  3. Selecione a coluna Nome para classificar a lista em ordem alfabética e digite s
  4. 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:

  1. Executar como administrador no prompt de comando
  2. 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
  3. No prompt de comando, digite net stop SCardSvr
  4. 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:

  1. Navegar até o computador
  2. Clique com o botão direito do mouse no computador e selecione Propriedades
  3. Em Tarefas, selecione Gerenciador de Dispositivos
  4. 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.

Consulte também

Referência Técnica do Cartão Inteligente