構成証明署名 Windows ドライバー
この記事では、構成証明署名を使ってドライバーに署名する方法について説明します。 構成証明署名の詳細と要件については、「Windows 10 構成証明署名済みドライバー」を参照してください。
重要
2023 年 3 月 1 日の時点で、小売対象ユーザーを対象とする構成証明署名付きドライバーは Windows Update で公開されなくなりました。 テスト シナリオ用の構成証明署名付きドライバーは CoDev または Test Registry Key /Surface SSRK オプション を選択しても引き続きサポートされます。
前提条件
Windows 10 構成証明署名済みドライバーの要件を読んで理解してください。
ハードウェア開発者プログラムに登録します。 まだ登録していない場合は、Microsoft Windows ハードウェア開発者プログラムへの登録方法に関するページの手順に従います。
拡張検証 (EV) コード署名証明書が必要です。 組織が既にコード署名証明書を持っているかどうかを確認してください。 会社に既に証明書がある場合は、その証明書を使用できます。 証明書がない場合は、EV 証明書を購入する必要があります。
「Windows 10 用のキットとツールのダウンロード」で説明されているプロセスに従って、Windows Driver Kit (WDK) をダウンロードし、インストールしてください。
(省略可能) この記事で使用されているエコー ドライバーのサンプルをダウンロードします。
CAB ファイルを作成する
このセクションでは、CAB ファイル申請を作成するプロセスの手順について説明します。 ここでは、echo ドライバーのサンプルを使用してプロセスを示します。
一般的に、CAB ファイル申請には、以下を含める必要があります。
ドライバー自体 (例: Echo.sys
署名プロセスを容易にするためにダッシュボードによって使用されるドライバー INF ファイル。
デバッグ情報に使用されるシンボル ファイル。 たとえば、Echo.pdb です。 .pdb ファイルは、Microsoft の自動クラッシュ分析ツールに必要です。
カタログ .CAT ファイルは必須で、会社の検証用にのみ使用されます。 Microsoft はカタログ ファイルを再生成し、送信されたすべてのカタログ ファイルを置き換えます。
Note
CAB ファイル内の各ドライバー フォルダーは、同じアーキテクチャのセットをサポートする必要があります。 たとえば、これらが x86 または x64 をサポートしているか、x86 と x64 の両方をサポートしている必要があります。
ドライバーの場所を参照するときは、UNC ファイル共有パス (\\\server\share
) は使わないでください。 CAB を検証するには、マップ済みのドライブ文字を使用する必要があります。
CAB ファイルを作成するには:
署名するバイナリを 1 つのディレクトリにまとめます。 この例では、
C:\\Echo
を使用します。管理者として [コマンド プロンプト] ウィンドウを開きます。
「
MakeCab /?
」と入力して、MakeCab オプションを表示します。C:\Echo> MakeCab /? Cabinet Maker - Lossless Data Compression Tool MAKECAB [/V[n]] [/D var=value ...] [/L dir] source [destination] MAKECAB [/V[n]] [/D var=value ...] /F directive_file [...] source File to compress. destination File name to give compressed file. If omitted, the last character of the source file name is replaced with an underscore (_) and used as the destination. /F directives A file with MakeCAB directives (may be repeated). Refer to Microsoft Cabinet SDK for information on directive_file. /D var=value Defines variable with specified value. /L dir Location to place destination (default is current directory). /V[n] Verbosity level (1..3).
cab ファイルの DDF 入力ファイルを準備します。 この例の Echo ドライバーでは、次のようになります。
;*** Echo.ddf example ; .OPTION EXPLICIT ; Generate errors .Set CabinetFileCountThreshold=0 .Set FolderFileCountThreshold=0 .Set FolderSizeThreshold=0 .Set MaxCabinetSize=0 .Set MaxDiskFileCount=0 .Set MaxDiskSize=0 .Set CompressionType=MSZIP .Set Cabinet=on .Set Compress=on ;Specify file name for new cab file .Set CabinetNameTemplate=Echo.cab ; Specify the subdirectory for the files. ; Your cab file should not have files at the root level, ; and each driver package must be in a separate subfolder. .Set DestinationDir=Echo ;Specify files to be included in cab file C:\Echo\Echo.Inf C:\Echo\Echo.Sys
次のコマンドを入力して、CAB ファイルを作成します。
C:\Echo> MakeCab /f "C:\Echo\Echo.ddf
MakeCab の出力には、作成された CAB ファイル内のファイルの数が表示されます。 この場合は、2 つのファイルがあります。
C:\Echo> MakeCab /f Echo.ddf Cabinet Maker - Lossless Data Compression Tool 17,682 bytes in 2 files Total files: 2 Bytes before: 17,682 Bytes after: 7,374 After/Before: 41.70% compression Time: 0.20 seconds ( 0 hr 0 min 0.20 sec) Throughput: 86.77 Kb/second
Disk1
サブディレクトリ内で CAB ファイルを探します。 エクスプローラー内で CAB ファイルを選択すると、必要なファイルが含まれているかどうかを確認できます。
EV 証明書を使って CAB ファイルに署名する
EV 証明書を使用して CAB ファイルに署名するには、EV 証明書プロバイダーから推奨されているプロセスを使用します。 たとえば、SHA256 証明書/ダイジェスト アルゴリズム/タイムスタンプを使用して CAB ファイルに署名するには、次のコマンドを入力します。
C:\Echo> SignTool sign /s MY /n "Company Name" /fd sha256 /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td sha256 /v "C:\Echo\Disk1\Echo.cab"
重要
業界のベスト プラクティスを使用して、EV コード署名プロセスのセキュリティを管理することを忘れないでください。
パートナー センターを使って、EV 署名された CAB ファイルを提出する
パートナー センター ハードウェア ダッシュボード に移動し、ご自身の資格情報を使用してサインインします。
[Submit new hardware]\(新しいハードウェアの申請\) を選択します。
[Packages and signing properties]\(パッケージと署名のプロパティ\) セクション内で、ドライバー申請の製品名を入力します。 この名前は、ドライバーの申請を検索して整理するために使用できます。
Note
別の会社とドライバーを共有する場合、この名前が表示されます。
両方のテスト署名オプションはオフのままにします。
[要求された署名] で、ご自身のドライバー パッケージに含める署名を選択します。
ページ内を下に移動し、[送信] を選択します。
署名プロセスが完了したら、ハードウェア ダッシュボードから署名済みドライバーをダウンロードします。
ドライバーが正しく署名されていることを検証する
ドライバーが正しく署名されていることを確認するには、次の手順を実行します。
申請ファイルをダウンロードしたら、ドライバー ファイルを抽出します。
管理者として [コマンド プロンプト] ウィンドウを開きます。
次のコマンドを入力して、ドライバーが適切に署名されていることを確認します。
C:\Echo> SignTool verify Echo.Sys
追加の情報を表示し、SignTool で複数の署名があるファイル内の署名をすべて確認するには、次のコマンドを入力します。
C:\Echo> SignTool verify /pa /ph /v /d Echo.Sys
ドライバーの EKU を確認するには、次の手順を実行します。
Windows エクスプローラーを開き、バイナリ ファイルを見つけます。 そのファイルを長押し (または右クリック) し、[プロパティ] を選びます。
デジタル署名 タブで 、[署名] リストの一覧にある項目を選択します。
[詳細]、[証明書の表示] の順に選択します。
[詳細] タブで、[拡張キー使用法] を選択します。
ダッシュボードでドライバーに再署名する場合は、次のプロセスが使用されます。
- Microsoft SHA2 埋め込み署名を追加します。
- ドライバー バイナリが、お客様によって独自の証明書で署名され埋め込まれている場合、それらの署名は上書きされません。
- SHA2 Microsoft 証明書を使用して新しいカタログ ファイルを作成し、署名します。 このカタログは、顧客が提供するすべての既存のカタログを置き換えます。
Windows でドライバーをテストする
サンプル ドライバーをインストールするには、次の手順に従います。
管理者として [コマンド プロンプト] ウィンドウを開きます。 ご自身のドライバー パッケージのフォルダーに移動し、次のコマンドを入力します。
C:\Echo> devcon install echo.inf root\ECHO
ドライバーのインストール プロセスで、"ドライバー ソフトウェアの発行元を検証できません" という Windows のセキュリティ ダイアログ ボックスが表示されないことを確認します。
複数のドライバーを含む申請を作成する
複数のドライバーを同時に申請するには:
各ドライバー用にサブディレクトリを作成します。
サブディレクトリを参照する CAB ファイル DDF 入力ファイルを準備します。 次のように表示されます。
;*** Submission.ddf multiple driver example ; .OPTION EXPLICIT ; Generate errors .Set CabinetFileCountThreshold=0 .Set FolderFileCountThreshold=0 .Set FolderSizeThreshold=0 .Set MaxCabinetSize=0 .Set MaxDiskFileCount=0 .Set MaxDiskSize=0 .Set CompressionType=MSZIP .Set Cabinet=on .Set Compress=on ;Specify file name for new cab file .Set CabinetNameTemplate=Echo.cab ;Specify files to be included in cab file ; First Driver .Set DestinationDir=DriverPackage1 C:\DriverFiles\DriverPackage1\Driver1.sys C:\DriverFiles\DriverPackage1\Driver1.inf ; Second driver .Set DestinationDir=DriverPackage2 C:\DriverFiles\DriverPackage2\Driver2.sys C:\DriverFiles\DriverPackage2\Driver2.inf