5

私は、JSON.NETなどのさまざまなサードパーティライブラリを使ってアプリケーションを構築しました。JSON.NETなどのサードパーティのDLLにデジタル署名する必要がありますか?

私のアプリケーションを構成するすべてのDLLがサードパーティ製のものを含め、デジタル署名されていることを確認したいと思います。これらが著者によって署名されていないことを考えれば、私はサードパーティのものに自分自身で署名することはできますか?

答えて

2

あなたは厳密な名前付けやauthenticode署名について話していますか?後者の問題は、Authenticode署名されたアセンブリがロードされ、.NETが証明書を検証し、いくつかの構成(たとえば、OCSPをチェックする必要があり、到達可能でない場合など)に数十秒かかる場合があります。このため、AuthenticodeとX.509証明書でアセンブリを署名しなくてはなりませんでした。

もう1つの欠点は、署名されたアセンブリが何らかの形でマルウェアによって使用されている場合、ウイルス対策企業の有能でない専門家が(a)アセンブリをマルウェアとしてマークし、さらに悪いことに、コード署名証明書を発行した証明機関に送信し、証明書は取り消されます。

.NETの厳密な名前付け(証明書のない鍵ペア)は、あなたの私的なビジネスです。

更新:Authenticodeは通常、PE形式のファイル(EXEおよびDLL)、SYSおよびCABに適用されます。強力なネーミングは純粋な.NETテクニックです。

Authenticode署名について警告メッセージが表示されます。システムポリシーが署名付きアプリケーションの実行のみを許可するように設定されている場合(アプリケーションのEXEにも署名が必要な場合)には、インストーラへの署名が必要です(確かです)。

+0

@EugeneMayevskiEldoS:ありがとう。えー、私は分かりません - 違いは私が知っていたものではありません。私がしようとしているのは、「このアプリケーションは署名されていません」という警告を出さずに、自分のアプリケーションをインストール/実行させることだけです。 –

+0

DLL自体ではなく、インストーラに署名してください。 –

+0

あなたの質問に答えるためのアップデートを追加しました –

5

インターネットで同じ質問に対する回答を見つけようとしました(失敗した)。

私が結果として行ったことは、GoogleとAdobeがどのように製品を提供し、サードパーティのものも含めてフォルダ内のすべてのバイナリが署名されていることが確認されました。

例のカップル 1. Google Chromeには、Adobeによって著作権が保護されていますが、「Google Inc.」によってデジタル署名されたpepflashplayer.dllが含まれています。 2. Adob​​e Readerにはicudt40.dllが含まれていますが、これはIBMの著作権で保護されていますが、「Adobe Systems」によってデジタル署名されています

したがって、アプリケーションを構成するすべてのバイナリ - パーティーのもの。それはあなたの顧客のマシン上で起こった場合、それが回避するか、少なくとも簡単に改ざんを検出するのに役立つので意味があります。

関連する問題