AWS KMS Encryption - ограничения размера данных

Я пытаюсь зашифровать большие полезные данные XML с помощью AWS KMS Encryption SDK. Я наткнулся на эту ссылку, в которой указано, что существует ограничение на байтах данных, которые могут быть зашифрованы

Вы можете зашифровать до 4 килобайт (4096 байтов) произвольных данных, таких как ключ RSA, пароль базы данных или другую конфиденциальную информацию.

KMS не поддерживает шифрование данных размером более 4 КБ? Есть ли обходной путь для обработки данных размером более 4 КБ?


person Punter Vicky    schedule 12.09.2018    source источник
comment
Я не знаком с API, но похоже, что он в основном предназначен для шифрования ключей или подобных ключей объектов, таких как пароли и т. Д. Всего несколькими строками ниже написано Кроме того, вам не нужно использовать эту операцию для зашифровать данные в вашем приложении. Вы можете использовать открытый текст и ключи зашифрованных данных, которые возвращает операция GenerateDataKey   -  person President James K. Polk    schedule 12.09.2018
comment
Спасибо @JamesKPolk. У меня уже есть ключи, и они есть с собой. Разве я не могу зашифровать большую полезную нагрузку xml?   -  person Punter Vicky    schedule 12.09.2018
comment
Вы могли бы использовать KMS для управления (получения) вашего ключа шифрования. Затем вы пишете свои собственные процедуры шифрования, использующие этот ключ. Примеры шифрования AES можно найти повсюду. AWS также имеет SDK шифрования: docs.aws.amazon .com / encryption-sdk / latest / developer-guide /.   -  person John Hanley    schedule 12.09.2018
comment
Спасибо @JohnHanley, если я буду использовать SDK для шифрования AWS, буду ли я ограничен лимитом 4 КБ или смогу зашифровать данные любого размера?   -  person Punter Vicky    schedule 12.09.2018
comment
Любого размера. Примечание: в шифровании очень легко ошибиться (например, его легче взломать). Потратьте некоторое время на то, чтобы понять, как правильно выполнять шифрование, ИЛИ используйте опубликованную библиотеку, чтобы сделать это за вас.   -  person John Hanley    schedule 12.09.2018
comment
Спасибо @JohnHanley. И последний вопрос - к чему относится ограничение размера, упомянутое в документации?   -  person Punter Vicky    schedule 12.09.2018
comment
Какая документация? У AWS SDK нет ограничений на размер файла. KMS API имеет ограничение в 4 КБ. Шифрование KMS предназначено для шифрования ваших ключей, а иногда и небольших данных. Он не используется для шифрования больших объемов данных. Вы можете за один раз зашифровать большие блоки данных размером 4 КБ, но это очень небезопасно.   -  person John Hanley    schedule 12.09.2018
comment
Дополнительная точка. Думайте о KMS как о своей службе управления ключами шифрования, а не как о службе шифрования данных. Два очень разных приложения.   -  person John Hanley    schedule 12.09.2018
comment
Спасибо @JohnHanley. Это проясняет. Я предполагаю, что главный ключ должен соответствовать пределу в 4 КБ, и он хранится в AWS KMS. AWS SDK использует этот главный ключ для создания ключей данных, которые будут использоваться методом шифрования для шифрования сообщений любого размера.   -  person Punter Vicky    schedule 12.09.2018
comment
Ты прав. Однако ключи шифрования измеряются в битах. KMS и AWS обычно используют 256-битные ключи шифрования AES-GCM. Расширенный стандарт шифрования (AES) - режим Галуа / счетчика (GCM). docs.aws.amazon.com/kms/latest/developerguide/ crypto-intro.html   -  person John Hanley    schedule 12.09.2018


Ответы (1)


Вы используете CMK для шифрования / дешифрования ваших данных, а это не то, для чего вы должны его использовать. CMK ограничен шифрованием данных размером до 4 КБ, поскольку он предназначен для создания и шифрования / дешифрования ключа данных. После создания этого ключа данных вы можете использовать его для шифрования данных без использования AWS KMS. Вы можете использовать OpenSSL с ключом данных, и этот процесс не зависит от KMS. Имейте в виду, что вы должны обращаться с ключом данных очень осторожно, и лучше всего после того, как вы использовали его для шифрования данных, вы должны зашифровать этот ключ данных с помощью KMS, а затем сохранить этот зашифрованный ключ (как метаданные) вместе с зашифрованными данными. Процесс расшифровки данных начнется с того, что вы будете использовать KMS для расшифровки ключа данных, а затем использовать OpenSSL, например, чтобы использовать расшифрованный ключ данных в качестве ключа для расшифровки ваших данных (полезная нагрузка XML).

person Thando Toto    schedule 02.03.2019
comment
Любые ссылки или примеры, реализующие это? Это то, что я так долго искал! - person John; 01.03.2021