2009-05-08 20 views
15

オープンソースプロジェクトのコンパイル済みアセンブリをGACにインストールするスターターキットを作成して、テンプレート内のアセンブリを参照しやすくしています。彼らはGACに入っているので、署名をする必要があります。オープンソースプロジェクトに厳密な名前のキーファイルを確保する必要はありますか?

キーファイルを保護して保護する必要がありますか、または開いたままにしてファイルをソース管理に含めることはできますか?

答えて

11

厳密な名前の署名は、いくつかの目的を持っている(プログラムの改ざんに対する実際の保護のためではない、しかし一般的な誤解をされて) - お使いの場合には、一意の特定のバージョンを識別(および検証)のための強力なキーの使用法は、 GACによって要求される特定のアセンブリです。他のアセンブリでのなりすましを防止している他の使用方法は、この場合は必要ではないようです(私が間違っている場合は修正してください)。この理由から、私は、鍵を開いたままにして(パスワードで保護されていない)、ファイルをソース管理に含めることは完全に容認できると考えています。私が見る限り、あなたは鍵をパスワードで保護することによって、あなたが望んでいないものは止めないでしょう。ただし、セキュリティコンテキストの詳細を提供できる場合は、そのビューを変更する必要があります。

また、一般的に厳密な名前署名を正しく使用する方法の詳細については、this MSDN articleを参照してください。

+1

アセンブリを改ざんすることに対する保護についての誤解を詳しく説明できますか?これは私には正しいとは思われません(http://stackoverflow.com/questions/369248/can-strong-naming-an-assembly-be-used-to-verify-the-assembly-author/369477#369477を参照)。多分私は何かを逃している?しかし、強力な名前だけでは、(Authenticodeのような証明機構が必要な)権限を検証することは明らかに不可能です。 –

+0

@divo:正確ではないものは何ですか?強力なキー署名の問題は、公開鍵のソースを検証できないため、別の作成者が再生成し、assmeblyに同意できることです(改ざんされる可能性があります)。リンクされた答えが私の意見と一致しないと思うなら(私はそれがないと確信しています)、それを注意深く読み直してみてください(Mehrdadの答えと一緒にも良いです)。ここには、決して分かりにくい微妙なものがいくつかあります。 – Noldorin

2

ビルドを簡単にし、人々が自分のキーを作成して使用するのを避けるために、ソース管理に「開発」キーを含めるといいでしょう。ソース管理の鍵は誰もが署名することができるので意味がありません。オープンソースプロジェクトのビルドに署名したい人は、自分が好きな方法で管理できるキーに置き換えることができます。

(誰にも与えられない)安全な鍵で署名されたダウンロード用のビルドを提供することもできますが、信頼できるバイナリを使いたい人には便利です。あなたは信頼できる? :)

関連する問題