【B5】InterBaseテクニカルセッション

パワーアップ InterBase！
2009新機能とサポートツールズのご紹介

キムラデービー代表
木村明治(きむらめいじ)

アジェンダ• InterBase SMP 2009
• 暗号化機能• SMP• その他の新機能• サポートツールズ• IBReplicator(IBPhoenix社製レプリケーションツール)• FBScanner(IBSurgeon社)• IBTransactionMonitor(IBSurgeon社)

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

21

InterBase SMP 2009

InterBase SMP 2009の目玉と言えば….

暗号化！
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

42

New features in InterBase 2009• データベースとカラムレベルの暗号化• オーバーザワイヤー(OTW)ネットワークの暗号化• バックアップファイルの暗号化• To-Go Edition

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

5暗号化とは• 暗号化とは第三者に内容を知られないように、内容を特別な知識なしでは読めないよう変換すること。使われる暗号技術は大きく三つに分類できる。
• ハッシュ関数• 共通鍵暗号(秘密鍵暗号ともいう)• 公開鍵暗号＆デジタル署名• InterBase2009で利用するのは「共通鍵暗号」

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

63

共通鍵暗号• 共通鍵暗号は、暗号と復号に同一の鍵を用いる暗号方式。代表的なものには、DES（Data Encryption Standard）やAES（Advanced Encryption Standard ）がある。
• 両者共暗号化の際、元のデータを一定のブロック長に分割した後、ビット列をかき混ぜ(攪拌:かくはん)してゆく。

• 攪拌には、鍵から複数の副鍵を生成して、その副鍵を使う。攪拌
は十数回行われ、その結果として暗号文が生成される。
• 鍵のbit長が長いほど、暗号化の強度が増す。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

7

利用のチェックポイント• 利用する側が認識する必要があるのは次の項目。
• (1) アルゴリズムの新旧• (2) 鍵の長さ
• (3) 鍵の強度とパフォーマンスのトレードオフ• (1) アルゴリズムの新旧• DESは長らく使われてきたが、1990年代後半に総当たり攻撃を用いた完全解読が可能であることが実証された。
• そのため、次世代の暗号化アルゴリズムとしてAESが採用された。採用は1997年にNIST(アメリカ国立標準技術研究所)が公募して、全世界から21種類のアルゴリズムが応募された。最終的には５つのアルゴリズムがファイナリストとして残り、その中からRijndael(ラインデール)が採用された。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

84

利用のチェックポイント• (2) 鍵の長さ
• AESは規格として、鍵の長さは128ビット、192ビット、256ビットの3つが利用できる。鍵の長さが長いほどより暗号強度を高めることができる。

• (3) 鍵の強度とパフォーマンスのトレードオフ• 暗号・複合化は必ずパフォーマンスの劣化が伴う。
• 全体として必要なパフォーマンスとのトレードオフを必ず確認する。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

9

概略 全体図InterBaseで設定

監査

InterBaseBackup
ファイル

ＤＢファイル

ユーザ名とパスワード
アクセス
制御ユ｜
ザ認証

ネットワーククライ
アント

OS・その他の設定• データベースとカラムレベルの暗号化• オーバーザワイヤー(OTW)ネットワークの暗号化• バックアップファイルの暗号化
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

105

データベースとカラムレベルの暗号化• まずSYSDSOが必要。
• SYSDSO: System Database Security Owner.
• 暗号化の各種作業を行う。
• SYSDBAのように予約されたユーザ名。

• そしてSEPが必要。
• SEP: System Encryption Password• 暗号化に使ったキーをプロテクトするのに使う。
• データベース毎に設定し、複数のデータベースを扱う場合は、それぞれ変更するのが望ましい。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

11

暗号化のステップ• 1.EUA(Embedded User Authentication)が有効かどうか確認• 2.SYSDSOの作成• 3.SEPの作成• 4.暗号化キーの作成• 5.暗号化実行の権限の付与• 6.データベース・カラムの暗号化• 7.暗号化されたデータの復号化権限の付与・剥奪• 3～5をSYSDSOが、それ以外はオーナーが行う。
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

126

1.EUAが有効かどうか確認• オーナーが行う• 操作ガイド(Operation Guide: 6-4)参照• EUAとは• Embedded user authentication (EUA) はユーザ名やパスワード情報を直接データベースに埋め込みます。ユーザ認証がデータベースに埋め込まれることにより、データベースのメタデータIPは外部からの操作によりよいプロテクションを提供する。
• 通常はadmin.ib(旧: isc4.gdb)に格納されている。
• EUAはまた、トランスポータブルなDBをよりセキュアにする。

• Isqlで設定• CREATE DATABASE <database name> [WITH ADMIN OPTION]• ALTER DATABASE <database name> [ADD ADMIN OPTION]• ALTER DATABASE <database name> [DROP ADMIN OPTION]

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

13

2.SYSDSOの作成• オーナーが行う• Isqlで設定• CREATE USER SYSDSO SET PASSWORD'PASSWORD';• SET PASSWORD 句が指定されない場合は、SYSDSOを作成したユーザのパスワードが使われます。

• これまでの操作

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

147

3.SEPの作成• SYSDSOが行う• SYSDSOがSEPを作成する場合は、以下のようにalterdatabaseを発行する。
• alter database set system encryption password <パスワード>• パスワードは255文字までの長さで、空白を含むことができる。
• SEPは、マシン特有の情報から導出されたキーで暗号化され、データベース内に格納される。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

15

4.暗号化キーの作成• SYSDSOが行う• 書式• create encryption key-name [as default] [for {AES | DES}][with length number-of-bits [bits]] [password {'userpassword' | system encryption password}] [init_vector{NULL | random}] [pad {NULL | random}] [description‘some user description’]• 例)• CREATE ENCRYPTION revenue_key FOR AES WITHLENGTH 192 BITS INIT_VECTOR RANDOM;• CREATE ENCRYPTION expenses_key FOR DES
INIT_VECTOR RANDOM;

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

168

Init_vecotor →ブロック化暗号モード を設定• ブロック化暗号モード(block cipher mode)• DESやAESでは、データをブロック単位で暗号化する。
• しかし、単純にブロック単位で、元データを暗号化していくとすると、元データに繰り返しパターンがあると 暗号文にも同じパターンが現れてしまうという欠点がある。 (後述するECB)• そのため、前のブロックの暗号化の結果に基づいて次のブロックに対する 暗号化処理を変えていく暗号モードが導入された。
• その指定がInit_vector。
• 代表的な暗号モード••••

ＥＣＢ（Electronic Code Book）電子コードブック
ＣＢＣ（Cipher Block Chaining）暗号ブロック連鎖
ＣＦＢ（Cipher Feedback）暗号フィードバック
ＯＦＢ（Output Feedback）出力フィードバック

InterBase 2009で指定できる暗号モード

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

17

5.暗号化実行の権限の付与• SYSDSOが行う• 書式• GRANT ENCRYPT ON ENCRYPTION key-name to username;• 例) revenue_keyをSYSDBAに許可する場合• GRANT ENCRYPT ON ENCRYPTION revenue_key toSYSDBA;

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

189

6.データベース・カラムの暗号化• オーナーが行う• データベース単位の暗号化• 書式: alter database encrypt [[with] key-name]• 例) revnue_keyを使ってデータベース全体を暗号化する• alter database encrypt with revnue_key;• カラム単位の暗号化• 書式: alter table table-name (alter column column-nameencrypt [[with] keyname]• 例) expenses_keyをつかってtotal_valueカラムを暗号化する• alter table SALES alter column total_value encrypt withexpenses_key
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

19

7.暗号化されたデータの復号化権限操作• オーナーが行う• データの復号化• データベース単位: alter database decrypt;• カラム単位: alter table table-name alter [column] columnname decrypt;• 復号化権限の付与• grant decrypt[(column-name, …)] on table-name to username;

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

2010

暗号化デモ＆メモ• 現状、デフォルトではAESの指定はできない。

• CodeGearに連絡して、追加のライセンス(無料)を有効化する必要がある。

• 一般的なInterBaseのコマンドと同じように、エラーが出たときのメッセージはわかりにくいので、あまり驚かないように….
SQL> GRANT ENCRYPT ON ENCRYPTION wrong_key to SYSDBA;
Statement failed, SQLCODE = -607
unsuccessful metadata update-STORE RDB$USER_PRIVILEGES failed in grant-no current record for fetch operation-action cancelled by trigger (0) to preserve data integrity

間違ったキーを指定した場合本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

21

バックアップファイルの暗号化• gbakに新たなオプションが追加• -sep• -encrypt• -decrypt

• 使用例
• 暗号化
• Gbak –b employee.ib employee.ibak –sep “enc_test” –encrypt
backup_key• 復号化• Gbak –r employee.ib employee.ibak –sep “enc_test” –decrypt
backup_key
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

22

11

OTWネットワークの暗号化• ワイヤプロトコルの暗号化• サーバサイドとクライアントサイドでX.509設定が必要• ＯＴＷ暗号化はSSL v3 とTLS v1 セキュリティプロトコルを使って提供されている。
• ＳＳＬはX.509標準を公開キーのインフラとして使っている。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

23

InterBaseの通信イメージ
ポート3050で平文InterBase

ネットワーク本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

クライ
アント

24

12

InterBaseの通信イメージ
ポート3050で平文InterBase

ネットワーク

セキュアな通信InterBase
OTW

ネットワーク暗号化

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

クライ
アント

クライ
アント
OTW

25

新機能: その他のトピック• To-Go Edition• インプロセスで使えるDBライブラリ• SQLiteや、Firebirdのembmedded Server、MySQLのlibmysqldと同じ形態。

• SMP対応強化• InterBase7からSMP対応

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

2613

サポートツールズ

サポートツールズ

1. IBReplicator(IBPhoenix社製レプリケーションツール)
2. FBScanner(IBSurgeon社)
3. IBTransactionMonitor(IBSurgeon社)

お問い合わせは、info@kimuradb.comまで。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

2814

FirebirdとInterBaseの関係【機能的にほぼ同一】【無償】
Firebird
InterBase
4.x Linux,
FreeBSD版

InterBase6.0
Open
Source版

Firebird
1.0

1.5
ツールは両DB対応

InterBase InterBase InterBase
InterBase
4.x商用版
5.x
6.0
6.5

【有償】

Firebird
2.0,2.1【日本未発売】InterBase
7.x

起源はFirebird/InterBase同一。
一時オープン化されたソースから分岐
現在はそれぞれ別の進化をとげる
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

InterBase2007,200929

Replication Managerを使って新規のconfigを作成

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

3015

データベースの追加

DBを追加していく。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

31

スキーマにDBを追加していく。

追加していった部分

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

32

16

IBReplicatorの構成例

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

33

IBReplicatorの構成例(続き)本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

34

17

FBScanner(IBSurgeon社)• FBScanner (Firebird Scanner) はサーバ(InterBase,Firebird)とクライアント間の全てのトラフィックを見たり、監視したりできるツール。接続されたクライアントのリア
ルタイムな以下の活動を表示することができる。
• 接続(IP/Name, 接続時間, CPU 負荷)• クエリ(クエリテキスト, 状態, パラメタ)• トランザクション (パラメタ)

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

35

FBScanner(IBSurgeon社)

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

3618

IBTransactionMonitor(IBSurgeon社)• IBTransactionMonitor (IBTM)はInterBaseとFirebird
データベース内の動的なトランザクションを解析したり、閲覧したり、モニターしたりするソフトウエア。
• IBTMの機能を使って、以下のような実際の問題や潜在的な問題を見つけることができる。
• パフォーマンスのボトルネック• 製品の実際の負荷• 異常終了やクライアントのクラッシュ• トランザクションの管理問題• データベースのアベイラビリティ.
• 異なる色々な視点からトランザクションの振る舞いを視覚的に表示
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

37

IBTransactionMonitor(IBSurgeon社)

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

38

19

IBTransactionMonitor(IBSurgeon社)

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

39

サポートツールズ、デモ＆メモ

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

40

20