Oracle Databaseの「透過的データ暗号化機能」とは何か今さら? 今こそ! データベースセキュリティ(7)(2/3 ページ)

» 2017年10月30日 05時00分 公開
[福田知彦日本オラクル株式会社]

 表領域暗号化では、暗号化アルゴリズムとしてAES(Advanced Encryption Standard)を利用できます。AESは2017年9月現在、CRYPTREC暗号リスト(電子政府推奨暗号リスト)や暗号化アルゴリズムに関する国際標準規格であるISO/IEC 18033に記載されている、十分に安全な暗号化アルゴリズムなので、各種コンプライアンス要件に記載された暗号化要件を満たすことができます。

透過的データ暗号化の利用手順

 Oracle Databaseにおける、表領域単位の透過的データ暗号化を利用するための簡単な手順は、以下の通りです。

  1. キーストアの準備
  2. マスター鍵の準備
  3. 暗号化表領域の作成

(1)キーストアの準備

 まず、キーストアの場所をsqlnet.oraファイルに記述します。sqlnet.oraファイルはデフォルトでは$ORACLE_HOME/network/adminにあるファイルが参照されます。

ENCRYPTION_WALLET_LOCATION = 
(SOURCE = (METHOD = FILE)
          (METHOD_DATA = (DIRECTORY = /opt/oracle/admin/orcl/wallet)))

 この設定は、ファイルシステムにおけるディレクトリのソフトウェアのキーストアを利用する場合の例です。複数のデータベースを利用している場合には、DIRECTORYの指定に環境変数を指定して、それぞれのデータベースで利用するキーストアの場所を変更できます。また、RAC利用時などには、ASMなど全てのノードから参照可能な位置にキーストアを配置することにより、複数のノードで1つのキーストアを共有することもできます。

 次にキーストアを作成します。

 キーストアの作成はSQL*PlusからADMINISTER KEY MANAGEMENTで行います。ADMINISTER KEY MANAGEMENTは、データベースインストール時に指定した暗号鍵管理グループに所属するか、暗号鍵管理権限(SYSKM)を持つユーザーで実行する必要があります。

photo 暗号鍵管理グループに所属するか、暗号鍵管理権限を持つユーザーが実行しなければならない

 キーストア作成のコマンドは以下の通りです。

ADMINISTER KEY MANAGEMENT CREATE KEYSTORE '/opt/oracle/admin/orcl/wallet' IDENTIFIED BY "oracle12c";

 ここで「'/opt/oracle/admin/orcl/wallet'」はsqlnet.oraファイルで指定したキーストアの場所を、「"oracle12c"」はキーストアのパスワードを示しています。今回の例では明示的にアルファベットの大文字/小文字を指定するためにダブルクオートで囲んでいます。

 作成が成功すると、指定した場所にewallet.p12というファイルが作成されます。また、V$ENCRYPTION_WALLETビューからも状態が確認できます。

SQL> select * from v$encryption_wallet;
WRL_TYPE
--------------------
WRL_PARAMETER
--------------------------------------------------------------------------------
STATUS                         WALLET_TYPE          WALLET_OR FULLY_BAC
------------------------------ -------------------- --------- ---------
    CON_ID
----------
FILE
/opt/oracle/admin/orcl/wallet/
CLOSED                         UNKNOWN              SINGLE    UNDEFINED
         1

 キーストアを作成すると、V$ENCRYPTION_WALLETビューのSTATUS列は、「NOT_AVAILABLE」から「CLOSED」に変化します(上記コマンド、12行目)。しかし、この状態では利用可能な(OPENした)状態ではありませんので、以下のコマンドで利用可能な状態にします。

ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "oracle12c";

 V$ENCRYPTION_WALLETビューのSTATUS列から、キーストアはOPENしているが、マスター鍵がない状態(OPEN_NO_MASTER_KEY)になっていることが確認できます(下記コマンド、12行目)。

SQL> select * from v$encryption_wallet;
WRL_TYPE
--------------------
WRL_PARAMETER
--------------------------------------------------------------------------------
STATUS                         WALLET_TYPE          WALLET_OR FULLY_BAC
------------------------------ -------------------- --------- ---------
    CON_ID
----------
FILE
/opt/oracle/admin/orcl/wallet/
OPEN_NO_MASTER_KEY             PASSWORD             SINGLE    UNDEFINED
         1

 以上で、キーストアの準備は完了です。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。