如何在分布式、可伸縮環境中保護你的秘密?
去年十月份,在阿姆斯特丹 速度會議 上,來自 Fugue的首席安全工程師 Alex Schoof 解釋 了如何在一個分布式、可伸縮的環境中管理秘密,比如云平臺。Schoof提議將秘密管理系統分解成多個組件,每個組件都有自己特定的功能,并將彼此孤立,以減少必要的表面接觸。
據 Schoof所言,該設計是考慮了5項原則進行大規模秘密管理后的結果。秘密管理系統應該嚴格依賴認證、授權和訪問控制策略,以保證每個客戶只能訪問秘密的一個子集。
Schoof強調,該系統應該易于使用,允許快速訪問和更新到期的秘密。有一點很重要,應該避免讓用戶以編碼或者純文本文件的形式通過硬編碼或者存儲秘密圍繞系統工作,因為這會破壞系統的目的。因為你的系統依賴秘密,因此Schoof建議實施高可用性架構,避免秘密管理系統發生故障時所有系統的停機時間。
Schoof稱被加密在數據庫中的代碼為“秘密庫(secret store)”,稱獨立存儲在另一個數據庫中用于加密和解密的密匙為“主密匙庫(master key storage)”。這兩個組件是彼此孤立的,只能通過“秘密服務(secret service)”進行訪問。
任何客戶端、用戶或者計算機需要訪問秘密時,必須將請求發送至秘密服務。秘密服務可以是一個網絡服務,需要客戶端的身份認證和驗證客戶端的權限。該服務從秘密庫中請求服務,并從主密匙庫中請求相應的密匙。然后用密匙解密秘密,并將秘密發送回客戶端。
你還需要一個管理界面來配置系統。這可以是個網站、圖形用戶界面程序或者一組命令行工具,用來授權或者撤銷授權,同時配置訪問控制策略。秘密服務應該允許能夠提供身份認證的所有客戶端的訪問,與秘密服務形成鮮明反差的是,管理界面、主密匙庫和秘密庫必須要有嚴格的訪問策略。它們應該是,例如,只能通過特定的網絡進行訪問,并且需要額外級別的身份認證,允許訪問的用戶數量也是有限的。
Alex Shoof發表的“ Managing systems at scale ”演講,現場擠滿了人,并且他的演講是速度會議上通過 O’Reilly移動應用或者速度會議網站投票結果中評價最高的演講之一。
查看英文原文: Keeping Your Secrets Safe in a Distributed and Scalable Environment
來自: http://www.infoq.com/cn/news/2015/12/safe-secrets-at-scale