スマート カードのトラブルシューティング

この記事では、スマート カード開発者がスマート カード展開に関する証明書の問題を特定するために使用できるツールとサービスについて説明します。

スマート カードの問題のデバッグとトレースには、さまざまなツールとアプローチが必要です。 次のセクションでは、使用できるツールとアプローチに関するガイダンスを提供します。

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 のトラブルシューティングを行うことができます。

トレースを開始するには、 を使用 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) プロセスの共有サービスとして実装されます。

スマート カード サービスが実行されているかどうかをチェックするには:

  1. Ctrl キーを押しながら Alt キーを押しながら DEL キーを押し、[タスク マネージャーの開始] を選択します
  2. [ Windows タスク マネージャー ] ダイアログ ボックスで、[ サービス ] タブを選択します
  3. [名前] 列を選択してリストをアルファベット順に並べ替え、「s」と入力します
  4. [ 名前 ] 列で SCardSvr を探し、[ 状態] 列の下を見て、サービスが実行されているか停止されているかを確認します。

スマート カード サービスを再起動するには:

  1. コマンド プロンプトで管理者として実行する
  2. [ユーザー アカウント制御] ダイアログ ボックスが表示されたら、表示されるアクションが目的の操作であることを確認し、[はい] を選択します。
  3. コマンド プロンプトで、「」と入力します。 net stop SCardSvr
  4. コマンド プロンプトで、「」と入力します。 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:\>

スマート カード リーダー

コンピューターに接続されているデバイスと同様に、デバイス マネージャーを使用してプロパティを表示し、デバッグ プロセスを開始できます。

スマート カード リーダーが動作しているかどうかをチェックするには:

  1. [コンピューター] に移動します
  2. [コンピューター] を右クリックし、[プロパティ] を選択します
  3. [タスク] で、[デバイス マネージャー] を選択します
  4. デバイス マネージャーで、[スマート カード リーダー] を展開し、チェックするスマート カード リーダーの名前を選択し、[プロパティ] を選択します。

スマート カード リーダーがデバイス マネージャーに表示されない場合は、[アクション] メニューの [ハードウェアの変更をスキャンする] を選択します。

CryptoAPI 2.0 Diagnostics

CryptoAPI 2.0 診断は、CryptoAPI 2.0 をサポートする Windows バージョンで使用でき、公開キー インフラストラクチャ (PKI) の問題のトラブルシューティングに役立ちます。

CryptoAPI 2.0 診断では、Windows イベント ログにイベントが記録されます。 ログには、証明書チェーンの検証、証明書ストアの操作、署名の検証に関する詳細情報が含まれています。 この情報により、問題の原因を簡単に特定でき、診断に必要な時間が短縮されます。

CryptoAPI 2.0 診断の詳細については、「 Enterprise PKI のトラブルシューティング」を参照してください。

関連項目

スマート カードの技術的リファレンス