MicrosoftによるMSP430 USBドライバーの署名の取得


11

USBモジュールを内蔵したMSP430マイクロコントローラーを使用する製品を開発しています。Texas InstrumentsからPIDを取得し、ツールを使用して記述子を生成し、ドライバーソフトウェアをインストールするための.infファイルを使用しました。明らかな問題は、これらのファイルのカスタムの性質により、USBケーブルを差し込むと、ドライバーが署名されていないことをユーザーに警告するポップアップが表示されることです(Windows 7)。Windows 8およびWindows 10では、単にブロックするだけで、ユーザーにまったく表示しないと考えています。

これは私の会社がリリースを予定しているフル機能の製品であるため、デバイスをインストールできるように顧客に提供できるドライバー証明書(.catファイルの形式を信じますか?)を取得する必要があります。問題のないドライバーソフトウェア。

ドライバーに署名するために必要なものを把握しようとして、Microsoftのドキュメント(特にこのドキュメント)のかなりの部分を調べてきましたが、残念ながら現時点では頭にあります。

これは私がこれまでのところ理解していると思うことです:

  • ドライバー(.infファイル?)をMicrosoft認定の認証局(CA)に提出する必要があります。これらは数多くありますので、ドライバーに署名するものを見つける必要があります。
  • CAを選択した後、通常、そのサービスに対して年会費(最も一般的には1、2、または3年間)を支払う必要があります。この期間中に生成したドライバーは、サービスの有効期限が切れた後でも永続的に署名されます。サービスの有効期限が切れた後にドライバーを変更したり、新しいドライバーを作成したい場合は、さらに1、2、または3年間サービスを購入する必要があります。
  • 料金を支払った後、CAは.catファイルを生成します。これは、私が提供したドライバーが変更されないことを保証する証明書です。一致する場合、.catファイルと一致しなくなり、インストール中にエラーが表示されます

これは正しいです?特定のCAの推奨事項を探しているように聞こえるかもしれませんが(私は気にしません)、この証明を行うことができるCAのリストはどこにありますか?さらに良いのは、さまざまなサービス期間のウェブサイトや価格です。ここに誰かがCAによって署名されたUSBマイクロコントローラーベースの製品のドライバーを直接取得した経験があります。既にMSDNフォーラムに投稿しましたが、かなり死んでいるようです。2日間が経過しており、スレッドのビューはほんの一握りです。


ドライバーは、カーネルモードでコードを実行する必要があるフル機能のものですか、それともinfファイルのみですか?単なるinfファイルの場合、どの組み込みドライバー(.sysファイル)が読み込まれますか?
ジャックB

これは私が失敗するところです、私はPCの内部動作とドライバーがどのように動作するかについてあまり知りません。私のデバイスは、USBモジュールを内蔵したMSP430を中心に設計されています。このデバイスは、単純に、USB接続経由でCDCインタフェースを持っているので、すべてのそれはありません仮想COMポートを開いている
DerStrom8

現在、デザインは開発ボード上にあり、.infファイルを使用してデバイスをインストールしようとすると、Windows 7から標準エラーdavidegrayson.com/signing/img/win7_unverified_publisher.pngが表示されます。それまでは、MSP430WareパッケージのCDCサンプルの1つで提供されている.infファイルと.catファイルを使用していましたが、この製品をリリースすると、それができなくなります。私は間違っていない場合は、これはカーネルモードでコードを実行されません
DerStrom8

1
要するに、私が最後に見た年額約80ポンドの通常のコード署名証明書で署名できます。Microsoftのすべてのクロス署名の必要はありません。しかし、Windows 8.1およびそれ以前のバージョンでは、非常に信頼性が高くないため(EN61326を使用できませんでした)、代替品を用意することもできます。誰も私に負けないなら、夕食後に答えを書きます。
ジャックB

1
@AdamLawrence数時間後に戻ってきたが、答えに何かを追加する必要があるとは思わなかった。とても元気です。
ジャックB

回答:


16

実際、それほど悪くはありません。私はこれを職場で数回行い、Microchip PIC24FJ64GB002ベースのUSB CDC-ACM-to-I 2 Cインターフェイス用の.INF / .CATを作成して署名しました。

  • 認証局との関係を確立します。検証する基本的な情報を提供する必要があります。Extended Validation(EV)に行くと、彼らはさらに多くを要求しますが、そこまで行く必要はありません。Thawte、Digicert、およびComodoはCAの例です。

  • CAからAuthenticodeコード署名証明書を購入します。これは、.INFファイルに関連付けられた.CATファイルに署名するために必要なものです。このレベルの署名には、カーネルモードの証明書は必要ありません。

  • 証明書をインストールします(言うまでもなく)

  • Windows SDKフレームワークWindows Driver Kitをダウンロードして、必要なMicrosoftツール(カタログの生成と署名)を入手してください。

  • ドライバーをパッケージ化して署名します。

    • inf2catを使用して、.INFファイルのカタログ(.CAT)ファイルを生成します
    • signtoolを使用してカタログファイルに署名する

この時点から、何らかのドライバーインストーラーを作成するか、SDKのdpinstを使用して基本的なインストールの自動化を行うことができます。

編集:以下のさまざまなコメントからのメモ:

  1. .INFファイルを作成してUSBSER.SYSを読み込むと、カーネルモードドライバーが作成されません -USBSER.SYS(組み込み、署名済み、信頼済み)を使用しているため、新しいものは作成されません-そのため、EV署名は不要です証明書およびWHQL証明書。基本的なAuthenticode証明書で十分です。
  2. Windows 10以降、WindowsはUSB CDC-ACMデバイス(Class_02)を自動的に選択するため、USBSER.SYSデバイスには署名済みの.INFはまったく必要ありません。また、ドライバーをゼロから書き直し、今ではずっと良く機能します(仮想COMポートをロックすることなく、予期しないデバイスの削除や再挿入も処理できます。これは大きなプラスです!)。ただし、本当に必要な場合は、署名済みドライバーのアプローチを使用できます。署名済みドライバーは引き続き「機能」します。Win 8.1 / 8/7や古いマシンはまだたくさんありますので、USB CDC-ACMデバイスにとっては、署名されたドライバーを持っていることがいくらか重要です。

質問のさらなる拡大:

  • CAに署名するために何も送信しません。コード署名証明書を購入し、マシンにインストールして、.INF検証を行い、自分で署名します。
  • あなたは年会費支払う必要はありませんそれ自体を -しかし、あなたが購入した証明書は、いずれかの1-、2-または3年間の有効期間を持つことになります。証明書の有効期限が切れると、署名を続けるために新しい証明書を購入する必要があります。以前に署名されたものはすべて有効ですが、新しいものに署名する機能は失われます。
  • .CATは.INFのハッシュです。.INFへの変更はすべて検出され、証明書は無効になります。つまり、.INFは署名されていないもののように動作します。

4
詳細:AdafruitのWindowsドライバーと実行可能ファイルに署名する方法
CL。

4
これは素晴らしい答えであり、非常に役立ちます。あなたは間違いなく私が予想したよりもずっと簡単に聞こえるようにします。これについて見ていきます。それまでの間、明確でわかりやすい手順が提供されているため、この回答を受け入れます。乾杯!
DerStrom8

2
@ poizan42これはカーネルモードドライバーではありません。これは、仮想COMポートのみを開くシンプルなUSB CDCデバイスです。カーネルモードコードの実行は実行されません。
DerStrom8

1
フォローアップしたかっただけです。これらの手順は1つの警告で完全に機能しました。inf2cat.exeにはWindows SDKが付属していないため、Windows Driver Kit(WDK)もインストールする必要があります:docs.microsoft.com/en-us/windows-hardware/drivers/ …。あなたの助けのためにどうもありがとう、私は今、任意の警告なしに私のドライバソフトウェアをインストールすることができています-予想通り、それは出版社として、私の会社を示して
DerStrom8

2
回答が修正されました。明らかなことを指摘していただきありがとうございます(ツールチェーンをインストールしてから数年が経ちました)
Adam Lawrence
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.