2010-07-23 162 views
2

管理與特定源代碼相關的加密密鑰的規範方法是什麼? (例如,與特定程序強烈關聯的SSH或RSA密鑰對)。管理加密密鑰的好方法?

由於顯而易見的原因,我不願意將其檢入版本控制,但我不希望它們僅駐留在少數人的本地硬盤上。

回答

2

你可以把它們加入到版本控制中,只讓少數人知道密碼。這有一個優點,即它們與代碼一起存儲,您可以輕鬆更新它們,但這些文件對攻擊者無用(提供您使用強密碼)。

1

工業實力的答案是使用Hardware Security Module(HSM)。

稍微不那麼花哨的答案是保持公司的印刷和/或電子副本安全。

0

當我負責管理我們的軟件簽名密鑰時,我將GPG密鑰保存在我們網絡中的兩臺主機上,具有出色的主機安全性和良好的防火牆。我燒了兩份CD副本:一份給我們的CTO,另一份給我們的首席執行官。 (我剛剛告訴他,「不要丟失這張光盤,不要放棄它。」保持簡單:)

密碼對於密鑰是不同的。我記得那個。如果我失蹤的話,那些會爲我填補的同事知道密碼。我要求我們的首席執行官和首席技術官使用密鑰將密碼遠離CD。

當然,這是我們每天最多使用一次的密鑰,而且在我們發佈安全更新時,通常不會每天或數週。如果您的需求與我們的需求不同,您可能需要做其他事情。

1

非常好的問題,並沒有絕對正確的答案海事組織。
問題要問自己:
1)什麼是關鍵的成爲聞名的影響
2)什麼是公司
3)如何重要的是它的工程師能夠產生釋放的信任水平構建

我已經使用多年

的想法包括:

在源代碼控制庫,但與存儲限制「secure_group」訪問
優點

  • 重點增殖減少
  • 訪問權限由 SCM管理員

缺點

  • 發佈版本僅限於那些 與安全的權限控制
  • 需要安全組成員的絕對信任

構建系統注入的密鑰 標準構建包含虛擬密鑰。
發佈版本被當 建築規範

  • 密鑰管理 僅限於構建服務器+管理員它取代或注入生產鍵

    優點

    • 的工程師沒有瓶頸的生成服務器生成

    缺點
    - 所有數據/系統必須支持虛設鑰匙
    - 建立服務器成爲瓶頸/關鍵任務組件

    自定義DRM包
    創建自己的密鑰包,即RSA加密的首部與會話生成的對稱密鑰來加密的關鍵數據。 DRM方法還允許你做的東西,比如集合包到期時間或使用的最大數量

    優點

    • 密鑰可以被封裝
    • 鍵可以 安全地分發
    • 審計跟蹤的關鍵組件每個用戶 生成與發佈/私鑰對

    缺點需求
    - 大量的自定義代碼
    - 所有構建系統需要重新設計,以讀取密鑰包數據 - 密鑰包需要的lib/API提取,因此工程師仍然可以讀取關鍵數據

    還有其他的選擇如安全加密服務器或雙通認證網站來檢索關鍵數據。

    根據我的經驗,沒有完美的解決方案,雖然我會從社區

    希望幫助

    聽取建議或意見很感興趣