2016-11-14 119 views
2

我已將密鑰上傳到AWS Key Management Service。使用它我可以加密事物,然後使用該服務解密它們。但是,我想讓我放心,我可以使用我放入KMS的密鑰(證明它是我的密鑰)來解密Ciphertext Blob,並且爲了備份目的(如果KMS失敗)。使用客戶提供的密鑰解密來自AWS KMS的密文blob

我找不到KMS使用的加密格式和方法。

任何人都可以提供示例(openssl/python等)。

+0

檢查:http://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/example-code.html –

+0

謝謝 - 這實際上可能是一個更好的方式來實現我想要的東西 - 一次使用AWS和一次使用服務器上的公用密鑰加密密鑰兩次;然而,它仍然沒有解釋加密KWS如何在不使用他們的服務的情況下將隨機字符串+客戶密鑰I提供到CipherText blob(或如何將其反轉)。 –

回答

0

我發現的有關KMS密文blob的唯一信息是this document。從第23頁的底部開始,它說:

每當元素在CMK下加密時,生成的對象就是客戶密文。密文將包含兩部分:未加密的頭部(或明文部分),由經過驗證的加密方案 作爲額外的驗證數據和加密部分進行保護。明文 部分將包含HSA備份密鑰標識符(HBKID)。

我找不到任何更具體的格式,甚至沒有:

  • 哪個密文Blob的部分是加密部分?
  • 使用了什麼初始化矢量(IV)?
  • 有沒有使用密鑰派生函數(KDF)?

但是,如果要在KMS失敗的情況下進行備份,則在使用envelope encryption時,僅備份數據密鑰就足夠了。最後,這是解密數據所需的唯一密鑰。當然,存儲這種密鑰備份必須與存儲導入的密鑰資料時一樣謹慎。

相關問題