2011-01-17 30 views
8

私はC++ Windowsアプリケーションを持っています。私はインストーラと実行可能ファイルに署名しますが、私は現在DLL(zlib1.dllなど)に署名していません。それらにも署名するのは大したことではありませんが、誰かがその利益が何であるか説明することができますか?例えば、私のプログラムは、すべての依存関係が署名されていれば、AVまたはファイアウォールソフトウェアと異なるものに見えますか?ユーザーに別の警告が表示されますか?DLLに署名する必要がありますか?

+0

なぜ署名しませんか?すでに証明書をお支払いいただいているため、ビルド中に署名するまでに数秒かかります。なぜそれをスキップしますか? – Tim

+1

ティム、私はおそらくそれをとにかく行うつもりです、私は主にその効果が何であるか興味があります。 – twk

答えて

6

あなたのプログラムは、AVまたはファイアウォールとまったく違って表示されません。彼らはすでに署名した実行可能ファイルの署名をチェックします。あなたがそれらの署名を読み込む前にあなた自身がそれらを確認するとき、あなたのdllを署名することは最も意味があります。これにより、実行時にすべてのdllの整合性が保証されます。実行時に署名を検証して出荷するすべてのバイナリに署名することをお勧めします。 dllを他の製品で使用する場合は、その製品が真正性と完全性を検証するために署名する必要があります。

+5

暗黙的なリンクはどうですか?その設定で署名を検証する方法はありますか、またはすべてのDLLの読み込みを明示的なリンク(つまりLoadLibraryEx呼び出し)に変換する必要がありますか? –

+1

大きな質問、ブレント。私は答えを知りたいです。 – twk

+1

暗黙的にリンクされたdllのシグネチャを確認することはできませんが、コードが実行される前にdllがロードされるため、署名を検証することはできません。しかし、明示的にリンクするdllを明示的にロードする製品。 – 341008

関連する問題