Oracle Databaseの「透過的データ暗号化機能」とは何か:今さら? 今こそ! データベースセキュリティ(7)(3/3 ページ)
本連載では、データベースセキュリティの「考え方」と「必要な対策」をおさらいし、Oracle Databaseを軸にした「具体的な実装方法」や「Tips」を紹介していきます。今回は、Oracle Databaseの透過的データ暗号化機能について紹介します。
(2)マスター鍵の準備
キーストアにマスター鍵を作成します。マスター鍵作成のコマンドは以下の通りです。
ADMINISTER KEY MANAGEMENT SET KEY USING TAG '初期作成マスター鍵' IDENTIFIED BY "oracle12c" WITH BACKUP;
ここでは「'初期作成マスター鍵'」というTAG名でマスター鍵を作成しています。鍵が増えたときに識別できるよう、TAG名には分かりやすい名前を付けておいてください。
マスター鍵を作成すると、V$ENCRYPTION_WALLETビューのSTATUS列はOPENとなります(下記コマンド、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 PASSWORD SINGLE NO 1
また、V$ENCRYPTION_KEYSビューから、マスター鍵が作成されていることが確認できます。
SQL> select key_id, tag, creation_time, key_use, keystore_type from v$encryption_keys; KEY_ID ------------------------------------------------------------------------------ TAG -------------------------------------------------------------------------------- CREATION_TIME --------------------------------------------------------------------------- KEY_USE KEYSTORE_TYPE ---------- ----------------- AQeZXvVKZ08Jv6Bx7nPkkr0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 初期作成マスター鍵 17-08-28 14:32:23.794537 +09:00 TDE IN PDB SOFTWARE KEYSTORE
以上で、マスター鍵の作成は完了です。
なお、12cでマルチテナント環境を利用している場合には、キーストアは全てのPDBで単一のものを共有しますが、マスター鍵は各PDBで個別に持ちます。PDBで透過的データ暗号化機能を利用した場合には、PDBごとに個別にマスター鍵を作成してください。
(3)暗号化表領域の作成
新規暗号化表領域を作成します。表領域作成のコマンドは以下の通りです。
create tablespace enctbs datafile '/opt/oracle/oradata/orcl/orclpdb/enctbs.dbf' size 10m encryption using 'aes256' default storage (encrypt);
暗号化表領域を作成する場合には、通常のCREATE TABLESPACE文にENCRYPTION句(上記コマンド、3行目)とSTORAGE句のENCRYPTオプション(同4行目)の2つを追加するだけです。ENCRYPTION句では、利用する暗号化アルゴリズムを指定します。指定できる暗号化アルゴリズムと鍵長のペアはAES256、AES192、AES128および3DES168で、指定を省略した際のデフォルトはAES128です。
暗号化された表領域は、V$ENCRYPTED_TABLESPACESビューから確認できます。なお、このビューからは表領域名が確認できないため、V$TABLESPACEビューと結合して参照する必要があります。
SQL> select t.name, et.encryptionalg, et.encryptedkey 2 from v$tablespace t, v$encrypted_tablespaces et 3 where t.ts#=et.ts#; NAME ENCRYPT ------------------------------ ------- ENCRYPTEDKEY ---------------------------------------------------------------- ENCTBS AES256 AFC60E3680832A3F6E0868AD81F4A3CC7C0029371A4DA7BAA227D5D3C3CA1238
なお、ENCRYPTEDKEY列の値は表領域暗号鍵のバージョンであり、鍵自体ではありません。
暗号化された表領域を作成した後は、この表領域に表や索引などのオブジェクトを定義していけば、そのデータは自動的に暗号化されてからディスクに保存されます。
今回は、オラクルデータベースの透過的データ暗号化機能を紹介し、その使い方を説明しました。次回は、既存の暗号化されていないデータベースの暗号化に関する幾つかの方法と、その他のデータベース暗号化機能について説明します。
筆者紹介
福田知彦(ふくだ ともひこ)
日本オラクルでセキュリティ関連のプロダクトやソリューションを長年担当。出荷前製品検証からプリセールス、コンサルティングと、さまざまな部署を転々とするも、担当はだいたいいつもデータベースセキュリティかIDマネジメント。出荷前から構築、運用、トラブル対応まで製品の一生を見守るエンジニア
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 攻撃者が狙うのはデータベース、それなのに「データベース保護の対策が見落とされがち」ではありませんか?
企業活動において重要なのは何か。セキュリティ対策において「データベースの保護が見落とされがち」と、オラクルは警鐘を鳴らしている。データベースセキュリティの“考え方”をキーパーソンに確認する。 - 実録・4大データベースへの直接攻撃
- オラクルの考える「データベースセキュリティ」とは
日本オラクルは2016年2月10日、Oracle Databaseユーザー向けに、データベースや周辺システムに関するセキュリティ診断を無償で行う「Oracle Database セキュリティ・リスク・アセスメント」サービスの提供を開始すると発表した。 - データベースセキュリティの基本的な考え方
- 「データベースセキュリティ」の視点から見る「ユーザー管理」「監査証跡(ログ)管理」のポイント
システムの開発・運用に携わっているけれど、セキュリティに少し不安がある。そんなシステム担当者の方は多いのではないでしょうか? 本連載「システムインテグレーションとセキュリティ」では、“SI視点”に立って、システム担当者が考慮すべきセキュリティ上のポイントについて、身近な例を取り上げながら分かりやすく解説します。最初のテーマは、「データベースセキュリティ」です。