如何从密文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密钥?
我问,因为我在读取加密的内容时遇到问题,我想验证它是否使用我认为的密钥加密。
答案 0 :(得分:1)
我担心你无法做到这一点。 encrypt
API使用客户主密钥(CMK)来加密数据,并且该密钥永远不会离开AWS。除非您在某处保存了密钥ID(这不是一个很好的做法),否则您将无法从加密文件中获取密钥ID。
如果您拥有对AWS控制台的管理访问权限,可以提供一些帮助:
aws kms decrypt
(假设它们不多,而原始密钥尚未删除); 答案 1 :(得分:0)
是的,您可以使用aws kms decrypt
(将其传递给密文和区域)来获取密钥ID,该密钥不需要密钥ID即可执行解密。有关用于加密的密钥的信息是密文的一部分,因此,KMS将能够获取此信息,并向您返回“纯文本”和“ KeyId”。
答案 2 :(得分:0)
加密的Blob包含对其解密所需的密钥信息。无法确定加密的Blob使用哪个密钥作为加密值的一部分进行加密。 如果您不确定要使用哪个密钥,则必须滚动该值并再次对其进行加密,或者开始尝试一次只能访问一个密钥的权限进行解密。