Spec-Zone.ru › MySQL 5.7

A.17 MySQL 5.7 FAQ: Шифрование данных InnoDB на диске

A.17.1. Данные дешифруются для пользователей, имеющих к ним доступ?
A.17.2. Какова накладная стоимость шифрования данных InnoDB на диске?
A.17.3. Какие алгоритмы шифрования используются в InnoDB для шифрования данных на диске?
A.17.4. Можно ли использовать алгоритмы шифрования сторонних производителей вместо алгоритма, предоставляемого функцией шифрования данных InnoDB на диске?
A.17.5. Можно ли зашифровать индексированные столбцы?
A.17.6. Какие типы данных и длины данных поддерживает шифрование данных InnoDB на диске?
A.17.7. Остаются ли данные зашифрованными в сети?
A.17.8. Данные в памяти базы данных хранятся в открытом виде или зашифрованном?
A.17.9. Как определить, какие данные нужно зашифровать?
A.17.10. Чем шифрование данных InnoDB на диске отличается от функций шифрования, уже предоставляемых MySQL?
A.17.11. Работает ли функция transportable tablespaces с шифрованием данных InnoDB на диске?
A.17.12. Работает ли сжатие с шифрованием данных InnoDB на диске?
A.17.13. Можно ли использовать mysqldump с зашифрованными таблицами?
A.17.14. Как изменить (обновить, переключиться на новую) главный ключ шифрования?
A.17.15. Как мигрировать данные из табличного пространства InnoDB в открытом виде в зашифрованное табличное пространство InnoDB?
A.17.16. Может ли функция InnoDB data-at-rest хранить главный ключ шифрования на внешнем устройстве с использованием интерфейса PKSC11?

A.17.1.

Данные расшифровываются для пользователей, уполномоченных их видеть?

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

A.17.2.

Каковы накладные расходы, связанные с шифрованием данных в состоянии покоя?

Нет дополнительных расходов на хранение. Согласно внутренним тестам, накладные расходы на производительность составляют разницу в один-два порядка процентов.

A.17.3.

Какие алгоритмы шифрования используются с шифрованием данных в состоянии покоя?

Шифрование данных в состоянии покоя поддерживает алгоритм шифрования на основе блоков Advanced Encryption Standard (AES256). Он использует режим шифрования блоков Electronic Codebook (ECB) для шифрования ключа табличного пространства и режим шифрования блоков Cipher Block Chaining (CBC) для шифрования данных.

A.17.4.

Можно ли использовать алгоритмы шифрования сторонних производителей вместо алгоритма, предоставляемого функцией шифрования данных в состоянии покоя?

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

A.17.5.

Можно ли шифровать индексированные столбцы?

Шифрование данных в состоянии покоя поддерживает все индексы прозрачно.

A.17.6.

Какие типы данных и длины данных поддерживает шифрование данных в состоянии покоя?

Шифрование данных в состоянии покоя поддерживает все поддерживаемые типы данных. Ограничений по длине данных нет.

A.17.7.

Данные остаются зашифрованными в сети?

Данные, зашифрованные функцией шифрования данных в состоянии покоя, расшифровываются при чтении из файла табличного пространства. Таким образом, если данные находятся в сети, они находятся в открытом виде. Однако данные в сети могут быть зашифрованы с помощью сетевого шифрования MySQL, которое шифрует данные, передаваемые в базу данных и из базы данных, с помощью SSL/TLS.

A.17.8.

Память базы данных содержит данные в открытом или зашифрованном виде?

При шифровании данных в состоянии покоя данные в памяти расшифровываются, что обеспечивает полную прозрачность.

A.17.9.

Как определить, какие данные следует зашифровать?

Соответствие стандарту PCI-DSS требует, чтобы номера кредитных карт (первичный номер счета или «PAN») хранились в зашифрованном виде. Законы о сообщениях о нарушениях (например, CA SB 1386, CA AB 1950 и аналогичные законы в более чем 43 штатах США) требуют шифрования имени, фамилии, номера водительского удостоверения и других данных о личности. В начале 2008 года CA AB 1298 добавила медицинскую и страховую информацию о здоровье к данным о личности. Кроме того, отраслевые стандарты конфиденциальности и безопасности могут потребовать шифрования определенных активов. Например, такие активы, как результаты фармацевтических исследований, результаты разведки нефтяных месторождений, финансовые контракты или персональные данные информаторов правоохранительных органов, могут потребовать шифрования. В сфере здравоохранения конфиденциальность данных пациентов, медицинских карт и рентгеновских снимков имеет первостепенное значение.

A.17.10.

Чем шифрование данных в состоянии покоя отличается от функций шифрования, которые уже предоставляет MySQL?

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

A.17.11.

Функция переноса табличных пространств работает с шифрованием данных в состоянии покоя?

Да. Поддерживается для зашифрованных табличных пространств по одному файлу на таблицу. Дополнительную информацию см. в разделе Экспорт зашифрованных табличных пространств.

A.17.12.

Сжатие работает с шифрованием данных в состоянии покоя?

Пользователи, использующие шифрование данных в состоянии покоя, получают полную пользу от сжатия, поскольку сжатие применяется до шифрования блоков данных.

A.17.13.

Можно ли использовать эти утилиты с зашифрованными таблицами?

Да. Поскольку эти утилиты создают логические резервные копии, данные, извлеченные из зашифрованных таблиц, не зашифрованы.

A.17.14.

Как изменить (обновить, переключить) главный ключ шифрования?

Шифрование данных в состоянии покоя использует двухступенчатую схему ключей. При использовании шифрования данных в состоянии покоя отдельные ключи табличного пространства хранятся в заголовке соответствующего файла данных табличного пространства. Ключи табличного пространства шифруются с помощью главного ключа шифрования. Главный ключ шифрования генерируется при включении шифрования табличного пространства и хранится вне базы данных. Главный ключ шифрования обновляется с помощью оператора ALTER INSTANCE ROTATE INNODB MASTER KEY, который генерирует новый главный ключ шифрования, сохраняет ключ и переключает его на использование.

A.17.15.

Как перенести данные из табличного пространства в открытом виде в зашифрованное табличное пространство?

Перенос данных из одного табличного пространства в другое не требуется. Чтобы зашифровать данные в табличном пространстве по одному файлу на таблицу, выполните ALTER TABLE tbl_name ENCRYPTION = 'Y'. Чтобы зашифровать общее табличное пространство или табличное пространство mysql, выполните ALTER TABLESPACE tablespace_name ENCRYPTION = 'Y'. Поддержка шифрования для общих табличных пространств была введена в MySQL 8.0.13. Поддержка шифрования для системного табличного пространства mysql доступна начиная с MySQL 8.0.16.

A.17.16.

Может ли функция шифрования данных в состоянии покоя хранить главный ключ шифрования на внешнем устройстве с помощью интерфейса PKSC11?

Пока нет. В настоящее время поддерживается протокол KMIP 1.1 с плагином keyring_okv, доступным в MySQL Enterprise Edition.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/faqs-tablespace-encryption.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API