Dot-Net

簽署 .NET 程序集的最佳實踐?

  • August 29, 2008

我有一個由五個項目組成的解決方案,每個項目都編譯為單獨的程序集。現在我正在對它們進行程式碼簽名,但我很確定我做錯了。這裡的最佳做法是什麼?

  • 用不同的密鑰對每個簽名;確保密碼不同
  • 用不同的密鑰對每個簽名;如果需要,請使用相同的密碼
  • 使用相同的密鑰對每個簽名
  • 完全不同的東西

基本上我不太確定“簽名”對他們有什麼作用,或者這裡的最佳實踐是什麼,所以更普遍的討論會很好。我真正知道的是FxCop對我大喊大叫,通過點擊“簽署此程序集”複選框並使用 Visual Studio (2008) 生成一個 .pfx 文件很容易解決。

如果您的唯一目標是阻止 FxCop 對您大喊大叫,那麼您已經找到了最佳實踐。

簽署程序集的最佳實踐完全取決於您的目標和需求。我們需要更多資訊,例如您的預期部署:

  • 供個人使用
  • 用於公司網路 PC 作為客戶端應用程序
  • 在 Web 伺服器上執行
  • 在 SQL Server 中執行
  • 通過網際網路下載
  • 以收縮包裝的 CD 形式出售
  • 直接上傳到控制論大腦
  • 等等。

通常,您使用程式碼簽名來驗證程序集是否來自特定的受信任來源並且未被修改。 因此,每個具有相同密鑰的人都可以。 現在,如何確定信任和身份是另一回事。

更新: 如果您從證書頒發機構獲得了軟體簽名證書,那麼當您通過 Web 進行部署時,這對您的最終使用者有何好處。然後,當他們下載您的程序集時,他們可以驗證它們來自Domenic 的 Software Emporium,並且在此過程中它們沒有被修改或損壞。您還需要在下載安裝程序時對其進行簽名。這可以防止某些瀏覽器顯示它已從未知來源獲得的警告。

請注意,您需要為軟體簽名證書付費。你得到的是證書頒發機構成為可信的第三者,驗證你是你所說的那個人。這是因為信任網路可以追溯到安裝在其作業系統中的根證書。有幾個證書頒發機構可供選擇,但您需要確保目標作業系統上的根證書支持它們。

引用自:https://stackoverflow.com/questions/35373