第 9 章 実行に当たっての問題
15.3 Windows のデジタル ドライバの署名と認証
す。インストールの一部として、セクション 14.4.1.1 の手順のとおり、新しいインストール ディレクトリの ファイルを使用して、新しいカーネル ドライバ モジュールをビルドします。
WinDriver\redist\windrvr6.sys ドライバは Authenticode デジタル署名を持っています。
15.3.1.2 Windows ハードウェア認定プログラム
Microsoft Windows ハードウェア認定プログラム (WLP 旧 Windows ロゴ プログラム) では、ハードウェア モ ジュールおよびソフトウェア モジュール (ドライバを含む) に対し Microsoft の資格認定を取得するためのの 手順について説明しています。テストに Pass したハードウェアまたはソフトウェアは、ドライバの発行者の整 合性とドライバの安全性と機能性を保証する Microsoft 資格認定を取得することができます。
デバイス ドライバのデジタル署名と認定を取得するには、Hardware Dashboard (Windows Dev Center
Hardware Dashboard) を使用して、ドライバと関連するハードウェアを含む HCT (Windows Hardware
Ceritification Kit) パッケージをテストのために Windows ハードウェア認定プログラムに申請します。
Jungo Connectivity 社のプロフェッショナル サービス チームが Jungo Connectivity ベースのドライバに対し
て Windows ドライバのpre-certification サービスを提供しています。Jungo Connectivity 社のエンジニアが Jungo Connectivity 社の専用の Windows ハードウェア認定プログラムで必要なすべてのテストを行うので、
テストに掛かる手間と工数を大幅に軽減できます。Microsoft へ申請できるように、テスト結果を HCK の申請 に必要なフォーマットにパッケージ化して提供いたします。
詳細は、http://www.xlsoft.com/jp/products/windriver/whql_service.html を参照してください。
Microfoft 社の Windows ハードウェア認定プログラムと認定プロセスに関する詳細は、次の Microsoft の
Web サイトを参照してください:
MSDN Windows ハードウェア認定プログラム ページ:
http://msdn.microsoft.com/library/windows/hardware/gg463010.aspx
MSDN Windows Dev Center を含むドキュメント、Hardware Dashboard Service ページ:
http://msdn.microsoft.com/library/windows/hardware/gg463091
15.3.2 WinDriver ベースのドライバのドライバ署名と認証
上記の説明のとおり [15.3.1.1]、WinDriver\redist\windrvr6.sys ドライバは Authenticode 署名を 持っています。WinDriver カーネル モジュール (windrvr6.sys) は、さまざまなハードウェア デバイスの ドライバとして使用可能な汎用的なドライバのため、スタンドアロン ドライバとして Microsoft 社の Windows ハードウェア認定プログラムに申請することができません。ただし、WinDriver を使用して対象ハードウェア 用の Windows ドライバを開発した場合、以下で説明するとおり、Microsoft 社の認定用にハードウェアとドラ イバの両方を提出することができます。
ドライバの認証と署名の手順は (Authenticode または Windows ハードウェア認定プログラムのいずれかで)、
ドライバのカタログ ファイルの作成が必要です。このファイルは一種のハッシュで、他のファイルを説明しま す 。 署 名 済 み の windrvr6.sys ド ラ イ バ は 一 致 す る カ タ ロ グ フ ァ イ ル (WinDriver\redist\wd1170.cat) と 提 供 さ れ ま す 。 こ の フ ァ イ ル は windrvr6.inf フ ァ イ ル
(redist ディレクトリでも同様に配布されています) の CatalogFile エントリに割り当てられます。ドライバの
インストール中に、このエントリを使用して、ドライバの署名と関連するカタログ ファイルをWindows に通知し ます。
カタログ ファイルに記載されているファイルの名前、コンテンツ、または日付さえも、変更した場合には、その 変 更 に よ っ て 、 カ タ ロ グ フ ァ イ ル と そ れ に 関 連 す る ド ラ イ バ 署 名 は 無 効 に な り ま す 。 そ の た め 、 windrvr6.sys ドライバ [15.2]、および (または) 関連する windrvr6.inf ファイルの名前変更する場 合、wd1170.cat カタログファイルと関連するドライバ署名は無効になります。
さ ら に 、WinDriver を 使 用 し て Plug-and-Play デ バ イ ス 向 け の ド ラ イ バ を 開 発 す る 場 合 、 通 常 は 、 windrvr6.sys ドライバ モジュール (または名前を変更したドライバ) で動作するよう登録するデバイス特
有の INF ファイルを作成し ま す。対象のハードウェア独自 に、 この INF ファイル を作成 するため、
wd1170.cat カタログ ファイルからこの INF ファイルを参照せず、また、Jungo Connectivity のアプリオリで この INF ファイルを署名できません。
windrvr6.sys の名前を変更し、対象のデバイスのデバイス独自の INF ファイルを作成する場合、ドライバの
デジタル署名に関して、2 つのオプションがあります:
対象のドライバにデジタル署名をしない。 このオプションを選択する場合、windrvr6.inf ファイル (または名前を変更したファイル) から wd1170.cat への参照を削除またはコメント アウトします。
対象のドライバを Windows ハードウェア認定プログラムに申請するか、Authenticode でドライバを署名 する。
WinDriver\redist\windrvr6.sys の名前を変更すると、そのドライバのデジタル署名は無効 になりますが、ドライバは Microsoft 社の Windows 認定プログラムの認証要件と互換性があります。
対象のドライバをデジタル署名および認証するには、以下のステップを実行してください:
Microsoft 社の Windows ハードウェア認定プログラムのドキュメントで説明してるとおり、対象
のドライバのカタログ ファイルを新規に作成します。新しいファイルは windrvr6.sys (また は名前を変更したドライバ) とドライバのインストール時に使用するすべての INF ファイルの両 方を参照します。
対象のドライバの INF ファイルの CatalogFile のエントリに新しいカタログ ファイルの名前を割 り当てます。(windrvr6.inf ファイルの CatalogFile エントリを新しいカタログ ファイルへの 参照するように変更し、対象のデバイス独自の INF ファイルに同じエントリを追加するか、また は、CatalogFile エントリなどを含むシングル INF ファイルに windrvr6.inf ファイルと対象 のデバイス独自の INF ファイルの両方を組み込みか、いずれかの方法を行うことができま す。)
Microsoft 社の Windows ハードウェア認定プログラムに申請するか、Authenticode でドライバ
を署名する。 Windows ハードウェア認定プログラムにドライバを申請する場合、セクション 15.3.2.1 のガイドラインを参照してください。
多くの WinDriver ユーザーが既に WinDriver ベースのドライバでデジタル署名と認証の取得に成 功しています。
15.3.2.1 HCK テストに関する注意点
Microsoft 社のドキュメントで説明されているように、ドライバのテスト申請と認証を行う前に Windows の HCK (Hardware Certification Kit) をダウンロードして、ハードウェア / ソフトウェアに対し関連テストを実行する 必要があります。HCK テストに Pass できることを確認したら、必要なログ パッケージを作成して、Microsoft のドキュメントの手順に従ってください。詳細については、MSDN Windows HCK (Hardware Certification Kit ) のページを参照ください - http://msdn.microsoft.com/library/windows/hardware/hh833788
HCK テストを実行する際には、次の点に注意してください。
Driver Verifier テストは、テスト マシン上で検出されるすべての未署名ドライバに適用されます。こ
のため、テスト PC にインストールされている未署名ドライバ (テスト対象の windrvr6.sys を除 く) の数を最小限に抑えることが重要です。
USB Selective Suspend テストでは、USB デバイス ツリーにおけるテスト対象 USB の階層は、少
なくとも 1 つの外部ハブおよび 2 つ以下の外部ハブでなければなりません。
ACPI Stress テストでは、BIOS の ACPI 設定で S3 状態のサポートを必須としています。
認証用のファイルを申請する前に、カタログ ファイルを新規に作成する必要があります。上記で説 明したとおり、新しいカタログ ファイルは対象のドライバと特定の INF ファイルをリストし、対象の INF ファイルからこのカタログ ファイルを参照します。