MySQL での暗号化: マスター キーのローテーション

新規コースの募集開始に向けて 「データベース」 私たちは、MySQL の暗号化に関する一連の記事を公開し続けます。

このシリーズの前回の記事では、 マスターキー暗号化の仕組み。 今日は、これまでに得た知識に基づいて、主キーの回転を見てみましょう。

マスター キーのローテーションには、新しいマスター キーの生成と、この新しいキーを使用したテーブルスペース キー (テーブルスペース ヘッダーに格納されている) の再暗号化が含まれます。

暗号化されたテーブルスペースのヘッダーがどのようになっているかを思い出してください。

MySQL での暗号化: マスター キーのローテーション

前回の記事から、サーバーは起動時にすべての暗号化されたテーブルスペースのヘッダーを読み取り、最大の KEY ID を記憶していることがわかりました。 たとえば、KEY を持つ XNUMX つのテーブルがあるとします。ID = 3 および KEY を持つ XNUMX つのテーブルID = 4 の場合、最大キー ID は 4 になります。この KEY ID - MAX KEY ID と呼びましょう。

マスターキーのローテーションの仕組み

1. ユーザーが ALTER INNODB MASTER KEY を実行します。

2. サーバーはキーリングに、サーバーの UUID と KEY を使用して新しいマスター キーを生成するよう要求します。ID は XNUMX に MAX を加えた値に等しいキーID。 したがって、INNODBと等しいマスターキーIDを取得しますKEY-UUID-(MAXキーID + 1)。 マスターキーの生成が成功すると、MAX KEY ID が XNUMX つ増加します (つまり、MAXキーID=MAXキーID + 1)。

3. サーバーは、マスター キーで暗号化されたすべてのテーブルスペースをスキャンし、各テーブルスペースを次のようにスキャンします。

  • 新しいマスターキーを使用してテーブルスペースキーを暗号化します。

  • キー ID を新しい MAX に更新しますキーID;

  • UUID がサーバー UUID と異なる場合は、サーバー UUID を更新します。

ご存知のとおり、テーブルの復号化に使用されるマスター キー ID は、UUID とテーブルスペース ヘッダーから読み取られた KEY ID で構成されます。 現在行っていることは、サーバーが正しいマスター キーを受信できるように、テーブルスペース暗号化ヘッダー内のこの情報を更新することです。

異なるバックアップなど、異なる場所にあるテーブルスペースがある場合、それらは異なるマスターキーを使用する可能性があります。 これらのマスター キーはすべて、サーバーの起動時にリポジトリから取得する必要があります。 これにより、特にサーバー側のキー ストアが使用されている場合、サーバーの起動が遅くなる可能性があります。 マスターキーのローテーションでは、すべての表領域で同じである単一のマスターキーを使用して表領域キーを再暗号化します。 サーバーは起動時にマスター キーを XNUMX つだけ受信するようになります。

もちろん、これは単なる嬉しい副作用です。 マスターキーローテーションの主な目的は、サーバーの安全性を高めることです。 マスター キーが何らかの理由でボールト (Vault サーバーなど) から盗まれた場合、新しいマスター キーを生成し、テーブルスペース キーを再暗号化して、盗まれたキーを無効にすることができます。 私たちは安全です...ほぼ安全です。

前回の記事では、テーブルスペース キーが盗まれると、第三者がそのキーを使用してデータを復号化する方法について説明しました。 ディスクにアクセスできることが条件です。 マスターキーが盗まれ、暗号化されたデータにアクセスできる場合、盗まれたマスターキーを使用してテーブルスペースキーを復号化し、復号化されたデータを取得できます。 ご覧のとおり、この場合、マスター キーのローテーションは役に立ちません。 新しいマスターキーを使用してテーブルスペースキーを再暗号化しますが、データの暗号化/復号化に使用される実際のキーは同じままです。 したがって、「ハッカー」はデータを復号化するためにそれを使用し続けることができます。 先ほどそれを示唆しました MySQL 用 Percona サーバー 単純な表領域キーの再暗号化だけでなく、真の表領域の再暗号化を実行できます。 この機能は暗号化スレッドと呼ばれます。 ただし、この機能は現時点ではまだ実験段階です。

マスター キーのローテーションは、マスター キーが盗まれた場合に役立ちますが、攻撃者がそれを使用してテーブルスペース キーを復号化する方法はありません。

無料のデモレッスンにお申し込みください。

続きを読む:

出所: habr.com