MySQL 8.0 リファレンスマニュアル


17.3.2.2 バイナリログ暗号化キー

ログファイルのファイルパスワードの暗号化に使用されるバイナリログ暗号化キーは 256 ビットキーで、MySQL Server キーリングサービスを使用して各 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 ビット鍵が生成され、nonce もファイルパスワードから生成されます。 ファイルパスワードの暗号化に使用されるバイナリログ暗号化キーがわかっている場合は、OpenSSL 暗号化ツールキットで使用可能なツールを使用して、暗号化ファイルを技術的にオフラインで復号化できます。

バイナリログファイルおよびリレーログファイルが暗号化されるように、ファイルコピーを使用して暗号化がアクティブな MySQL サーバーインスタンスをクローニングする場合は、クローンサーバーがソースサーバーからバイナリログ暗号化キーを読み取ることができるように、キーリングもコピーされていることを確認します。 クローンサーバーで暗号化がアクティブ化されると (起動時またはその後)、クローンサーバーは、コピーされたファイルで使用されるバイナリログ暗号化キーにソースサーバーの生成済 UUID が含まれていることを認識します。 独自に生成された UUID を使用して新しいバイナリログ暗号化鍵を自動的に生成し、これを使用して後続のバイナリログファイルおよびリレーログファイルのファイルパスワードを暗号化します。 コピーされたファイルは、ソースサーバーキーを使用して引き続き読み取られます。


関連キーワード:  バイナリ, サーバー, ログ, キー, ソース, 生成, ベース, GTID, パスワード, トランザクション