Конвертное шифрование и ключи данных
Узнайте, как KMS защищает ключ данных, шифрующий Ваши реальные данные.
«Конвертное шифрование и ключи данных» — бесплатный урок AWS Security Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AWS Security Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AWS Security Academy содержит 4 уроков всего.
Проблема больших объёмов данных
KMS может напрямую шифровать только небольшие объёмы данных (около 4 КБ). Реальные данные, файлы, тома и базы данных намного больше.
Конвертное шифрование решает эту проблему: Вы шифруете большие данные с помощью ключа данных, а затем шифруете этот ключ данных ключом KMS. Именно так AWS шифрует всё в больших масштабах.
Что такое ключ данных
Ключ данных — это обычный ключ шифрования (например, AES-256), который KMS создаёт для шифрования Ваших фактических данных.
- В отличие от ключей KMS, открытый текст ключа данных покидает KMS на короткое время, чтобы Вы могли его использовать.
- KMS также возвращает зашифрованную копию ключа данных.
GenerateDataKey
Вы вызываете GenerateDataKey, указывая ключ KMS. KMS возвращает:
- Ключ данных в открытом виде для немедленного шифрования данных.
- Зашифрованный ключ данных (обёрнутый ключом KMS) для хранения вместе с шифротекстом.
Затем Вы удаляете ключ данных в открытом виде из памяти.
aws kms generate-data-key \
--key-id alias/my-app-key \
--key-spec AES_256Принцип конвертного шифрования
Последовательность действий:
- Зашифруйте данные с помощью ключа данных в открытом виде.
- Сохраните зашифрованный ключ данных рядом с шифротекстом.
- Удалите ключ данных в открытом виде.
Ключ данных находится «в конверте», запечатанном ключом KMS, отсюда и название.
Расшифровка с помощью конверта
Для расшифровки выполните действия в обратном порядке:
- Отправьте зашифрованный ключ данных в KMS с операцией Decrypt.
- KMS вернёт ключ данных в открытом виде.
- Используйте его для расшифровки данных, затем удалите его.
Только KMS может развернуть ключ данных, поэтому доступ к ключу KMS управляет всем процессом.
Преимущества конвертного шифрования
Конвертное шифрование объединяет преимущества обоих подходов:
- Быстрое локальное шифрование больших объёмов данных с помощью ключа данных.
- Надёжный централизованный контроль, поскольку ключ данных бесполезен без ключа KMS.
Кроме того, сокращается количество вызовов KMS, так как одним ключом данных можно защитить большой объём данных.
Кэширование ключей данных
Для рабочих нагрузок с большим объёмом операций AWS Encryption SDK может кэшировать ключи данных и повторно использовать их для множества операций шифрования.
Это снижает стоимость запросов к KMS и задержку. Настраиваемые ограничения не позволяют повторно использовать кэшированный ключ слишком долго или слишком широко, обеспечивая баланс между производительностью и безопасностью.
Как сервисы используют это внутри
Когда Вы включаете шифрование для S3, EBS или RDS, AWS выполняет конвертное шифрование за Вас.
Сервис запрашивает ключ данных у Вашего ключа KMS, шифрует данные и сохраняет обёрнутый ключ данных. Вы просто выбираете ключ KMS, а механика конверта выполняется автоматически.
AWS Encryption SDK
AWS Encryption SDK — это клиентская библиотека, которая корректно реализует конвертное шифрование в Ваших приложениях.
Она выполняет создание ключа данных, обрабатывает контекст шифрования и сохраняет обёрнутый ключ вместе с шифротекстом, поэтому Вам не нужно самостоятельно реализовывать подверженную ошибкам вспомогательную криптографическую логику.
GenerateDataKeyWithoutPlaintext
Вариант GenerateDataKeyWithoutPlaintext возвращает только зашифрованный ключ данных.
Он используется, когда Вы хотите создать и сохранить ключ данных сейчас, а расшифровать его позже, непосредственно в момент использования. Это не позволяет открытому ключу находиться в памяти до фактической необходимости, уменьшая риск раскрытия ключей, подготовленных заранее.
Почему это важно для экзамена
Конвертное шифрование объясняет, почему KMS масштабируется и как один ключ KMS защищает терабайты данных.
Ожидайте вопросы о последовательности действий GenerateDataKey, о том, что покидает KMS (ключ данных на короткое время), и о том, почему контроль над ключом KMS означает контроль над всеми производными данными.
Быстрая проверка
Проверьте последовательность конвертного шифрования.
Повторение
Вы изучили конвертное шифрование.
- GenerateDataKey возвращает ключ данных в открытом виде и зашифрованный ключ данных.
- Зашифруйте данные локально открытым ключом, сохраните обёрнутый ключ и удалите открытый ключ.
- Только ключ KMS может развернуть ключ данных, обеспечивая централизованный контроль над всеми данными.
Часто задаваемые вопросы
Урок «Конвертное шифрование и ключи данных» бесплатный?
Да — полный текст урока «Конвертное шифрование и ключи данных» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AWS Security Academy, подпишись на CoddyKit PRO. Курс AWS Security Academy содержит 4 уроков всего.
Чему я научусь в уроке «Конвертное шифрование и ключи данных»?
Узнайте, как KMS защищает ключ данных, шифрующий Ваши реальные данные. Ты практикуешь AWS Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AWS Security Academy?
Предыдущий опыт не требуется. AWS Security Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Конвертное шифрование и ключи данных»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AWS Security Academy?
Да. Каждый урок AWS Security Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Что такое ключи KMS и для чего они нужны
- Симметричные, асимметричные и многорегиональные ключи
- Политики ключей, разрешения и условия
- Конвертное шифрование и ключи данных