4

カーネルモードドライバーへの署名とそのサービスの作成に少し問題があります。

そこで、makecertを使用して自己署名証明書を作成しました。

makecert -r -pe -n "CN = XXX" -ss "XXX" -sr LocalMachine

次に、証明書管理スナップインを使用して、証明書を.pfxファイルにエクスポートし、signtoolを使用して.sysドライバーに署名しました。

signtool sign / f myCert.pfx / p xxx / t http://timestamp.comodoca.com/authenticode driver.sys

どちらが成功しました。signtoolを使用して確認すると、次の情報が届きました。

確認中:driver.sysファイルのハッシュ(sha1):9A ... 7F

Signing Certificate Chain:
    Issued to: XXX
    Issued by: xxx
    Expires:   Sat Dec 31 16:59:59 2039
    SHA1 hash: 12...46

The signature is timestamped: Sun Jun 10 03:35:21 2012
Timestamp Verified by:
    Issued to: UTN-USERFirst-Object
    Issued by: UTN-USERFirst-Object
    Expires:   Tue Jul 09 11:40:36 2019
    SHA1 hash: E1...46

        Issued to: COMODO Time Stamping Signer
        Issued by: UTN-USERFirst-Object
        Expires:   Sun May 10 16:59:59 2015
        SHA1 hash: 3D...C8

Successfully verified: driver.sys

Number of files successfully Verified: 1
Number of warnings: 0
Number of errors: 0

ただし、そのためのサービスを作成しようとすると、次のようになります。

sc create ncd binPath = C:\ Windows \ System32 \ drivers \ driver.sys type = kernel

(binpathが存在することが確認されます)、サービスが作成されますが、約10〜20秒後、「Windowsにはデジタル署名されたドライバーが必要です」という迷惑なダイアログとともに「ProgramCompatibilityAssistant」が表示されます。

プログラム互換性アシスタント

何が得られますか?署名されていることが証明されています。私はこのプロセスを3回試しましたが、運がありませんでした。サービスを開始しようとしましたが、この問題を参照するBCコードを含むBSODを取得します(署名されていないドライバーはXP / 32ビット7で問題なく動作します)。

4

1 に答える 1

0

ここで見つけることができるいくつかの有用なドキュメント: http://msdn.microsoft.com/en-us/library/windows/hardware/dn170454(v=vs.85).aspx

両方の手順が必要であると Luke が述べたように、提供されたリンクは手順 2 を説明しています。Microsoft から取得した相互認証を使用して、これらのドライバーに署名する必要があります。署名は Win SDK ツールを使用して行われます。

于 2014-01-10T08:58:53.050 に答える