暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

[ACDU 翻译] MySQL 17.3.2.2 二进制日志加密密钥

原创 由迪 2022-09-22
490

用于加密日志文件的文件密码的二进制日志加密密钥是 256 位密钥,使用 MySQL 服务器的密钥环服务专门为每个 MySQL 服务器实例生成(参见第 6.4.4 节,“MySQL 密钥环”)。密钥环服务处理二进制日志加密密钥的创建、检索和删除。服务器实例仅创建和删除为自己生成的密钥,但如果它们存储在密钥环中,它可以读取为其他实例生成的密钥,例如通过文件复制克隆的服务器实例。

重要的

MySQL 服务器实例的二进制日志加密密钥必须包含在您的备份和恢复过程中,因为如果解密当前和保留的二进制日志文件或中继日志文件的文件密码所需的密钥丢失,则可能无法启动服务器。

密钥环中二进制日志加密密钥的格式如下:

MySQLReplicationKey_{UUID}_{SEQ_NO}

例如:

MySQLReplicationKey_00508583-b5ce-11e8-a6a5-0010e0734796_1

{UUID}是 MySQL 服务器生成的真实 UUID( server_uuid系统变量的值)。 {SEQ_NO}是二进制日志加密密钥的序列号,对于服务器上生成的每个新密钥,它都会增加 1。

当前在服务器上使用的二进制日志加密密钥称为二进制日志主密钥。当前二进制日志主密钥的序列号存储在密钥环中。二进制日志主密钥用于加密每个新日志文件的文件密码,这是一个随机生成的 32 字节文件密码,特定于用于加密文件数据的日志文件。文件密码使用 AES-CBC(AES 密码块链接模式)使用 256 位二进制日志加密密钥和随机初始化向量 (IV) 进行加密,并存储在日志文件的文件头中。文件数据使用 AES-CTR(AES 计数器模式)加密,其中一个 256 位密钥从文件密码生成,一个随机数也从文件密码生成。如果用于加密文件密码的二进制日志加密密钥已知,则通过使用 OpenSSL 加密工具包中可用的工具,从技术上讲,可以离线解密加密文件。

如果您使用文件复制来克隆具有加密活动的 MySQL 服务器实例,因此其二进制日志文件和中继日志文件被加密,请确保密钥环也被复制,以便克隆服务器可以从源读取二进制日志加密密钥服务器。在克隆服务器上激活加密时(在启动时或随后),克隆服务器会识别出与复制文件一起使用的二进制日志加密密钥包括源服务器生成的 UUID。它使用自己生成的 UUID 自动生成新的二进制日志加密密钥,并使用它来加密后续二进制日志文件和中继日志文件的文件密码。使用源服务器继续读取复制的文件’

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论