スマート カードのトラブルシューティング
この記事では、スマート カード開発者がスマート カード展開に関する証明書の問題を特定するために使用できるツールとサービスについて説明します。
スマート カードの問題のデバッグとトレースには、さまざまなツールとアプローチが必要です。 次のセクションでは、使用できるツールとアプローチに関するガイダンスを提供します。
- Certutil
- Windows ソフトウェア トレース プリプロセッサ (WPP) を使用したデバッグとトレース
- Kerberos プロトコル、キー配布センター (KDC)、NTLM のデバッグとトレース
- スマート カード サービス
- スマート カード リーダー
- CryptoAPI 2.0 Diagnostics
Certutil
Certutil の使用方法を示す例など、Certutil の完全な説明については、「 Certutil [W2012]」を参照してください。
スマート カードで使用可能な証明書を一覧表示する
スマート カードで使用できる証明書を一覧表示するには、「」と入力しますcertutil.exe -scinfo
。
注
この操作には PIN を入力する必要はありません。 PIN の入力を求められた場合は、Esc キーを押すことができます。
スマート カードで証明書を削除する
各証明書はコンテナーに囲まれています。 スマート カードで証明書を削除すると、証明書のコンテナーが削除されます。
コンテナーの値を検索するには、「」と入力します certutil.exe -scinfo
。
コンテナーを削除するには、「」と入力します certutil.exe -delkey -csp "Microsoft Base Smart Card Crypto Provider" "<ContainerValue>"
。
WPP を使用したデバッグとトレース
WPP では、トレース プロバイダーの操作のトレースが簡略化されます。 トレース プロバイダーがリアルタイムのバイナリ メッセージをログに記録するためのメカニズムを提供します。 ログに記録されたメッセージは、操作の人間が判読できるトレースに変換できます。 詳細については、「 WPP を使用した診断 - NDIS ブログ」を参照してください。
トレースを有効にする
WPP を使用して、次のいずれかのコマンドを使用してトレースを有効にします。
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>
次の表のパラメーターを使用できます。
フレンドリ名 | GUID | フラグ |
---|---|---|
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 |
例
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
のトレースを scfilter.sys
有効にするには:
tracelog.exe -kd -rt -start scfilter -guid \#eed7f3c9-62ba-400e-a001-658869df9a91 -f .\scfilter.etl -flags 0xffff -ft 1
トレースを停止する
WPP を使用して、次のいずれかのコマンドを使用してトレースを停止します。
tracelog.exe -stop <*FriendlyName*>
logman.exe -stop <*FriendlyName*> -ets
たとえば、トレースを停止するには、
tracelog.exe -stop scardsvr
logman.exe -stop scardsvr -ets
Kerberos プロトコル、KDC、NTLM のデバッグとトレース
これらのリソースを使用して、これらのプロトコルと KDC のトラブルシューティングを行うことができます。
- Kerberos と LDAP のトラブルシューティングに関するヒント
- Windows ドライバー キット (WDK) と Windows 用デバッグ ツール (WinDbg)。 この SDK のトレース ログ ツールを使用して、Kerberos 認証エラーをデバッグできます。
トレースを開始するには、 を使用 Tracelog
します。 これらの例で説明されているように、異なるコンポーネントで異なるコントロール GUID が使用されます。 詳細については、次を参照してください。 Tracelog
NTLM
NTLM 認証のトレースを有効にするには、コマンド ラインで次のコマンドを実行します。
tracelog.exe -kd -rt -start ntlm -guid \#5BBB6C18-AA45-49b1-A15F-085F7ED0AA90 -f .\ntlm.etl -flags 0x15003 -ft 1
NTLM 認証のトレースを停止するには、次のコマンドを実行します。
tracelog -stop ntlm
Kerberos 認証
Kerberos 認証のトレースを有効にするには、次のコマンドを実行します。
tracelog.exe -kd -rt -start kerb -guid \#6B510852-3583-4e2d-AFFE-A67F9F223438 -f .\kerb.etl -flags 0x43 -ft 1
Kerberos 認証のトレースを停止するには、次のコマンドを実行します。
tracelog.exe -stop kerb
Kdc
KDC のトレースを有効にするには、コマンド ラインで次のコマンドを実行します。
tracelog.exe -kd -rt -start kdc -guid \#1BBA8B19-7F31-43c0-9643-6E911F79A06B -f .\kdc.etl -flags 0x803 -ft 1
KDC のトレースを停止するには、コマンド ラインで次のコマンドを実行します。
tracelog.exe -stop kdc
リモート コンピューターからのトレースを停止するには、次のコマンドを実行します。
logman.exe -s <ComputerName>
注
logman.exe の既定の場所は %systemroot%system32 です。 コンピューター名を指定するには、 -s オプションを使用します。
レジストリを使用してトレースを構成する
トレースを構成するには、次の表に示す Kerberos レジストリ値を編集します。
要素 | レジストリ キーの設定 |
---|---|
NTLM | HKEY_LOCAL_MACHINESYSTEM\CurrentControlSet\Control\Lsa\MSV1_0 値名: NtLmInfoLevel 値の種類: DWORD 値データ: c0015003 |
Kerberos | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos 値名: LogToFile 値の種類: DWORD 値データ: 00000001 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters 値名: KerbDebugLevel 値の種類: DWORD 値データ: c0000043 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters 値名: LogToFile 値の種類: DWORD 値データ: 00000001 |
Kdc | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc 値名: KdcDebugLevel 値の種類: DWORD 値データ: c0000803 |
を使用Tracelog
した場合は、現在のディレクトリで次のログ ファイルを探します。 kerb.etl/kdc.etl/ntlm.etl
前の表に示したレジストリ キー設定を使用した場合は、次の場所でトレース ログ ファイルを探します。
- Ntlm:
%systemroot%\tracing\msv1_0
- Kerberos:
%systemroot%\tracing\kerberos
- Kdc:
%systemroot%\tracing\kdcsvc
イベント トレース ファイルをデコードするには、(tracefmt.exe) を使用 Tracefmt
できます。
Tracefmt
は、イベント トレース ログ ファイル (.etl) またはリアルタイム トレース セッションからのトレース メッセージを書式設定して表示するコマンド ライン ツールです。
Tracefmt
コマンド プロンプト ウィンドウにメッセージを表示したり、テキスト ファイルに保存したりできます。 これは、Windows Driver Kit (WDK) の \tools\tracing サブディレクトリにあります。 詳細については、「Tracefmt
」を参照してください。
スマート カード サービス
スマート カード リソース マネージャー サービスは、ローカル サービスのコンテキストで実行されます。 これは、サービス ホスト (svchost) プロセスの共有サービスとして実装されます。
スマート カード サービスが実行されているかどうかをチェックするには:
- Ctrl キーを押しながら Alt キーを押しながら DEL キーを押し、[タスク マネージャーの開始] を選択します
- [ Windows タスク マネージャー ] ダイアログ ボックスで、[ サービス ] タブを選択します
- [名前] 列を選択してリストをアルファベット順に並べ替え、「s」と入力します。
- [ 名前 ] 列で SCardSvr を探し、[ 状態] 列の下を見て、サービスが実行されているか停止されているかを確認します。
スマート カード サービスを再起動するには:
- コマンド プロンプトで管理者として実行する
- [ユーザー アカウント制御] ダイアログ ボックスが表示されたら、表示されるアクションが目的の操作であることを確認し、[はい] を選択します。
- コマンド プロンプトで、「」と入力します。
net stop SCardSvr
- コマンド プロンプトで、「」と入力します。
net start SCardSvr
コマンド プロンプトで次のコマンドを使用して、サービスが実行されているかどうかをチェックできます。 sc queryex scardsvr
次のコード サンプルは、このコマンドからの出力例です。
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:\>
スマート カード リーダー
コンピューターに接続されているデバイスと同様に、デバイス マネージャーを使用してプロパティを表示し、デバッグ プロセスを開始できます。
スマート カード リーダーが動作しているかどうかをチェックするには:
- [コンピューター] に移動します
- [コンピューター] を右クリックし、[プロパティ] を選択します
- [タスク] で、[デバイス マネージャー] を選択します
- デバイス マネージャーで、[スマート カード リーダー] を展開し、チェックするスマート カード リーダーの名前を選択し、[プロパティ] を選択します。
注
スマート カード リーダーがデバイス マネージャーに表示されない場合は、[アクション] メニューの [ハードウェアの変更をスキャンする] を選択します。
CryptoAPI 2.0 Diagnostics
CryptoAPI 2.0 診断は、CryptoAPI 2.0 をサポートする Windows バージョンで使用でき、公開キー インフラストラクチャ (PKI) の問題のトラブルシューティングに役立ちます。
CryptoAPI 2.0 診断では、Windows イベント ログにイベントが記録されます。 ログには、証明書チェーンの検証、証明書ストアの操作、署名の検証に関する詳細情報が含まれています。 この情報により、問題の原因を簡単に特定でき、診断に必要な時間が短縮されます。
CryptoAPI 2.0 診断の詳細については、「 Enterprise PKI のトラブルシューティング」を参照してください。