ページの先頭行へ戻る
Symfoware Server V11.0.1 クラスタ導入運用ガイド
Symfoware

3.4.10 暗号化のセットアップ

暗号化機能を利用する場合のセットアップ方法について説明します。

参照

暗号化の詳細については、“RDB運用ガイド”の“暗号化”を参照してください。

3.4.10.1 通信データの暗号化のセットアップ

クライアントとサーバ間の通信データを暗号化する場合は、以下のセットアップを行ってください。
通信データの暗号化には、SSLのデジタル証明書を使用したサーバ認証を行う場合と、行わない場合があり、手順が異なります。

サーバ認証を行うと、通信の盗聴を防止することに加え、中間者攻撃(例えばサーバのなりすましによりデータやパスワードを横奪するなど)を防止することができます。

セットアップ手順

サーバ認証

行う

行わない

1) 証明書発行の手続き

2) サーバ証明書ファイル、サーバ秘密鍵ファイルの配置

3) CA証明書ファイルのクライアントへの配布

4) システム用の動作環境ファイルの編集

5) クライアント用の動作環境ファイルの編集

○:作業が必要
-:作業が不要


通信データの暗号化の環境を以下に示します。

3.4.10.1.1 証明書発行の手続き

サーバ認証を行う場合は、認証局(CA)に証明書を発行してもらう手続きが必要です。
Symfoware Serverでは、X.509の規格のPEM形式のファイルをサポートしています。
認証局からDER形式で発行された場合は、opensslコマンドなどのツールを使用してDER形式をPEM形式に変換してください。

以下に手順の概要を示します。詳細は、証明書ファイルの取得先である、公的または独自の認証局(CA)より公開されている手順を参照してください。

  1. サーバ秘密鍵ファイルの作成

  2. サーバ秘密鍵ファイルのパスフレーズ解除

  3. サーバ秘密鍵ファイルからCSR(サーバ証明書を取得するための署名要求)を作成

  4. 認証局(CA)へサーバ証明書を申請

  5. 認証局(CA)から、サーバ証明書ファイルおよびCA証明書ファイルを取得

  6. サーバ証明書ファイルおよびCA証明書ファイルを保管
    注) 紛失や破損した場合は、再発行が必要になります。

上記の手順により、以下のファイルが準備できます。

3.4.10.1.2 サーバ証明書ファイル、サーバ秘密鍵ファイルの配置

運用系および待機系のローカルディスクにディレクトリを作成し、サーバ証明書ファイル、サーバ秘密鍵ファイルを配置します。作成したディレクトリのアクセス権は、データベース管理者のみに付与します。
サーバ証明書ファイル、サーバ秘密鍵ファイルのアクセス権は、OSの機能を利用して、データベース管理者にのみ読込み権を設定してください。
また、サーバ証明書ファイルおよびサーバ秘密鍵ファイルは破損に備え、バックアップをして、厳重に管理してください。

3.4.10.1.3 CA証明書ファイルのクライアントへの配布

クライアントのローカルディスクにディレクトリを作成し、配布されたCA証明書ファイルを配置します。
CA証明書ファイルを誤って削除などしないように、OSの機能を利用して、読込み権を設定してください

3.4.10.1.4 システム用の動作環境ファイルの編集

運用系および待機系において、サーバ側の暗号化を指定するため、システム用の動作環境ファイルの以下のパラメタを編集してください。

実行パラメタ

概要

サーバ認証

行う

行わない

SSL_USE

クライアント側からの暗号化した通信を受け入れるか、受け入れないかを指定します。
暗号化した通信を受け入れる場合は、“ON”を指定してください。

SSL_CIPHER_SUITES

サーバ認証を行うか、行わないかを指定します。

SSL_CERT_FILE

サーバ証明書ファイルの配置先を指定します。

SSL_PRIV_KEY_FILE

サーバ秘密鍵ファイルの配置先を指定します。

○:設定が必要
-:設定が不要

参照

パラメタの指定方法の詳細は、“セットアップガイド”を参照してください。

3.4.10.1.5 クライアント用の動作環境ファイルの編集

クライアント用の動作環境ファイルで暗号化の指定が必要です。アプリケーションの動作環境の設定時に指定してください。
なお、埋込みSQL連携で、クライアント用の動作環境ファイルのDEFAULT_CONNECTIONパラメタを使用している場合、データベースサーバに接続するユーザのパスワードが誰にでも参照できてしまいます。
そのため、サーバとの接続方法として、DEFAULT_CONNECTIONパラメタを使用せず、SQLサーバ名を使用したCONNECT文による接続を推奨します。

実行パラメタ

概要

サーバ認証

行う

行わない

SERVER_SPEC

データベースサーバに対して暗号化した通信を行うか、行わないかを指定します。

SSL_CLI_CA_CERT_FILE

CA証明書ファイルの配置先を指定します。

○:設定が必要
-:設定が不要

参照

アプリケーションの動作環境の設定については、パラメタの指定方法の詳細は、“アプリケーション開発ガイド(共通編)”を参照してください。

3.4.10.2 格納データの暗号化のセットアップ

格納データを暗号化する場合は、以下のセットアップを行ってください。

  1. キー管理サーバまたはキー管理ストレージの準備

  2. マスタ暗号化キーの作成とバックアップ

  3. 格納データの暗号化指定

格納データの暗号化の環境を以下に示します。

3.4.10.2.1 キー管理サーバまたはキー管理ストレージの準備

マスタ暗号化キーは、RDBディクショナリや格納データと同時に盗難されないようにするため、分けて管理する必要があります。そのため、マスタ暗号化キーファイルを管理するための、キー管理サーバまたはキー管理ストレージを事前に用意してください。

キー管理サーバまたはキー管理ストレージとデータベースサーバの間の通信路を安全にするために、Secure Shell File System(SSHFS)を導入するなどし、安全性を確保することを推奨します。

SSHFSを導入しない場合

SSHFSを導入しない場合の手順を以下に示します。

実行環境

手順

キー管理サーバまたはキー管理ストレージ

1) マスタ暗号化キーファイルの格納ディレクトリの設定

データベースサーバ
(運用系および待機系で実施)

2) マスタ暗号化キーファイルの格納ディレクトリのマウント

1) マスタ暗号化キーファイルの格納ディレクトリの設定

キー管理サーバに、マスタ暗号化キーファイルの格納ディレクトリを作成します。

キー管理ストレージに作成する場合は、ネットワーク上のディスク装置に付属する管理ソフトウェアで下記と同様の設定を行ってください。

  1. データベースサーバのデータベース管理者と同じグループID、ユーザIDのユーザを作成します。

  2. 作成したディレクトリのアクセス権は、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
2) マスタ暗号化キーファイルの格納ディレクトリのマウント

キー管理サーバまたはキー管理ストレージに作成したディレクトリを、データベースサーバからアクセスできるようにネットワーク経由でマウントします。

データベースサーバから/symfo/mstkeyをNFSを使ってマウントする場合

# mount -t nfs -o soft keysvr:/symfo/mstkey /symfo/mstkey

参照

ネットワークファイルの詳細については、“セットアップガイド”の“ネットワークファイルの設定”を参照してください。

SSHFSを導入する場合

SSHFSを導入する場合の手順の例を以下に示します。
SSHFSに関する手順は、ご使用になるソフトウェアに合わせて実施してください。

実行環境

手順

キー管理サーバまたはキー管理ストレージ

1) マスタ暗号化キーファイルの格納ディレクトリの設定

2) SSHサービス設定ファイルの変更 (注)

3) SSHサービス(sshd)の再起動 (注)

4) SSHサービス(sshd)の確認

データベースサーバ
(運用系および待機系で実施)

5) SSHFSに必要なプログラムのインストール

6) マウント操作を実行するユーザの登録

7) スーパユーザへのアクセス許可の設定

8) SSHFSの設定内容をOSに反映

9) マスタ暗号化キーファイルの格納ディレクトリのマウント

注) IPv6のネットワーク環境で運用する場合に行ってください。

1) マスタ暗号化キーファイルの格納ディレクトリの設定

キー管理サーバに、マスタ暗号化キーファイルの格納ディレクトリを作成します。

キー管理ストレージに作成する場合は、ネットワーク上のディスク装置に付属する管理ソフトウェアで下記と同様の設定を行ってください。

  1. データベースサーバのデータベース管理者と同じグループID、ユーザIDのユーザを作成します。

  2. 作成したディレクトリのアクセス権は、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
2) SSHサービス設定ファイルの変更

IPv6のネットワーク環境で運用する場合、SSHサービス(sshd)のSSHサービス設定ファイル(sshd_config)に、ListenAddressキーワードを指定して、IPv6アドレスによるデータベースサーバからの接続を受け付けられるようにします。

ListenAddress ::
3) SSHサービス(sshd)の再起動

IPv6のネットワーク環境で運用する場合、SSHサービスを再起動します。

$ /sbin/service sshd restart
4) SSHサービス(sshd)の確認

SSHサービスが起動されているかを確認します。

$ /sbin/service sshd status
5) SHFSに必要なプログラムのインストール

以下のプログラムのインストールおよび設定をします。

  • FUSE (Filesystem in Userspace)

  • SSHFS-FUSE

6) マウント操作を実行するユーザの登録

SSHFSとしてマウント操作を実行するユーザを、fuseグループに追加します。/etc/groupファイルを編集してください。

fuse:x:119:dbuser
7) スーパユーザへのアクセス許可の設定

キー管理サーバまたはキー管理ストレージに作成したディレクトリを、スーパユーザがアクセスできるように設定します。

# echo 'user_allow_other' >> /etc/fuse.conf
8) SSHFSの設定内容をOSに反映

設定した内容をOSに反映するために、データベースサーバを再起動します。

# shutdown -r now
9) マスタ暗号化キーファイルの格納ディレクトリのマウント

キー管理サーバまたはキー管理ストレージに作成したディレクトリを、データベースサーバからアクセスできるようにネットワーク経由でマウントします。

マウント後は、正しくマウントされたかの確認をしてください。

$ sshfs keysvr:/symfo/mstkey /symfo/mstkey -o allow_root
$ df -k
3.4.10.2.2 マスタ暗号化キーの作成とバックアップ

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/.
3.4.10.2.3 格納データの暗号化指定

表に格納するデータおよび監査ログに格納するデータを暗号化します。

表に格納するデータ暗号化

表に格納するデータの暗号化は、データベーススペースの定義時に行います。以下に例を示します。

データベーススペースDBSP_1に対して、暗号化アルゴリズムAES256を指定する場合

CREATE DBSPACE DBSP_1 ALLOCATE RAWDEVICE /dev/sfdsk/class0001/dsk/volume0041
                      ATTRIBUTE ENCRYPTION (AES256);

監査ログに格納するデータの暗号化

監査ログに格納するデータの暗号化は、rdbauditコマンドで指定します。

詳細は、“3.4.11.3 監査ログデータベースの作成”を参照してください。