Я не понимаю, как aws-kms
выбирает, какой ключ использовать для расшифровки зашифрованного блока текста?
При вызове метода дешифрования ключевая информация не предоставляется.
Я не понимаю, как aws-kms
выбирает, какой ключ использовать для расшифровки зашифрованного блока текста?
При вызове метода дешифрования ключевая информация не предоставляется.
При шифровании KMS сохраняет информацию CMK в зашифрованном блоке текста (CiphertextBlob: зашифрованный текст, включая метаданные) как метаданные. Таким образом, при вызове дешифрования KMS знает, какой CMK использовать.
Подробнее см .: https://d1.awsstatic.com/whitepapers/aws-kms-best-practices.pdf https://docs.aws.amazon.com/cli/latest/reference/kms/encrypt.html
Если вы посмотрите на результат CiphertextBlob
двух разных --plaintext
(как я показываю ниже), вы можете увидеть шаблон, который должен быть своего рода метеданными. Не уверен, задокументированы ли эти метаданные.
aws kms encrypt --key-id <my-key> --plaintext first-text --query "CiphertextBlob" --output text >> encryption_outputs.out
aws kms encrypt --key-id <my-key> --plaintext second-text --query "CiphertextBlob" --output text >> encryption_outputs.out
cat encryption_outputs.out
AQICAHiHuhOJgMFOzLCxr9JLvFbwcvLJ1ujdFhqufo6u+0DOZAFcwvj+uW9S0ogPZqWnn2o0AAAAaDBmBgkqhkiG9w0BBwagWTBXAgEAMFIGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMKCO7GDmhCkqkISldAgEQgCXJaFxGsprON7JHfoLWFXM/VVg9tv76Ndp9ABZ5zd8VOlK2rtPK
AQICAHiHuhOJgMFOzLCxr9JLvFbwcvLJ1ujdFhqufo6u+0DOZAGMZIUoMTRnPxLZLGx/cD7fAAAAaTBnBgkqhkiG9w0BBwagWjBYAgEAMFMGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMmXxBMotXpz0dByd5AgEQgCayx6uiIjJopXsHOeGWAvC5i83CLnp1M7gAVYPQck8lEPtykghR7Q==