Windows Vista を実行しているシステム上のカーネル モジュールのデジタル署名

 

Microsoft Corporation

更新日: 2007 年 6 月

適用対象:
   Windows Vista
   Windows Server 2008

概要: Microsoft Windows Vista 以降のバージョンの Windows ファミリのオペレーティング システムの場合、カーネル モード ソフトウェアには、x64 ベースのコンピューター システムに読み込むデジタル署名が必要です。 Windows Vista 用カーネル モード ソフトウェアの署名プロセスを管理する方法について説明します。 (22 ページの印刷)。

このペーパーの現在のバージョンは、Web 上の で管理されています: https://www.microsoft.com/whdc/system/platform/64bit/kmsigning.mspx

内容

はじめに
   ベスト プラクティスとしてのデジタル署名
   カーネル モード コード署名オプション
カーネル モードコード署名プロセス
   ソフトウェア発行証明書 (SPC) を取得する方法
   署名付き .cat ファイルの作成
   ドライバー イメージ ファイルへの埋め込み署名の追加
開発中に署名の適用を無効にする方法
テスト署名の使用方法
   テスト署名のトラブルシューティングの有効化
   ドライバーの読み込みエラーの検出
   コード整合性診断システム ログ イベントの有効化
   ドライバー検証のデバッグ オプション
リソース

はじめに

世界中の Windows のコンシューマーユーザーとエンタープライズ ユーザーの両方にとって、個人データと企業データの保護は依然として最も懸念事項です。 Microsoft は、悪意のあるソフトウェアの拡散を制限するための新しい方法の実装に取り組んでいます。 カーネル モード ソフトウェアのデジタル署名は、コンピューター システムのセキュリティを確保するための重要な方法です。

デジタル署名を使用すると、Windows ベースのソフトウェアをインストールしている管理者またはエンド ユーザーは、正当な発行元がソフトウェア パッケージを提供したかどうかを確認できます。 ユーザーがエラーやその他のエラーが発生した後にWindows エラー報告データを Microsoft に送信することを選択した場合、Microsoft はデータを分析して、エラー発生時にシステム上で実行されていた発行元のソフトウェアを把握できます。 ソフトウェア発行元は、Microsoft から提供された情報を使用して、ソフトウェアの問題を見つけて修正できます。

Windows Vista は、カーネル モード コードにデジタル署名を使用して、Microsoft Windows プラットフォームの安全性と安定性を向上させ、次世代のプレミアム コンテンツで新しいカスタマー エクスペリエンスを実現します。

  • ドライバーは、保護されたコンテンツをストリーミングするデバイスに署名する必要があります。 これには、保護されたユーザー モード オーディオ (PUMA) と保護されたオーディオ パス (PAP) を使用するオーディオ ドライバーと、保護されたビデオ パス出力保護管理 (PVP-OPM) コマンドを処理するビデオ デバイス ドライバーが含まれます。
  • 署名されていないカーネル モード ソフトウェアは読み込まれません。x64 ベースのシステムでは実行されません。

メモ: 管理者特権を持つユーザーでも、x64 ベースのシステムで署名されていないカーネル モード コードを読み込むことはできません。 これは、デバイス ドライバー、フィルター ドライバー、カーネル サービスなど、カーネル モードで読み込まれるすべてのソフトウェア モジュールに適用されます。

新しいカーネル モード コード署名ポリシーのスコープは、はるかに近づきます。 カーネル モード ソフトウェアを公開する開発者の場合、このポリシーには次の効果があります。

  • まだ署名されていないカーネル モード コンポーネントの場合、発行元はソフトウェア発行証明書 (SPC) を取得し、SPC を使用して、Windows Vista を実行している x64 ベースのコンピューター システムで実行されるすべての 64 ビット カーネル モード ソフトウェアに署名する必要があります。 これには、カーネル モード サービス ソフトウェアが含まれます。

  • Windows ロゴ プログラムを通じて既に署名されている 64 ビット デバイス ドライバーまたはその他のカーネル モード ソフトウェアを提供する発行元は、Windows Hardware Quality Labs (WHQL) 署名で署名されたドライバー カタログを持ちます。 WHQL に送信する前にドライバー パッケージを完全にテストするには、SPC を使用してドライバー カタログに署名します。

  • ブートスタートドライバーの特殊なケースでは、システムのブートパフォーマンスを最適にするために、SPCを使用してドライバーバイナリイメージファイルに署名する必要もあります。

    メモ ドライバーは、Windows Vista オペレーティング システム ローダーによって読み込まれた場合、起動開始と言われます。 ブート開始ドライバーは次のように識別できます。ドライバー INF では、開始の種類が "Start=0" として指定されているか、カーネル サービスが ServiceType としてカーネル ドライバーまたはファイル システム ドライバーとして構成され、StartMode が "ブート" として構成されています。

必須のカーネル モード コード署名ポリシーは、Windows Vista を実行している x64 ベースのシステム上のすべてのカーネル モード ソフトウェアに適用されます。 ただし、Microsoft では、32 ビットプラットフォームと 64 ビット プラットフォームの両方のデバイス ドライバーを含むすべてのソフトウェアにデジタル署名するよう発行元に推奨しています。 Windows Vista は、x86 システムでカーネル モード署名検証を実行して、保護されたメディア コンテンツをサポートします。 ただし、カーネル モード ドライバー署名は、32 ビット システムでは必須ではありません。

このペーパーでは、Windows Vista のカーネル モード コードの署名プロセスを管理する方法について説明します。これには、ソフトウェア発行証明書 (SPC) を取得する方法、キーを保護するためのガイドライン、Windows Driver Kit (WDK) で提供されているツールを使用してドライバー パッケージに署名する方法が含まれます。

ベスト プラクティスとしてのデジタル署名

Windows 98 のリリース以来、Microsoft は、ドライバーの信頼性を向上させ、ユーザー エクスペリエンスを向上させ、ソフトウェアおよびハードウェア ベンダーのサポート コストを削減し、顧客の総保有コストを削減するためのメカニズムとして、指定されたデバイス クラスのドライバー署名を推進してきました。

デバイス ドライバーやその他のカーネル モード ソフトウェアの場合、Windows ロゴ プログラムの一部として署名されたドライバーは、ソフトウェアの品質に対するエンドユーザーの信頼度を高め、ユーザー エクスペリエンスを向上させます。これは、ドライバーに属する Windows ロゴがドライバーがテストされたことを示し、Windows ロゴに付随するデジタル署名がテスト後に変更されていないことを確認するためです。

ほとんどのカーネル モード ドライバー パッケージでは、デジタル署名は署名付きカタログ (.cat) ファイルで提供されます。 Windows Hardware Quality Labs (WHQL) には、Windows ロゴ プログラムの要件を満たすドライバー パッケージと共に配布する Microsoft 署名付き .cat ファイルが用意されています。

署名付きカーネル モード ソフトウェアを作成するプロセスは、2 つの異なるが関連するアクティビティで構成されます。 ソフトウェアは通常、開発プロセスの比較的遅くまで署名する必要がないため、これらは並列で行うことができます。

  • 署名プロセスの管理。 これは通常、発行元のプログラム管理およびソフトウェア リリース サービスによって処理され、次のものが含まれます。

    • 適切な署名オプションを選択します。
    • 必要な証明書の取得。
    • デジタル署名キーまたはコード署名キーの管理。

    メモ イメージ バイナリ ファイルまたはカタログにデジタル署名するには、ソフトウェア発行元に認証されたコード署名キーが必要です。つまり、証明機関が発行元の ID を十分に確立していることを意味します。

  • 署名するドライバーを実装する。 これは通常、発行元の開発チームによって処理され、次のものが含まれます。

    • ドライバー自体の実装。
    • 内部テストまたはリリース用の署名付きドライバー パッケージの作成。

これらのプロセスは、WDK とプラットフォーム SDK の以前のバージョンの Windows に関して文書化されています。 このペーパーでは、Windows Vista のカーネル モード コード署名に関連するその他のオプションについて説明します。

カーネル モード コード署名オプション

Windows Vista でカーネル モード コード署名 (KMCS) 要件を使用するには、複数のオプションを使用できます。 Windows Vista がカーネル モード コードの開発中にドライバーを読み込むには、ドライバー ファイルの署名は必要ありません。 代わりに、開発者は、いずれかのメカニズムを使用して、開発および自動化されていないテスト システムでカーネルによる読み込み時間チェックを一時的に無効にすることができます。 ただし、ドライバー パッケージのテスト署名は、ドライバーのインストール ポップアップなしでテスト システムへのドライバー パッケージのインストールを自動化するために必要です。 ドライバー管理インフラストラクチャ (DMI) は、インストール中にドライバー パッケージの署名を検証し、署名されていないドライバーのユーザーに警告します。

次の表は、Windows Vista でサポートされているカーネル モジュールにデジタル署名するためのオプションを比較したものです。

カーネル モジュールに署名するためのオプション

署名オプション ロゴ要件を満たすために検証された機能 ID 検証済み 使用目的
Windows ロゴ プログラム はい はい リリース
SPC を使用したカーネル モード コード署名 いいえ はい リリース
WHQL テスト署名プログラム いいえ はい テスト
KMCS テスト署名 いいえ いいえ テスト

Windows ロゴ プログラムは、正しいドライバー機能を検証し、高品質と信頼性を保証します。 Windows ロゴ プログラムに送信されたドライバー パッケージは、Microsoft によってデジタル署名されます。 Windows ロゴ プログラムは、Windows ロゴの要件を満たすハードウェア用の INF ファイルを介してインストールされたデバイス パッケージを受け入れます。 ドライバーの発行元は、Windows ロゴ プログラムのドライバー検証テストを完了した後、ドライバー パッケージを送信します。 ロゴの対象となるドライバーは、Microsoft が署名した .cat ファイルを受け取ります。 Windows ロゴ プログラムの詳細については、このペーパーの最後にある「リソース」セクションを参照してください。

開発者は、ドライバーが正しく読み込まれて動作することを確認するために、WHQL に送信する前にテスト用の SPC でドライバー イメージ ファイルまたはドライバー カタログに署名できます。

SPC を使用したカーネル モード コード署名では、Windows Vista に読み込むカーネル モジュールの発行元を識別できます。 カーネル モジュールの機能または信頼性に関するレベルの認定は提供されません。 Windows ロゴに該当しないドライバー、または Windows ロゴが製品要件の 1 つではない場合、発行元はドライバー パッケージの .cat ファイルを作成し、発行元の SPC で署名できます。

大事な カーネル モードコード署名は WHQL プログラムに代わるものではありません。 Microsoft では、ドライバーの品質を確保するために Windows ロゴ プログラムを使用するよう発行元に推奨しています。 カーネル モード コード署名では、ソフトウェア発行元が WHQL に関連付けられている Windows ロゴ プログラムのテスト要件に合格する必要はありません。

署名された .cat ファイルは、Windows Vista ブート ローダーによって読み込まれるドライバーを含むパッケージを除き、ほとんどのドライバー パッケージが x64 システムに正しくインストールして読み込むのに必要なすべてです。 Windows Vista ブート ローダーによって読み込まれるデバイス ドライバーを含むドライバー パッケージは、次の 2 つの方法で署名する必要があります。

  • 起動時に読み込まれるカーネル モード ドライバー バイナリ ファイルには、SPC で署名されたバイナリに署名が埋め込まれている必要があります。 わかりやすくするために、パッケージ内のすべてのドライバー イメージ ファイルに署名を埋め込む方が簡単な場合があります。
  • INF ファイルを使用してインストールされたドライバー パッケージには、インストール中の署名検証のために、ブート スタート ドライバーを含まないドライバー パッケージと同様に、署名付きカタログ ファイルも必要です。

製造元は、ハードウェア ベンダーが SPC を取得し、製造元がインストールしたシステムにインストールされるブートスタート ドライバーに署名する必要があります。

開発サイクル中のテスト目的では、リリース証明書で署名する代わりに、"テスト" 証明書を使用したコード署名をお勧めします。 テスト署名されたバイナリは、テスト署名証明書を使用できるブート構成オプションが有効になっている場合にのみ、Windows Vista システムによって認識されます。 テスト署名は既定では有効になっていないので、ほとんどの Windows Vista システムではテスト署名は信頼されません。

WHQL テスト署名プログラムは、テスト署名でもサポートされています。 プログラムの参加者は、WHQL テスト署名用のドライバー パッケージを送信できます。 テスト署名付きカタログの署名は、Microsoft テスト ルート機関の下で発行された証明書によって生成されます。 Microsoft Test Root Authority は、Windows Vista ブート構成設定でテスト署名が有効になっている場合に受け入れられます。 WHQL テスト署名プログラムの詳細については、このペーパーの最後にある「リソース」セクションを参照してください。

"テスト" 署名と "リリース" 署名の両方について、開発チームは、このペーパーで後述する「コード署名キーを保護するためのガイダンス」で説明されているように、キー管理のベスト プラクティスに従う必要があります。

テスト署名については、このドキュメントで後述する「テスト署名の使用方法」セクションで詳しく説明します。

カーネル モードコード署名プロセス

カーネル モードのイメージ ファイルまたはカタログにデジタル署名すると、署名されたファイルの整合性が確立されます。 コード署名操作が実行された後は、ソフトウェア モジュールを変更しないでください。 コード署名後にイメージ ファイルを変更すると、インストール時および読み込み時署名の検証エラーが発生します。

複数のファイルを含むドライバー パッケージは、カタログを使用して署名できます。 ドライバー パッケージには、ドライバー パッケージのインストール時に発行元を識別し、カーネルに読み込まれるときにドライバー イメージを確認するために使用される署名付きカタログ (.cat) ファイルが必要です。 カタログ ファイルには、発行元を識別するデジタル証明書と、パッケージ内のファイルが変更されていないことをシステムが確認できるようにするパッケージの内容のハッシュが含まれています。

前述のように、ブート 開始ドライバーには、ドライバー イメージ ファイルに署名が埋め込まれている必要があります。 ブート スタート ドライバー イメージ ファイルに埋め込まれた署名は、オペレーティング システム ローダーがドライバーの署名を検証するときに appropriate.cat ファイルを見つける必要がなくなるため、オペレーティング システムのブート パフォーマンスを最適化します。

ドライバーの開発プロセス中にビルドごとにドライバー署名が必要なわけではありません。 開発者は、このペーパーで後述する「開発時に署名の適用を無効にする方法」の説明に従って、ドライバーの署名の適用を無効にすることができます。

次のセクションでは、証明書を取得および管理する方法について説明します。 ドライバー パッケージの署名のしくみについては、このペーパーで後述します。

ソフトウェア発行証明書 (SPC) を取得する方法

次の手順に従って、必須のカーネル モード コード署名ポリシーを満たすカーネル モード ソフトウェアに署名するための SPC を取得します。

  1. カーネル モード コードに署名するためにデジタル証明書を発行する商用 CA から SPC を取得します。 カーネル モードのコード署名に使用できるソフトウェア発行証明書 (またはコード署名証明書) を提供する CA の一覧は、 Windows Vista カーネル モード コード署名用の Microsoft クロス証明書 Web ページで入手できます。
  2. SPC を発行したルート証明機関 の Windows Vista カーネル モード コード署名 Web ページの Microsoft クロス証明書 から、対応するクロス証明書をダウンロードします。 クロス証明書は、Windows Vista カーネルに知られている信頼されたルート機関まで署名を検証できるように、カーネル モード コードのデジタル署名で使用されます。

商用 CA にソフトウェア発行証明書を要求する場合は、CA の Web サイトの指示に従って、秘密キーを使用してコードに署名するコンピューターにコード署名証明書を取得してインストールする方法について説明します。

コード署名キーの保護に関するガイダンス

コード署名プロセスの中心となる暗号化キーは、会社にとって最も価値のある資産と同じ注意を払って適切に保護され、扱われる必要があります。 これらのキーは、会社の ID を表します。 これらのキーで署名されたコードは、会社にトレースできる有効なデジタル署名が含まれているかのように Windows に表示されます。 キーが盗まれた場合は、悪意のあるコードに不正に署名するために使用され、正当な発行元から来ているように見えるトロイの木馬やウイルスを含むコードが配信される可能性があります。

秘密キーの安全な保護の詳細については、「 コード署名のベスト プラクティス」を参照してください。

カーネル モードのコード署名でクロス証明書を使用する

カーネル モードのコード署名では、コード署名プロセスの一部としてクロス証明書が使用されます。 クロス証明書は、ある証明機関 (CA) によって発行された X.509 証明書であり、別の証明機関のルート証明書の公開キーに署名します。 Windows Vista オペレーティング システム ローダーとカーネルは、ドライバー署名の検証でクロス証明書を認識します。 クロス証明書を使用すると、カーネルは 1 つの信頼された Microsoft ルート証明機関を持つことができますが、ソフトウェア発行元証明書を発行する複数の商用 CA に信頼チェーンを柔軟に拡張することもできます。

クロス証明書を使用すると、開発者と発行元はソフトウェア発行元証明書を使用してカーネル モード ソフトウェアに署名できます。 カーネル モード コード署名を使用する開発者は、デジタル署名操作が実行されるシステムに正しいクロス証明書 (.cer) ファイルをダウンロードします。 発行元は、ソフトウェアまたはドライバー パッケージを使用してクロス証明書ファイルを配布する必要はありません。 クロス証明書は、ドライバー イメージ ファイルまたはドライバー パッケージ カタログのデジタル署名に含まれます。 ドライバー パッケージをインストールするユーザーは、Windows Vista の構成手順を実行して、クロス証明書を含むデジタル署名を確認する必要はありません。

大事な Windows Vista Beta2 WDK の SignTool は、デジタル署名へのクロス証明書の追加を現在サポートしている唯一のバージョンの SignTool です。 Windows Server 2003 Platform SDK または DDK の以前のバージョンの SignTool では、クロス証明書の追加はサポートされていません。

カーネル モードのコード署名に使用する複数の CA のクロス証明書は、Microsoft WHDC Web サイトからダウンロードできます。 詳細については、このペーパーの最後にある「 Microsoft Cross-certificates for Windows Vista Kernel Mode Code Signing in the Resources」を参照してください。

デジタル署名にクロス証明書を追加する方法の詳細については、「.cat ファイルに署名する方法」および「ドライバー イメージ ファイルへの埋め込み署名の追加」のセクションで説明されています。

テスト証明書の生成

テスト証明書は、organizationの外部での配布またはリリース用ではないカーネル モード ソフトウェア モジュールのテスト署名に、SPC の代わりに使用されます。 テスト署名は、内部テスト目的で使用されるカーネル モード バイナリまたはドライバー パッケージ カタログにデジタル署名を適用することです。 テスト署名については、このドキュメントで後述する「テスト署名の使用方法」セクションで詳しく説明します。 カーネル モードのコード署名にテスト証明書を使用する場合、クロス証明書は必要ありません。

テスト証明書は、エンタープライズ CA または Makecert ユーティリティを使用して生成できます。 organization内でテスト署名証明書を発行するためにエンタープライズ CA を使用する方法の詳細については、「コード署名のベスト プラクティス」を参照してください。

次の例では、Makecert は既定のテスト ルートによって発行されたテスト証明書を生成し、秘密キーをキー コンテナーに格納し、証明書を証明書ストアと証明書ファイルに出力します。

Makecert –r –pe –ss SubjectCertStoreName –n "CN= CertName" OutputFile.cer

この例の Makecert の引数では、次の操作を行います。

  • -r
    自己署名証明書を作成します。つまり、証明書はルート証明書です。
  • -Pe
    証明書に関連付けられている秘密キーをエクスポート可能にします。
  • -ssSubjectCertStoreName
    ルート証明書を含む証明書ストアの名前を指定します。
  • **-n "CN=**CertName"
    証明書の名前を指定します。 証明書名が指定されていない場合、証明書の既定の名前は "Joe's Software Emporium" です。
  • OutputFile.cer
    ルート証明書が保存されるファイルの名前。

makecert を使用したコマンド スクリプトの例は、WDK で使用できます。 スクリプト ファイル名は、"bin\selfsign" ディレクトリの下にあるselfsign_example.txtです。 ドライバー パッケージをインストールする前に、テスト証明書をターゲット テスト マシンの証明書ストアに追加する必要があります。

次の例は、テスト証明書をターゲット テスト マシンの信頼されたルート ストアと信頼された発行元ストアに追加する方法を示しています。

certmgr.exe -add OutputFile.cer -s -r localMachine root 
certmgr.exe -add OutputFile.cer -s -r localMachine trustedpublisher

この例の Certmgr の引数では、次の操作を行います。

  • -追加
    証明書ファイル内の証明書を証明書ストアに追加します。
  • -s
    証明書ストアがシステム ストアであることを示します。
  • -r
    システム ストアのレジストリの場所がキーの下HKEY_LOCAL_MACHINE示します
  • ルート または trustedpublisher
    システム証明書ストアの名前を示します

Certmgr と Makecert の詳細については、このペーパーの最後にある「リソース」を参照してください。

署名された .cat ファイルの作成

カタログ ファイル MakeCat と SignTool の生成と署名に使用されるツールは、Windows Vista WDK で提供されています。

Signtool.exeとMakeCat.exeは、WDK の "bin\selfsign" ディレクトリにあります。

.cat ファイルを作成する方法

デジタル署名された .cat ファイルには、カーネルに読み込まれるときに検証されるすべてのカーネル モード モジュールのハッシュが含まれています。 カタログ ファイルには、ユーザー モード アプリケーション プログラム (.exes) やアプリケーション拡張機能 (.dlls) など、ソフトウェア パッケージ内の他のファイルのハッシュを含めることもできます。 Microsoft では、.cat ファイルにソフトウェア パッケージ内のすべてのファイルのハッシュが含まれていることをお勧めします。

.cat ファイルには、指定したファイル セットに対応するファイル ハッシュの一覧が含まれています。 ファイル ハッシュは、ターゲット ファイルに対する SHA1 ハッシュの積です。 フラット ファイル ハッシュは、ポータブル実行可能ファイル (PE) ファイル形式を使用するドライバーなどのファイルには使用されません。 代わりに、PE ヘッダー、実行可能データ、認証済み属性などの関連するセクションが選択的にハッシュされます。

ドライバーがメモリに読み込まれると、Windows Vista カーネルは、ドライバー バイナリ イメージ ファイルの関連するセクションに対して SHA1 ハッシュを実行します。 Windows では、結果のハッシュ値を関連付けられている .cat ファイル内のバイナリ ハッシュの一覧と比較することで、ファイルが改ざんされていないことを確認します。

プラグ アンド プレイを使用して INF ファイルを使用してドライバーをインストールする場合は、WDK の署名ツールを使用して、次に説明するようにカタログを作成します。 それ以外の場合は、後の「カタログを手動で作成する方法」の説明に従って、カタログを手動で作成します。

署名可能性を使用してカタログを作成する方法

署名可能性は、INF ファイルを検証し、INF ファイルに基づいてカタログ ファイルを作成するために使用されるツールです。 WDK に含まれており、WDK ビルド環境から実行できます。 署名には、ドライバー パッケージの有効な INF ファイルが必要です。 INF ファイルの作成については、WDK ドキュメントを参照してください。 署名ツールを使用してカタログを作成するには、次の手順に従います。

署名機能を使用してカタログを作成する

  1. ドライバー パッケージ内のすべてのファイルを含むドライバー パッケージ ディレクトリを作成します。
  2. ドライバー パッケージ ディレクトリに INF ファイルを作成し、Windows Vista 用に編集します。 具体的には、ビルド日を 2006 年 4 月 1 日以上に変更し、バージョンを 6 に変更します。 例: DriverVer=04/01/2006、6.0.1.0
  3. [署名可能性] を実行して、INF ファイルに基づいて有効な .cat ファイルを作成します。
    • Signability.exeを実行し、GUI を使用してカタログ ファイルを作成します。

    • コマンド ラインから Signability を実行します。 package_directoryは、パッケージ ディレクトリへの完全修飾パスである必要があります。

      Signability.exe /auto /cat /driver:package_directory /os:512
      

次の使用例は、Signability でサポートされているいくつかの引数を使用して、 driver_package ディレクトリに .cat ファイルを作成します。

  • /自動
    ユーザーの操作を必要とせずに実行するように署名ツールを構成します。
  • /猫
    ドライバー パッケージ INF ファイルによって名前が指定されたカタログ ファイルを生成するように署名ツールを構成します。
  • /driver:DriverPath
    ドライバー パッケージ ファイルを含むディレクトリへのパスを指定します。
  • /os:nnn
    署名ツールを構成して、ドライバー パッケージ INF ファイルが、フラグ値 nnn で指定された Windows バージョンの要件に準拠していることを確認します。 512 は、Windows Vista、64 ビット エディションの値です。

カタログを手動で作成する方法

.cat ファイルを手動で作成するには、まずテキスト エディターを使用してカタログ定義ファイル (.cdf) を作成します。 .cdf ファイルには、カタログ化されるファイルとその属性の一覧が含まれています。

次の例は、 Good.cdf という名前の一般的な .cdf ファイルの内容を示しています。 カタログ化するパッケージには、File1 と File2 の 2 つのファイルが含まれています。 結果の .cat ファイルには 、Good.cat という名前が付けられます。

[CatalogHeader]
Name=Good.cat
PublicVersion=0x0000001
EncodingType=0x00010001
CATATTR1=0x10010001:OSAttr:2:6.0
[CatalogFiles]
<hash>File1=File1
<hash>File2=File2

.cat ファイルは、プラットフォーム SDK と WDK に含まれるコマンド ライン ツール MakeCat を使用して作成されます。 MakeCat ツール:

  • 一覧表示されている各ファイルの属性の一覧を確認します。
  • 一覧表示されている属性を .cat ファイルに追加します。
  • 一覧表示されている各ファイルをハッシュします。
  • 各ファイルのハッシュを .cat ファイルに格納します。

.cat ファイルを作成するには

  1. テキスト エディターを使用して、カタログ化するファイルの一覧とその属性を含む .cdf ファイルを作成します。
  2. .cdf ファイルに対して MakeCat を実行します。

メモ MakeCat では、.cdf ファイルは変更されません。

次の例は、Good.cdf から .cat ファイルを作成する方法を示しています。 -v フラグは、MakeCat の詳細バージョンを指定します。 ハッシュされたファイルと新しく生成された Good.cat ファイルは、File1 および File2 と同じフォルダーに配置されます。

MakeCat -v Good.cdf

これで、.cat ファイルに署名する準備ができました。

MakeCat と .cdf ファイルの形式の詳細については、このペーパーの最後にあるリソースに記載されている MakeCat ドキュメントを参照してください。

.cat ファイルに署名する方法

MakeCat によって生成される .cat ファイルには、ユーザーのシステムにカーネル モード モジュールをインストールするために必要なすべてのファイル ハッシュが含まれています。 ただし、ファイルもデジタル署名する必要があります。

.cat ファイルは、コマンド ライン ツール SignTool で署名されます。 カーネル モード イメージ ファイルの検証に使用されるカタログのデジタル署名には、クロス証明書が含まれている必要があります。 クロス証明書は、SignTool に新しいコマンド オプションを使用して追加されます。

大事な デジタル署名にクロス証明書を追加するには、Windows Vista Beta2 WDK の SignTool のバージョンを使用する必要があります。

次の例は、Signtool を使用して、Windows 証明書ストアにインポートされた SPC と対応する秘密キーを使用して .cat ファイルに署名する方法を示しています。 HSM で Signtool を使用する方法については、このペーパーの最後にあるリソースに記載されている SignTool のドキュメントを参照してください。

SignTool sign /v /ac CrossCertificateFile /s SPCCertificateStore /n SPCSubjectName /t http://timestamp.verisign.com/scripts/timestamp.dll Good.cat

この例では、SignTool でサポートされるいくつかの引数を使用します。

  • [署名]
    CatFileName.cat という名前の .cat ファイルに署名するようにツールを構成します
  • /v
    正常に実行され、警告メッセージ *.* の詳細オプションを指定します。
  • /Ac
    CrossCertificateFile ファイルからデジタル署名にクロス証明書を追加します
  • /s
    SPCCertificateStore という名前の証明書ストアを指定します。
  • /n
    サブジェクト名 SPCSubjectName を持つ証明書を指定します。
  • /tURL
    デジタル署名に、URL で示されるタイムスタンプ機関 (TSA) によってタイムスタンプを設定することを指定します。

大事な カタログまたはドライバー署名ミストには、署名者のコード署名秘密キーが侵害された場合に備えて、キー失効に必要な情報を提供するタイムスタンプが含まれます。

デバイスのインストール中に、署名に使用された SPC の有効期限が切れ、署名にタイムスタンプが設定されていない場合、.cat ファイルはインストールされず、Windows ではドライバーの読み込みは許可されません。 ただし、信頼されたタイム スタンプ機関によって署名のタイムスタンプが設定されている場合は、.cat ファイルがインストールされ、Windows ではドライバーを読み込むことができます。

自己解凍ダウンロード ファイルの署名

製品サポート Web サイトで配布するために公開されるソフトウェアは、通常、自己解凍アーカイブ ファイルにパッケージ化されます。 自己解凍実行可能ファイルは Web ブラウザーを使用してダウンロードされ、ユーザーがコンピューターへのインストールを開始する前に抽出された内容がダウンロードされます。 ドライバー パッケージ .cat ファイルに署名した SPC を使用して、自己解凍.exe ファイルにもデジタル署名します。

自己解凍.exe ファイルにデジタル署名すると、アーカイブ ファイルの発行元が識別され、インターネット経由でダウンロードされる自己解凍.exe ファイルの整合性が確保されます。 自己解凍.exeファイルをダウンロードするユーザーは、通常、自己解凍ファイルをダウンロードして実行することを選択すると、信頼ダイアログ (セキュリティ警告) を受け取ります。

Windows Vista では、ユーザーが [セキュリティ警告] ダイアログの詳細を確認し、[発行元名>から<ソフトウェアを常にインストールする] を選択すると、このオプションを使用すると、ドライバー パッケージのインストール時の後の確認が簡略化されます。 ドライバー パッケージがインストールされると、ドライバーのインストールが開始される前に、署名されたドライバー パッケージの発行元を信頼するかどうかをユーザーに求められます。 ユーザーが自己解凍.exeファイルをダウンロードしたときに、ドライバーの発行元からソフトウェアを常にインストールするオプションを選択した場合、ドライバーのインストール中に信頼ダイアログ プロンプトは表示されません。

署名された .cat ファイルをインストールする方法

プラグ アンド プレイを使用してインストールされるドライバーの場合、インストール プロセスの変更は想定されません。 埋め込み署名付きドライバーをインストールする場合、標準の INF およびセットアップ メカニズムを超える特別な処理は必要ありません。 Administrators グループのメンバーであるユーザーのみがドライバー パッケージのインストールを許可されることに注意してください。

プラグ アンド プレイ経由でインストールされないドライバーは、システム カタログのルート フォルダーに .cat ファイルをインストールする必要があります。 カタログ ルート フォルダー内のカタログのインストールは、既存の Win32 カタログ API 呼び出し (具体的には CryptCATAdminAddCatalog) を使用して管理できます。

ドライバー イメージ ファイルへの埋め込み署名の追加

起動時のドライバー検証のパフォーマンスを最適化するには、ブート開始ドライバー バイナリに、パッケージの署名付き .cat ファイルに加えて、SPC を使用した署名が埋め込まれている必要があります。 埋め込み署名は、オペレーティング システム ローダーがドライバーで .cat ファイルを見つける必要がないため、オペレーティング システムの起動中に大幅な時間を節約します。 一般的な Windows Vista システムでは、カタログ ルート ストアに 100 を超える異なるカタログ ファイルが含まれる場合があります。 特定のドライバーのイメージ ハッシュを確認するために正しいカタログ ファイルを見つけると、複数のカタログで正しいファイルを検索する多くのシステム オーバーヘッドが発生する可能性があります。

ブート開始ドライバーは、SERVICE_BOOT_START (0) のサービス StartType 値に基づいて識別されます。

埋め込み署名は、.cat ファイルの署名や検証に干渉しません。 カタログと埋め込み署名に含まれるハッシュでは、PE ファイル形式の署名部分が選択的に除外されることに注意してください

Signtool.exeを使用して、SPC と Windows 証明書ストアにインポートされた対応する秘密キーを使用してブート開始ドライバー バイナリに署名を埋め込むには、次のコマンドを使用します。

SignTool sign /v /ac CrossCertificateFile /s SPCCertificateStore /n SPCSubjectName /t http://timestamp.verisign.com/scripts/timestamp.dll winloaddriver.sys

この例では、SignTool でサポートされているいくつかの引数を使用します。

  • [署名]
    sign コマンドは、winloaddriver.sysという名前のドライバーに署名するようにツールを構成します
  • /v
    正常に実行され、警告メッセージ*.* の詳細オプションを指定します。
  • /Ac
    CrossCertificateFile ファイルからデジタル署名にクロス証明書を追加します
  • /sオプション
    SPCCertificateStore という名前の証明書ストアを指定します
  • /n
    サブジェクト名 SPCSubjectName を持つ証明書を指定します。
  • /tURL
    デジタル署名を、URL で示される TSA によってタイムスタンプ付きにする必要があることを指定 します。

大事な: 署名者キーが侵害された場合に備え、キー失効に必要な情報が提供されるため、カタログまたはドライバーにタイムスタンプを付ける必要があります。

埋め込み署名を確認する方法

次の手順では、Windows エクスプローラーを使用して埋め込み署名を確認する方法を示します。

埋め込み署名を確認するには

  1. Windows Vista の実行中に、ドライバー .sys ファイルを右クリックし、コンテキスト メニューの [ プロパティ ] をクリックします。
  2. [ デジタル署名 ] タブ (存在する場合) をクリックします。
    • このタブが存在しない場合、ファイルには署名が埋め込まれていません。
  3. 署名者を選択し、[ 詳細 ] をクリックして [ 署名の詳細 ] ダイアログ ボックスを開きます。
  4. [ 証明書の表示 ] をクリックして、証明書のプロパティ ページを開きます。
    • 警告ダイアログ ボックスがないことを確認します。
    • 証明書のサブジェクト名が Publisher であることを確認し、認識された証明機関に登録します
  5. [ 認定パス ] タブをクリックします。
    • 一番上の証明書のサブジェクト名が Microsoft Code Verification Root であることを確認します

カーネル モードコード署名ポリシーのsigntool.exeを使用して埋め込み署名を確認するには

  • Signtool.exeを使用すると、次のコマンドを使用して .cat ファイルの署名を確認できます。
Signtool verify /kp /c tstamd64.cat toaster.sys

ファイル toaster.sysのイメージ ハッシュがカタログ ファイル内にあることを確認します。 このツールは文字列 "Success" を返します。

開発中に署名の適用を無効にする方法

開発の初期段階では、開発者は Windows での適用を無効にして、ドライバーの署名が不要になるようにすることができます。 開発者は、Windows Vista が署名されていないドライバーを読み込むため、次のオプションを使用して、カーネル モードのコード署名の適用を一時的に無効にすることができます。

  • カーネル デバッガーのアタッチ。 アクティブなカーネル デバッガーをターゲット コンピューターにアタッチすると、Windows Vista でのカーネル モード署名の適用が無効になり、ドライバーを読み込むことができます。

  • F8 オプションの使用。 Windows Vista で導入された F8 高度なブート オプション ("ドライバー署名の適用を無効にする" ) は、現在のブート セッションに対してのみカーネル署名の適用を無効にするために使用できます。 この設定は、ブート セッション間では保持されません。

  • ブート構成の設定。 ブート構成設定は、Windows Vista Beta2 リリースで使用できます。このリリースでは、ブート セッション間で保持されるカーネル モード署名の適用が無効になります。

    Windows Vista には、Windows Vista Beta2 で署名チェックを無効にするオプションを設定するために使用できるコマンド ライン ツール BCDedit が含まれています。 BCDedit を使用するには、ユーザーがシステムの Administrators グループのメンバーであり、管理者特権のコマンド プロンプトからコマンドを実行する必要があります。 管理者特権でのコマンド プロンプトを起動するには、cmd.exeへのデスクトップ ショートカットを作成し、右クリックして [管理者として実行] を使用します。

    コマンド プロンプトで BDCedit を実行する例を次に示します。

    // Disable enforcement – no signing checks
    Bcdedit.exe –set nointegritychecks ON 
    
    // Enable enforcement – signing checks apply
    Bcdedit.exe –set nointegritychecks OFF 
    
    // Disabling integrity check on an alternate OS 
    // specified by a GUID for the system ID
    Bcdedit.exe –set {4518fd64-05f1-11da-b13e-00306e386aee} nointegritychecks ON 
    

メモ 整合性チェックを無効にする Bcdedit オプションは、Windows Vista Beta2 リリースで署名されていないドライバーを読み込む場合にのみ使用できます。 詳細については、MSDN Web サイトの BCD エディターに関する FAQ を参照してください。

テスト署名の使用方法

テスト署名は、公開の準備ができていないプレリリース ソフトウェアのカーネル モード コード署名を組み込む開発組織に追加のオプションを提供します。 テスト署名を使用すると、"テスト" コード署名証明書を使用して、Windows Vista ブート構成設定でテスト署名が許可されている場合に Windows Vista に読み込まれるドライバーに署名できます。

テスト署名は、次のシナリオで使用するのが適切な場合があります。

  • 開発チームは、カーネル デバッガーをアタッチするのが実用的ではないテスト システムで、ドライバーのプレリリース バージョンをテストする必要があります。
  • カーネル モード ソフトウェアの自動テストにより、F8 高度なブート オプションを使用して、すべてのマシンのブート サイクルでドライバー署名の適用を一時的に無効にすることは現実的ではありません。

テスト署名を使用すると、Windows Vista が署名済みドライバーを検証して読み込むことができるように、開発者はカーネル モード バイナリのプレリリース バージョンに署名できます。 テスト署名には、通常の運用環境またはリリース署名とは次の違いがあります。

  • テスト署名に使用される証明書は、商用 CA によって発行された SPC を使用する代わりに、Makecert.exe コード署名ツールを使用して生成することも、エンタープライズ CA によって発行することもできます。
  • テスト署名を有効にする Windows Vista ブート構成オプションは、テスト署名済みドライバーを読み込む Windows Vista システムで有効にする必要があります。

開発組織は、エンタープライズ PKI をセットアップし、テスト署名に使用する独自のテスト コード署名証明書を発行できます。 Windows Vista でテスト署名が有効になると、ドライバー バイナリでのデジタル署名の検証は、 CA または発行元の機関によって発行された証明書を受け入れます。 テスト署名はドライバー イメージが署名されていることを確認しますが、カーネル モードで実行される証明書パスの検証では、発行者を信頼されたルート機関として構成する必要はありません。 これにより、組織は、organization内のコード署名に発行された資格情報に基づいて、テスト バイナリで個々の署名を使用できます。 カーネル モードのコード署名内でのテスト署名には、この形式の展開をお勧めします。

テスト署名には、makecert.exe ツールによって生成された証明書を使用することもできます。 ただし、makecert によって生成された証明書は、多くの場合、有用な ID 情報を提供せず、どの開発者がプレリリース バイナリのテスト署名済みバージョンを作成したかを追跡する方法はありません。

メモ Windows Vista Beta2 リリースでは、makecert ツールによって生成されたテスト証明書のみが受け入れられます。 テスト署名のためにエンタープライズ CA によって発行されたテスト コード署名証明書は、Windows Vista Beta2 では使用できません。

このドキュメントの Signtool の手順は、SPC を使用しているか、makecert ユーティリティによって生成された証明書を使用しているか、エンタープライズ CA によって発行された証明書を使用しているかに関係なく、同じように動作します。 通常、唯一の違いは、証明書の発行者とサブジェクト名です。

WHQL テスト署名プログラムは、テスト署名でもサポートされています。 プログラムの参加者は、WHQL テスト署名用のドライバー パッケージを送信できます。 テスト署名付きカタログの署名は、Microsoft テスト ルート機関の下で発行された証明書によって生成されます。 Microsoft Test Root Authority は、ベータ プログラムの一部として Windows Vista Beta2 で既定で受け入れられます。 Windows Vista の最終リリースでは、Windows Vista ブート構成設定でテスト署名が有効になると、Microsoft Test Root Authority が受け入れられます。

テスト署名付きカーネル モード バイナリは、既定では Windows Vista システムでは読み込まれません。 カーネル モードのコード署名ポリシーは、テスト署名証明書を受け入れず、信頼しないため、テスト署名バイナリのデジタル署名は、既定では Windows Vista システムでは無効です。

テスト署名の有効化

Bcdedit コマンドライン ツールを使用して、テスト署名を有効にします。 BCDedit を使用するには、ユーザーがシステムの Administrators グループのメンバーであり、管理者特権のコマンド プロンプトからコマンドを実行する必要があります。 管理者特権でのコマンド プロンプトを起動するには、cmd.exeへのデスクトップ ショートカットを作成し、右クリックして [管理者として実行] を使用します。

コマンド プロンプトで BDCedit を実行する例を次に示します。

// Accept test signed kernel mode signatures
Bcdedit.exe –set TESTSIGNING ON 

// Do not accept test signed kernel mode signatures
Bcdedit.exe –set TESTSIGNING OFF 

ブート構成オプションは TESTSIGNING 、Windows Vista がテスト署名付きカーネル モード バイナリを受け入れるかどうかを決定します。 オプションは既定では定義されていません。つまり、テスト署名付きカーネル モード ドライバーのデジタル署名は検証されず、読み込まれません。 Windows Vista がテスト署名付きカーネル モード バイナリを受け入れると、保護されている一部の Premium コンテンツにシステムでアクセスできない場合があります。

トラブルシューティング

カーネル モードのコード署名の検証に関連する潜在的な問題を特定してトラブルシューティングするために実行できる具体的な手順があります。 このセクションでは、ドライバー署名の適用に関する問題のトラブルシューティングについて説明します。 ドライバーの署名の問題をトラブルシューティングするためのメイン ツールを次に示します。

  • ドライバーの読み込みエラーの検出
  • コード整合性診断システム ログ イベントの有効化。

Windows Vista WDK に含まれるトースター アプリケーションを例として使用します。 トースター アプリケーションは、WDK の "src\general\toaster" ディレクトリにあります。

ドライバーの読み込みエラーの検出

トースター アプリケーションは、この例では署名されていないデバイス ドライバー (toaster.sys) をインストールします。 署名されていないドライバーの問題の症状は、トースター デバイスの起動に失敗することです。 デバイス マネージャーを使用すると、次の画面イメージに示すように、トースター デバイスの状態をチェックし、ドライバーの状態を表示できます。

Bb530195.digitalsigskernmodules01(en-us,MSDN.10).gif

図 1. 署名されていないドライバー エラー

デバイス ドライバーが署名されておらず、カーネル モード署名の適用によってドライバーがカーネルに読み込まれなかったため、デバイスの起動に失敗しました。 問題の原因を明確に特定するために、以下で説明するように署名適用診断を有効にするようにシステムを設定します。

コード整合性診断システム ログ イベントの有効化

カーネル モードのコード署名の適用は、コードの整合性と呼ばれる Windows Vista コンポーネントによって実装されます。 コードの整合性は、カーネル モジュールの署名が正しく検証されない場合に、診断イベントとシステム監査ログ イベントを生成します。

  • コードの整合性 操作イベントは常に有効になります。 Operational イベントは、カーネル モードのバイナリ ファイルを読み込むときにイメージ検証チェック失敗した場合の警告イベントです。
  • コードの整合性 システム監査イベントは、システム監査ポリシーが有効になっているときに生成されます。 システム監査ポリシーは、既定では有効になっていません。
  • コードの整合性詳細イベントは、カーネル モード バイナリ ファイルの読み込み時に成功したすべてのイメージ検証チェックを示す分析およびデバッグ情報イベントです。 詳細イベントは既定では有効になっていません。

コードの整合性イベントは、コンピューター管理 MMC スナップインの一部であるイベント ビューアーで表示できます。 ( [スタート ] ボタンから、[ コンピューター] を右クリックし、[ 管理] を選択します)。

コード整合性イベント ストリームは、次の階層にあります。

イベント ビューアー ->アプリケーションとサービス ログ -> Microsoft -> Windows -> CodeIntegrity

Bb530195.digitalsigskernmodules02(en-us,MSDN.10).gif

図 2. コード整合性イベント

コードの整合性操作ログには、カーネル モード ドライバーが読み込まれるときにイメージ検証チェックに失敗したときにカーネルによって生成されるイベントが表示されます。 イメージ検証エラーは、次のようなさまざまな理由が原因である可能性があります。

  • ドライバーは署名されていませんでしたが、管理者によってシステムにインストールされ、コードの整合性によってドライバーの読み込みが許可されていません。
  • ドライバーは署名されましたが、ドライバー イメージ ファイルが変更または改ざんされ、変更によってドライバー署名が無効になりました。
  • システム ディスク デバイスでは、不良ディスク セクターからデバイスのイメージ ファイルを読み取るときに、デバイス エラーが発生する可能性があります。

署名されていない、または変更されたドライバー イメージ検証エラーの操作ログ エントリは、次の例のようになります。

Bb530195.digitalsigskernmodules03(en-us,MSDN.10).gif

図 3: 操作ログ エントリ

イベントは、トースター ドライバー (toaster.sys) が署名されていないために読み込めなかったことを示します (または、読み込もうとしているtoaster.sysイメージが、発行元によってデジタル署名されたものと同じではありません)。
すべてのコード整合性イベント ログ メッセージは、以下の「コード整合性イベント ログ メッセージ」セクションに一覧表示されます。

システム監査ログ イベント

コードの整合性では、カーネル モード ドライバーのイメージ検証が失敗したときに、操作の警告イベントに対応するシステム監査ログ イベントが生成されます。 システム ログ イベントは、Windows ログの [システム ログ] ビューの下のイベント ビューアーで表示できます。

システム監査イベントは、すべての Windows Vista システムで有効にできない場合があります。 ローカル セキュリティ設定 MMC スナップインを使用して、[ローカル ポリシー] の [監査ポリシー] 設定で [システム イベントの監査] を確認または有効にします。

詳細ログの情報イベント

すべてのカーネル モード イメージ検証チェックの追加のコード整合性情報イベントは、Verbose イベント ビューを使用して使用できます。 これらのイベントは、システムに読み込まれたすべてのドライバーの正常なイメージ検証を示します。

コードの整合性の詳細イベント ビューを有効にする手順は次のとおりです。

  1. [操作] ビューを左クリックして、現在のコード整合性イベント (存在する場合) を表示します。
  2. [コードの整合性] ノードを左クリックしてフォーカスを設定します。
  3. [ コードの整合性 ] ノードを右クリックして、コンテキスト メニューを取得します。
  4. [表示] を選びます。
  5. [ 分析ログとデバッグ ログの表示] を選択します。
  6. これにより、2 つの追加ノードである Operational ノードと Verbose ノードを含むサブツリーが作成されます。
  7. [詳細] ノードを右クリックし、[ プロパティ] を選択します。
  8. [全般] シートを選択し、[ログ記録を有効にする] オプションを選択します。 これにより、詳細ログ モードが有効になります。
  9. システムを再起動して、すべてのカーネル モード バイナリを再読み込みします。
  10. 再起動後、 コンピューター管理 スナップインを開き、 コードの整合性の詳細イベントログを表示します。

toaster.sysが次のように正しく署名されているかどうかをチェックできます。

この特定のケースでは、toaster.sysは PnP ドライバーであり、カタログ ファイル ("\src\general\toaster\toastpkg\toastcd" で tstamd64.cat) で名前が付けられます。 SignTool ユーティリティを使用して、次のコマンドを使用して、toaster.sysが正しくカタログ署名されているかどうかを確認します。

Signtool verify /kp /c tstamd64.cat toaster.sys

ドライバー検証のデバッグ オプション

場合によっては、デバッガーがアタッチされている場合でも、必須のカーネル モード コード署名ポリシーを適用することが必要になる場合があります。 たとえば、ドライバー スタックに、読み込みに失敗する署名されていないドライバー (フィルター ドライバーなど) があり、スタック全体が無効になる場合があります。 デバッガーをアタッチすると、署名されていないドライバーを読み込めるので、デバッガーがアタッチされるとすぐに問題が消える可能性があります。 この種の問題のデバッグは困難な場合があります。 この場合のデバッグを容易にするために、コードの整合性では、デバッガーがアタッチされている場合でもカーネル モード署名の適用を適用するように設定できるレジストリ キーがサポートされています。

デバッガーの下でコードの整合性の動作を制御する 2 つのフラグがレジストリに定義されています。 フラグは既定では定義されていません。

次のようにレジストリ値を作成します。

Key:   HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CI
Value:   DebugFlags      REG_DWORD   

指定できる値

  • 00000001
    デバッガーへのデバッグブレークが行われ、署名されていないドライバーは を使用 gして読み込むことができます。
  • 00000010
    CI はデバッガーの存在を無視し、署名されていないドライバーの読み込みはブロックされます。

その他の値を指定すると、署名されていないドライバーが読み込まれます。これが既定のポリシーです。

コードの整合性のイベント ログ メッセージ

コードの整合性操作ログに記録される警告イベントを次に示します。

  • "コードの整合性は、ファイル ハッシュがシステムで見つからなかったため、ファイル <ファイル名> のイメージの整合性を確認できません。"
  • "コードの整合性で署名されていないドライバーが検出されました。
  • "このイベントは、ソフトウェア品質監視 (SQM) に関連しています。

コードの整合性の詳細ログに記録される情報イベントを次に示します。

  • "コードの整合性により、カタログ <カタログ名>内のファイル< ファイル名>のページごとのイメージ ハッシュのセットが見つかりました。"
  • "コードの整合性により、イメージ埋め込み証明書内のファイル <ファイル名> のページごとのイメージ ハッシュのセットが見つかりました。"
  • "コードの整合性で、カタログ <カタログ>名内のファイル ファイル名>のファイル < ハッシュが見つかりました。"
  • "コードの整合性で、イメージの埋め込み証明書内のファイル ファイル名>のファイル < ハッシュが見つかりました。"
  • "コードの整合性により、署名されていないカーネル モジュール <ファイル名> がシステムに読み込まれると判断されました。 発行元に問い合わせて、カーネル モジュールの署名付きバージョンが使用可能かどうかを確認してください。"
  • "コードの整合性は、ページごとのイメージ ハッシュのセットがシステムで見つからなかったため、ファイル <ファイル名> のイメージの整合性を確認できません。"
  • "コードの整合性は、ページごとのイメージ ハッシュのセットがシステムで見つからなかったため、ファイル <ファイル名> のイメージの整合性を確認できません。 カーネル モード デバッガーがアタッチされているため、イメージの読み込みが許可されます。
  • "コードの整合性は、ファイル ハッシュがシステムで見つからなかったため、ファイル <ファイル名> のイメージの整合性を確認できません。 カーネル モード デバッガーがアタッチされているため、イメージの読み込みが許可されます。
  • "コードの整合性でファイル名>カタログを<読み込めませんでした。
  • "コードの整合性によってファイル名>カタログが正常に<読み込まれました。"

リソース