1. ホーム
  2. .net

[解決済み] .NETアセンブリに署名しないのは何か問題がありますか?

2023-01-23 08:17:47

質問

私の同僚の一人は、アセンブリに署名することにとても熱心です。彼は文字通り何でも署名しようとします。私たちが署名されていない Microsoft からのアセンブリを使用するときでさえ、彼はソース コードを取って署名し、他の開発者に自分のコピーを代わりに使用するように頼みます。

私は、アセンブリに署名することの背後にある基本的な考え方を理解できます。つまり、私たちがソフトウェア開発会社であるなら、顧客にいくつかの .NET ライブラリをリリースする前に、私たちのアセンブリに署名すべきです。

しかし、私たちは主に自分たちで使用するための Web アプリケーションを開発しており、私たちが使用するすべてのアセンブリに署名することの意味がわかりません。

私はここで何かを見逃しているのでしょうか?

どのように解決するのですか?

信頼できる環境内で使用されるアセンブリに署名することは、私には過剰なことのように聞こえます。

署名付きアセンブリの興味深い点は、暗号的に検証する必要があるため、署名なしのアセンブリよりも読み込みに若干時間がかかるということです。

アセンブリに署名するためには、それに依存するすべてのアセンブリも署名されなければなりません。 私の推測では、このことが、同僚がすべてに署名することを望む一因になっていると思います。


EDIT この回答を書いてから、賛成派と反対派の両方がほぼ同等の支持を得ていることがわかります。正解がないのは明らかです。

この編集を強要したポイントは、今日、私たちはNuGetから非常に多くのオープンソースライブラリを取得しており、それらの多くはまったく署名されていないということです。アセンブリに署名したい場合、すべての依存関係も署名する必要があります。署名されているオープンソースライブラリの多くは、署名に使用される秘密鍵がソースリポジトリで一般に公開されています。

すべてのものと同様に、トレードオフがあります。プライベートな環境で働いている私の経験では、署名の利点はほとんど理論的なものです。 ユーザー289100 が言及しているように)、政府機関がコードを変更することを懸念しているのでなければ、署名がわずかな努力のように見えるほど、インフラの多くのレベルについて神経質になる必要があります。そうでなければ、すべてのものに署名しなければならないことから連鎖的に発生する課題の量は、それに見合うものとは思えません。しかし、あなたの環境には異なる要件があるかもしれませんし、あなたがマゾヒストである可能性もあります。

以下もご参照ください。 Teun D さんの回答 を参照してください。