Расшифровка BLOB-объекта Ciphertext из AWS KMS с помощью предоставленного клиентом ключа

Я загрузил ключ в Службу управления ключами AWS. Используя его, я могу зашифровать вещи, а затем расшифровать их с помощью сервиса.

Однако я хотел бы получить заверение, что я могу расшифровать BLOB-объект Ciphertext, используя ключ, который я поместил в KMS (чтобы доказать, что это мой ключ), и для целей резервного копирования (в случае сбоя KMS).

Я не могу найти формат и метод шифрования, который использует KMS.

Может кто-нибудь привести пример (openssl / python и т. Д.).

1 ответ

Единственная информация, которую я нашел о зашифрованном тексте KMS, находится в этом документе. Начиная с нижней части страницы 23, он говорит:

Всякий раз, когда элемент зашифрован в CMK, результирующий объект является зашифрованным текстом клиента. Зашифрованный текст будет содержать два раздела: часть незашифрованного заголовка (или открытого текста), защищенную аутентифицированной схемой шифрования в качестве дополнительных аутентифицированных данных, и зашифрованную часть. Часть открытого текста будет включать идентификатор ключа поддержки HSA (HBKID).

Я не мог найти больше специфики формата, даже:

  • Какая часть зашифрованного текста является зашифрованной частью?
  • Какой вектор инициализации (IV) был использован?
  • Была ли использована ключевая деривационная функция (KDF)?

Однако, если вы хотите выполнить резервное копирование в случае сбоя KMS, при использовании шифрования конверта достаточно резервного копирования только ключа данных. В конце концов, это единственный ключ, необходимый для расшифровки данных. Конечно, хранение такой резервной копии ключа должно выполняться с такой же осторожностью, как если бы вы хранили импортированный материал ключа.

Другие вопросы по тегам