Condividi tramite


Risoluzione dei problemi delle smart card

Questo articolo illustra gli strumenti e i servizi che gli sviluppatori di smart card possono usare per identificare i problemi relativi ai certificati con la distribuzione delle smart card.

Il debug e la traccia dei problemi delle smart card richiedono diversi strumenti e approcci. Le sezioni seguenti forniscono indicazioni sugli strumenti e sugli approcci che è possibile usare.

Certutil

Per una descrizione completa di Certutil che include esempi che illustrano come usarlo, vedere Certutil [W2012].

Elencare i certificati disponibili nella smart card

Per elencare i certificati disponibili nella smart card, digitare certutil.exe -scinfo.

Nota

L'immissione di un PIN non è necessaria per questa operazione. Se viene richiesto un PIN, è possibile premere ESC.

Eliminare i certificati nella smart card

Ogni certificato è racchiuso in un contenitore. Quando si elimina un certificato nella smart card, si elimina il contenitore per il certificato.

Per trovare il valore del contenitore, digitare certutil.exe -scinfo.

Per eliminare un contenitore, digitare certutil.exe -delkey -csp "Microsoft Base Smart Card Crypto Provider" "<ContainerValue>".

Debug e traccia tramite WPP

WPP semplifica la traccia del funzionamento del provider di traccia. Fornisce un meccanismo per consentire al provider di traccia di registrare messaggi binari in tempo reale. I messaggi registrati possono essere convertiti in una traccia leggibile dell'operazione. Per altre informazioni, vedere Diagnostica con WPP - Blog di NDIS.

Abilitare la traccia

Usando WPP, usare uno dei comandi seguenti per abilitare la traccia:

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>

È possibile usare i parametri nella tabella seguente.

Nome descrittivo GUID Flag
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

Esempi

Per abilitare la traccia per il servizio 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

Per abilitare la traccia per scfilter.sys:

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

Arrestare la traccia

Usando WPP, usare uno dei comandi seguenti per arrestare la traccia:

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

Ad esempio, per arrestare una traccia:

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

Debug e traccia di protocollo Kerberos, KDC e NTLM

È possibile usare queste risorse per risolvere i problemi relativi a questi protocolli e al KDC:

Per iniziare la traccia, è possibile usare Tracelog. I diversi componenti usano GUID di controllo diversi, come illustrato in questi esempi. Per altre informazioni, vedere Tracelog

NTLM

Per abilitare la traccia per l'autenticazione NTLM, eseguire il comando seguente nella riga di comando:

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

Per arrestare la traccia per l'autenticazione NTLM, eseguire questo comando:

tracelog -stop ntlm

Autenticazione Kerberos

Per abilitare la traccia per l'autenticazione Kerberos, eseguire questo comando:

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

Per arrestare la traccia per l'autenticazione Kerberos, eseguire questo comando:

tracelog.exe -stop kerb

KDC

Per abilitare la traccia per il KDC, eseguire il comando seguente nella riga di comando:

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

Per arrestare la traccia per il KDC, eseguire il comando seguente nella riga di comando:

tracelog.exe -stop kdc

Per arrestare la traccia da un computer remoto, eseguire questo comando:

logman.exe -s <ComputerName>

Nota

Il percorso predefinito per logman.exe è %systemroot%system32. Usare l'opzione -s per specificare un nome di computer.

Configurare la traccia con il Registro di sistema

È anche possibile configurare la traccia modificando i valori del Registro di sistema Kerberos illustrati nella tabella seguente.

Elemento Impostazione della chiave del Registro di sistema
NTLM HKEY_LOCAL_MACHINESYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
Nome valore: NtLmInfoLevel
Tipo di valore: DWORD
Dati valore: c0015003
Kerberos HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos
Nome valore: LogToFile
Tipo di valore: DWORD
Dati valore: 00000001

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
Nome valore: KerbDebugLevel
Tipo di valore: DWORD
Dati valore: c0000043

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
Nome valore: LogToFile
Tipo di valore: DWORD
Dati valore: 00000001
KDC HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc
Nome valore: KdcDebugLevel
Tipo di valore: DWORD
Dati valore: c0000803

Se è stato usato Tracelog, cercare il file di log seguente nella directory corrente: kerb.etl/kdc.etl/ntlm.etl.

Se sono state usate le impostazioni della chiave del Registro di sistema visualizzate nella tabella precedente, cercare i file di log di traccia nei percorsi seguenti:

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

Per decodificare i file di traccia degli eventi, è possibile usare Tracefmt (tracefmt.exe). Tracefmt è uno strumento da riga di comando che formatta e visualizza i messaggi di traccia da un file di log di traccia eventi (con estensione etl) o da una sessione di traccia in tempo reale. Tracefmt può visualizzare i messaggi nella finestra del prompt dei comandi o salvarli in un file di testo. Si trova nella sottodirectory \tools\tracing di Windows Driver Kit (WDK). Per altre informazioni, vedi Tracefmt.

Servizio smart card

Il servizio gestione risorse smart card viene eseguito nel contesto di un servizio locale. Viene implementato come servizio condiviso del processo host dei servizi (svchost).

Per verificare se il servizio smart card è in esecuzione:

  1. Premere CTRL+ALT+CANC e quindi selezionare Avvia Gestione attività
  2. Nella finestra di dialogo Gestione attività Windows selezionare la scheda Servizi
  3. Selezionare la colonna Nome per ordinare l'elenco in ordine alfabetico, quindi digitare s
  4. Nella colonna Nome cercare SCardSvr e quindi cercare nella colonna Stato per verificare se il servizio è in esecuzione o arrestato

Per riavviare il servizio smart card:

  1. Eseguire come amministratore al prompt dei comandi
  2. Se viene visualizzata la finestra di dialogo Controllo account utente , verificare che l'azione visualizzata sia quella desiderata e quindi selezionare
  3. Al prompt dei comandi digitare net stop SCardSvr
  4. Al prompt dei comandi digitare net start SCardSvr

È possibile usare il comando seguente al prompt dei comandi per verificare se il servizio è in esecuzione: sc queryex scardsvr.

L'esempio di codice seguente è un output di esempio di questo 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:\>

Lettori di smart card

Come per qualsiasi dispositivo connesso a un computer, è possibile usare Gestione dispositivi per visualizzare le proprietà e avviare il processo di debug.

Per verificare se il lettore di smart card funziona:

  1. Passare a Computer
  2. Fare clic con il pulsante destro del mouse su Computer e quindi scegliere Proprietà
  3. In Attività selezionare Gestione dispositivi
  4. In Gestione dispositivi espandere Lettori smart card, selezionare il nome del lettore di smart card da controllare e quindi selezionare Proprietà

Nota

Se il lettore di smart card non è elencato in Gestione dispositivi, nel menu Azione selezionare Cerca modifiche hardware.

Diagnostica CryptoAPI 2.0

La diagnostica CryptoAPI 2.0 è disponibile nelle versioni di Windows che supportano CryptoAPI 2.0 e consentono di risolvere i problemi dell'infrastruttura a chiave pubblica (PKI).

La diagnostica CryptoAPI 2.0 registra gli eventi nel registro eventi di Windows. I log contengono informazioni dettagliate sulla convalida della catena di certificati, sulle operazioni dell'archivio certificati e sulla verifica della firma. Queste informazioni semplificano l'identificazione delle cause dei problemi e riducono il tempo necessario per la diagnosi.

Per altre informazioni sulla diagnostica CryptoAPI 2.0, vedere Risoluzione dei problemi di un'infrastruttura a chiave pubblica aziendale.

Vedere anche

Informazioni di riferimento tecniche sulle smart card