ページの先頭行へ戻る
Enterprise Postgres 9.5 運用ガイド
FUJITSU Software

5.1 暗号化によるデータの保護

PostgreSQLでは、認証とアクセス制御によって、データベース内のデータは認可されていないデータベースユーザーによるアクセスから保護されます。しかし、データベースサーバの認証とアクセス制御を迂回する攻撃者に対しては、OSファイルは保護されません。

FUJITSU Enterprise PostgresではOSのファイル内のデータが暗号化されているため、たとえそのファイルやディスクが盗まれても、貴重な情報は保護されます。
データベースに格納するデータは、データファイルに書き出されるときに暗号化され、読み出されるときに復号されます。これはインスタンスによって自動的に行われるため、ユーザーやアプリケーションが意識することなく、キーの管理や暗号化/復号の処理を実行できます。これを透過的データ暗号化(TDE: Transparent Data Encryption)と呼びます。

TDEには次の特長があります。

  

暗号化の仕組み

2層の暗号化キーとキーストア

各テーブル空間には、その中のすべてのデータを暗号化/復号するテーブル空間暗号化キーがあります。テーブル空間暗号化キーは、マスタ暗号化キーで暗号化されて保存されます。
マスタ暗号化キーは、データベースクラスタに1つだけ存在します。利用者が指定するパスフレーズに基づいて暗号化され、キーストアに保存されます。FUJITSU Enterprise Postgresは、ファイルベースのキーストアを提供します。パスフレーズを知らない攻撃者は、キーストアからマスタ暗号化キーを読み出すことはできません。

  

強力な暗号化アルゴリズムを利用

暗号化アルゴリズムとしてAES(Advanced Encryption Standard)を使用します。AESは2002年に米国連邦政府の標準として採用され、世界中で広く使われています。

  

ハードウェアに基づく暗号化/復号の高速化

Intel Xeonプロセッサの5600番台以降に搭載されたAES-NI(Advanced Encryption Standard New Instructions)を活用し、暗号化と復号のオーバヘッドを極小化します。これにより、従来は性能とセキュリティとのトレードオフのために最少限の暗号化対象を選別していた場面でも、アプリケーション全体のデータを暗号化できるようになります。

Intel社Webサイトの次のページで、AES-NIを備えたプロセッサの一覧を参照できます。

http://ark.intel.com/search/advanced/?s=t&AESTech=true

  

記憶領域のゼロ・オーバヘッド

テーブルやインデックス、WALに格納されるデータの大きさは、暗号化しても変わりません。そのため、追加の見積りやディスクは不要です。

  

暗号化の範囲

指定したテーブル空間内のすべてのユーザーデータ

暗号化を指定する単位はテーブル空間です。暗号化テーブル空間内に作成されるテーブルとインデックス、一時テーブルと一時インデックスの全体が暗号化されます。利用者はどのテーブルや列を暗号化するかを考える必要はありません。

  

バックアップデータ

pgx_dmpallコマンド、およびpg_basebackupコマンドは、OSファイルをコピーすることによりバックアップデータを作成します。そのため、暗号化されたデータのバックアップは暗号化されたままです。バックアップ・メディアが盗まれても、情報は漏えいから保護されます。

  

WALと一時ファイル

暗号化されたテーブルとインデックスの更新で生成されるWALは、更新対象と同じセキュリティ強度で暗号化されます。大きな結合やソートを実行するときには、暗号化データは一時ファイルにも暗号化された形で書き出されます。

  

ストリーミングレプリケーションのサポート

ストリーミングレプリケーションと透過的データ暗号化を組み合わせて使うことができます。プライマリサーバで暗号化されたデータとWALは、暗号化されたままスタンバイサーバに転送され、格納されます。

  

注意

以下については暗号化されません。

  • pg_dumpおよびpg_dumpallコマンドの出力ファイル

  • COPYコマンドの出力ファイル

  • LISTEN/NOTIFYコマンドでやりとりする通知イベントのペイロード