透過的データ暗号化(TDEと略)は、ディスクに保存される機密データを暗号化できます。データはストレージデバイスに書き込まれる前に自動的に暗号化され、読み取り時に自動的に復号化されます。このプロセスはユーザーにとって透過的であり、データベース認証を受けたユーザーは制限なくデータにアクセスできます。ストレージメディアが盗難された場合、透過的データ暗号化により、メディアに保存されている機密データへの未認証ユーザーによるアクセスを防ぐことができます。
適用対象
OceanBaseデータベースCommunity Editionは、現在透過的データ暗号化をサポートしていません。
二段階の鍵体系
透過的データ暗号化は、二段階の鍵体系を使用して暗号化および復号化機能を実現します。暗号化を有効にする最小単位はデータベース内のテーブルであり、暗号化を有効にするテーブルは暗号化されたテーブルスペース(tablespace)に配置する必要があります。各暗号化されたテーブルスペースには暗号化アルゴリズムと対応するデータキーが設定されており、テーブルスペース内のデータを暗号化するために使用されます。各テナントにはマスターキーがあり、テーブルスペースキーを暗号化するために使用されます。権限のない復号化操作を防ぐため、通常マスターキーは外部キー管理サービス(KMSと略)に格納されます。

暗号化を有効にすると、マスターキーを使用してデータキーを暗号化し、暗号化されたデータキーの暗号文を生成します。この暗号文は内部テーブル、マクロブロックヘッダー、clogヘッダーに格納され、データキーは明文でどこにも保存されません。データの暗号化および復号化が必要な場合、マスターキーを使用してこの暗号文を復号化し、データキーを取得した後、マクロブロックまたはclog内のユーザーデータに対して暗号化および復号化操作を行います。
暗号化の発効メカニズム
ユーザーがディスクに保存するデータには、clogとマクロブロックの2種類が含まれます。暗号化はデータが実際にディスクに書き込まれた時点でのみ有効になり、メモリ内のデータは暗号化されません。元々暗号化されていなかったテーブルを暗号化に変更した場合、既にディスクに保存されている未暗号化のclogおよびマクロブロックデータは暗号化されず、その後新しくディスクに書き込まれるデータのみが暗号化されます。各clogおよび各マクロブロックには暗号化メタ情報が記録されるため、暗号化されたデータと暗号化されていないデータは同時に存在できます。
clogは追加書き込み方式でディスクに書き込まれるため、古い未暗号化のclogは決して暗号化されることはありません。暗号化を有効にして一定期間経つと、古いclogがすべて回収され、ディスク上のclogデータはすべて暗号化されたデータになります。マクロブロックデータについては、ダンプやコンパクション時にのみ書き込みが行われるため、手動でフルコンパクションをトリガーして未暗号化のマクロブロックデータを暗号化されたものに書き直すことができます。
サポートされる暗号化アルゴリズム
| アルゴリズム | キー長 | モード |
|---|---|---|
| AES | 128ビット 192ビット 256ビット | ECB、GCM |
| SM4 | 128ビット | CBC、GCM |