Strong Name Key(snkファイル)が指定されています。このファイルをオープンソースプロジェクトのソース管理に追加する際のセキュリティ上の問題はありますか?オープンソースプロジェクトのソース管理に厳密な名前キーを追加するセキュリティ上の問題はありますか?
答えて
簡単な答えは、はいといいえです。これは、あなたが最初にあなたのアセンブリに署名する強い名前であるという目的に依存します。
Strong-Name SigningのMSDNページは、2つの目的をかなりよくまとめています。
厳密な命名は、アプリケーションまたはコンポーネントに 他のソフトウェアがそれを明示的に参照するために使用できる一意の識別情報を提供します。たとえば、 強い名前を付けると、アプリケーションの作成者と管理者は、 に、共有コンポーネントに使用する正確なサービスバージョンを指定できます。 これにより、さまざまなアプリケーションで異なるバージョン を指定できるようになり、他のアプリケーションに影響を与えることはありません。さらに、セキュリティ証拠としてコンポーネントの厳密な名前 を使用して、2つのコンポーネント間の信頼関係を確立することができます( )。
公開されているライブラリ(DLL)は、エンドユーザーが使用することを意図している限り、厳密な名前で署名する必要があります。 (実装の詳細などがない限り)
私が見た署名の主な目的は、固有の識別(名前空間が誤って突然衝突することがある)や、 GACこのような場合、最初にキーファイルを意図していないため、キーファイルを公開してもセキュリティ上の意味はありません。信頼/起源の保証はありませんが、一意の識別は依然として有効です。 MSDNページでは主にこのシナリオについて説明します。あなたが組立に署名してはならない時には、および周辺の詳細。
しかし、認証のために、具体的には、アセンブリが要求されたソースから来たものであることを消費者に保証するためにアセンブリに署名する場合、エクソリティック(公開配布された)キーは完全に無効ですこのトラストモデル。つまり、誰でもプロジェクトコードを任意に変更し、アセンブリを正しく再構築して辞めることができ、本質的にあなたの身元を偽ることができます。 MSDNのページでは残念ながらこの使用法は扱われていません(おそらく、セキュリティ戦略の一環としてより広く考慮する必要があるため)が、それでも重要です。
最後に、アセンブリに署名するためにCLR/.NETが使用する2種類のキー証明書ファイルがあることに注意してください。あなたが言及しているように、最初はSNKです。これはパスワードで保護されていません。 2番目はPFXです。これは本当にSNKキーファイルのパスワードで保護されたバージョンです。このパスワードが十分に保護されている限り、オープンソースソフトウェアで保護されたPFXを配布する際のセキュリティ上の問題はありません。です。 Visual Studio(およびコマンドラインキー生成ユーティリティ)はもちろん両方を作成することができます。
- 1. オープンソースプロジェクトに厳密な名前のキーファイルを確保する必要はありますか?
- 2. FakesAssembliesファイルをソース管理に追加する必要がありますか?
- 3. .vcxproj.filterファイルをソース管理に追加する必要がありますか?
- 4. PFXでの厳密な名前付け
- 5. svnソース管理の下にあるビジュアルスタジオプロジェクトの名前を変更
- 6. 厳密な名前のコンテナ名を列挙するCSP
- 7. 参照されたアセンブリ 'DocuSign.eSign'には厳密な名前がありません
- 8. データベース内の主キーと外部キーの総称名または厳密に型指定された名前を選択する必要がありますか?
- 9. 春のバッチ管理にセキュリティを追加
- 10. ロールバックドライバノードの厳密な名前を取得する方法は?
- 11. プログラムで厳密な名前の.NETアセンブリを作成する方法はありますか。
- 12. 厳密にバージョン管理されたWCFサービスネームスペースは、契約と一意である必要がありますか?
- 13. Xcodeのソース管理の問題
- 14. 厳密に計算のタイミングを決めるこのHaskell関数に問題はありますか?
- 15. "厳密に"安全なライブサイトはありますか?
- 16. Windows上でGemfile.lockをソース管理にコミットする必要がありますか?
- 17. Browserify-shim Poltergeist/Phantom.JS厳密モードの問題
- 18. Xcode 4ソース管理に.bundleを追加するには?
- 19. secrets.ymlに直接production_key_baseキーを追加する際にセキュリティ上の欠陥がありますか?
- 20. 既存のプロジェクトのXcodeソース管理に関する問題
- 21. バージョンの展開に関するソース管理の問題
- 22. al.exeを使用して厳密な名前のアセンブリに署名するときの「モジュール名」は何ですか?
- 23. JavaScriptは厳密なページオブジェクトパターンと互換性がありますか?
- 24. コードを理解するソース管理用のマージツールはありますか?
- 25. ソース管理下の製品にVisual Studioリファレンスを追加する
- 26. どのeclipseプロジェクト/ワークスペースファイルをソース管理に追加する必要がありますか?
- 27. オープンソースプロジェクト管理ソフトウェア
- 28. 私のsessions_controllerのデータ管理コードに問題があります
- 29. 厳密なモードのみをサポートするjs環境はありますか?
- 30. C++/CLI DLLに鍵ペアがありますが、厳密な名前検証に失敗します
また、この回答を見て、PFXキーファイルを適切に推測したい場合もあります。 –
Noldorin
そして 'sn.exe'は、コマンドラインから実行している場合に必要な強力な名前の作成/操作ユーティリティです。これはかなりの機能を提供しますが、そのほとんどはおそらく決して必要としません。 http://msdn.microsoft.com/en-us/library/k5b5tt23%28v=vs.100%29.aspx – Noldorin