从KMS CipherTextBlob获取KMS密钥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从KMS CipherTextBlob获取KMS密钥相关的知识,希望对你有一定的参考价值。

如何从密文blob中获取KMS密钥信息?

以aws网站为例

AWS KMS doc

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密钥的主要内容,如果未能解决你的问题,请参考以下文章

KMS服务器是啥?从哪里获取?

如何使用 Python Jupyter Notebook 通过 KMS 加密从 S3 读取文件

获取解密密文时使用的 Google KMS 密钥的版本

office2016激活工具kms office2016激活工具kms怎么用

KMS激活工具怎么用

如何用KMS激活office2013