从KMS CipherTextBlob获取KMS密钥
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从KMS CipherTextBlob获取KMS密钥相关的知识,希望对你有一定的参考价值。
如何从密文blob中获取KMS密钥信息?
以aws网站为例
aws kms encrypt --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --plaintext fileb://ExamplePlaintextFile --output text --query CiphertextBlob | base64 --decode > ExampleEncryptedFile
有没有办法查看ExampleEncryptedFile并找出用于加密它的KMS密钥?
我问,因为我在读取加密的内容时遇到问题,我想验证它是否用我认为的密钥加密。
答案
我担心你无法做到。 encrypt
API使用客户主密钥(CMK)来加密数据,并且该密钥永远不会离开AWS。除非您在某处保存了密钥ID(这不是一个很好的做法),否则您将无法从加密文件中获取密钥ID。
如果您具有对AWS控制台的管理访问权限,那么可以提供一些帮助:
- 字面上尝试使用您拥有的主密钥调用
aws kms decrypt
(假设它们并不多,而原始密钥尚未删除); - 查看您的CloudTrail日志,如果您大致了解使用它的时间(假设您有CloudTrail enabled on your KMS operations),您可能能够找出使用了哪个密钥。
另一答案
是的,您可以使用aws kms decrypt
(传递密文和区域)获取密钥ID,该密码不需要密钥ID来执行解密。有关用于加密的密钥的信息是密文的一部分,因此,KMS将能够获取此信息并返回“Plaintext”和“KeyId”。
另一答案
加密的blob包含解密它所需的密钥信息。无法确定加密blob加密的密钥是加密值的一部分。如果您不确定使用了哪个密钥,则必须滚动该值并再次对其进行加密,或者开始尝试使用一次只能访问一个密钥的权限进行解密。
以上是关于从KMS CipherTextBlob获取KMS密钥的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Python Jupyter Notebook 通过 KMS 加密从 S3 读取文件