2009-08-25 74 views
5

我想了解一些有關代碼簽名的最佳做法。我們有一個基於Eclipse的應用程序,並認爲適合簽署我們的插件。這提出了很多問題:代碼簽名作爲構建過程的一部分

  • 私鑰可以/應該在 源代碼管理?

  • 我們是否應該將代碼作爲 我們每晚的構建過程或作爲我們發佈過程的 的一部分簽名?

  • 代碼應該自動簽署 還是有原因 爲什麼這應該是手動步驟?

我的傾向是說,「是的」,「晚間」,並將「自動」,但我可以看到一個參數僅供簽署發佈的產品。我甚至可以提出SQA應該在驗證它之後簽署代碼的論點,儘管這會真正混淆我們的發佈過程。

其他人如何管理這個?

回答

7

這取決於你想要你的私鑰的安全程度,它可能不是你希望有源訪問的臨時員工有權訪問的東西。

在我的工作中,我們執行以下操作:

「測試牌」二進制文件我們日常的一部分與鍵選中版本。這需要測試根證書在機器上以信任二進制文件,但如果這些位在公司外部署,則它們將不可信。

每週(和外部發布),我們用真正的密鑰簽名。這是通過一個單獨的,有點手動的過程完成的。只有少數人可以使用密鑰來簽署產品。

3

我可以告訴你我是如何看到這是在一個大公司完成的。單個開發人員可以構建代碼,但他們無法簽名。這將是一個私人建設。 Contiguos集成機器將每夜建立使用存儲在構建機器密鑰庫中的密鑰簽名,這將是由公司證書頒發機構(即,僅在公司內部信任的密鑰)簽署的測試密鑰。官方版本只能由受控機器簽署,由官方全球可信機構簽署,簽名密鑰存儲在控制訪問室的硬件模塊中。

這個想法是,一個私鑰應該真的只有一個副本在世界(最多一個額外的託管)。密鑰的全部價值來源於其隱私,而不是其他任何東西。這個時刻對你的整個組織來說是可用的,就像把它放在海盜灣上一樣。

相關問題