22

私は、USB デバイスを販売し、それらのドライバーを提供する会社で働いています。

Windows 7 では、カーネルにコードを追加しない限り、USB デバイス用の署名されていない INF ドライバー ファイルをインストールして使用することができました。usbser.sys私たちの会社は、Microsoft (および)が提供する汎用ドライバーを使用してwinusb.sysいるため、ドライバー パッケージに署名する必要はありませんでした。

お客様の 1 人からのレポートと、別の Stack Overflow の質問からのレポートに基づいています。Windows 8 のドライバー署名要件で何が変更されましたか? Windows 8 Consumer Previewでは、すべてのサードパーティの INF ファイルに署名する必要があるというより厳しい署名要件があるようです。Windows 7 で動作するドライバーをインストールしようとしたときに表示されるエラー メッセージは次のとおりです。

サード パーティの INF には、デジタル署名情報が含まれていません。

Windows 8 の最終バージョンでも署名が必要であることを確認する Microsoft の公式の言葉は何ですか? MSDN.com からの 1、2 文で十分ですが、何も見つかりません。

署名証明書の購入を検討していますが、200 ドルを支払う前に、長期的に実際に必要になるかどうかを確認したいと考えています。新しい署名要件は、実際のバージョンではなく、コンシューマ プレビューにある可能性はありますか?

4

2 に答える 2

9

INF ファイルの署名が必要なだけでなく、.sys ファイルなどの埋め込み署名に使用するのと同じものではなく、WHQL証明書によって署名される必要があります。INF ファイルでコード署名証明書を使用しても、まったく機能しませんでした。(署名されていない場合と同じ問題。)

編集:

これがマイクロソフトがあなたに考えてほしいことです。彼らは、ドライバーの特定のクラスは WHQL で署名されている必要があり、署名されていないと機能せず、Authenticode署名は WHQL プロセスを持っていないユーザーに対してのみ機能すると述べています。

Authenticode でドライバー パッケージに署名できることがわかりましたが、カーネル コードと同じように注意して署名する必要があります。つまり、CAの正しいクロス証明書を取得する必要があります( Cross-Certificates for Kernel Mode Code Signingから、たくさんあります)。 (クラス 2、2 年間で 60 米ドルですが、タイムスタンプを付けることができません) このクロス証明書を提供します (CA の自己署名証明書または中間証明書とは異なります)。その MSDN ページでのみ使用できます) 、スイッチを介してSignTool/acに接続します。

次に、スイッチで SignTool verify を使用して、/kpクロス署名が適切に行われたかどうかを確認します。スイッチを使用しない SignTool 検証では、.cat ファイルが WHQL 署名されている必要がありますが、/pa以前は問題ないように見えたスイッチが緩すぎて、ドライバー以外の署名 (EXE ファイル、ClickOnceなど)にのみ適用されます。 .

独自のカーネル レベルの署名証明書を取得したくない場合 (率直に言って、VeriSign の非常に高価な GlobalSign や年間 200 ドルの証明書に限定される前よりも簡単になりました。多くの人が x64 システム用のカーネル レベルのエクスプロイトを作成しました)、自己署名ルート CAを作成し、ドライバー インストーラーにそれを LocalMachine の「信頼されたルート証明機関」ストアにインストールさせることができます (参照certmgr.exe)、それによって署名された .cat ファイルをインストールします。もちろん、これはカーネル レベルのコード証明書ではないため、他の誰かからのカーネル レベルのコード証明書が既に埋め込まれている .sys ファイルのみを使用する必要があります (つまり、ドライバー パッケージ内の .inf ファイルのみを変更できます)。 . どうやら、自己署名証明書が .cat ファイルに署名できる抜け穴があるようです (独自の CA を作成し、それを使用して証明書に署名し、それを使用して .cat ファイルに署名した場合、このようには機能しません)。

作成するすべてのドライバー INF パッケージに対してこれを行うスイートについては、libwdi と、cat ファイルの自己署名証明書が Windows 8 でのインストールを許可する方法を参照してください。

EDIT2:

CERTUM の「オープン ソース」開発者証明書に関する記述は、Microsoft による相互認証を受けていないため削除されました (取得したものは、Microsoft が相互認証した Certum TRUSTED NETWORK のものではありません)。

于 2012-10-10T05:22:00.147 に答える