我有一個數據庫,我打算存儲KMS加密的斑點。有些字段未加密(需要加密),有些字段已經過KMS加密。檢測Blob是否爲AWS KMS加密
查看原始數據,所有KMS加密的東西看起來都有點類似。理想情況下,AWS KMS API或AWS SDK應該有一些像「isEncrypted()
方法,但它不會出現。
有沒有好的辦法來本地檢測我的字段是否被加密,短追趕InvalidCiphertextException
從在decrypt
API?
我有一個數據庫,我打算存儲KMS加密的斑點。有些字段未加密(需要加密),有些字段已經過KMS加密。檢測Blob是否爲AWS KMS加密
查看原始數據,所有KMS加密的東西看起來都有點類似。理想情況下,AWS KMS API或AWS SDK應該有一些像「isEncrypted()
方法,但它不會出現。
有沒有好的辦法來本地檢測我的字段是否被加密,短追趕InvalidCiphertextException
從在decrypt
API?
我認爲你的觀察是,加密的東西看起來有點同樣是有效的,它是有效的,因爲在體內,第一部分實際上是用於加密的密鑰名稱。這是KMS如何知道如何解密沒有你指定的密鑰(所以基本上當你加密你得到的東西回來這就是:關鍵描述+實際加密的東西)
現在,問題是:你真的想依靠這個觀察來確保某些東西是否被加密?你想在運行時做到這一點?
就isEncrypted方法而言:與調用解密有什麼不同?這仍然是一個方法調用。
真實的答案是:您不應該依賴KMS來加密/解密您存儲的東西。你應該依靠KMS來加密/解密你用來加密/解密你的東西(即所謂的信封加密)的密鑰。如果您通過KMS直接解密/加密,您將受到可重新啓動KMS的電話數量以及您想要加密的最大大小的限制。
如果您切換到信封加密,只需嘗試解密並確定內容是否加密,應該是微不足道的。這就是說,我會建議實際上對加密和執行的內容非常嚴格(即不要猜測)。
因爲我們在這裏:還看爲KMS
重新加密上下文:「你不應該依賴KMS加密/解密您存儲的東西。」你能更多地告訴(鏈接)我嗎? –
確定:http://docs.aws.amazon.com/kms/latest/developerguide/workflow.html – Mircea