一般リリースのためのカーネル ドライバーへの構成証明署名Attestation signing a kernel driver for public release

このトピックでは、構成証明署名を使ってドライバーに署名する方法について説明します。This topic describes how to sign a driver using attestation signing.

注意

構成証明署名には次の特徴があります。Attestation signing has the following properties.

  • 構成証明署名は、Windows 10 デスクトップのカーネル モード ドライバーとユーザー モード ドライバーをサポートしています。Attestation signing supports Windows 10 Desktop kernel mode and user mode drivers. Windows 10 では、ユーザー モード ドライバーは Microsoft による署名を必要としませんが、ユーザー モード ドライバーとカーネル モード ドライバーの両方で同じ構成証明プロセスを使うことができます。Although user mode drivers do not need to be signed by Microsoft for Windows 10, the same attestation process can be used for both user and kernel mode drivers.
  • 構成証明署名は、ELAM または Windows Hello PE バイナリについて、適切な PE レベルを返しません。Attestation signing will not return the proper PE Level for ELAM or Windows Hello PE binaries. これらは、追加の署名属性を受け取るために、テストして .hlkx パッケージとして提出する必要があります。These must be tested and submitted as .hlkx packages to receive the additional signature attributes.
  • 構成証明署名では、EV 証明書を使ってパートナー センターでドライバーを申請する必要があります。Attestation signing requires the use of an EV Certificate to submit the driver to the Partner Center.
  • 構成証明署名されたドライバーは、Windows 10 で動作します。Windows 8.1 や Windows 7 など、より古いバージョンの Windows では動作せず、Windows Server 2016 以降ではサポートされていません。サポート ポリシーの詳細については、Windows の構成証明プロセスを使用して署名されたサードパーティ製のカーネルレベル ソフトウェアのサポート ポリシー をご覧ください。An attestation signed driver works on Windows 10. It does not work on earlier versions of Windows, such as Windows 8.1 and Windows 7, and is not supported for Windows Server 2016 and later. For more information about the support policy, see Support policy for third-party, kernel-level software that is signed by using the attestation process in Windows.
  • 構成証明署名を行うには、ドライバー フォルダー名に特殊文字や UNC ファイル共有パスを使用せず、 40 文字未満のフォルダー名にする必要があります。Attestation signing requires driver folder names to contain no special characters, no UNC file share paths, and to be less than 40 characters long.

カーネル モード ドライバーへの構成証明署名Attestation signing a kernel mode driver

カーネル モード ドライバーに構成証明署名するには、次の手順を実行します。To attestation sign a kernel mode driver complete the following steps:

  1. EV コード署名証明書を取得するAcquire an EV Code Signing Certificate
  2. パートナー センターに会社を登録するRegister your company for the Partner Center
  3. Windows Driver Kit をダウンロードしてインストールするDownload and install the Windows Driver Kit
  4. CAB ファイル提出を作成するCreate a CAB files submission
  5. EV 証明書を使って CAB ファイル申請に署名するSign the CAB file submission with your EV Cert
  6. パートナー センターを使って、EV 署名された CAB ファイルを提出するSubmit the EV signed Cab file using the Partner Center
  7. ドライバーが正しく署名されていることを検証するValidate that the driver was properly signed
  8. デスクトップ用 Windows 10 でドライバーをテストするTest your driver on Windows 10 for Desktop

EV コード署名証明書を取得するAcquire an EV code signing certificate

署名対象のバイナリをダッシュボードに提出する前に、デジタル情報を保護するための拡張検証 (EV) コード署名証明書を取得する必要があります。Before you can submit binaries to the dashboard for signing, you need to acquire an extended validation (EV) code signing certificate to secure your digital information. EV 証明書は、提出するコードに対する会社の所有権を確立するための公認されている標準です。EV certificates are the accepted standard for establishing ownership of the code you submit.

許容される PE 署名とバイナリAllowable PE signatures and binaries

次の PE レベルとバイナリは、構成証明を介して処理できます。The following PE levels and binaries can be processed through Attestation:

  • PeTrustPeTrust
  • DrmLevelDrmLevel
  • HALHAL
  • .exe.exe
  • .cab.cab
  • .dll.dll
  • .ocx.ocx
  • .msi.msi
  • .xpi.xpi
  • .xap.xap

パートナー センター サービスに会社を登録するRegister your company for Partner Center Services

パートナー センターでドライバーに署名するには、まず組織を登録し、コード署名証明書を取得する必要があります。To sign your drivers through the Partner Center you first need to register your organization and get a code signing certificate.

ハードウェア プログラムの登録」に記載されているプロセスに従って、ハードウェア ダッシュボードで使用するアカウントをセットアップします。Follow the process described in Register for the hardware program to set up the account you will use for the hardware dashboard.

Windows Driver Kit をダウンロードしてインストールするDownload and install the Windows Driver Kit

ドライバーのバイナリ ファイルへの署名に使うツールにアクセスするために、Windows Driver Kit (WDK) をダウンロードしてインストールする必要があります。You will need to download and install the Windows Driver Kit (WDK) to gain access to tools used to sign your driver binary files.

Windows 10 用のキットとツールのダウンロード」で説明されているプロセスに従って、WDK をダウンロードしインストールしてください。Follow the process described in Download kits and tools for Windows 10 to download and install the WDK.

CAB ファイル提出を作成するCreate a CAB Files Submission

ダッシュボードで申請できる CAB ファイルを作成するには、次の手順を実行します。To create a CAB file that can be submitted to the dashboard, complete the following steps:

  1. 署名のために提出するバイナリを 1 つのディレクトリにまとめます。Gather the binaries that you will submit to be signed in a single directory. この例では、C:\Echo を使います。In this example, we will use C:\Echo. ここで説明する手順では、GitHub で入手可能な Echo ドライバー サンプルを参照します。The steps described here will reference the echo driver sample available from GitHub.

一般的な CAB ファイル申請には、以下のものが含まれます。Typical CAB file submissions contain the following:

  • ドライバー自体 (Echo.sys など)。The driver itself, for example Echo.sys

  • ドライバー INF ファイル。署名プロセスを容易に実行するために、ダッシュボードで使われます。The driver INF file that is used by the dashboard to facilitate the signing process.

  • シンボル ファイル。デバッグ情報用に使用されます。The symbol file that is used for debugging information. たとえば、Echo.pdb などです。For example, Echo.pdb.

  • カタログ .CAT ファイルは必須で、会社の検証用にのみ使用されます。Catalog .CAT files are required and used for company verfication only. Microsoft では、カタログ ファイルを再生成し、提出されたカタログ ファイルを置き換えます。Microsoft regenerates catalog files and replaces any catalog files that were submitted.

    注意

    CAB ファイル内の各ドライバー フォルダーは、同じアーキテクチャのセットをサポートする必要があります。Each driver folder in your CAB file must support the same set of architectures. たとえば、これらが x86 または x64 をサポートしているか、x86 と x64 の両方をサポートしている必要があります。For example, they must support x86, x64, or they all must support both x86 and x64.

    • ドライバーの場所を参照する際には、UNC ファイル共有パス (\\server\share) は使わないでください。Do not use UNC file share paths when referencing your driver locations (\\server\share). CAB を検証するには、マップ済みのドライブ文字を使用する必要があります。You must use a mapped drive letter for the CAB to be valid.
  1. MakeCab.exe を使って DDF ファイルを処理し、CAB ファイルを作成します。Use MakeCab.exe to process the DDF file and create a cab file.

管理者としてコマンド プロンプト ウィンドウを開きます。Open a Command Prompt window as Administrator. 次のコマンドを入力し、MakeCab のオプションを表示します。Then enter the following command to view the MakeCab options:

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).
  1. CAB ファイルの DDF 入力ファイルを準備します。Prepare a cab file DDF input file. ここで使う Echo ドライバーの場合は、次のようになります。For our Echo driver it might look something like this.
;*** 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
  1. makecab ユーティリティを呼び出し、/f オプションを使って DDF ファイルを入力として指定します。Call the makecab utility and provide the ddf file as input using the /f option.
C:\Echo> MakeCab /f "C:\Echo\Echo.ddf

makecab の出力には、例 2 で作成したキャビネット ファイル内のファイルの数が表示されます。The output of makecab should display the number of files in the created cabinet, in our example 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
  1. Disk1 サブディレクトリにある CAB ファイルを探します。Locate the cab file in the Disk1 subdirectory. エクスプローラーで CAB ファイルをクリックすると、必要なファイルが含まれているかどうかを確認できます。You can click the cab file in File Explorer to verify that it contains the expected files.

EV 証明書を使って申請の CAB ファイルに署名するSign the submission CAB file with your EV certificate

  1. EV 証明書プロバイダーで推奨されるプロセスに従い、EV 証明書を使って CAB ファイルに署名します。たとえば、SHA256 Certificate/Digest Algorithm/Timestamp を使用して .CAB に署名するには、次のようにしますUse the process recommended by the EV cert provider to sign the cab file with your EV cert. For example, to sign your .CAB with a SHA256 Certificate/Digest Algorithm/Timestamp
C:\Echo> SignTool sign /ac "C:\MyEVCert.cer" /s MY /n "Company Name" /fd sha256 /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td sha256 /v "C:\Echo\Disk1\Echo.cab"

重要

業界のベスト プラクティスに従って、EV コード署名プロセスのセキュリティを管理します。Remember to use industry best practices to manage the security of the EV code signing process.

パートナー センターを使って、EV 署名された CAB ファイルを提出するSubmit the EV signed Cab file using the Partner Center

  1. パートナー センターを使って、EV 署名された CAB ファイルを提出します。Submit the EV signed CAB file using the Partner Center. 詳しくは、「ドライバーの署名のプロパティ」をご覧ください。See Driver Signing Properties for more information.

    • 構成証明の申請プロセスの一環として、以下で強調表示されているどの [テスト署名] ボックスもオンにしないでください。As part of the Attestation submission process, do not check any of the Test Signing boxes highlighted below. これらはオフのままにしておきます。Leave those unchecked.

    • 次のスクリーン ショットは、署名用に Echo ドライバーを提出するためのオプションを示しています。The following screen shot shows the options for submitting the echo driver for signing. 署名用に Echo ドライバーを提出するためのオプションを示すスクリーン ショットa screenshot showing the options for submitting the echo driver for signing

  2. 署名プロセスが完了したら、ハードウェア ダッシュボードから署名されたドライバーをダウンロードします。When the signing process is complete, download your signed driver from the hardware dashboard.

ドライバーが正しく署名されていることを検証するValidate that the driver was properly signed

次の手順を実行して、ドライバーに正しく署名されていることを確認します。Complete the following steps to ensure that the driver was properly signed.

  1. 申請ファイルをダウンロードした後で、ドライバー ファイルを抽出します。After you have downloaded the submission file, extract the driver file.

  2. 管理者としてコマンド プロンプト ウィンドウを開きます。Open a Command Prompt window as Administrator. 次のコマンドを入力して、ドライバーが適切に署名されていることを確認します。Then enter the following command to verify that the driver was signed as expected.

C:\Echo> SignTool verify Echo.Sys

3. 追加の情報を表示し、signtool で複数の署名に基づいてファイル内のすべての署名を確認するには、次のように入力します。3.To list additional information and have signtool verify all signatures in a file with multiple signatures, type the following.

C:\Echo> SignTool verify /pa /ph /v /d Echo.Sys
  1. ドライバーの EKU を確認するには、次の手順を実行します。To confirm the EKUs of the driver complete the following steps. a。a. エクスプローラーを開き、バイナリ ファイルを探します。Open Windows Explorer and locate the binary file. そのファイルを右クリックし、 [プロパティ] を選びます。Right-click the file and select Properties. b.b. [デジタル署名] タブの [署名の一覧] で、示されている項目を選びます。On the Digital Signatures tab, select the listed item in the Signature list. c.c. [詳細] ボタンを選び、 [証明書の表示] を選びます。Select the Details button, and then select View Certificate. d.d. [詳細] タブで、 [拡張キー使用法] フィールドを選びます。On the Details tab, select the Enhanced Key Usage field. ダッシュ ボードでドライバーが再署名される場合は、次のプロセスが実行されます。When the driver is resigned by the dashboard the following process is used.
  • Microsoft SHA2 埋め込み署名を追加します。Appends a Microsoft SHA2 embedded signature.
  • ドライバーのバイナリが顧客によって独自の証明書を使って埋め込み署名されている場合、それらの署名は上書きされません。If the driver binaries are embedded signed by the customer with their own certificates, those signatures will not be overwritten.
  • 新しいカタログ ファイルを作成し、SHA2 Microsoft 証明書を使って署名します。Creates and signs a new catalog file with a SHA2 Microsoft certificate. 顧客が提供した既存のカタログは、このカタログに置き換えられます。This catalog replaces any existing catalog provided by the customer.

Windows 10 でドライバーをテストするTest your driver on Windows 10

次の手順に従って、サンプル ドライバーをインストールします。Use the following instructions to install the sample driver.

  1. デバイス マネージャーを開き、コンピューター アイコンを右クリックして、[レガシ ハードウェアの追加] を選びます。Open Device Manager, right click on the computer icon and select "Add legacy Hardware". 指示に従ってドライバーのインストールを完了します。Follow the prompts to complete the install of the driver.

  2. または、管理者としてコマンド プロンプト ウィンドウを開き、devcon を使ってドライバーをインストールします。Alternatively, open a Command Prompt window as Administrator and use devcon to install the driver. ドライバー パッケージのフォルダーに移動し、次のコマンドを入力します。Navigate to your driver package folder, and enter the following command.

C:\Echo> devcon install echo.inf root\ECHO
  1. ドライバーのインストール プロセスで、"ドライバー ソフトウェアの発行元を検証できません" というメッセージが表示されないことを確認します。Confirm that the driver install process does not display the "Windows can't verify the publisher of this driver software." [Windows セキュリティ] ダイアログ ボックスWindows security dialog box.

複数のドライバーで申請を作成するCreate a submission with multiple drivers

一度に複数のドライバーを提出するには、次に示すようにドライバーごとにサブディレクトリを作成します。To submit multiple drivers at the same time create a sub directory for each driver as shown below.

ドライバー署名のディレクトリ構造の例を示す画像。

サブディレクトリを参照する CAB ファイルの DDF 入力ファイルを準備します。Prepare a CAB file DDF input file that references the subdirectories. 次のようになります。It might look something like this:

;*** 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

この手順に従い、申請する他のドライバー ファイルの署名、提出、テストも行うことができます。You can follow these steps to sign, submit and test the other driver files you wish to submit.