埋め込みの署名を使用したドライバー バイナリのリリース署名
署名された カタログ ファイルは 、ほとんどの ドライバー パッケージを正しくインストールして読み込むために必要なすべてです。 ただし、一部のシナリオでは、ドライバー パッケージ内の一部のバイナリの埋め込み署名も必要になる場合があります。 埋め込み署名とは、カタログ ファイル内のデジタル署名に依存するのではなく、ドライバーのバイナリ イメージ ファイル自体にデジタル署名を追加することを指します。 その結果、ドライバーが埋め込み署名されると、ドライバーのバイナリ イメージが変更されます。
カーネル モード バイナリ (ドライバーや関連する.dll ファイルなど) の埋め込み署名は、次の場合に必ず必要です。
ドライバー バイナリは、ブート スタート ドライバーです。 64 ビット バージョンの Windows Vista 以降のバージョンの Windows では、カーネル モード コード署名の要件は、ブートスタート ドライバーに埋め込み署名が必要であることを示しています。 これは、ドライバーのドライバー パッケージにデジタル署名されたカタログ ファイルがあるかどうかに関係なく必要です。
ドライバー バイナリは、ドライバー パッケージとカタログ ファイルを含まない手段によってインストールされます。
カタログ ファイルと同様に、SignTool ツールを使用して、テスト証明書を使用して、カーネル モードのバイナリ ファイル内にデジタル署名を埋め込みます。 次のコマンド ラインは、SignTool を実行して次の操作を行う方法を示しています。
Toastpkg サンプルのバイナリ ファイル (toaster.sys) の 64 ビット バージョンをテスト署名します。 WDK インストール ディレクトリ内では、このファイルは src\general\toaster\toastpkg\toastcd\amd64 ディレクトリにあります。
商用証明機関 (CA) によって発行されたソフトウェア発行元証明書 (SPC) を使用します。
SPC に互換性のあるクロス証明書を使用します。
タイム スタンプ機関 (TSA) を使用して、デジタル署名にタイム スタンプを割り当てます。
toaster.sys ファイルにテスト署名するには、次のコマンド ラインを実行します。
Signtool sign /v /fd sha256 /ac MSCV-VSClass3.cer /s MyPersonalStore /n contoso.com /t http://timestamp.digicert.com amd64\toaster.sys
ここで:
sign コマンドは、指定されたカーネル モード バイナリ ファイル amd64\toaster.sys に署名するように SignTool を構成します。
/v オプションは、SignTool が正常な実行と警告メッセージを表示する詳細な操作を有効にします。
/fd オプションは、ファイル署名を作成するために使用するファイル ダイジェスト アルゴリズムを指定します。 既定値は SHA1 です。
/ac オプションは、CA から取得したクロス証明書 (MSCV-VSClass3.cer) を含むファイルの名前を指定します。 クロス証明書が現在のディレクトリにない場合は、完全なパス名を使用します。
/s オプションは、SPC を含む個人用証明書ストア (MyPersonalStore) の名前を指定します。
/n オプションは、指定した証明書ストアにインストールされている 証明書 (Contoso.com) の名前を指定します。
/t オプションは 、 デジタル署名のタイムスタンプを設定する TSA (
http://timestamp.digicert.com
) の URL を指定します。
重要
タイム スタンプを含めると、署名者のコード署名秘密キーが侵害された場合に備え、キーの失効に必要な情報が提供されます。
- amd64\toaster.sys は、埋め込み署名されるカーネル モード バイナリ ファイルの名前を指定します。
SignTool とそのコマンド ライン引数の詳細については、「SignTool」を参照してください。
埋め込み署名によるドライバーのリリース署名の詳細については、「ドライバー パッケージのリリース署名「」とドライバー ファイルのリリース署名」を参照してください。