2012-05-25 7 views
19

私はUSBデバイスを販売する会社のために働いて、それらのためのドライバを提供しています。Windows 8では、サードパーティのINFドライバファイルに署名が必要ですか?

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

のWindows 8コンシューマープレビュー署名を取得するために、すべてのサードパーティのINFファイルを必要とする厳しい署名要件を持っているようWhat changed in the driver signature requirements for Windows 8?the Arduino forumお客様の1から、別のスタックオーバーフローの問題からの報告に基づき、それが聞こえます。 Windowsの  7に取り組んでドライバをインストールしようとしたとき、人々はなっているエラーメッセージは次のとおりです。

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

最終版のWindows 8で署名が必要であることを確認したMicrosoftの正式な言葉は何ですか? MSDN.comの1つまたは2つの文で十分ですが、何も見つかりません。

私は署名証明書を購入することを検討していますが、私が$ 200を支払う前に、私は実際に長期的にそれを実際に必要としたいと思っています。新しい署名の要件は、実際のバージョンではなく、消費者のプレビューにある可能性がありますか?

+0

消費者プレビューを取得することは自明です。だからあなたは自分のために見つけることができます。あなたがしていないと信じるのは難しいです。また、物を売っていますが、署名のために$ 200を咳をする準備はできていませんか?それはあなたの会社の年間利益の一部として何ですか? –

+1

消費者のプレビューを取得しても、この決定にはあまり役立たないでしょう。私は理想的には時間を遡ってWindows 8の公式コピーを入手したいと思います。そして、はい、私は倹約しています。 –

+0

この質問をして約7ヶ月後、私はトピックについて学んだすべてのことを説明する大きな記事を書いた:http://www.davidegrayson.com/signing/つまり、Windows 8ではINFファイルに署名する必要があるが、 WHQL署名である必要はありません。 Trusted Root Certification Authoritiesリストの証明書に戻っていくだけの信頼関係が必要です。 –

答えて

17

私自身の質問に答える:はい、Windows 8の最終版ではすべてのINFファイルに署名が必要ですが、WHQLにドライバを提出する必要はありません。私はこの要求について書いていましたが、私の記事ではさらに多くを書いていますPractical Windows Code and Driver Signing

+3

本当に便利な記事、ありがとう – Vicky

7

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

EDIT:

これは、Microsoftは、あなたが考えることを望んでいるものです。彼らは、特定のクラスのドライバーがWHQLに署名しなければならないと言いました。それ以外の場合は動作しません。Authenticodeの署名は、WHQLプロセスを持っていない人にのみ有効です。

それはあなたが世話をして、あなたのCAの正しい相互認証を取得意味し、今のコードをカーネルしまうようにそれらに署名する必要があります(ただしCross-Certificates for Kernel Mode Code Signingから、のトンがありますが、あなたはサインドライバパッケージをAuthenticodeのCAN判明(クラス2、2年間US $ 60ですが、タイムスタンプすることはできません)このクロス証明書を提供してください(CAの自己署名証明書またはその中間証明書と同じではありません。 /acスイッチを介してSignToolに)そのMSDNのページでのみ使用できます。

次にYかどうかを確認するために/kpスイッチを確認するのSignToolを使用します彼らは十字架に正しく署名した。スイッチを使用しないでSignToolを検証するには.catファイルがWHQLに署名されている必要があります。以前はOKと思われた/paスイッチが非常に緩慢で、ドライバ以外の署名(EXEファイル、ClickOnceなど)にのみ適用されます。 )。

あなた自身のカーネルレベルの署名証明書(VeriSignの超高額、GlobalSign US $ 200-a-yearのものに限定される前は以前よりも以前よりも簡単です。マイクロソフトは、あなたが自己署名ルートCA、あなたのドライバのインストーラがそれをLOCALMACHINEの「信頼されたルート証明機関」ストアにインストールしていることができます)ではない多くの人々がx64システムのためのカーネルレベルの悪用を書いたことを見ました(certmgr.exeを参照)、それによって署名された.catファイルをインストールします。もちろん、これはカーネルレベルのコード証明書ではないため、既に他の人のカーネルレベルのコード証明書が組み込まれている.sysファイルのみを使用する必要があります(つまり、ドライバパッケージの.infファイルのみを変更できます) 。明らかに、自己署名証明書が.catファイルに署名できる抜け穴があります(自分のCAを作成して証明書に署名し、その後.catファイルに署名した場合)は動作しません。 likeこの)。

削除CERTUM:猫のファイルにそれがlibwdi見る、作るすべてのドライバのINFパッケージのためにこれを行いスイート、および方法について

彼らの自己署名証明書は、8

EDIT2のWindows  へのインストールを許可します「オープンソース」の開発者証明書の言及は、Microsoftが相互認証していないためです(取得したものは、Certum TRUSTED NETWORKのものではなく、Microsoftが相互認証したものです)。

+0

* Go Daddyからの通常の証明書を取得していて、Windows 8プレビューのINFファイルで正常に動作しました。私はMicrosoftに何かを提出する必要はありませんでした。いくつかの助けが必要な場合は、StackOverflowの質問を書いて詳細を教えてください。あなたが与えるべき細部のアイデアについては、http://stackoverflow.com/questions/12291461/signed-inf-driver-works-on-the-computer-where-with-was-signed-not-othersを参照してください。あなたの質問を書いたときに私が知っているように、ここに何かコメントを投稿してください。 –

+0

私は約3日間の試行錯誤の情報で私の答えを更新しました。そして、自己署名証明書と.catファイルの両方を取得できました。そして、自分のauthenticode署名.catファイルは、win8以前windows版) – rajkosto

+1

これは '/ ca'ではなく'/ac'です。それは '/ pa'ではなく'/pa'です。また、クロス証明書を使用せずにINFファイルとCATファイルで構成された単純なドライバパッケージに正常に署名できました。重要なのは、信頼チェーンが信頼できるルート証明ストアにあるものに戻るということです。私は個人的な経験とhttp://msdn.microsoft.com/en-us/library/windows/hardware/gg487332.aspxを私のソースとして引用しています。また、ドライバパッケージを検証するために、 '/ pa'はkmcs_walkthrough.docでそれを行う方法であるため、使用する正しいオプションだと思います。 –

関連する問題