Spec-Zone.ru › MySQL 8.4

25.6.14.2 Реализация шифрования файловой системы NDB

Для прозрачного шифрования данных (TDE) узлы данных шифруют данные пользователя в состоянии покоя, используя пароль (пароль файловой системы), который используется для шифрования и расшифрования файла секретов на каждом узле данных. Файл секретов содержит главный ключ узла (NMK), ключ, используемый позднее для шифрования различных типов файлов, используемых для сохранения. NDB TDE шифрует файлы данных пользователя, включая файлы LCP, файлы журнала перезаписи, файлы табличного пространства и файлы журнала отката.

Вы можете использовать утилиту ndbxfrm, чтобы проверить, зашифрован ли файл, как показано здесь:

> ndbxfrm -i ndb_5_fs/LCP/0/T2F0.Data
File=ndb_5_fs/LCP/0/T2F0.Data, compression=no, encryption=yes
> ndbxfrm -i ndb_6_fs/LCP/0/T2F0.Data
File=ndb_6_fs/LCP/0/T2F0.Data, compression=no, encryption=no

Получить ключ из файла секретов можно с помощью программы ndb_secretsfile_reader, например так:

> ndb_secretsfile_reader --filesystem-password=54kl14 ndb_5_fs/D1/NDBCNTR/S0.sysfile
ndb_secretsfile_reader: [Warning] Using a password on the command line interface can be insecure.
cac256e18b2ddf6b5ef82d99a72f18e864b78453cc7fa40bfaf0c40b91122d18

Иерархия ключей на узел может быть представлена следующим образом:

  • Введенный пользователем пароль (P) обрабатывается функцией вывода ключей с использованием случайной соли для генерации уникального ключа пароля (PK).

  • PK (уникальный для каждого узла) шифрует данные на каждом узле в собственном файле секретов.

  • Данные в файле секретов включают уникальный, случайным образом сгенерированный главный ключ узла (NMK).

  • NMK шифрует (с помощью обертывания) один или несколько случайным образом сгенерированных ключей шифрования данных (DEK) в заголовке каждого зашифрованного файла (включая файлы LCP и TS, а также журналы перезаписи и отката).

  • Значения ключей шифрования данных (DEK0, ..., DEKn) используются для шифрования [подмножеств] данных в каждом файле.

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

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

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

Работа шифрования и расшифрования выполняется в потоках ввода-вывода NDBFS (а не в потоках выполнения сигналов, таких как main, tc, ldm или rep). Это похоже на то, что происходит с сжатыми LCP и сжатыми резервными копиями, и обычно приводит к увеличению использования ЦП потоками ввода-вывода; вы можете настроить ThreadConfig (если используется) в отношении потоков ввода-вывода.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/mysql-cluster-tde-implementation.html

Spec-Zone.ru

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