暗号化機能を利用する場合のセットアップ方法について説明します。
参照
暗号化の詳細については、“RDB運用ガイド”の“暗号化”を参照してください。
クライアントとサーバ間の通信データを暗号化する場合は、以下のセットアップを行ってください。
通信データの暗号化には、SSLのデジタル証明書を使用したサーバ認証を行う場合と、行わない場合があり、手順が異なります。
サーバ認証を行うと、通信の盗聴を防止することに加え、中間者攻撃(例えばサーバのなりすましによりデータやパスワードを横奪するなど)を防止することができます。
セットアップ手順 | サーバ認証 | |
---|---|---|
行う | 行わない | |
1) 証明書発行の手続き | ○ | - |
2) サーバ証明書ファイル、サーバ秘密鍵ファイルの配置 | ○ | - |
3) CA証明書ファイルのクライアントへの配布 | ○ | - |
4) システム用の動作環境ファイルの編集 | ○ | ○ |
5) クライアント用の動作環境ファイルの編集 | ○ | ○ |
○:作業が必要
-:作業が不要
通信データの暗号化の環境を以下に示します。
サーバ認証を行う場合は、認証局(CA)に証明書を発行してもらう手続きが必要です。
Symfoware Serverでは、X.509の規格のPEM形式のファイルをサポートしています。
認証局からDER形式で発行された場合は、opensslコマンドなどのツールを使用してDER形式をPEM形式に変換してください。
以下に手順の概要を示します。詳細は、証明書ファイルの取得先である、公的または独自の認証局(CA)より公開されている手順を参照してください。
サーバ秘密鍵ファイルの作成
サーバ秘密鍵ファイルのパスフレーズ解除
サーバ秘密鍵ファイルからCSR(サーバ証明書を取得するための署名要求)を作成
認証局(CA)へサーバ証明書を申請
認証局(CA)から、サーバ証明書ファイルおよびCA証明書ファイルを取得
サーバ証明書ファイルおよびCA証明書ファイルを保管
注) 紛失や破損した場合は、再発行が必要になります。
上記の手順により、以下のファイルが準備できます。
サーバ秘密鍵ファイル
サーバ証明書ファイル
CA証明書ファイル
運用系および待機系のローカルディスクにディレクトリを作成し、サーバ証明書ファイル、サーバ秘密鍵ファイルを配置します。作成したディレクトリのアクセス権は、データベース管理者のみに付与します。
サーバ証明書ファイル、サーバ秘密鍵ファイルのアクセス権は、OSの機能を利用して、データベース管理者にのみ読込み権を設定してください。
また、サーバ証明書ファイルおよびサーバ秘密鍵ファイルは破損に備え、バックアップをして、厳重に管理してください。
クライアントのローカルディスクにディレクトリを作成し、配布されたCA証明書ファイルを配置します。
CA証明書ファイルを誤って削除などしないように、OSの機能を利用して、読込み権を設定してください
運用系および待機系において、サーバ側の暗号化を指定するため、システム用の動作環境ファイルの以下のパラメタを編集してください。
実行パラメタ | 概要 | サーバ認証 | |
---|---|---|---|
行う | 行わない | ||
SSL_USE | クライアント側からの暗号化した通信を受け入れるか、受け入れないかを指定します。 | ○ | ○ |
SSL_CIPHER_SUITES | サーバ認証を行うか、行わないかを指定します。 | ○ | ○ |
SSL_CERT_FILE | サーバ証明書ファイルの配置先を指定します。 | ○ | - |
SSL_PRIV_KEY_FILE | サーバ秘密鍵ファイルの配置先を指定します。 | ○ | - |
○:設定が必要
-:設定が不要
参照
パラメタの指定方法の詳細は、“セットアップガイド”を参照してください。
クライアント用の動作環境ファイルで暗号化の指定が必要です。アプリケーションの動作環境の設定時に指定してください。
なお、埋込みSQL連携で、クライアント用の動作環境ファイルのDEFAULT_CONNECTIONパラメタを使用している場合、データベースサーバに接続するユーザのパスワードが誰にでも参照できてしまいます。
そのため、サーバとの接続方法として、DEFAULT_CONNECTIONパラメタを使用せず、SQLサーバ名を使用したCONNECT文による接続を推奨します。
実行パラメタ | 概要 | サーバ認証 | |
---|---|---|---|
行う | 行わない | ||
SERVER_SPEC | データベースサーバに対して暗号化した通信を行うか、行わないかを指定します。 | ○ | ○ |
SSL_CLI_CA_CERT_FILE | CA証明書ファイルの配置先を指定します。 | ○ | - |
○:設定が必要
-:設定が不要
参照
アプリケーションの動作環境の設定については、パラメタの指定方法の詳細は、“アプリケーション開発ガイド(共通編)”を参照してください。
格納データを暗号化する場合は、以下のセットアップを行ってください。
キー管理サーバまたはキー管理ストレージの準備
マスタ暗号化キーの作成とバックアップ
格納データの暗号化指定
格納データの暗号化の環境を以下に示します。
マスタ暗号化キーは、RDBディクショナリや格納データと同時に盗難されないようにするため、分けて管理する必要があります。そのため、マスタ暗号化キーファイルを管理するための、キー管理サーバまたはキー管理ストレージを事前に用意してください。
キー管理サーバまたはキー管理ストレージとデータベースサーバの間の通信路を安全にするために、Security Architecture for Internet Protocol(IPsec)を導入するなどし、安全性を確保することを推奨します。
IPsecはIPパケット単位にデータを暗号化することができる通信プロトコルです。OSのIPsecによる通信機能を設定することで通信路の盗聴を防止します。
IPsecの導入方法については、使用しているシステムベンダのドキュメントを参照してください。
キー管理サーバまたはキー管理ストレージの準備手順の例を以下に示します。
実行環境 | 手順 |
---|---|
キー管理サーバまたはキー管理ストレージ | 1) IPsecの設定(注) |
2) マスタ暗号化キーファイルの格納ディレクトリの設定 | |
データベースサーバ | 3) IPsecの設定(注) |
4) マスタ暗号化キーファイルの格納ディレクトリのマウント |
注) IPsecを導入する場合に行ってください。
IPsecを導入する場合は、使用しているシステムベンダのドキュメントを参照して、IPsecを設定してください。
キー管理サーバに、マスタ暗号化キーファイルの格納ディレクトリを作成します。
キー管理ストレージに作成する場合は、ネットワーク上のディスク装置に付属する管理ソフトウェアで下記と同様の設定を行ってください。
データベースサーバのデータベース管理者と同じグループID、ユーザIDのユーザを作成します。
作成したディレクトリのアクセス権は、OSの機能を利用して、データベース管理者にのみ読込み権を設定してください。
キー管理サーバに/symfo/mstkeyのディレクトリを作成する場合
# groupadd -g 600 dbgrp1 # useradd -u 600 -g dbgrp1 dbuser1 # mkdir -p /symfo/mstkey # chown dbuser1:dbgrp1 /symfo/mstkey # chmod 700 /symfo/mstkey
IPsecを導入する場合は、使用しているシステムベンダのドキュメントを参照して、IPsecを設定してください。
キー管理サーバまたはキー管理ストレージに作成したディレクトリを、データベースサーバからアクセスできるようにネットワーク経由でマウントします。
データベースサーバから/symfo/mstkeyをNFSを使ってマウントする場合
# mount -F nfs -o soft,vers=3 keysvr:/symfo/mstkey /symfo/mstkey
参照
ネットワークファイルの詳細については、“セットアップガイド”の“ネットワークファイルの設定”を参照してください。
RDBディクショナリ内にある内部暗号化キーは、マスタ暗号化キーを使用して作成しています。
そのため、RDBディクショナリのリカバリ時には、RDBディクショナリのバックアップを取得したときに使用していたマスタ暗号化キーが必要です。
マスタ暗号化キーを紛失した場合、データを復号できなくなります。そのため、マスタ暗号化キーファイルの作成が完了したら、マスタ暗号化キーファイルのバックアップを行ってください。
マスタ暗号化キーは、定期的に変更を行う必要があるため、RDBディクショナリのバックアップと関連づけて管理してください。例えば、マスタ暗号化キーファイルの名前には、作成および変更をした日付を入れておくことを推奨します。
参照
マスタ暗号化キーの変更方法については、“5.4.2 マスタ暗号化キーの変更”を参照してください。
マスタ暗号化キーの作成
マスタ暗号化キーを、キー管理サーバまたはキー管理ストレージに作成します。
マスタ暗号化キーの作成は、運用系でrdbenckeyコマンドを実行して行います。
RDBディクショナリ内にある内部暗号化キーは、マスタ暗号化キーファイルの配置先を保持しています。そのため、RDBディクショナリをリカバリする際、RDBディクショナリのバックアップ取得時に使用していたマスタ暗号化キーファイルを、そのときの配置先に復元する必要があります。マスタ暗号化キーの作成や変更で配置先を変更すると管理が大変になるため、マスタ暗号化キーファイルの作成先は、同じディレクトリにしておくことを推奨します。
マスタ暗号化キーファイルを、キー管理サーバ上の/symfo/mstkeyディレクトリに、“masterkey20120701.dat”というファイル名で作成する場合
$ rdbenckey -S /symfo/mstkey/masterkey20120701.dat
参照
rdbenckeyコマンドの詳細については、“コマンドリファレンス”を参照してください。
マスタ暗号化キーのバックアップ
マスタ暗号化キーのバックアップは、ディスクが破損した場合に備えて、マスタ暗号化キーファイルとは、別のディスクで管理してください。また、RDBディクショナリと同時に盗難されないように、RDBディクショナリのバックアップとも分けて管理してください。
マスタ暗号化キーファイルを復元しやすくするため、同じファイル名を使用することを推奨します。
キー管理サーバ上で、バックアップ用ディスクをbackupkeyという名称でマウントしてバックアップする場合
$ cp /symfo/mstkey/masterkey20120701.dat /backupkey/mstkey/.
表に格納するデータおよび監査ログに格納するデータを暗号化します。
表に格納するデータの暗号化
表に格納するデータの暗号化は、データベーススペースの定義時に行います。以下に例を示します。
データベーススペースDBSP_1に対して、暗号化アルゴリズムAES256を指定する場合
CREATE DBSPACE DBSP_1 ALLOCATE RAWDEVICE /dev/sfdsk/class0001/rdsk/volume0041
ATTRIBUTE ENCRYPTION (AES256);
監査ログに格納するデータの暗号化
監査ログに格納するデータの暗号化は、rdbauditコマンドで指定します。
詳細は、“3.4.11.3 監査ログデータベースの作成”を参照してください。