次の方法で共有


ドライバーの署名のインストールのトラブルシューティング

リリース署名付きドライバーのインストールは、「テスト署名」「テスト署名されたドライバー パッケージのインストール、アンインストール、読み込み」の説明と同じですが、インストールする際に必要な2つの追加手順を除き、そこで説明されている 4 つの方法のいずれかを使用します。

ドライバー パッケージの署名者がまだ信頼されるようにシステムに設定されていない場合は、次の Windows セキュリティダイアログ ボックスが表示されることがあります。

screenshot showing the windows security dialog.

ドライバーが再びインストールされた場合、または何らかの理由でドライバーが削除された場合、チェック ボックスを選択しても、このダイアログ ボックスは表示されなくなります。

注: システムは、カタログへの署名に使用された SPC に基づいて、発行元情報が正確であることを確認します。 発行元の信頼レベルが不明な場合 (Contoso.com の場合と同様)、ダイアログ ボックスが表示されます。 インストールを続行するには、ユーザーが [インストール] を選択する必要があります。 信頼とドライバーのインストールの詳細については、「コード署名のベスト プラクティス」を参照してください。

署名されていないドライバーには、次のダイアログが表示されます。これにより、ユーザーは署名されていないドライバーをインストールできます (x64 バージョンの Windows では動作しない可能性があります)。

screen shot showing the windows security warning dialog.

リリース署名されたドライバーが正しく動作していることを確認します

デバイス マネージャーを使用して、ドライバーのプロパティを表示します (テスト署名されたドライバーについて前述)。 ドライバーが動作しているかどうかを示すスクリーン ショットを次に示します。

screen shot showing the toaster device in the device manager.

リリース署名済みドライバーのトラブルシューティング

署名付きドライバーまたはテスト署名済みドライバーの読み込みに関する問題をトラブルシューティングする一般的な方法をいくつか次に示します。

  • 「テスト署名」「テスト署名されたドライバが正しく動作していることを確認」の説明に従って、デバイス マネージャーを使用して、ドライバーが読み込まれ、署名されているかどうかを確認します。
  • ドライバーのインストール後、%windir%\inf ディレクトリに作成された setupapi.dev.log ファイルを開きます。 ドライバーをインストールする前に、レジストリ エントリの設定と setupapi.dev.log ファイルの名前変更に関するセクションを参照してください。
  • Windows セキュリティ監査ログとコード整合性イベント ログを確認します。

Setupapi.dev.log ファイルの分析

すでに説明したように、ドライバーのインストール情報は、%windir%\inf ディレクトリのsetupapi.dev.log ファイルに記録 (追加) されます。 ドライバー パッケージのインストールをテストするときに、ドライバーがインストールされる前にファイルの名前が変更されると、新しいログ ファイルが生成されます。 新しいログ ファイルは、新しいドライバーのインストールから重要なログを簡単に検索できます。 ただし、実稼働シナリオの一部としてログ ファイルの名前を変更しないでください。 ログ ファイルは、任意のテキスト編集ソフトウェアで開くことができます。

左端の列には、感嘆符 "!" が 1 つ含まれている場合があります。 または複数の感嘆符 “!!!”。 単一の感嘆符は警告メッセージですが、トリプル感嘆符は失敗を示します。

CA ベンダーが提供する SPC 証明書で署名されたドライバー パッケージ リリースをインストールすると、次の単一の感嘆符が表示されます。 これらは、cat ファイルがまだ検証されていないことを示す警告です。

!    sig:                Verifying file against specific (valid) catalog failed! (0x800b0109)
!    sig:                Error 0x800b0109: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
     sig:                Success: File is signed in Authenticode(tm) catalog.
     sig:                Error 0xe0000242: The publisher of an Authenticode(tm) signed catalog has not yet been established as trusted.

署名者がこのマシンでまだ信頼されていないときに表示されるダイアログで [インストール] ボタンを選択すると、以下のログが表示されます。ほとんどの場合、ドライバーは正常にインストールされ、読み込まれます。 デバイス マネージャーは、ドライバーのエラーや黄色の感嘆符を報告しません。

!    sto:           Driver package signer is unknown but user trusts the signer.

ログ ファイルに次のエラー ログも表示される場合は、ドライバーが読み込まれていない可能性があります。

setupapi.dev.log ファイルでは、次のエラーも報告されています。

!!!  dvi:                          Device not started: Device has problem: 0x34: CM_PROB_UNSIGNED_DRIVER.

0x34はコード 52 であることに注意してください。

トラブルシューティングを行うには、ログ ファイルを確認し、ドライバー バイナリの横にある感嘆符を探します。 signtool verify cat ファイルとその他の埋め込み署名済みバイナリでコマンドを実行します。

通常、問題を解決するには、ログ ファイル情報で十分です。 上記のチェックで根本原因が見つからない場合は、次のセクションで説明する Windows セキュリティ監査ログとコード整合性イベント ログをチェックします。

Windows セキュリティ監査ログの使用

有効な署名がないためにドライバーの読み込みに失敗した場合は、監査エラー イベントとして記録されます。 監査エラーイベントは Windows セキュリティ ログに記録され、Code Integrity がドライバー ファイルのイメージハッシュを確認できなかったことを示します。 ログ エントリには、ドライバー ファイルの完全なパス名が含まれます。 セキュリティ ログ監査イベントは、ローカル セキュリティ監査ポリシーでシステム 障害イベントのログ記録が有効になっている場合にのみ生成されます。

注: セキュリティ監査ログを明示的に有効にする必要があります。 詳細については、「補足事項 3: コード整合性イベント ログとシステム監査 の有効化」を参照してください。

セキュリティ ログを調べる。

  1. 昇格コマンド ウィンドウを開きます。
  2. Windows イベント ビューアーを起動するには、Eventvwr.exe を実行します。 イベント ビューアーは、コントロール パネル コンピューター管理アプリケーションから開始することもできます。
  3. Windows セキュリティ監査ログを開きます。
  4. イベント ID が 5038 のシステム整合性イベントのログを確認します。
  5. ログ エントリを長押し (または右クリック) し、[イベント プロパティ] を選択して [イベント プロパティ] ダイアログ ボックスを表示します。このダイアログ ボックスには、イベントの詳細な説明が表示されます。

次のスクリーン ショットは、署名されていないToaster.sys ファイルによって発生したセキュリティ監査ログ イベントの [イベントのプロパティ] ダイアログ ボックスを示しています。

screen shot showig the event properties dialog.

コード整合性イベント操作イベント ログの使用

ドライバーが署名されていないか、イメージ検証エラーが生成されたために読み込みに失敗した場合、コード整合性は、コード整合性操作イベント ログにイベントを記録します。 コード整合性操作イベントは常に有効になります。

コード整合性イベントは、イベント ビューアーで表示できます。

コード整合性操作ログを調べるには

  1. 昇格コマンド ウィンドウを開きます。
  2. Windows イベント ビューアーを起動するには、Eventvwr.exe を実行します。 イベント ビューアーは、コンピューター管理コントロール パネル アプリケーションから開始することもできます。
  3. Windows コード整合性ログを開きます。
  4. ログ エントリを長押し (または右クリック) し、[イベント プロパティ] を選択して [イベント プロパティ] ダイアログ ボックスを表示します。このダイアログ ボックスには、イベントの詳細な説明が表示されます。

次のスクリーン ショットは、署名されていないToaster.sys ファイルによって発生したコード整合性操作ログ イベントの [イベント プロパティ] ダイアログ ボックスを示しています。

screen shot showing the event viewer.

コード整合性の詳細ログでの情報イベントの使用

コード整合性情報ログの詳細ビューは、すべてのカーネル モード イメージ検証チェックのイベントを追跡します。 これらのイベントは、システムに読み込まれているすべてのドライバーの正常なイメージ検証を示します。

コード整合性の詳細ビューを有効にするには:

  1. 前の例のように、イベント ビューアーを開始します。
  2. コード整合性ノードを選択して、フォーカスを設定します。
  3. コード整合性を長押し (または右クリック) し、ショートカット メニューから [表示] 項目を選択します。
  4. [分析ログとデバッグ ログ の表示] を選択します。 これにより、2 つのノード (Operational と Verbose) が追加されたサブ ツリーが作成されます。
  5. 詳細ノードを長押し (または右クリック) し、ショートカット メニューから [プロパティ] を選択します。
  6. [全般] タブで、[ログ記録を有効にする] を選択して詳細ログ モードを有効にします。
  7. システムを再起動して、すべてのカーネル モード バイナリを再読み込みします。
  8. 再起動後、MMC コンピューター管理スナップインを開き、コードの整合性の詳細イベント ログを表示します。

ドライバー署名に関するその他のいくつかの既知の問題は、「補足事項 4: ドライバー署名の問題」で説明されています。