Problembehandlung bei Smartcards
In diesem Artikel werden Tools und Dienste erläutert, die Entwickler von intelligenten Karte verwenden können, um Zertifikatprobleme bei der Bereitstellung der intelligenten Karte zu identifizieren.
Das Debuggen und Nachverfolgen von Problemen mit intelligenten Karte erfordert eine Vielzahl von Tools und Ansätzen. Die folgenden Abschnitte enthalten Anleitungen zu Tools und Ansätzen, die Sie verwenden können.
- Certutil
- Debuggen und Ablaufverfolgung mit Windows-Softwareablaufverfolgungs-Präprozessor (WPP)
- Kerberos-Protokoll, Key Distribution Center (KDC) und NTLM-Debugging und -Ablaufverfolgung
- Smartcard-Dienst
- Intelligente Karte-Leser
- CryptoAPI 2.0-Diagnose
Certutil
Eine vollständige Beschreibung von Certutil einschließlich Beispielen zur Verwendung finden Sie unter Certutil [W2012].
Auflisten von Zertifikaten, die im smarten Karte
Geben Sie zum Auflisten von Zertifikaten, die auf dem smarten Karte verfügbar sind, eincertutil.exe -scinfo
.
Hinweis
Die Eingabe einer PIN ist für diesen Vorgang nicht erforderlich. Sie können ESC drücken, wenn Sie zur Eingabe einer PIN aufgefordert werden.
Löschen von Zertifikaten auf der intelligenten Karte
Jedes Zertifikat ist in einem Container eingeschlossen. Wenn Sie ein Zertifikat auf der intelligenten Karte löschen, löschen Sie den Container für das Zertifikat.
Um den Containerwert zu ermitteln, geben Sie ein certutil.exe -scinfo
.
Um einen Container zu löschen, geben Sie ein certutil.exe -delkey -csp "Microsoft Base Smart Card Crypto Provider" "<ContainerValue>"
.
Debuggen und Ablaufverfolgung mit WPP
WPP vereinfacht die Ablaufverfolgung des Ablaufverfolgungsanbieters. Es bietet einen Mechanismus für den Ablaufverfolgungsanbieter zum Protokollieren binärer Echtzeitnachrichten. Protokollierte Nachrichten können in eine lesbare Ablaufverfolgung des Vorgangs konvertiert werden. Weitere Informationen finden Sie unter Diagnose mit WPP – Der NDIS-Blog.
Aktivieren der Ablaufverfolgung
Verwenden Sie mithilfe von WPP einen der folgenden Befehle, um die Ablaufverfolgung zu aktivieren:
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>
Sie können die Parameter in der folgenden Tabelle verwenden.
Anzeigename | 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 |
Beispiele
So aktivieren Sie die Ablaufverfolgung für den SCardSvr-Dienst:
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
So aktivieren Sie die Ablaufverfolgung für scfilter.sys
:
tracelog.exe -kd -rt -start scfilter -guid \#eed7f3c9-62ba-400e-a001-658869df9a91 -f .\scfilter.etl -flags 0xffff -ft 1
Beenden der Ablaufverfolgung
Verwenden Sie mithilfe von WPP einen der folgenden Befehle, um die Ablaufverfolgung zu beenden:
tracelog.exe -stop <*FriendlyName*>
logman.exe -stop <*FriendlyName*> -ets
So beenden Sie beispielsweise eine Ablaufverfolgung:
tracelog.exe -stop scardsvr
logman.exe -stop scardsvr -ets
Kerberos-Protokoll, KDC und NTLM-Debugging und -Ablaufverfolgung
Sie können diese Ressourcen verwenden, um Probleme mit diesen Protokollen und dem KDC zu beheben:
- Tipps zur Problembehandlung für Kerberos und LDAP
- Windows Driver Kit (WDK) und Debugtools für Windows (WinDbg). Sie können das Ablaufverfolgungsprotokolltool in diesem SDK verwenden, um Kerberos-Authentifizierungsfehler zu debuggen.
Um mit der Ablaufverfolgung zu beginnen, können Sie verwenden Tracelog
. Unterschiedliche Komponenten verwenden unterschiedliche Steuerelement-GUIDs, wie in diesen Beispielen erläutert. Weitere Informationen finden Sie unter Tracelog
NTLM
Führen Sie den folgenden Befehl in der Befehlszeile aus, um die Ablaufverfolgung für die NTLM-Authentifizierung zu aktivieren:
tracelog.exe -kd -rt -start ntlm -guid \#5BBB6C18-AA45-49b1-A15F-085F7ED0AA90 -f .\ntlm.etl -flags 0x15003 -ft 1
Führen Sie den folgenden Befehl aus, um die Ablaufverfolgung für die NTLM-Authentifizierung zu beenden:
tracelog -stop ntlm
Kerberos-Authentifizierung
Führen Sie den folgenden Befehl aus, um die Ablaufverfolgung für die Kerberos-Authentifizierung zu aktivieren:
tracelog.exe -kd -rt -start kerb -guid \#6B510852-3583-4e2d-AFFE-A67F9F223438 -f .\kerb.etl -flags 0x43 -ft 1
Führen Sie den folgenden Befehl aus, um die Ablaufverfolgung für die Kerberos-Authentifizierung zu beenden:
tracelog.exe -stop kerb
KDC
Führen Sie den folgenden Befehl in der Befehlszeile aus, um die Ablaufverfolgung für das KDC zu aktivieren:
tracelog.exe -kd -rt -start kdc -guid \#1BBA8B19-7F31-43c0-9643-6E911F79A06B -f .\kdc.etl -flags 0x803 -ft 1
Führen Sie den folgenden Befehl in der Befehlszeile aus, um die Ablaufverfolgung für das KDC zu beenden:
tracelog.exe -stop kdc
Führen Sie den folgenden Befehl aus, um die Ablaufverfolgung von einem Remotecomputer aus zu beenden:
logman.exe -s <ComputerName>
Hinweis
Der Standardspeicherort für logman.exe ist %systemroot%system32. Verwenden Sie die Option -s , um einen Computernamen anzugeben.
Konfigurieren der Ablaufverfolgung mit der Registrierung
Sie können die Ablaufverfolgung auch konfigurieren, indem Sie die in der folgenden Tabelle aufgeführten Kerberos-Registrierungswerte bearbeiten.
Element | Registrierungsschlüsseleinstellung |
---|---|
NTLM | HKEY_LOCAL_MACHINESYSTEM\CurrentControlSet\Control\Lsa\MSV1_0 Wertname: NtLmInfoLevel Werttyp: DWORD Wertdaten: c0015003 |
Kerberos | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos Wertname: LogToFile Werttyp: DWORD Wertdaten: 00000001 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters Wertname: KerbDebugLevel Werttyp: DWORD Wertdaten: c0000043 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters Wertname: LogToFile Werttyp: DWORD Wertdaten: 00000001 |
KDC | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc Wertname: KdcDebugLevel Werttyp: DWORD Wertdaten: c0000803 |
Wenn Sie verwendet haben Tracelog
, suchen Sie in Ihrem aktuellen Verzeichnis nach der folgenden Protokolldatei: kerb.etl/kdc.etl/ntlm.etl
.
Wenn Sie die in der vorherigen Tabelle gezeigten Registrierungsschlüsseleinstellungen verwendet haben, suchen Sie an den folgenden Speicherorten nach den Protokolldateien der Ablaufverfolgung:
- NTLM:
%systemroot%\tracing\msv1_0
- Kerberos:
%systemroot%\tracing\kerberos
- KDC:
%systemroot%\tracing\kdcsvc
Zum Decodieren von Ereignisablaufverfolgungsdateien können Sie (tracefmt.exe) verwenden Tracefmt
.
Tracefmt
ist ein Befehlszeilentool, das Ablaufverfolgungsmeldungen aus einer Ereignisablaufverfolgungsprotokolldatei (ETL) oder einer Echtzeitablaufverfolgungssitzung formatiert und anzeigt.
Tracefmt
kann die Meldungen im Eingabeaufforderungsfenster anzeigen oder in einer Textdatei speichern. Es befindet sich im Unterverzeichnis \tools\tracing des Windows Driver Kit (WDK). Weitere Informationen finden Sie unter Tracefmt
.
Smartcard-Dienst
Der Smart Karte Resource Manager-Dienst wird im Kontext eines lokalen Diensts ausgeführt. Es wird als gemeinsamer Dienst des Diensthostprozesses (svchost) implementiert.
So überprüfen Sie, ob der Smartcarddienst ausgeführt wird:
- Drücken Sie STRG+ALT+ENTF, und wählen Sie dann Task-Manager starten aus.
- Wählen Sie im Dialogfeld Windows Task-Manager die Registerkarte Dienste aus.
- Wählen Sie die Spalte Name aus, um die Liste alphabetisch zu sortieren, und geben Sie dann s ein.
- Suchen Sie in der Spalte Name nach SCardSvr, und suchen Sie dann unter der Spalte Status , ob der Dienst ausgeführt oder beendet wird.
So starten Sie den Smartcarddienst neu:
- Ausführen als Administrator an der Eingabeaufforderung
- Wenn das Dialogfeld Benutzerkontensteuerung angezeigt wird, vergewissern Sie sich, dass die angezeigte Aktion ihren Wünschen entspricht, und wählen Sie dann Ja aus.
- Geben Sie an der Eingabeaufforderung folgendes Eingabeaufforderung ein:
net stop SCardSvr
- Geben Sie an der Eingabeaufforderung folgendes Eingabeaufforderung ein:
net start SCardSvr
Sie können den folgenden Befehl an der Eingabeaufforderung verwenden, um zu überprüfen, ob der Dienst ausgeführt wird: sc queryex scardsvr
.
Das folgende Codebeispiel ist eine Beispielausgabe dieses Befehls:
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:\>
Intelligente Karte-Leser
Wie bei jedem Gerät, das mit einem Computer verbunden ist, können Geräte-Manager verwendet werden, um Eigenschaften anzuzeigen und den Debugprozess zu starten.
So überprüfen Sie, ob smart Karte Reader funktioniert:
- Navigieren Sie zu Computer.
- Klicken Sie mit der rechten Maustaste auf Computer, und wählen Sie dann Eigenschaften aus.
- Wählen Sie unter Aufgabendie Option Geräte-Manager
- Erweitern Sie in Geräte-Manager die Option Smart Karte Reader, wählen Sie den Namen des zu überprüfenden Smart Karte-Readers aus, und wählen Sie dann Eigenschaften aus.
Hinweis
Wenn der Smart Karte Reader nicht in Geräte-Manager aufgeführt ist, wählen Sie im Menü Aktion die Option Nach Hardwareänderungen suchen aus.
CryptoAPI 2.0-Diagnose
Die CryptoAPI 2.0-Diagnose ist in Windows-Versionen verfügbar, die CryptoAPI 2.0 unterstützen, und kann Ihnen bei der Behandlung von Problemen mit der Public Key-Infrastruktur (PKI) helfen.
Die CryptoAPI 2.0-Diagnose protokolliert Ereignisse im Windows-Ereignisprotokoll. Die Protokolle enthalten ausführliche Informationen zur Zertifikatkettenvalidierung, Zertifikatspeichervorgängen und Signaturüberprüfung. Diese Informationen erleichtern die Identifizierung der Ursachen von Problemen und verkürzen den Zeitaufwand für die Diagnose.
Weitere Informationen zur CryptoAPI 2.0-Diagnose finden Sie unter Problembehandlung für eine Unternehmens-PKI.