2008-08-29 13 views
45

私は、5つのプロジェクトからなるソリューションを用意しています。それぞれのプロジェクトは、アセンブリを分割するようにコンパイルされています。今私はそれらにコード署名していますが、私は間違っていると確信しています。ここでベストプラクティスは何ですか?.NETアセンブリに署名するベストプラクティス?

  • それぞれ異なるキーで署名します。パスワードが異なることを確認してください。
  • それぞれ異なるキーで署名してください。あなたがしたい場合
  • 同じキーを持つ各完全
  • 何か他

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

  • 答えて

    42

    唯一の目的は、FxCopがあなたに叫ぶのを止めることだとすれば、ベストプラクティスを見つけたことになります。

    アセンブリに署名するベストプラクティスは、目的とニーズに完全に依存するものです。私たちは、あなたの意図した展開のようなより多くの情報が必要になります。

    • 個人使用
    • については、企業ネットワークのPC上で使用するためには、SQL Serverで実行しているWebサーバー
    • 上で実行するクライアントアプリケーション
    • ようだ
    • インターネットでダウンロード
    • シュリ​​ンクラップでCDで販売されています
    • サイバーニックの脳に直接アップロード

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

    更新:software signing certificate from a certificate authorityを入手した場合、これはWeb経由で展開するときのエンドユーザーにとってどのように役立ちますか。その後、彼らがあなたのアセンブリをダウンロードすると、Domenic's Software Emporiumから来ていることを確認することができます。途中で改ざんされたり壊れたりしていません。インストーラがダウンロードされると、署名することも必要です。これにより、一部のブラウザでは、不明なソースから取得されたという警告が表示されなくなります。

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

    2

    署名は、アセンブリを一意に識別するために使用されます。詳細はHow to: Sign an Assembly (Visual Studio)です。

    アセンブリの名前が異なる限り、同じキーを使用することをお勧めします。

    +0

    署名は、アセンブリを一意に識別しません。秘密鍵で署名すると、アセンブリのソースが一意に識別されます。アセンブリ名、バージョン、公開鍵の組み合わせは、GAC内のアセンブリを一意に識別するために必要です。 –

    3

    実行可能ファイルが厳密な名前のアセンブリを必要としているために役立ちます。それはあなたのもののために別のアセンブリに悪意をもって置き換えた人を止める。また、ユーザーは、厳密な名前に基づいてアセンブリのCAS権限を許可することがあります。

    私はあなたが.pfxファイルを配布する必要があるとは思わないが、あなたはアセンブリを辞めるためにそのファイルを保管しておいてください。

    7

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

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

    2

    PFXファイルに秘密鍵が含まれているため、秘密を保持することが重要です。

    このキーが他の人に公開されている場合は、誰でもあなたのように偽装するアセンブリやプログラムに署名できます。

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

    実際には、新しい証明書が取得されますが、同じ情報が使用されます。

    この証明書は(おそらく毎年)支払う必要がありますが、certificate authorityは効果的にあなたの存在を保証します(パスポートまたは運転免許証と国内法案のコピーをFAXした後)。