19.3.2.2 Ключи шифрования двоичного журнала
Ключи шифрования двоичного журнала, используемые для шифрования паролей файлов журналов, представляют собой 256-битные ключи, сгенерированные специально для каждого экземпляра MySQL-сервера с использованием сервиса ключей MySQL-сервера (см. раздел 8.4.4, «Сервис ключей MySQL»). Сервис ключей отвечает за создание, получение и удаление ключей шифрования двоичного журнала. Экземпляр сервера создаёт и удаляет только ключи, сгенерированные для него самого, но он может считывать ключи, сгенерированные для других экземпляров, если они хранятся в сервисе ключей, как в случае с экземпляром сервера, который был клонирован путём копирования файлов.
Ключи шифрования двоичного журнала для экземпляра MySQL-сервера должны быть включены в ваши процедуры резервного копирования и восстановления, так как в случае потери ключей, необходимых для расшифровки паролей файлов текущих и сохранённых файлов двоичного журнала или релейных журналов, может быть невозможно запустить сервер.
Формат ключей шифрования двоичного журнала в сервисе ключей следующий:
MySQLReplicationKey_{UUID}_{SEQ_NO}Например:
MySQLReplicationKey_00508583-b5ce-11e8-a6a5-0010e0734796_1 {UUID} — это истинный UUID, сгенерированный MySQL-сервером (значение системной переменной server_uuid). {SEQ_NO} — это порядковый номер ключа шифрования двоичного журнала, который увеличивается на 1 для каждого нового ключа, сгенерированного на сервере.
Ключ шифрования двоичного журнала, который в настоящее время используется на сервере, называется главным ключом двоичного журнала. Порядковый номер текущего главного ключа двоичного журнала хранится в сервисе ключей. Главный ключ двоичного журнала используется для шифрования пароля файла каждого нового журнала, который представляет собой случайный 32-байтовый пароль файла, специфичный для файла журнала, используемый для шифрования данных файла. Пароль файла шифруется с использованием AES-CBC (режим шифрования блоками AES) с 256-битным ключом шифрования двоичного журнала и случайным вектором инициализации (IV), и хранится в заголовке файла журнала. Данные файла шифруются с использованием AES-CTR (режим счётчика AES) с 256-битным ключом, сгенерированным из пароля файла, и nonce, также сгенерированным из пароля файла. Теоретически, зашифрованный файл можно расшифровать автономно, если известен ключ шифрования двоичного журнала, используемый для шифрования пароля файла, используя инструменты, доступные в криптографическом наборе OpenSSL.
Если вы используете копирование файлов для клонирования экземпляра MySQL-сервера, на котором активное шифрование, так что его файлы двоичного журнала и релейные журналы зашифрованы, убедитесь, что также скопирован сервис ключей, чтобы клонированный сервер мог считывать ключи шифрования двоичного журнала с исходного сервера. При активации шифрования на клонированном сервере (либо при запуске, либо позже) клонированный сервер распознаёт, что ключи шифрования двоичного журнала, используемые с скопированными файлами, включают сгенерированный UUID исходного сервера. Он автоматически генерирует новый ключ шифрования двоичного журнала, используя свой сгенерированный UUID, и использует его для шифрования паролей файлов последующих файлов двоичного журнала и релейных журналов. Скопированные файлы по-прежнему читаются с использованием ключей исходного сервера.
© 2025 Oracle
Licensed under the GPLv2 License.