Oracle Databaseの「透過的データ暗号化機能」とは何か:今さら? 今こそ! データベースセキュリティ(7)(2/3 ページ)
本連載では、データベースセキュリティの「考え方」と「必要な対策」をおさらいし、Oracle Databaseを軸にした「具体的な実装方法」や「Tips」を紹介していきます。今回は、Oracle Databaseの透過的データ暗号化機能について紹介します。
表領域暗号化では、暗号化アルゴリズムとしてAES(Advanced Encryption Standard)を利用できます。AESは2017年9月現在、CRYPTREC暗号リスト(電子政府推奨暗号リスト)や暗号化アルゴリズムに関する国際標準規格であるISO/IEC 18033に記載されている、十分に安全な暗号化アルゴリズムなので、各種コンプライアンス要件に記載された暗号化要件を満たすことができます。
透過的データ暗号化の利用手順
Oracle Databaseにおける、表領域単位の透過的データ暗号化を利用するための簡単な手順は、以下の通りです。
- キーストアの準備
- マスター鍵の準備
- 暗号化表領域の作成
(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)を持つユーザーで実行する必要があります。
キーストア作成のコマンドは以下の通りです。
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.
関連記事
- 攻撃者が狙うのはデータベース、それなのに「データベース保護の対策が見落とされがち」ではありませんか?
企業活動において重要なのは何か。セキュリティ対策において「データベースの保護が見落とされがち」と、オラクルは警鐘を鳴らしている。データベースセキュリティの“考え方”をキーパーソンに確認する。 - 実録・4大データベースへの直接攻撃
- オラクルの考える「データベースセキュリティ」とは
日本オラクルは2016年2月10日、Oracle Databaseユーザー向けに、データベースや周辺システムに関するセキュリティ診断を無償で行う「Oracle Database セキュリティ・リスク・アセスメント」サービスの提供を開始すると発表した。 - データベースセキュリティの基本的な考え方
- 「データベースセキュリティ」の視点から見る「ユーザー管理」「監査証跡(ログ)管理」のポイント
システムの開発・運用に携わっているけれど、セキュリティに少し不安がある。そんなシステム担当者の方は多いのではないでしょうか? 本連載「システムインテグレーションとセキュリティ」では、“SI視点”に立って、システム担当者が考慮すべきセキュリティ上のポイントについて、身近な例を取り上げながら分かりやすく解説します。最初のテーマは、「データベースセキュリティ」です。