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 を取得します。
- カーネル モード コードに署名するためにデジタル証明書を発行する商用 CA から SPC を取得します。 カーネル モードのコード署名に使用できるソフトウェア発行証明書 (またはコード署名証明書) を提供する CA の一覧は、Windows Vista カーネル モード コード署名用の Microsoft クロス証明書 Web ページ
にあります。 - SPC を発行したルート証明機関の Windows Vista カーネル モード コード署名 Web ページの
Microsoft クロス証明書から対応するクロス証明書をダウンロードします。 クロス証明書は、カーネル モード コードのデジタル署名で使用されるため、Windows Vista カーネルに認識されている信頼されたルート機関まで署名を検証できます。
商用 CA からソフトウェア発行証明書を要求する場合は、CA の Web サイトの指示に従って、秘密キーを使用してコードに署名するコンピューターにコード署名証明書を取得してインストールする方法を確認します。
コード署名キーを保護するためのガイダンス
コード署名プロセスの中心にある暗号化キーは、会社にとって最も価値のある資産と同じ注意を払って十分に保護され、扱われる必要があります。 これらのキーは会社の ID を表します。 これらのキーで署名されたコードは、会社にトレースできる有効なデジタル署名が含まれているかのように Windows に表示されます。 キーが盗まれた場合は、悪意のあるコードに不正に署名するために使用され、正当な発行元からのトロイの木馬やウイルスを含むコードが配信される可能性があります。
秘密キーの安全な保護の詳細については、「コード署名のベスト プラクティス」を参照してください。
カーネル モードコード署名でのクロス証明書の使用
カーネル モードのコード署名では、コード署名プロセスの一部としてクロス証明書が使用されます。 クロス証明書とは、ある証明機関 (CA) によって発行された X.509 証明書で、別の証明機関のルート証明書の公開キーに署名します。 Windows Vista オペレーティング システム ローダーとカーネルは、ドライバー署名の検証でクロス証明書を認識します。 クロス証明書を使用すると、カーネルは信頼された Microsoft ルート機関を 1 つ持つことができますが、ソフトウェア 発行元証明書を発行する複数の商用 CA に信頼チェーンを拡張する柔軟性も提供します。
クロス証明書を使用すると、開発者と発行元はソフトウェア 発行元証明書を使用してカーネル モード ソフトウェアに署名できます。 カーネル モード コード署名を使用する開発者は、デジタル署名操作が実行されるシステムに正しいクロス証明書 (.cer) ファイルをダウンロードします。 発行元は、ソフトウェアまたはドライバー パッケージを使用してクロス証明書ファイルを配布する必要はありません。 クロス証明書は、ドライバー イメージ ファイルまたはドライバー パッケージ カタログのデジタル署名に含まれます。 ドライバー パッケージをインストールするユーザーは、クロス証明書を含むデジタル署名を検証するために Windows Vista の構成手順を実行する必要はありません。
重要 Windows Vista Beta2 WDK の SignTool は、デジタル署名へのクロス証明書の追加を現在サポートしている唯一のバージョンの SignTool です。 Windows Server 2003 Platform SDK または DDK の以前のバージョンの SignTool では、クロス証明書の追加はサポートされていません。
カーネル モードのコード署名に使用する複数の CA のクロス証明書は、Microsoft WHDC Web サイトからダウンロードできます。 詳細については、このホワイト ペーパーの最後にある「リソース」の「Windows Vista カーネル モード コード署名 の Microsoft クロス証明書を
デジタル署名にクロス証明書を追加する方法の詳細については、「.cat ファイルに署名する方法」および「ドライバー イメージ ファイルへの埋め込み署名の追加」セクションで説明されています。
テスト証明書の生成
テスト証明書は、組織外の配布またはリリース用ではないカーネル モード ソフトウェア モジュールにテスト署名するために、SPC の代わりに使用されます。 テスト署名は、内部テスト目的で使用されるカーネル モード バイナリまたはドライバー パッケージ カタログにデジタル署名を適用しています。 テスト署名については、このドキュメントで後述する「テスト署名の使用方法」セクションで詳しく説明します。 カーネル モードのコード署名にテスト証明書を使用する場合、クロス証明書は必要ありません。
テスト証明書は、エンタープライズ CA または Makecert ユーティリティを使用して生成できます。 組織内でテスト署名証明書を発行するためにエンタープライズ 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 の引数では、次の操作を行います。
-
-add
証明書ファイル内の証明書を証明書ストアに追加します。 -
-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 のドキュメントを参照してください。 署名ツールを使用してカタログを作成するには、次の手順に従います。
署名機能を使用してカタログを作成する
- ドライバー パッケージ内のすべてのファイルを含むドライバー パッケージ ディレクトリを作成します。
- ドライバー パッケージ ディレクトリに INF ファイルを作成し、Windows Vista 用に編集します。 具体的には、ビルド日を 2006 年 4 月 1 日以上に変更し、バージョンを 6 に変更します。 例: DriverVer=04/01/2006、6.0.1.0
- Signability を実行して、INF ファイルに基づいて有効な .cat ファイルを作成します。
Signability.exe 実行し、GUI を使用してカタログ ファイルを作成します。
コマンド ラインから署名可能性を実行します。 package_directory パッケージ ディレクトリへの完全修飾パスである必要があります。
Signability.exe /auto /cat /driver:package_directory /os:512
この例では、Signability でサポートされるいくつかの引数を使用して、driver_package ディレクトリに .cat ファイルを作成します。
- /auto を
する
ユーザーの操作を必要とせずに実行するように署名ツールを構成します。 - /cat を
する
ドライバー パッケージ INF ファイルによって名前が指定されたカタログ ファイルを生成するように署名ツールを構成します。 -
/driver:DriverPath
ドライバー パッケージ ファイルを含むディレクトリへのパスを指定します。 -
/os:nnn
署名ツールを構成して、ドライバー パッケージ INF ファイルが、nnnフラグ値で指定されている Windows バージョンの要件に準拠していることを確認します。 512 は、Windows Vista 64 ビット エディションの値です。
カタログを手動で作成する方法
.cat ファイルを手動で作成するには、まずテキスト エディターを使用してカタログ定義ファイル (.cdf) を作成します。 .cdf ファイルには、カタログ化するファイルとその属性の一覧が含まれています。
次の例は、Good.cdfという名前の一般的な .cdf ファイル
[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 ファイルを作成するには
- テキスト エディターを使用して、カタログ化するファイルの一覧とその属性を含む .cdf ファイルを作成します。
- .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 でサポートされるいくつかの引数を使用します。
-
Sign
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 では、ユーザーが [セキュリティ警告] ダイアログの詳細を確認し、[always install software from <publisher name>", this option will simplifys later confirmation when a driver package is installed. ドライバー パッケージがインストールされると、ドライバーのインストールが開始される前に、署名されたドライバー パッケージの発行元を信頼するかどうかをユーザーに求められます。 ユーザーが自己解凍 .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
sign コマンドは、winloaddriver.sysという名前のドライバーに署名するようにツールを構成します。 - /v を
する
正常に実行および警告メッセージの詳細オプションを指定します*.* - /ac を
する
CrossCertificateFileファイルからデジタル署名にクロス証明書を追加します。 - /s
オプションを
SPCCertificateStore名前の証明書ストアを指定します。 -
/n
SPCSubjectNameサブジェクト名を持つ証明書を指定します。 -
/tURL
デジタル署名のタイムスタンプを、URL で示される TSA で指定します。
重要: 署名者キーが侵害された場合に備えて、キー失効に必要な情報が提供されるため、カタログまたはドライバーにタイムスタンプを付ける必要があります。
埋め込み署名を確認する方法
次の手順では、Windows エクスプローラーで埋め込み署名を確認する方法を示します。
埋め込み署名の を確認するには
- Windows Vista の実行中に、ドライバー .sys ファイルを右クリックし、コンテキスト メニューの [プロパティ]
クリックします。 - [デジタル署名の ] タブ (存在する場合) をクリックします。
- このタブが存在しない場合、ファイルには署名が埋め込まれていません。
- 署名者を選択し、[詳細] をクリックして、[署名の詳細] ダイアログ ボックスを開きます。
- [証明書
表示] をクリックして、証明書のプロパティ ページを開きます。 - 警告ダイアログ ボックスがないことを確認します。
- 証明書のサブジェクト名が 発行元が認識された証明機関に登録されていることを確認します。
- [認定パスの ] タブをクリックします。
- 一番上の証明書のサブジェクト名が Microsoft Code Verification Root
であることを確認します。
- 一番上の証明書のサブジェクト名が 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 コード署名ツールを使用して生成することも、Enterprise CA によって発行することもできます。
- テスト署名を有効にする Windows Vista ブート構成オプションは、テスト署名されたドライバーを読み込む Windows Vista システムで有効にする必要があります。
開発組織は、エンタープライズ PKI をセットアップし、テスト署名に使用する独自のテスト コード署名証明書を発行できます。 Windows Vista でテスト署名が有効になっている場合、ドライバー バイナリでのデジタル署名の検証は、 CA または発行元機関
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) をインストールします。この例では署名されていません。 署名されていないドライバーの問題の症状は、トースター デバイスの起動に失敗することです。 デバイス マネージャーを使用すると、次の画面画像に示すように、トースター デバイスの状態を確認し、ドライバーの状態を表示できます。
図 1. 署名されていないドライバー エラー
デバイス ドライバーが署名されておらず、カーネル モードの署名適用によってドライバーがカーネルに読み込まれなかったため、デバイスの起動に失敗しました。 問題の原因を明確に特定するために、以下で説明するように、署名強制診断を有効にするようにシステムを設定します。
コード整合性診断システム ログ イベントの有効化
カーネル モードのコード署名の適用は、コード整合性と呼ばれる Windows Vista コンポーネントによって実装されます。 カーネル モジュールのシグネチャが正しく検証されない場合、コード整合性によって診断イベントとシステム監査ログ イベントが生成されます。
- コードの整合性操作イベントは常に有効になります。 操作イベントは、カーネル モードのバイナリ ファイルの読み込み時にイメージ検証チェックが失敗した場合の警告イベントです。
- コード整合性システム監査イベントは、システム監査ポリシーが有効になっているときに生成されます。 システム監査ポリシーは、既定では有効になっていません。
- コード整合性の詳細イベントは、カーネル モードのバイナリ ファイルを読み込むときに成功したすべてのイメージ検証チェックを示す分析およびデバッグ情報イベントです。 詳細イベントは、既定では有効になっていません。
コード整合性イベントは、コンピューター管理 MMC スナップインの一部であるイベント ビューアーで表示できます。 ([
コード整合性イベント ストリームは、次の階層にあります。
イベント ビューアー -> アプリケーションとサービス ログ -> Microsoft -> Windows -> CodeIntegrity
図 2. コード整合性イベント
コード整合性操作ログには、カーネル モード ドライバーが読み込まれたときにイメージ検証チェックに失敗したときにカーネルによって生成されるイベントが表示されます。 イメージ検証エラーは、次のようなさまざまな理由が原因である可能性があります。
- ドライバーは署名されていませんが、管理者によってシステムにインストールされ、コードの整合性によってドライバーの読み込みが許可されていません。
- ドライバーは署名されましたが、ドライバー イメージ ファイルが変更または改ざんされ、変更によってドライバーの署名が無効になりました。
- システム ディスク デバイスは、不良ディスク セクターからデバイスのイメージ ファイルを読み取るときに、デバイス エラーが発生する可能性があります。
署名されていない、または変更されたドライバー イメージ検証エラーの操作ログ エントリは、次の例のようになります。
図 3. 操作ログ エントリ
このイベントは、トースター ドライバー (toaster.sys) が署名されていないために読み込めなかったことを示します (または、読み込もうとしている toaster.sys イメージが、発行元によってデジタル署名されたものと同じではないことを示します。
すべてのコード整合性イベント ログ メッセージは、以下のコード整合性イベント ログ メッセージのセクションに一覧表示されます。
システム監査ログ イベント
コードの整合性では、カーネル モード ドライバーのイメージ検証が失敗したときに、操作の警告イベントに対応するシステム監査ログ イベントが生成されます。 システム ログ イベントは、イベント ビューアーの [Windows ログ] の [システム ログ] ビューで表示できます。
システム監査イベントは、すべての Windows Vista システムで有効にできない場合があります。 ローカル セキュリティ設定 MMC スナップインを使用して、[ローカル ポリシー] の [監査ポリシー] 設定で [システム イベントの監査] を確認または有効にします。
詳細ログの情報イベント
すべてのカーネル モード イメージ検証チェックの追加のコード整合性情報イベントは、[詳細] イベント ビューを使用して使用できます。 これらのイベントは、システムに読み込まれているすべてのドライバーの正常なイメージ検証を示します。
コード整合性の詳細イベント ビューを有効にする手順は次のとおりです。
- 操作 ビューを左クリックして、現在の コード整合性イベント (存在する場合) を表示します。
- コード整合性 ノードを左クリックしてフォーカスを設定します。
- コード整合性 ノードを右クリックして、コンテキスト メニューを取得します。
- [ビュー
選択します。 - [分析ログとデバッグ ログの表示]
選択します。 - これにより、Operational ノードと Verbose ノードという 2 つのノードが追加されたサブツリーが作成されます。
詳細 ノードを右クリックし、[プロパティ]選択します。 [全般] シートを選択し、[ログ記録 を有効にする] 選択します。 これにより、詳細ログ モードが有効になります。 - システムを再起動して、すべてのカーネル モード バイナリを再読み込みします。
- 再起動後、
Computer Management スナップインを開き、ログ詳細コード 整合性 詳細 イベントを表示します。
次のように、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) に関連しています。"
コード整合性の詳細ログに記録される情報イベントを次に示します。
- "コード整合性では、カタログ
カタログ名 に ファイル名 ファイル名のページごとのイメージ ハッシュのセットが見つかりました。" - "コード整合性により、イメージ埋め込み証明書に
ファイル ファイル名の一連のページごとのイメージ ハッシュが見つかりました。" - "コード整合性で、カタログ内のファイル <ファイル名> のファイル ハッシュ <カタログ名>が見つかりました。"
- "コードの整合性により、イメージ埋め込み証明書に
ファイル名 ファイルのファイル ハッシュが見つかりました。" - "コード整合性により、ファイル名 <システムに読み込まれる>、署名されていないカーネル モジュールが決定されました。 発行元に問い合わせて、カーネル モジュールの署名済みバージョンが使用可能かどうかを確認してください。
- "コード整合性は、ファイル <ファイル名> のイメージ整合性を検証できません。これは、ページごとのイメージ ハッシュのセットがシステムで見つからなかったためです。"
- "コード整合性では、ファイル <ファイル名> のイメージの整合性を検証できません。これは、ページごとのイメージ ハッシュのセットがシステムで見つからなかったためです。 カーネル モード デバッガーがアタッチされているため、イメージの読み込みが許可されます。
- システムでファイル ハッシュが見つからなかったため、ファイル <ファイル名> のイメージ整合性をコード整合性で検証できません。 カーネル モード デバッガーがアタッチされているため、イメージの読み込みが許可されます。
- "コードの整合性で、<ファイル名をカタログ> 読み込めませんでした。"
- "コード整合性によって、<ファイル名がカタログ> 正常に読み込まれました。"
リソース
- カーネル モード ドライバーのデジタル署名に関する質問については、signsup@microsoft.comに電子メールを送信します。
- Windows Vista カーネル モード コード署名 用の Microsoft クロス証明書の
- ブート構成データ エディター よく寄せられる質問
- MSDN の SDK ドキュメントで CryptCATAdminAddCatalog を
する - セキュリティで保護されたソフトウェア発行 用の暗号化ハードウェアを使用した Authenticode の展開の
- Windows 用デバッグ ツール
- Certmgr
- MakeCat の
- Makecert
- SignTool の
- Windows Driver Kit (WDK)
- Windows ロゴ プログラムの
- WHQL テスト署名プログラムの を
する - Windows Platform SDK ダウンロード サイト の
- Windows Quality Online Services (Winqual)
- コード署名のベスト プラクティス
- Windows Vista でのプラグ アンド プレイ デバイスのインストール時のドライバー パッケージの整合性の
- Windows Vista で保護されたメディア コンポーネントのコード署名を
する