後編
Oracleセキュリティと性能劣化のトレードオフは?
アシスト伊藤 佳
2006/7/26
個人情報保護法に続き日本版SOX法の制定を目前に控え、内部統制という観点からデータベースのセキュリティ対策が注目されている。本記事では、前編においてはデータベース・セキュリティの実装状況の分析、後編ではOracleのセキュリティ機能の実装ポイントを解説する。(編集部)
Oracleとセキュリティの守備範囲 |
主な内容 --Page 1--
Oracleとセキュリティの守備範囲格納データの暗号化 --Page 2--
暗号化実装時のパフォーマンスへの影響Oracleの監査機能 --Page 3--
可及的な監査を行うには? |
前編の「データで分析するDBセキュリティの立ち遅れ原因」では、アシストが開催するセミナー参加者に行ったアンケート結果から、どのようなセキュリティ対策が行われているのかを確認しました。ユーザー認証やアクセス制御、アカウント管理などを優先して対応している状況を確認することができましたが、現時点ではデータベースに対するセキュリティ対策は、サーバやネットワークのセキュリティ対策ほど普及していない状況であることも分かりました。
データベース・セキュリティが重要であるということは認識しているものの、ほかのセキュリティ対策を優先したり、実装に当たって影響範囲の広さなど考慮すべき点が多いために、なかなか実装にまでは至っていないケースも多くあることが推測されます。
今回は、Oracleデータベースにおけるセキュリティ機能である「格納データの暗号化」と「監査」について、実装するうえでポイントとなる項目やパフォーマンスの検証結果を踏まえた実装時の注意点や特徴などを見ていきます。
格納データの暗号化 |
データベースのセキュリティ対策にはいくつかの側面がありますが、「情報漏えい」の観点から対処すべき暗号化について説明します。
暗号化には、格納されているデータに対する暗号化と、クライアント(アプリケーションサーバを含む)とデータベースサーバ間のネットワークトラフィックを暗号化する方法があります。クライアントとデータベースサーバ間の通信データは、通常はプレーンテキストの状態で送信されるため、パケットを取得されることで情報漏えいにつながる可能性があります。しかし、大量の個人情報を取得する悪意のあるユーザーからすると、通信データからデータを取得する方法は効率的であるとはいえません。対象端末の設置場所を社内ネットワークから隔離することで、そうした行為への対応を施すことができます。
一方の格納データを暗号化する場合には、すでに存在するデータを暗号化する必要があるだけでなく暗号鍵の管理も発生するため、メンテナンスのコストや既存アプリケーションの改修にコストを要することになります。このコストをいかに解消していくかがポイントとなっています。
では、格納データの暗号化にはどのような実装方法があるのでしょうか。Oracleの格納データの暗号化は、
- DBMS_OBFUSCATION_TOOLKITパッケージを利用する方法
- DBMS_CRYPTパッケージを利用する方法
- 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セキュリティ |
- Oracleライセンス「SE2」検証 CPUスレッド数制限はどんな仕組みで制御されるのか (2017/7/26)
データベース管理システムの運用でトラブルが発生したらどうするか。DBサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は、Oracle SE2の「CPUスレッド数制限」がどんな仕組みで行われるのかを検証します - ドメイン参加後、SQL Serverが起動しなくなった (2017/7/24)
本連載では、「SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「ドメイン参加後にSQL Serverが起動しなくなった場合の対処方法」を解説します - さらに高度なSQL実行計画の取得」のために理解しておくべきこと (2017/7/21)
日本オラクルのデータベーススペシャリストが「DBAがすぐ実践できる即効テクニック」を紹介する本連載。今回は「より高度なSQL実行計画を取得するために、理解しておいてほしいこと」を解説します - データベースセキュリティが「各種ガイドライン」に記載され始めている事実 (2017/7/20)
本連載では、「データベースセキュリティに必要な対策」を学び、DBMSでの「具体的な実装方法」や「Tips」などを紹介していきます。今回は、「各種ガイドラインが示すコンプライアンス要件に、データベースのセキュリティはどのように記載されているのか」を解説します
|
|