46

5 つのプロジェクトで構成されるソリューションがあり、それぞれが個別のアセンブリにコンパイルされます。現在、コード署名を行っていますが、間違っていると確信しています。ここでのベストプラクティスは何ですか?

  • それぞれに異なる鍵で署名します。パスワードが異なることを確認してください
  • それぞれに異なる鍵で署名します。必要に応じて同じパスワードを使用します
  • それぞれに同じ鍵で署名する
  • まったく別のもの

基本的に、「署名」が彼らに何をするのか、またはベストプラクティスがここにあるのかよくわからないので、より一般的な議論が良いでしょう. 私が本当に知っているのは、FxCopが私に怒鳴ったということだけです。「このアセンブリに署名する」チェックボックスをクリックし、Visual Studio (2008) を使用して .pfx ファイルを生成することで簡単に修正できました。

4

5 に答える 5

44

唯一の目的が FxCop の怒鳴り声を止めることである場合は、ベスト プラクティスを見つけたことになります。

アセンブリに署名するためのベスト プラクティスは、目的とニーズに完全に依存するものです。意図した展開などの詳細情報が必要です。

  • 個人使用の場合
  • 企業ネットワーク PC でクライアント アプリケーションとして使用する場合
  • Web サーバー上での実行
  • SQL Server での実行
  • インターネット経由でダウンロードした
  • シュリンクラップのCDで販売
  • サイバネティック脳に直接アップロード
  • 等。

通常、コード署名を使用して、アセンブリが特定の信頼できるソースからのものであり、変更されていないことを確認します。 したがって、それぞれ同じキーで問題ありません。 その信頼とアイデンティティがどのように決定されるかは、別の話です。

更新: Web 経由でデプロイする場合に、これがエンド ユーザーにどのように役立つかは、認証局からソフトウェア署名証明書を取得した場合です。次に、アセンブリをダウンロードすると、それらがDomenic の Software Emporiumからのものであり、途中で変更または破損されていないことを確認できます。また、ダウンロード時にインストーラーに署名する必要があります。これにより、一部のブラウザーが不明なソースから取得されたという警告を表示するのを防ぎます。

ソフトウェア署名証明書の料金を支払うことに注意してください。得られるのは、認証局が、あなたが誰であるかを検証する信頼できる第三者になることです。これが機能するのは、オペレーティング システムにインストールされているルート証明書にまでさかのぼる信頼の網があるためです。選択できる証明機関はいくつかありますが、それらがターゲット オペレーティング システムのルート証明書によってサポートされていることを確認する必要があります。

于 2008-08-29T21:56:56.983 に答える
8

署名されたアセンブリと署名されていないアセンブリの最も明白な違いは、ClickOnce アプリケーションにあります。署名しないと、ユーザーが最初にアプリケーションを実行したときに、恐ろしい「不明な発行元」の警告ダイアログが表示されます。信頼できる機関からの証明書で署名した場合は、それほど怖くないダイアログが表示されます。私の知る限り、自分で生成した証明書で署名しても、「不明な発行元」の警告には影響しません。Comodo の Instant SSLには、ダイアログの例があります。

いくつかの微妙な違いがあります。複数のアプリケーションで共有できるグローバル アセンブリ キャッシュ (GAC) にアセンブリをインストールする前に、アセンブリに署名する必要があります。署名はコード アクセス セキュリティ (CAS) に不可欠ですが、CAS を機能させることができる人を見つけられませんでした。GAC と CAS の両方が、自分で生成した証明書で問題なく動作することを確信しています。

于 2008-09-05T20:26:28.417 に答える
3

実行可能ファイルは厳密に名前が付けられたアセンブリを期待しているため、これは役立ちます。これにより、誰かが悪意を持って別のアセンブリを自分のアセンブリに置き換えることを防ぎます。また、ユーザーは、厳密な名前に基づいてアセンブリCAS権限を付与する場合があります。

.pfxファイルを配布するべきではないと思います。アセンブリを再署名するために安全に保管してください。

于 2008-08-29T22:11:08.650 に答える
3

PFX ファイルには秘密鍵が含まれているため、秘密にしておくことが重要です。

そのキーが他のユーザーに公開されると、誰でもあなたになりすましたアセンブリまたはプログラムに署名できます。

自分の名前を (Windows から見て) アセンブリに関連付けるには、信頼できる機関によって署名されたデジタル証明書 (自分の名前を含む PFX ファイルの一部) を取得する必要があります。

実際には新しい証明書を取得しますが、情報は同じです。

この証明書の費用は (おそらく毎年) 支払う必要がありますが、証明機関は事実上、あなたの存在を保証します (パスポートまたは運転免許証のコピーと国内請求書をファックスで送信した後)。

于 2008-09-11T09:23:27.323 に答える
2

署名は、アセンブリを一意に識別するために使用されます。詳細については、「方法: アセンブリに署名する (Visual Studio)」を参照してください。

ベスト プラクティスとして、アセンブリの名前が異なる限り、同じキーを使用しても問題ありません。

于 2008-08-29T22:00:01.373 に答える