Keys
使用使用者 + 保管人私鑰加密數據
我希望能夠擁有一個私人使用者密鑰(系統生成),如果被破壞,它會有效地使所有使用者數據無法恢復。該密鑰將在整個系統中使用,以保護使用者的數據。我們不必在所有系統中實施和維護集成來刪除使用者的敏感數據,我們可以只刪除密鑰,使數據變得無用。但是,這樣做的問題是沒有粒度:系統有多個保管人,每個保管人應該能夠確定誰有權解密消息。
我們一直在使用 KMS 數據密鑰進行信封加密,因此系統必須有權解密信封密鑰,然後才能解密消息。我希望能夠做類似的事情,但結合使用使用者特定的密鑰。
我在周末對此進行了更多思考,並提出了一個更簡單的解決方案。我們將儲存使用使用者密鑰加密的數據。對於傳輸中的加密,我們將使用服務密鑰。使用者數據將在讀取時使用使用者密鑰進行解密,然後在傳輸數據之前使用服務密鑰重新加密。數據消費者將需要有權訪問服務密鑰才能讀取它。這也將滿足通過刪除使用者密鑰使數據不可恢復的要求。