日本版SOX法時代のOracleセキュリティ

後編

Oracleセキュリティと性能劣化のトレードオフは?

アシスト
伊藤 佳
2006/7/26
個人情報保護法に続き日本版SOX法の制定を目前に控え、内部統制という観点からデータベースのセキュリティ対策が注目されている。本記事では、前編においてはデータベース・セキュリティの実装状況の分析、後編ではOracleのセキュリティ機能の実装ポイントを解説する。(編集部)
Oracleとセキュリティの守備範囲
主な内容
--Page 1--
Oracleとセキュリティの守備範囲
格納データの暗号化
--Page 2--
暗号化実装時のパフォーマンスへの影響
Oracleの監査機能
--Page 3--
可及的な監査を行うには?

 前編の「データで分析するDBセキュリティの立ち遅れ原因」では、アシストが開催するセミナー参加者に行ったアンケート結果から、どのようなセキュリティ対策が行われているのかを確認しました。ユーザー認証やアクセス制御、アカウント管理などを優先して対応している状況を確認することができましたが、現時点ではデータベースに対するセキュリティ対策は、サーバやネットワークのセキュリティ対策ほど普及していない状況であることも分かりました。

 データベース・セキュリティが重要であるということは認識しているものの、ほかのセキュリティ対策を優先したり、実装に当たって影響範囲の広さなど考慮すべき点が多いために、なかなか実装にまでは至っていないケースも多くあることが推測されます。

 今回は、Oracleデータベースにおけるセキュリティ機能である「格納データの暗号化」と「監査」について、実装するうえでポイントとなる項目やパフォーマンスの検証結果を踏まえた実装時の注意点や特徴などを見ていきます。

格納データの暗号化

 データベースのセキュリティ対策にはいくつかの側面がありますが、「情報漏えい」の観点から対処すべき暗号化について説明します。

 暗号化には、格納されているデータに対する暗号化と、クライアント(アプリケーションサーバを含む)とデータベースサーバ間のネットワークトラフィックを暗号化する方法があります。クライアントとデータベースサーバ間の通信データは、通常はプレーンテキストの状態で送信されるため、パケットを取得されることで情報漏えいにつながる可能性があります。しかし、大量の個人情報を取得する悪意のあるユーザーからすると、通信データからデータを取得する方法は効率的であるとはいえません。対象端末の設置場所を社内ネットワークから隔離することで、そうした行為への対応を施すことができます。

 一方の格納データを暗号化する場合には、すでに存在するデータを暗号化する必要があるだけでなく暗号鍵の管理も発生するため、メンテナンスのコストや既存アプリケーションの改修にコストを要することになります。このコストをいかに解消していくかがポイントとなっています。

 では、格納データの暗号化にはどのような実装方法があるのでしょうか。Oracleの格納データの暗号化は、

  1. DBMS_OBFUSCATION_TOOLKITパッケージを利用する方法
  2. DBMS_CRYPTパッケージを利用する方法
  3. Transparent Data Encryption(以下、TDE)を利用する方法

に大別できます(図1)。

DBMS_OBFUSCA
TION_TOOLKIT
DBMS_CRYPT TDE
対象バージョン Oracle9i Oracle 10g以降 Oracle 10gR2以降
対象エディション SE/EE SE/EE EE+Advance
Security
Option
暗号化対象データ型 VARCHAR2/RAW BLOB/CLOB/
RAW
CHAR/VARCHAR2/
DATE/INTERVAL
DAY TO SECOND/
INTERVAL YEAR TO
MONTH/ NCHAR/
NUMBER/
NVARCHAR2/
RAW/TIMESTAMP
暗号化アルゴリズム DES/Triple-DES DES/Triple-DES
/AES
(Advanced
Encryption Standard)/RC4
Triple-DES/AES/
RC4
ハッシュ・アルゴリズム MD5 MD5/SHA-1/
MD4
鍵ハッシュ・アルゴリズム なし HMAC_MD5/
HMAC_SH1
暗号化疑似乱数ジェネレータ RAW/VARCHAR2 RAW/
NUMBER/
BINARY_INTEGER
暗号化列に対する索引走査 不可能 不可能 一意走査のみ利用可能
(索引の範囲走査は
利用できない)
図1 Oracleの暗号化方式の比較


DBMS_OBFUSCATION_TOOLKITパッケージ

 DBMS_OBFUSCATION_TOOLKITパッケージでは、Data Encryption Standard(DES)方式、Triple DES方式によって暗号化を行い、データの改ざんを確認するためのMessage Digest 5(MD5)ハッシュ・アルゴリズムを使ってデータのハッシュ値を生成します。

DBMS_CRYPTパッケージ

 DBMS_CRYPTパッケージでは、DBMS_OBFUSCATION_TOOLKITの機能に加え、Advanced Encryption Standard(AES)、Rivest's Cipher4(RC4)といったアルゴリズムを利用できます。また、MD5以外にMD4やSecure Hash Algorithm 1(SHA-1)ハッシュ・アルゴリズムを利用することも可能です。

TDE

 TDEは暗号化対象の列を指定し、対象列に値が格納、参照されると自動的に暗号化/復号の処理を実施します。この処理はサーバプロセスが起動して行われるため、アプリケーションへの暗号化ロジックの組み込みや、SQLの修正は必要ありません。また、Oracleが自動的に表ごとの列暗号鍵自体も暗号化してデータディクショナリに格納するため、アプリケーションで暗号鍵を管理する必要もありません。

 それぞれ、利用できるバージョンとエディションに違いがある点や、実装可能なデータ型に差がある点に注意が必要です。例えば、LOB系の列に対する暗号化を実装したい場合にはTDEでは未対応のため、DBMS_CRYPTパッケージを利用する必要があります。また、パッケージによる暗号化の場合には、索引のある列に対して実装をした場合、索引走査が行われません。このため、パフォーマンスに影響が出る可能性がある点を考慮する必要があります。

  1/3

 Index
特集:日本版SOX法時代のOracleセキュリティ(後編)
 Oracleセキュリティと性能劣化のトレードオフは?
Page 1
・Oracleとセキュリティの守備範囲
・格納データの暗号化
  Page 2
・暗号化実装時のパフォーマンスへの影響
・Oracleの監査機能
  Page 3
・可及的な監査を行うには?


日本版SOX法時代のOracleセキュリティ


Database Expert フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Database Expert 記事ランキング

本日月間