14
Securing Data at Rest: ― 組み込み DB EMPRESS データベース暗号化ソリューション Page 1 of 14 ホワイトペーパー Securing Data at Rest 組み込み DB EMPRESS データベース暗号化ソリューション © EMPRESS Software Inc.

組み込みDb empressホワイトペーパー

Embed Size (px)

DESCRIPTION

組み込みDB EMPRESSデータベース暗号化ソリューション

Citation preview

Page 1: 組み込みDb empressホワイトペーパー

Securing Data at Rest:

― 組み込み DB EMPRESS データベース暗号化ソリューション

Page 1 of 14

ホワイトペーパー

Securing Data at Rest

組み込みDB EMPRESSデータベース暗号化ソリューション

© EMPRESS Software Inc.

Page 2: 組み込みDb empressホワイトペーパー

Securing Data at Rest:

― 組み込み DB EMPRESS データベース暗号化ソリューション

Page 2 of 14

目次

1. 序論

3

2. 組み込みDB EMPRESSのデータベース暗号化機能

4

3. 組み込み DB EMPRESS のデータベース暗号化機能

の使い方

5

4. キーのローテーションとキーの変更

9

5. 性能とサイズの優位性の考察

10

6. 暗号化データベースのエクスポートとインポート

11

7. 将来の開発

12

8. 概要

13

Page 3: 組み込みDb empressホワイトペーパー

Securing Data at Rest:

― 組み込み DB EMPRESS データベース暗号化ソリューション

Page 3 of 14

1. 序論

1. 序論

暗号化とは、データを解読できない秘密のコードで変形する方法で、セキュリティの脅威、特に暗号

化され、蓄積されたデータに対応する方法です。

例えば、コンピュータ内で“Top Secret”というデータを持っていて、そのデータを誰にも読まれた

くないとします。ユーザは各々の文字のアルファベットのリストをT -> U, o -> p, S -> T …などと変

形したメカニズムを用いることで“Top Secret”を“Upq Tfdsfu”という文字列で変形、保存するこ

とが可能になります。そのユーザのみがデータ変形のメカニズムを知っているので、だれかにデータを

読まれてもデータは解読不能です。もっと複雑なメカニズムを用いれば、データの安全性は向上します。

以下は暗号化技術を扱う際に用いる専門用語です。

暗号化(暗号化アルゴリズム):

数学的な関数で暗号化、非暗号化で用いられます。上記の例のようにアルファベッド文字をリストによ

り変形し暗号化します。そして同様にアルファベッド文字をリストにより複号化します。

暗号キー:

暗号化アルゴリズムを使ってアウトプウットを決定するキーです。上記の例では次の文字の変形を指し

ます。

プレンテキスト:

暗号化されていないデータブロックのことです。上記の例では“Top Secrete”がこれにあたります。

暗号文:

暗号化されたデータブロックのことです。上記の例では“Upq Tfdsfud”がこれにあたります。

復号:

暗号化されたテキストをプレンテキストに戻すプロセスのこと

対称暗号:

暗号化キー、非暗号化キーが同一の暗号方式。

Page 4: 組み込みDb empressホワイトペーパー

Securing Data at Rest:

― 組み込み DB EMPRESS データベース暗号化ソリューション

Page 4 of 14

2. 組み込みDB EMPRESSのデータベース暗号化

組み込みDB EMPRESSデータベースの暗号化機能はカーネルレベルに組み込まれています。

あるアトリビュートが暗号化アトリビュートとして定義された場合、すべてのオペレーションはその属性

にトランスペアレントになります。これは本当の意味でのトランスペアレントデータ暗号化です。

ユーザは暗号化キーがあれば、データベースに格納されている暗号化データを特別意識しないで非暗号

データと同じようにアクセスすることが可能です。

組み込みDB EMPRESSデータベース暗号化の基本的なインフォメーション

暗号化

(暗号化アルゴリズム)

− Advanced Encryption Standard (AES) ・ AES128,

AES192, AES256 − ユーザ定義の暗号化

ライブラリ − libgcrypt ・LinuxなどのいくつかのOSでサポートされている

汎用なGnuPGの暗号化ライブラリです。

− ユーザ定義の暗号化ライブラリ

キータイプ 対称暗号キー ・ 暗号化、復号化のための同一のキーです。 より大きなキー長はよりコンピュータの性能を必要としますが、より大

きなセキュリティを提供します。

暗号化カラム: 組み込みDB EMPRESSはマルチカラムの暗号化をサポートしま

す。

データベースのすべての暗号化されたカラムは同じ暗号化キーを用

います。

キーの保存: キーの保存オプションは

− データベース内に保存

− OS内に保存

− ユーザが保存(最もセキュア)

キーの交換 暗号化アルゴリズムと暗号化キーは組み込み DB EMPRESS

キーの交換 ユティリテイ を用いることで変更が可能.

アクセスAPI データベースエンジンのカーネルレベル暗号化(他のベンダーのプ

ロシージャ、トリガーによる暗号化と比較して)によりよいパフォ

ーマンスと少ないオーバヘッドを実現

データタイプ 組み込み DB EMPRESS は Binary Large Objects (BLOBs)や

Character Large Objects (CLOBs)などを含むすべてのデータタ

イプの暗号化機能を提供しています。

サイズ制限 組み込みDB EMPRESSはサイズ制限がありません。

インポート/エクスポート 暗号化されたデータのインポート、エクスポートをサポートします。

インデックス 組み込み DB EMPRESS は暗号化されたすべてのカラムにインデ

ックスを付けることが可能です。

Page 5: 組み込みDb empressホワイトペーパー

Securing Data at Rest:

― 組み込み DB EMPRESS データベース暗号化ソリューション

Page 5 of 14

3. 組み込みDB EMPRESS のデータベース暗号化機能の使い方

汎用な暗号化ライブラリ libgcrypt は Linux のような OS で提供されるか、GnuPG のウエッブサ

イトからダウンロードが可能です。

libgcrypt ライブラリ中で提供されている暗号化機能をチェックするには、組み込みDB EMPRESS

の empadm コマンドで ‒help オプション付きで起動してください。:

empadm -help

*** Usage *** empadm [option] DATABASE command where option is:

-help displays this message and exit and command is one of the following:

coordinfo reports coordinator information coordclear [-f] [EID ...] removes coordinator entry where EID is EMPRESS ID

dbamode [on] [-i N|-q] retricts access of DATABASE to DBA only dbamode off releases the DBA only restriction of DATABASE dblocation reports physical location of DATABASE lockbrief [TBL ...] reports brief locking information lockclear [-f] [EID ...] removes lock where EID is 組み込みDB EMPRESS ID

lockinfo [TBL ...] reports locking information lockmanagers [TBL ...] reports Lock Manager information lockremove removes lock and lock files lockrststats reset lock statistics locksactive [TBL ...] reports a snapshot of the active locks lockstats [TBL ...] provides a detailed report of Lock Manager statistics maxprocs [-f] set no. of process limit of DATABASE to default value maxprocs licence [-f] set no. of process limit of DATABASE to maximum maxprocs N [-f] set no. of process limit of DATABASE to N maxprocs keep [-f] uses the existing limit to remake the coordinator params FILE TBL ... maps DATABASE files to shared memory using the the parameter file FILE. recompile [TBL ...] rebuilds the sys_dictionary record for the table TBL recompile_all rebuilds the sys_dictionary record for each table setcipher CIPHER set CIPHER to encrypt/decrypt assigned attributes value. Available ciphers:

3DES AES AES192 AES256 ARCFOUR BLOWFISH CAST5

COPY DES DES_STD NONE RFC2268_40 SERPENT128

SERPENT192 SERPENT256 SIMPLE TWOFISH TWOFISH128

AES、AES192、 AES256、 BLOWFISH などの暗号が表示されない場合は、組み込み DB

EMPRESS が暗号化ライブラリを読み込めないことを表しますので、EMPRESS の技術サポートに相

談してください。

Page 6: 組み込みDb empressホワイトペーパー

Securing Data at Rest:

― 組み込み DB EMPRESS データベース暗号化ソリューション

Page 6 of 14

Step 1. 環境変数の設定

組み込み DB EMPRESS RDBMSは暗号キーを暗号化ライブラリに渡さなければなりません。

まず、データベースの暗号化を定義しなければなりません。暗号化キーをセットアップするには以下

の2つのオプションがあります。

1. 組み込みDB EMPRESS 環境設定変数 MSCIPHERKEYINFO をセットします。

MSCIPHERKEYINFO "<database>":<key>

キーは 16進数で定義されます。

例えば:

MSCIPHERKEYINFO "/home/peter/testdb":74657374696e6731

2. 組み込み DB EMPRESS の環境変数 MSCIPHERKEYINFOFILE に組み込み DB

EMPRESSの暗号ファイルを設定します。

組み込み DB EMPRESS の暗号ファイルは組み込み DB EMPRESS の環境変数

MSCIPHERKEYINFOで定義したものを含むファイルです。

MSCIPHERKEYINFOFILE <file_name_in_full_path>

例えば:

MSCIPHERKEYINFOFILE /home/peter/CredentialFile

"CredentialFile" は以下の情報を含みます:

"/home/peter/testdb":74657374696e6731

以下に留意してください:

1) データベースはフルパスで記述してください。さもないと empexpt などのユーティリテ

ィが使用できなくなります

2) このオプションはキーマネジメントにとって望ましい方法です。

同じ暗号化キーをすべてのデータベースに使用する場合はデータベース名に "default" を用いてく

ださい。

default:74657374696e6731

特に別の暗号キーをユーザが定義しない場合は"default"はすべてのデータベースの暗号キーを定義

します。

MSCIPHERKEYINFOはMSCIPHERKEYINFOFILE より優先権があります。

MSCIPHERKEYINFOFILE は通常のデータベースに、MSCIPHERKEYINFO は例外的なデータベ

ースに使用できます。

Page 7: 組み込みDb empressホワイトペーパー

Securing Data at Rest:

― 組み込み DB EMPRESS データベース暗号化ソリューション

Page 7 of 14

Step 2. データベースの暗号化の定義

暗号化用の新しいデータベースを empmkdb コマンドにより作成します:

empmkdb -cipher <cipher_name> <database_name>

例えば:

empmkdb -cipher AES256 testdb

すでに存在しているデータベースで暗号化データを格納するには empadm ユーティリティを使用

してください。

empadm <database_name> setcipher <cipher_name>

例えば:

empadm testdb setcipher AES256

すでに存在しているデータベースが暗号化データを格納できるようになりました.

暗号化キーが正しく設定されていることを確認する機能は望ましいことです。これにより正しくな

い暗号化キーにより意味のないデータは生成されないからです。暗号化キーはそれ自身が暗号化され、

保管されます。それにより、与えられた暗号化キーは保管され、暗号化された暗号化キーと比較、確

認されます。もしキーが正しくなければ、スリープ期間の数秒間を経た上でエラーを通知します。

Step 3. 暗号化カラムの定義

組み込み DB EMPRESS の暗号化機能はカラムレベルで定義されます。ユーザはどのカラムを

暗号化するかを定義できます。Customer テーブルは4つのカラム、cust_no、name、ssn、address

を持ち、cust_no と ssn を暗号化したデータベーステーブルを例としましょう。このようなテーブ

ルを作成するにはCREATE TABLEコマンドを使用します:

CREATE TABLE customer (

cust_no LONGINTEGER NOT NULL ENCRYPTED,

name CHAR(20),

ssn CHAR(9) ENCRYPTED,

address TEXT);

cust_no は検索の際使用されるので cust_no に暗号化インデックスを作成します。:

CREATE UNIQUE INDEX customer_index ON customer(cust_no);

組み込み DB EMPRESS RDBMS はデータベース中の cust_no と ssn を暗号化し、データが

取り出されるときに非暗号化します.

暗号化カラムを持つテーブル Customer にアクセスする際、アプリケーション開発者はアプリケ

ーションを変更する必要はありません。組み込み DB EMPRESS はすべての組み込み DB

EMPRESSインターフェイスおよび組み込みDB EMPRESSのユーティリティの稼動を保証しま

Page 8: 組み込みDb empressホワイトペーパー

Securing Data at Rest:

― 組み込み DB EMPRESS データベース暗号化ソリューション

Page 8 of 14

す.

ユーザはデータベーススキーマのカラムを暗号化、非暗号化に変更することが可能です

例えば:

ALTER TABLE customer CHANGE ssn NOT ENCRYPTED;

もしくは暗号化されたカラムを再定義します:

ALTER TABLE customer CHANGE ssn ENCRYPTED;

ひとつのALTERコマンドで複数のカラムを一度に暗号化定義することができます。

ユーザは暗号化されたカラムのデータタイプ、サイズを変更する必要がありません。

Figure 1 は、EMPRESSデータベースの暗号化シナリオの例です。テーブルCustomer に関連す

るファイルの暗号化された部分と暗号化されていない部分を記述します。ユーザデータを含まないフ

ァイルヘッダは暗号化されません。暗号化されたカラムを格納したディスク内のプレインテキストは

ありません

Figure 1. 組み込みDB EMPRESSデータベーステーブルCustomer の暗号化部分と

暗号化されていない部分

Page 9: 組み込みDb empressホワイトペーパー

Securing Data at Rest:

― 組み込み DB EMPRESS データベース暗号化ソリューション

Page 9 of 14

4. キーのローテーションとキーの変更

オフラインキーローテーションは組み込みDB EMPRESS ユーティリティを使い、実現できます。ユ

ーティリティはスタンドアローンインターフェイスから或はプログラムからコールすることが可能で、

定期的或は、必要な時にキーローテーションをすることができます。

新しい暗号キーでデータベース内部のセンシティブなすべてのデータを再暗号化するためデータベース

をオフラインするモードにしなければなりません。以下のステップで実行します:

1. セコンドキーはクレデンシャルファイル内で定義されます。

2. empchgcipherkeyinfo ユーティリティは、データベースから暗号化されたデータを読出し、

最初のキーを使用して復号し、2番目の暗号化キーを使用して、暗号化を行います。

3. 2番目の暗号化キー使用して、暗号化したデータをデータベースに更新します。

Page 10: 組み込みDb empressホワイトペーパー

Securing Data at Rest:

― 組み込み DB EMPRESS データベース暗号化ソリューション

Page 10 of 14

5. 性能とサイズの優位性の考察

データセキュリティとアプリケーションのパフォーマンスのトレードオフの容認関係においてどちらの

犠牲が容認されるか?

組み込み DB EMPRESS は暗号化機能を提供するために、速度性能の向上とオーバーヘッドを最小限

に抑える設計を採用しました。

組み込みDB EMPRESSは暗号化機能がデータベースエンジンレベル(カーネルレベル暗号化)で実

装されています。暗号化と非暗号化API を組み込みDB EMPRESSエンジン内部からコールするよう

に設計されています。トリガー、ストアドプロシージャから暗号化 API コールするソリューションに比

べて、高速尚且つ、オーバヘッドの少ない設計です。

組み込み DB EMPRESS は暗号化、非暗号化の回数を減少させるため最適化作業として、組み込み

DB EMPRESS の暗号化カラムをグループ化して、レコード単位で暗号化のプロセスを行います。そ

れによって、高速尚且つオーバヘッドの少ない暗号化機能での実装ができました。

Figure 2. 組み込みDB EMPRESS内部のレコードレベルレイアウトの最適化工程

さらにこのアプローチはスペース節約アプローチです。カラム単位の暗号化の場合には、通常暗号化

したカラムは暗号化していないカラムより大きくなります。たとえば、cust_no カラムのデータタイプ

は LONGINTEGERでサイズは4バイトですが、パッデイングした場合には12バイトが必要になりま

す。

暗号化されたデータベースサイズにおけるオーバーヘッドは暗号化されていないデータベースサイズ

と比較すると上記要素以外に、使用される暗号化アルゴリズムに依存されます。暗号そのものを 16 バ

イトパディング必要だと推論すると、スペースは508バイトから512バイトに拡張し、オーバーヘッ

ド無視出来る程度になります。

Page 11: 組み込みDb empressホワイトペーパー

Securing Data at Rest:

― 組み込み DB EMPRESS データベース暗号化ソリューション

Page 11 of 14

グループでカラムのレイアウトを最適化する内部作業はユーザには見えません。よって、オリジナル

のテーブルカラムのオーダは保持されます。もし、ユーザがテーブル定義を表示もしくはデータをテー

ブルから取り出す場合、オリジナルのカラムオーダは保持されます。

1*display customer all;

*** Table: customer ***

Attributes:

cust_no longinteger Not Null Encrypted

name character(20,1)

ssn character(9,1) Encrypted

address text(20,1024,1024,1)

Creator: peter

Indices: UNIQUE BTREE customer_index ON (cust_no)

2* select from customer;

cust_no name ssn address

6. 暗号化データベースのエクスポートとインポート

組み込み DB EMPRESS の暗号化データベースのエクスポートとインポート機能の特徴はユーザが

組み込みDB EMPRESS 暗号化データベースからデータを暗号化エクスポートファイルにエクスポー

トし、もしくは暗号化インポートファイルから組み込みDB EMPRESS 暗号化データベースインポー

トすることを可能にします。

現在組み込みDB EMPRESSのエクスポートとインポートユーティリティは以下の形式になります:

新しいユーティリティのシノプシスは:

SYNOPSIS

empimpt [-codeset CS] [-notable] [-nomodule] [-decrypt keyfile]

[-cdeghiklmprtvx] <infile>

<database> [[-table] <table> ...]] [-module <module> ...]

empexpt [-notable] [-nomodule] [-encrypt keyfile]

[-demvx] [-h <user_label_string>] <outfile>

<database> [[-table] <table> ...]] [-module <module> ...]

新しいオプションは[-decrypt keyfile] と[-encrypt keyfile]です。キーファイルはエクスポートファイ

ル生成のために暗号化キーを有します。このオプションを使用した場合、すべてのデータは暗号化され

ます。キーファイルは将来のインポートのために保存しなければなりません。さもないとインポートで

きません。

Page 12: 組み込みDb empressホワイトペーパー

Securing Data at Rest:

― 組み込み DB EMPRESS データベース暗号化ソリューション

Page 12 of 14

キーファイルは以下のような情報をも持ちます:

<cipher>:<cipher key>

以下の通りです:

AES256:74657374696e9999

暗号化キーはデータベース暗号化キーと同一である必要はありません。データベース内のデータは暗号

化されないかも知れません、ユーザは暗号化エクスポートファイルの生成が可能です。

7. 将来の開発

マルチキーの採用

現在のセキュリティ方法では各々のデータベースにひとつの暗号化キーを使用します。これはキー

管理を単純化するだけではなく、組み込み DB EMPRESS が発行する暗号化、復号化コールのパ

フォーマンスを最適化することになります。

データベースカラム毎に別々のキーを指定するなどのソリューションの実装が可能です。これによ

りユーザシステム全体のセキュリティポリシーを強化することができます。

オンラインのキーのローテーション

現在の組み込み DB EMPRESS キーローテーションユーティリティはオフラインツールです。

換言すれば、このユーティリティを使用する場合にはデータベースを止めなければなりません。 組

み込み DB EMPRESS はデータベースが稼動中に、オンラインキーローテーションへアップグレ

ードする予定です。オンラインキーローテーションユーティリティはオフラインツールの再暗号化プ

ロセスと同様に稼動します。新しい暗号化されたデータとともにどのキーが使われたかをしめすメタ

情報などが更新されます。

Page 13: 組み込みDb empressホワイトペーパー

Securing Data at Rest:

― 組み込み DB EMPRESS データベース暗号化ソリューション

Page 13 of 14

8. 概要

概要として、組み込みDB EMPRESS RDBMS暗号化ソリューションを使用することのメリットを記

述します:

すべてのデータベースのデータをセキュアにすること。すべてのログやバックアップファイルを

含めたユーザのデータを保護するソリューションです。

失われたデータが第三者に読まれ、それによって、悪質な報道や顧客の喪失、政府の介入などを

排除します。

効果的なセキュリティソリューションです。組み込みDB EMPRESSのカーネル暗号化機能は、

暗号化、復号化のプロセスのオーバーヘッドを最小限に抑えています。さらに、組み込み DB

EMPRESSはデータベースサイズの増加を最小限にキープするアルゴリズムを提供します。

すでに作成された非暗号化組み込み DB EMPRESS データベースのデータを使用するアプリ

ケーションに影響を与えません。データベースを暗号化にすることによって、コード変更を必要

としません。

ストアドプロシージャ、トリガー、ビューのような機能をデータベース暗号化のために、追加す

る必要はありません。これによりユーザは新規の組み込みDB EMPRESSセキュアデータベー

スを使用するアプリケーションの作成、又は、セキュアでないデータベースをセキュアデータベ

ースに変更する事が簡単にできます。

組み込みDB EMPRESSのリンク先:

http://www.dorakuken.co.jp/product/empress/index.html

Page 14: 組み込みDb empressホワイトペーパー

Securing Data at Rest:

― 組み込み DB EMPRESS データベース暗号化ソリューション

Page 14 of 14

【EMPRESS 社について】

EMPRESS社(本社:カナダ・トロント)は1979年設立された歴史あるデータベース

ベンダーです。EMPRESS社は、米国、日本以外に も、中国に開発センター、英国、フラ

ンス、ロシア、ポーランドに代理店を持つグローバル企業です。

「EMPRESS」は北米導入実績NO.1データベース組み込み商品で、ミッションクリティ

カルを必要とするアプリケーションとデバイスのための組み込みデータベースです。

※ 本紙のオリジナル文献は以下となります。

ウェブサイト:http://www.empress.com/marketing/encryption/EmpressSecurityWhitePaper.v11.htm

【株式会社 IT 働楽研究所について】

株式会社 IT 働楽研究所は、情報インフラシステム開発、ソフトウェア開発、セキュリテ

ィシステム開発を3本柱として事業を展開。

2011年 4月に株式会社富士ソフト技研をグループ化することでカナダ EMPRESS社の

組み込みデータベース商品の販売を開始。

さらに同年4月、2011年 4月に 株式会社三輪書店、株式会社メディケア・リハビリ

とともに 『 いきいきメディケアサポート株式会社 』 設立。

資本金 4,250万円。従業員数 160名 (2011年 8月)

【本件に関するお問い合わせ先】

株式会社 IT 働楽研究所 営業本部 (吉田)

〒101-0047 東京都千代田区内神田2-14-10 東正ビル4階

電話 : 03-5298-5301

E-Mail : [email protected]

Website: http://www.dorakuken.co.jp