ウィンドウズの暗号化

2012/06/01

Empressはウィンドウズでの暗号化データベースを提供しています。ここではウィンドウズで暗号化を行う方法についてご説明しています。

暗号化ライブラリは、マイクロソフトウィンドウズ環境でリナックスの"libgcrypt"ライブラリを使用することも可能ですが、 マイクロソフトネイティブの暗号技術を使用する方がはるかに合理的です。 マイクロソフトの暗号化技術はCryptoAPI、CryptoAPI Tools、Cryptographic Service Providers(CSP)などがあります。 Empressはマイクロソフトウィンドウズ環境でCryptoAPIによりデータベース内のデータを暗号化と複合化を可能としました。

CryptoAPIによるEmpressの暗号化

暗号化環境とデータベースを準備します。暗号化オプションがインストールされている状態で、Empress DatabaseがインストールされたマイクロソフトWindowsシステムにログオンしてください。 Empress暗号化はコマンドプロンプトを使用します。 また、他のシェルベースの環境は、同様のタスクを達成するのにWindows PowerShellやCygwin Bashシェルを使用できます。

Empress環境変数"MSCIPHERKEYINFO"は短い16進法の暗号化により"testdb"をたとえ"74657374696e6731"と命名します。

$ set MSCIPHERKEYINFO="C:\tmp\testdb”:74657374696e6731
$ echo %MSCIPHERKEYINFO%
“C:/tmp/testdb”:74657374696e6731

 

"testdb"というデータベースを作成してください。データベースを作成するコマンドで暗号オプションを「MS-AES256」にセットします。 データベースに関する暗号化と復号化は、マイクロソフトCryptographic Serviceプロバイダーを通し256ビットAESアルゴリズムを使用し実行されます。

$ empmkdb -cipher MS-AES256 testdb

 

データベースでHello1とHello2という2つのテーブルを作成してください。
testdbにempsqlコマンドを使用してください。

 

1* create table Hello1 (Name character (10), Message character (15));
2* create table Hello2 (Name character (10), Message character (15) encrypted);

 

Hello1は暗号化されていないテーブルでHello2は暗号化されたテーブルです。Hello1"と"Hello2"にテーブルの「名前」に“Alex”, “Tom” and “Sam”を使用してください。メッセージに"Hello World”, “Good Day” and “Welcome"を登録します。

 

3* insert into Hello1 values ("Alex", "Hello World");
4* insert into Hello1 values ("Tom", "Good Day");
5* insert into Hello1 values ("Sam", "Welcome");

6* insert into Hello2 values ("Alex", "Hello World");
7* insert into Hello2 values ("Tom", "Good Day");
8* insert into Hello2 values ("Sam", "Welcome");

 

2つのテーブル、“Hello1” 、“Hello2”の“Messages”にインデックスを作成します。

 

9* create unique index Hello1x on Hello1( Message );
10* create unique index Hello2x on Hello2( Message );

 

"Hello1"と"Hello2"テーブルからのすべてのデータをSelectしてください。 Hello2のMessagesはデータベースのカーネルレベルで暗号化されますが、"Hello2のMessagesはHello1"と同じです。

 

11* select * from Hello1;
Name Message

Alex Hello World
Tom Good Day
Sam Welcome

12* select * from Hello2;
Name Message

Alex Hello World
Tom Good Day
Sam Welcome

 

Where句を使用したSelectでも、Hello1と暗号化されているHello2のMessagesは"Welcome"です。以上のようにEmpressの暗号化はカーネル暗号化のためIndexがそのまま使用でき、オーバヘッドは5%程度です。