第4回 64bit版デバイス・ドライバ:64bit Windows時代到来(2/3 ページ)
64bit版Windowsではデバイス・ドライバを64bit対応させるだけでなく、コードの改ざんなどを防ぐためにデジタル署名も必須となっている。
デバイス・ドライバのデジタル署名には、デバイス・ドライバのファイル(この場合は*.SYSファイル)のハッシュ値などの情報が記録されている。ハッシュ値はファイルの内容や長さなどの情報に基づいて計算されており、一部でも改変されるとその値が変わるので、改ざんされたことが検出できる。64bit版のWindows OSではデバイス・ドライバのインストール時や(次回の)ロード時などにこの署名の内容を確認し、改ざんされていれば、デバイス・ドライバのロード/起動を行わない。これにより、不正なデバイス・ドライバがロードされるのを防いでいる。
デバイス・ドライバの改ざんは、ハードウェアやプログラムの不具合だけでなく、例えばウイルスやマルウェアの感染などによっても起こる可能性がある。カーネル・モードで動作するデバイス・ドライバはシステム内のすべてのデータにアクセスできるため、セキュリティの観点からもこのような対策は望ましいといえるだろう(実際には、デバイス・ドライバだけでなく、すべてのカーネル・モジュールに対してデジタル署名が利用されている)。
だが、このデジタル署名の強制は32bit版のWindows OSでは必須ではなく、オプションとなっている。システムの信頼性を求めるなら、クライアント用としても広く利用されている32bit版のWindows OSでもこの機能を必須にしておきたいところだが、現在のところ、64bit版Windows OS用のカーネル・モード・デバイス・ドライバでのみ有効となっている(将来は、より厳格にチェックされるようになるかもしれない)。
32bit版Windows OSでデバイス・ドライバのデジタル署名が必須になっていない理由は、互換性のためである(はっきりとはドキュメント化されていないが)。32bit版Windows OSは従来のシステムからアップグレードしたり、同じデバイスをそのまま使ったりすることが多いなど、特に個人ユーザーでは互換性が非常に重視される。利用するデバイスも、古いプリンタやスキャナ、モデム、ディスク、ビデオカード、キャプチャカード、デジタルカメラなど、非常に多岐に渡る。それらのすべてに対して、署名付きの新しいデバイス・ドライバを用意してから移行してくださいといっても、すでに開発元では新OSに対するサポートを行っていないかもしれないし、そもそも販売元の会社そのものがなくなっていることすらある(署名がないデバイス・ドライバも少なくない)。企業向けなら新OSへの移行を待つとか、サポートのないハードウェアをすべて入れ替えるといった対応も(個人に比べて)比較的行いやすいが、ユーザー数が格段に多い個人向けクライアントWindows OSではそのような対応も取るわけにはいかない(移行できないというトラブルが頻発するだろう)。そこでシステムの全体的な信頼性は少し劣るかもしれないが、次善の策としてデジタル署名なしでのデバイス・ドライバの導入/運用を認めている。
これに対して、64bit版Windows OSの場合は、当時(クライアント向けでは64bit版がほとんど普及していなかったWindows Vistaリリースのころのこと。当時は64bit版のクライアント向けWindows OSといえば、Windows XP Professional x64 Editionのみ)はまだほとんど普及していなかったので、デジタル署名を強制しても問題は少なかった。64bit版Windows OS向けのハードウェアを販売するには、新しく64bit版デバイス・ドライバを作成する必要があったが(それ以前には、コンシューマ向けの64bit OS対応製品はほとんどなかった)、そのときに、デジタル署名も同時に行えばよかったからだ。
なお、サーバ分野では当時すでに64bit Windows OS対応が行われていたので(Windows Server 2003など)、ネットワーク・インターフェイスやディスク、(ビジネス向け)プリンタなど、主にビジネス向けのハードウェアでは64bit版デバイス・ドライバが使われていた。このような基本的なデバイスでは特に混乱もなく、署名付きの64bit版デバイス・ドライバが利用できるようになっていた。
デジタル署名の強制によるメリットやデメリットは?
ハードウェア・ベンダにとっては、やや面倒なデバイス・ドライバの64bit OS対応やデジタル署名であるが、ユーザーにとってはそのメリットは少なくないので、ぜひとも対応してほしいところだ。64bit版デバイス・ドライバを用意することによるメリットやデメリットとしては、次のようなものがある。
■64bit版Windows OSでの利用が可能になる
メモリ価格の下落などにより、最近では64bit版Windows OSが搭載されたシステムの販売が伸びている。64bit版デバイス・ドライバが用意できなければ、ハードウェアの販売機会を損失するというだけでなく、64bit化に非積極的、否定的なベンダとみなされたり、ブランド価値が下がったりする可能性がある。また、64bit非対応と知らずに買ってしまうユーザーが増えると、その対応にも追われ、サポート・コストが増すことになるだろう。いまや、64bit OS対応を行わない理由は特にないといえる。
■不具合の起こったデバイス・ドライバの特定がしやすくなる
デジタル署名が付いていると、デバイス・ドライバがクラッシュしても、どこのベンダがリリースしたドライバであるかがすぐ分かり、問題解決の手助けになる。
■システムの信頼性の向上
64bit版Windows OSではデジタル署名が必須になるため、出自の不明なデバイス・ドライバ(品質の悪いドライバやセキュリティ的にリスクのあるドライバ)が使われるケースは少なくなる。デジタル署名を付けたからといってデバイス・ドライバの品質が向上するわけではないが、少なくともベンダ不明のデバイス・ドライバのバグに“巻き込まれて”同時にクラッシュする可能性などは少なくなる。問題が起こった場合でも、どのようなドライバがインストールされているかを、デジタル署名に基づいて素早く調査することができるだろう。WDFのユーザー/カーネル・モードが分離された新しいデバイス・ドライバ・モデルを利用すれば、デバイス・ドライバの不具合を局所化でき、システム全体がクラッシュするといった不具合を避けることができる。
■保護されたコンテンツの再生が可能になる
AACS(Advanced Access Content System)で保護されたプレミアムなマルチメディア・コンテンツを扱うようなシステムでは、著作権を保護するための仕組みが要求されている。Windows OSではこのような要求に応えるために、デコードされたデータは、セキュリティ的に保護された特別な経路(PMP:Protected Media Path)を通るようにし、それ以外の場所では暗号化されて流れるようになっている。PMPを構成するデバイスは、すべてデジタル署名されている必要がある(デジタル署名は64bit版デバイス・ドライバだけでなく、32bit版デバイス・ドライバでも必要)。
デジタル署名されていないデバイス・ドライバが存在すると、PMPを構築できず、プレミアムなコンテンツの再生が行えなくなる可能性がある(録再生時にデジタル署名を要求するかどうかはアプリケーション次第だが、通常は再生を拒否することになるだろう)。
Windowsロゴ・プログラムへの登録
Windowsロゴ・プログラムという、Windows OSをサポートするシステムやソフトウェア、ハードウェアの認証制度があるが(有償)、これに申請、登録するためには、デバイス・ドライバに対するデジタル署名が必須となっている(これは32bit版でも64bit版のいずれでも必須)。
Windowsロゴ・プログラムに登録していると、ユーザーやベンダにとってさまざまなメリット(/デメリット)がある。以下、いくつかあげておく。
■Windows Update経由でのデバイス・ドライバの配布
Windows Updateでユーザーのシステムが調査され、新しいデバイス・ドライバがあればそれを自動的にインストールできる。いちいちベンダのサイトで新しいデバイス・ドライバを探し、ダウンロードして、インストールするといった面倒な作業を行わなくてもよい。ただし、実際に登録され、ユーザーが利用できるまでには時間がかかる(グラフィックス・ドライバのように、毎月リリースといった迅速性は望めないないようだ)。
■デバイス・ドライバの品質の確保
Windowsロゴ・プログラムで「Windows Quality Online Services (Winqual。デバイス・ドライバを登録するサイト)」に登録するためには、互換性や機能などをテストするツールの検証をパスしなければならない。これにより、ソフトウェアにおける一定の品質が確保される。
■Windowsエラー報告情報の利用
Windows OSを利用中にプログラムやデバイス・ドライバがクラッシュすると、Windowsエラー報告という機能が始動し、エラーが起こった時点でのメモリ・ダンプやクラッシュした場所の情報などがマイクロソフトへ送信されるようになっている(TIPS「Windows Vista/Windows Server 2008のエラー報告ダイアログを無効にする」参照)。Windowsロゴ・プログラムに参加すると、ここで送信される情報を入手できる。これはユーザー環境で起こったデバイス・ドライバの問題などに関する貴重な情報源であり、これを活用すればデバイス・ドライバの素早い改修作業などが行える。
■サイトへの登録や製品パッケージでのロゴの利用
Windowsロゴ・プログラムへ登録すると、「Windows 7 Compatibility Center」や「Windows Vista Compatibility Center」へ登録したり、Windowsロゴを製品パッケージに掲載したりできる。これにより、ユーザーは簡単に製品の互換性などを調べることができる。
デジタル署名にはコード署名用のデジタル証明書が必須
デバイス・ドライバに対してデジタル署名を行うには、認証局からコード署名用(コード・サイニング用)のデジタル証明書の発行を受ける必要がある(年間数万円から。価格は認証局や契約形態などによる)。会社の業務でデバイス・ドライバを作成している場合なら問題ないだろうが、個人でデバイス・ドライバを開発して配布しているような場合はこの証明書を(無料では)入手できず、デジタル署名付きの64bit版デバイス・ドライバを作成できない。たとえ個人であっても、デジタル署名を行うには、商用のコード・サイニング証明書を入手する必要がある。
64bit Windows連載の最後として、今回はデバイス・ドライバの話題を取り上げた。オーバー4Gbytesのメモリを活用するためには64bit OSが必須だが、アプリケーションやデバイスの互換性を考えると、すべてのユーザーがいますぐ64bit版OSへ移行しても問題ないとはとてもいえない。
アプリケーションに関しては、64bit版Windows上でもほぼ問題なく従来のアプリケーションが動作するようだが(むしろWindows XPとWindows 7の操作性や機能の違いの方が障害としては大きいように思われる)、デバイス・ドライバに関しては32bit版を流用するわけにもいかないので、古いデバイスを捨てて新しく買い換えるか、32bit版OSのまま使い続けるかの選択が迫られることになる。古いデバイスであっても、そのうちベンダが対応してくれればよいが、Windows 7が発売されてそろそろ1年経ち、ベンダの対応もほぼ一巡したといえる。いまでもまだ提供されていない64bit版デバイス・ドライバは、今後新たに提供される可能性はかなり低いだろう。
ユーザーとして可能な対応方法はほとんどなく、例えば同一シリーズの別機種用ドライバを流用してインストールしてみる、といったことぐらいしかできない。例えばプリンタやスキャナなどは、デバイス・ドライバと実機の型番が少々違っても、コマンド体系はほぼ同じあることが多く、流用できることがある。しかし、マルチメディア系のデバイス(テレビ・チューナーやキャプチャ・カードなど)はアーキテクチャの違いが大きいのか、残念ながら流用も簡単ではないようだ。
デバイス・ドライバの問題さえクリアできれば、64bit版Windowsは扱えるメモリ量も多く(いまはメモリが少なくても、将来メモリを追加してパフォーマンスを向上できる余地が大きい)、キャッシュも多く使えるので、32bit版Windowsよりも快適に使える可能性がある。いますぐすべてのPCを64bit OSに切り替える必要はないが(互換性を考えると、徐々に切り替えるべきだ)、新規導入するなら64bit版でも問題ないといえる。ぜひ活用していただきたい。
Copyright© Digital Advantage Corp. All Rights Reserved.