Управление ключами шифрования
Шифрование данных в MariaDB при помощи шифрования данных в состоянии покоя требует использования плагина управления ключами и шифрования. Эти плагины отвечают как за управление ключами шифрования, так и за фактическое шифрование и дешифрование данных.
MariaDB поддерживает использование нескольких ключей шифрования. Каждый ключ шифрования использует 32-битовое целое число в качестве идентификатора ключа. Если конкретный плагин поддерживает ротацию ключей, то ключи шифрования также могут быть сменены, что создает новую версию ключа шифрования.
Выбор решения для управления ключами шифрования
Способ управления ключами шифрования в MariaDB зависит от выбранного решения. В настоящее время MariaDB предлагает три варианта:
Плагин управления ключами файлов
Плагин управления ключами файлов, поставляемый с MariaDB, — это базовый плагин управления ключами и шифрования, который считывает ключи из текстового файла. Он также может служить примером и отправной точкой при разработке плагина управления ключами.
Дополнительную информацию можно найти в Плагине управления ключами файлов.
Плагин управления ключами AWS
Плагин управления ключами AWS — это плагин управления ключами и шифрования, использующий Amazon Web Services (AWS) Key Management Service (KMS). Плагин управления ключами AWS зависит от AWS SDK для C++, который использует Apache License, Version 2.0. Эта лицензия несовместима с лицензией GPL 2.0 сервера MariaDB, поэтому мы не можем распространять пакеты, содержащие плагин управления ключами AWS. Следовательно, единственный способ получить плагин в настоящее время — установить его из исходного кода.
Дополнительную информацию можно найти в Плагине управления ключами AWS.
Плагин управления ключами Eperi
Плагин управления ключами Eperi — это плагин управления ключами и шифрования, использующий eperi Gateway for Databases. eperi Gateway for Databases хранит ключи шифрования на сервере ключей вне самого сервера базы данных, что обеспечивает дополнительный уровень безопасности. eperi Gateway for Databases также поддерживает выполнение всех операций шифрования данных на сервере ключей, но это необязательно.
Дополнительную информацию можно найти в Плагине управления ключами Eperi.
Использование нескольких ключей шифрования
Плагины управления ключами и шифрования поддерживают использование нескольких ключей шифрования. Каждый ключ шифрования можно определить с помощью другого 32-битового целого числа в качестве идентификатора ключа.
Поддержка нескольких ключей открывает некоторые потенциальные варианты использования. Например, предположим, что гипотетический плагин управления ключами и шифрования настроен на предоставление двух ключей шифрования. Один ключ шифрования может быть предназначен для таблиц с «низким уровнем безопасности». Он может использовать короткие ключи, которые могут не меняться, а данные могут шифроваться с помощью быстрого алгоритма шифрования. Другой ключ шифрования может быть предназначен для таблиц с «высоким уровнем безопасности». Он может использовать длинные ключи, которые часто меняются, а данные могут шифроваться с помощью более медленного, но более безопасного алгоритма шифрования. Пользователь будет указывать идентификатор ключа, который он хочет использовать для разных таблиц, используя повышенную безопасность только там, где это необходимо.
В MariaDB есть два идентификатора ключей шифрования, имеющие специальное значение. Ключ шифрования 1 предназначен для шифрования системных данных, таких как журналы переходов InnoDB, двоичные журналы и т. д. Он всегда должен существовать при включенном шифровании данных в состоянии покоя. Ключ шифрования 2 предназначен для шифрования временных данных, таких как временные файлы и временные таблицы. Это необязательно. Если он не существует, MariaDB использует ключ шифрования 1 для этих целей вместо него.
При шифровании таблиц InnoDB ключ, используемый для шифрования таблиц, можно изменить.
При шифровании таблиц Aria ключ, используемый для шифрования таблиц, в настоящее время изменить нельзя.
Ротация ключей
Ротация ключей шифрования в MariaDB Server является необязательной. Ротация ключей поддерживается только в том случае, если служба управления ключами (KMS) на стороне сервера поддерживает ротацию ключей, и если соответствующий плагин управления ключами и шифрования для MariaDB также поддерживает ротацию ключей. Когда плагин управления ключами и шифрования поддерживает ротацию ключей, пользователи могут выбрать поворот одного или нескольких ключей шифрования, что создает новую версию каждого повернутого ключа шифрования.
Ротация ключей позволяет пользователям повысить безопасность данных следующим образом:
- Если сервер настроен на автоматическое повторное шифрование данных таблицы с помощью новой версии ключа шифрования после поворота ключа, это предотвращает использование ключа шифрования в течение длительного времени.
- Если сервер настроен на одновременное шифрование данных таблицы с несколькими версиями ключа шифрования после поворота ключа, это предотвращает утечку всех данных в случае взлома одной версии ключа шифрования.
Двигатель хранения InnoDB имеет потоки шифрования в фоновом режиме, которые могут автоматически перешифровать страницы при появлении поворота ключей.
Двигатель хранения Aria не имеет аналогичного механизма для повторного шифрования страниц в фоновом режиме при повороте ключей.
Поддержка ротации ключей в плагинах шифрования
Плагины шифрования с поддержкой ротации ключей
- Сервис AWS Key Management Service (KMS) поддерживает ротацию ключей шифрования, и соответствующий плагин управления ключами AWS также поддерживает ротацию ключей шифрования.
- Сервис eperi Gateway for Databases поддерживает ротацию ключей шифрования, и соответствующий плагин управления ключами Eperi также поддерживает ротацию ключей шифрования.
Плагины шифрования без поддержки ротации ключей
- Плагин управления ключами файлов не поддерживает ротацию ключей шифрования, так как не использует службу управления ключами (KMS) на стороне сервера.
API плагина шифрования
Новые плагины управления ключами и шифрования можно разрабатывать, используя API плагина шифрования.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/encryption-key-management/