.NET アセンブリに署名するためのベスト プラクティスは何ですか?
-
09-06-2019 - |
質問
5 つのプロジェクトで構成されるソリューションがあり、それぞれが個別のアセンブリにコンパイルされます。今、私はそれらにコード署名をしていますが、やり方が間違っていると確信しています。ここでのベストプラクティスは何ですか?
- それぞれに異なるキーで署名します。パスワードが異なることを確認してください
- それぞれに異なるキーで署名します。必要に応じて同じパスワードを使用してください
- 同じキーでそれぞれに署名します
- まったく別のもの
基本的に、「署名」がそれらにどのような影響を与えるのか、またはここでのベストプラクティスが何であるのかがよくわかりません。そのため、より一般的な議論が良いでしょう。私が本当に知っているのはそれだけです FXコップ と怒鳴られましたが、[このアセンブリに署名する] チェックボックスをクリックし、Visual Studio (2008) を使用して .pfx ファイルを生成することで簡単に修正できました。
解決
FxCop があなたに怒鳴るのを止めることだけが目的なら、あなたはベストプラクティスを見つけたことになります。
アセンブリに署名するためのベスト プラクティスは、目的とニーズに完全に依存します。意図した展開などの詳細情報が必要になります。
- 個人使用の場合
- 企業ネットワーク PC でクライアント アプリケーションとして使用する場合
- Webサーバー上で実行
- SQL Server で実行する
- インターネット経由でダウンロードした
- シュリンクラップに包まれたCDで販売されます
- サイバネ脳に直接アップロードされる
- 等。
通常、コード署名を使用して、アセンブリが特定の信頼できるソースからのものであり、変更されていないことを確認します。 したがって、それぞれが同じキーを持っていても問題ありません。 さて、その信頼とアイデンティティがどのように決定されるかは別の話です。
アップデート: Web 経由で展開する場合、これがエンド ユーザーにどのようなメリットをもたらすかは、 認証局からのソフトウェア署名証明書. 。その後、アセンブリをダウンロードするときに、そのアセンブリの送信元を確認できます。 Domenic のソフトウェア エンポリアム, 、途中で変更されたり破損したりすることはありません。インストーラーをダウンロードするときに、インストーラーに署名することもできます。これにより、一部のブラウザで不明なソースから取得されたものであるという警告が表示されなくなります。
ソフトウェア署名証明書の料金を支払うことになることに注意してください。あなたが得るものは、認証局があなたが本人であることを証明する信頼できる第三者となることです。これは、オペレーティング システムにインストールされているルート証明書まで遡る信頼の網によって機能します。選択できる認証局はいくつかありますが、ターゲット オペレーティング システムのルート証明書でサポートされていることを確認する必要があります。
他のヒント
署名付きアセンブリと署名なしアセンブリの最も明らかな違いは、ClickOnce アプリケーションにあります。署名しないと、ユーザーがアプリケーションを初めて実行するときに、「不明な発行元」という恐ろしい警告ダイアログが表示されます。で署名した場合は、 信頼できる機関からの証明書, を選択すると、それほど怖くないダイアログが表示されます。私の知る限り、自分で生成した証明書で署名しても、「不明な発行元」の警告には影響しません。 Comodo のインスタント SSL ダイアログの例があります。
微妙な違いがいくつかあります。複数のアプリケーションで共有できるグローバル アセンブリ キャッシュ (GAC) にアセンブリをインストールするには、アセンブリに署名する必要があります。署名はコード アクセス セキュリティ (CAS) に不可欠ですが、CAS を機能させることができる人は見つかりませんでした。GAC と CAS はどちらも、自分で生成した証明書で問題なく動作すると確信しています。
実行可能ファイルは厳密な名前のアセンブリを予期しているため、これは役に立ちます。これにより、誰かが悪意を持ってあなたのアセンブリを別のアセンブリに置き換えることができなくなります。また、ユーザーは厳密な名前に基づいてアセンブリに CAS アクセス許可を付与することもできます。
.pfx ファイルを配布すべきではないと思います。議会を辞職するために安全に保管しておいてください。
PFX ファイルには秘密キーが含まれているため、秘密にしておくことが重要です。
そのキーが他の人に公開されると、誰でも自分になりすましたアセンブリやプログラムに署名できます。
(Windows の観点から) 自分の名前をアセンブリに関連付けるには、信頼できる機関によって署名されたデジタル証明書 (名前を含む PFX ファイルの部分) を取得する必要があります。
実際には、同じ情報を持つ新しい証明書を取得します。
この証明書の料金は (おそらく毎年) 支払う必要がありますが、 証明する機関 (パスポートまたは運転免許証のコピーと国内請求書をファックスで送信した後)あなたの生存を効果的に保証します。
署名はアセンブリを一意に識別するために使用されます。詳細については、 方法:アセンブリに署名する (Visual Studio).
ベスト プラクティスの観点から言えば、アセンブリの名前が異なる限り、同じキーを使用しても問題ありません。