NECは2015年6月5日、PostgreSQLに格納するデータを透過的に暗号化するソフト「Transparent Data Encryption for PostgreSQL」(TDE for PG)を開発し、オープンソース版「Free Edition」をGitHubで公開した。機能上位の商用版「Enterprise Edition」は7月28日に出荷する。商用版の価格は1CPUの最小構成で75万円(追加CPU当たり15万円)。商用版の販売目標は、2年間で100セット。

図●アクセス透過的にデータベースを暗号化する(出典:NEC)
図●アクセス透過的にデータベースを暗号化する(出典:NEC)

 PostgreSQLは、オープンソースのRDBMS(リレーショナルベース管理システム)である。今回NECは、PostgreSQLにデータ暗号化の機能を組み込むライブラリーモジュールを開発した。暗号化のための専用のデータ型を用意している(テキスト型のENCRYPT_TEXTとバイナリー型のENCRYPT_BYTEA)。テーブル作成時に列(カラム)のデータ型としてこれらを指定する。これにより、データベースクライアントからは暗号化を意識することなくSQLでデータにアクセスできる()。暗号化アルゴリズムはAES128またはBlowfish。

 提供形態として、暗号化の基本機能を提供するオープンソース版と、機能上位の商用版を用意した。商用版は、コンパイル済みのライブラリーとして提供し、x86サーバーのRed Hat Enterprise Linux 6.5以降(64ビット版)で利用できる。商用版だけが備える機能は、データベースの状態を診断する機能、問題があった際に破損箇所以外のデータをあらかじめ用意した別のデータベースに移行するデータベース復旧機能、暗号鍵を更新する暗号鍵管理機能、など。

 社員リストのサンプルテーブルを作成するSQLは以下の通り(出典:NEC)。このリストの場合、テキスト型の項目のうち、氏名は暗号化せずに、住所と電話番号を暗号化する。

--Employeeテーブル作成
CREATE TABLE Employee(
 EmployeeID Integer PRIMARY KEY,
 Name TEXT,
 Address ENCRYPT_TEXT,
 TelephoneNumber ENCRYPT_TEXT
);