[解決済み] .NETアセンブリに署名しないのは何か問題がありますか?
質問
私の同僚の一人は、アセンブリに署名することにとても熱心です。彼は文字通り何でも署名しようとします。私たちが署名されていない Microsoft からのアセンブリを使用するときでさえ、彼はソース コードを取って署名し、他の開発者に自分のコピーを代わりに使用するように頼みます。
私は、アセンブリに署名することの背後にある基本的な考え方を理解できます。つまり、私たちがソフトウェア開発会社であるなら、顧客にいくつかの .NET ライブラリをリリースする前に、私たちのアセンブリに署名すべきです。
しかし、私たちは主に自分たちで使用するための Web アプリケーションを開発しており、私たちが使用するすべてのアセンブリに署名することの意味がわかりません。
私はここで何かを見逃しているのでしょうか?
どのように解決するのですか?
信頼できる環境内で使用されるアセンブリに署名することは、私には過剰なことのように聞こえます。
署名付きアセンブリの興味深い点は、暗号的に検証する必要があるため、署名なしのアセンブリよりも読み込みに若干時間がかかるということです。
アセンブリに署名するためには、それに依存するすべてのアセンブリも署名されなければなりません。 私の推測では、このことが、同僚がすべてに署名することを望む一因になっていると思います。
EDIT この回答を書いてから、賛成派と反対派の両方がほぼ同等の支持を得ていることがわかります。正解がないのは明らかです。
この編集を強要したポイントは、今日、私たちはNuGetから非常に多くのオープンソースライブラリを取得しており、それらの多くはまったく署名されていないということです。アセンブリに署名したい場合、すべての依存関係も署名する必要があります。署名されているオープンソースライブラリの多くは、署名に使用される秘密鍵がソースリポジトリで一般に公開されています。
すべてのものと同様に、トレードオフがあります。プライベートな環境で働いている私の経験では、署名の利点はほとんど理論的なものです。 ユーザー289100 が言及しているように)、政府機関がコードを変更することを懸念しているのでなければ、署名がわずかな努力のように見えるほど、インフラの多くのレベルについて神経質になる必要があります。そうでなければ、すべてのものに署名しなければならないことから連鎖的に発生する課題の量は、それに見合うものとは思えません。しかし、あなたの環境には異なる要件があるかもしれませんし、あなたがマゾヒストである可能性もあります。
以下もご参照ください。 Teun D さんの回答 を参照してください。
関連
-
[解決済み】プラットフォームが同じでも「不正なフォーマットでプログラムを読み込もうとしました。
-
[解決済み】XAMLにSystem.Stringを埋め込む
-
[解決済み] スマートクライアント・ソフトウェアファクトリーの体験談
-
[解決済み] SQL Server Compact EditionデータベースのLINQ to SQLで、"Row not found or changed "例外を解決するにはどうすればよいですか?
-
[解決済み] .Netの配列のLongLengthの目的は何ですか?
-
[解決済み] 文字列から数字を抽出する正規表現
-
[解決済み] .net の OOM 問題を解決する必要があります。
-
[解決済み] MemoryStreamから文字列を取得する方法は?
-
[解決済み] Visual Studioの「Any CPU」ターゲットはどういう意味ですか?
-
[解決済み] .NET 4.0 プロジェクトで .NET 2.0 混合モード アセンブリを参照するために必要な「追加設定」は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Solved] ファイル *.mdf をデータベースとしてアタッチできない
-
[解決済み] CLSID {XXXX} を持つコンポーネントの COM クラスファクトリの取得は、次のエラーにより失敗しました: 80040154。
-
[解決済み] VB.NETでプログラムパスを取得する?
-
[解決済み] <Database> コンテキストを支えるモデルが、データベース作成後に変更されました。
-
[解決済み] Windowsイベントログで参照される「フレームワークのバージョン」とは何ですか?
-
[解決済み] LINQ: フィルタリング基準で SingleOrDefault と FirstOrDefault() を使用する場合
-
[解決済み] 文字列から数字を抽出する正規表現
-
[解決済み] パッケージのダウングレード警告を検出(dotnet core, vs 2017)
-
[解決済み] AssemblyVersion、AssemblyFileVersion、AssemblyInformationalVersionの違いは何ですか?
-
[解決済み] MemoryStreamから文字列を取得する方法は?