pr


icon

プロセッサー上で実行することで暗号化はリアルタイムの時代へ

「Oracle Database 11g Release 2」
×「AES-NI」で
データベース暗号化処理を飛躍的に向上


情報漏えい事故が後を絶たない。最近では、WikiLeaksや尖閣諸島沖の問題など、内部犯行者がデータにアクセスし、故意に持ち出すケースも頻発している。悪質な場合、社内データを隠れてキャプチャして全データを盗み、クラッキングツールで解読するケースも現れている。このような脅威に対して、最も有効なのが「データベースの暗号化」だ。データベース自体を暗号化しておけば、データが漏えいしたり、盗難されてもリスクが激減する。しかし、従来のアプリケーション側での暗号化はどうしても暗号/復号に時間がかかってしまっていた。しかし、この暗号/復号にかかる時間を劇的に改善するのが「Oracle Database 11g Release 2」×「AES-NI」の組み合わせだ。

    暗号化を飛躍的に高速化できる「AES-NI」

 インテルは、インテル® Xeon® プロセッサー 5600番台において、暗号化に関する新技術「インテル® AES-NI(以下、AES-NI)」を導入した。これは、暗号化処理を高速化する命令セットで、例えば「Oracle Database」と組み合わせると、今までデータベースのソフトウェア上で行っていた暗号化および復号処理をプロセッサー上で実行し、高速化することができる。

 インテルとオラクルは、「AES-NI」に関して開発段階から戦略的な協業を進めており、「Oracle Database 11g Release 2」においていち早く「AES-NI」に対応し、暗号化処理性能を飛躍的に向上させた。2月24日に開催された「Oracle Security Summit」では、この両社の取り組みを紹介するセッションが実施され、データベース暗号化の重要性や、「Oracle Database」の暗号化機能と「AES-NI」を組み合わせることによる暗号化処理高速化のメリットなどについて説明があった。

    もはや、情報漏えい対策にデータベース暗号化は必須

 そもそも、データベースの暗号化は、なぜ必要なのだろうか?

 データベースを取り巻く脅威としては、「アプリケーションとデータベース間の通信の盗聴」「データベースに関連する物理的なファイルの盗難」「バックアップメディアの盗難・紛失」などが挙げられる。

 最近では、「データベース上の物理ファイル(データファイル、ログファイルなど)に直接アクセスしてデータを抜き出し、クラッキングツールで解読する」といった脅威も出てきているという。この手法を用いられると、データベース上の全てのデータを盗まれる可能性があるため、他の手法と比較して被害が甚大になる可能性が非常に高い。

 このような脅威に対して、データベースを暗号化しておけば、データベースとの通信データをパケットキャプチャされたり、データが格納されたディスクの盗難や、外部メディアを使用したデータコピー等によってデータを物理的に持ち出されても、その内容を解読されるのを防ぐことができ、情報漏えいを水際で食い止めることができるのだ。

 「Oracle Database」では、暗号アルゴリズムに米NIST(国立標準技術研究所)が認定した標準共通鍵暗号方式「AES(128/196/256bit)」を採用し、強力な暗号化を実施すると共に、独自のデータベース暗号化機能「Transparent Data Encryption(TDE)」をOracle Database 10g Release 2から提供している。

 「TDE」は、アプリケーションを一切変更することなく格納データの暗号化を実現する機能だ。データベース側で暗号化したい列を定義するだけでデータを暗号化できるため、既存の全てのアプリケーションで格納データの暗号化が可能となる。また、暗号鍵はデータベースが一括で自動管理するため、アプリケーション側で個別に暗号鍵の管理をする手間が省けるのも特徴だ。

西村克也氏
日本オラクル テクノロジー製品事業統括本部 データベースソリューション本部
西村克也氏

 さらに、「Oracle Database 11g Release 1」からは、TDEの列暗号化機能を拡張し、表領域単位での暗号化を実現している。「表領域暗号化は、データベースの各種オブジェクトを格納する表領域自体を丸ごと暗号化してしまおうというもの。従来のTDEでは列単位での暗号化が行われていたが、表領域暗号化では、表領域内に作成されるオブジェクトを全て自動的に暗号化することができる」と説明するのは、日本オラクル テクノロジー製品事業統括本部 データベースソリューション本部の西村克也氏だ。

 「また、表領域暗号化では、大幅な性能向上も実現している。例えば、『暗号化なし』を1とした場合、バッチ処理に関する処理時間の比較では、『表領域暗号化』を使えば1.2と、従来の暗号化パッケージや列暗号化と比較しても処理時間を大幅に短縮できている。OLTP処理のスループット比較でも、『暗号化なし』の1に対して、『表領域暗号化』は0.94となり、性能への影響は非常に少ないことが実証されている」(西村氏)と、表領域暗号化はデータベースの処理性能に最小限の影響で使用できるように進化したと強調する。このほか、暗号化してもデータサイズが暗号化前とまったく変わらずに、かつ暗号強度も高く保つことができる点も、表領域暗号化の大きな特徴であるという。

    “データがデータセンターにあるから安心”は大きな勘違い

 このように、強固で高性能な暗号化機能を備えている「Oracle Database」だが、「顧客の要件によっては、今の処理性能のままでは導入が難しいケースもある。しかし、ソフトウェア側からのアプローチでは、これ以上の性能向上は限界があると感じている。そこで、さらなる高速化を追求するためにインテルと『AES-NI』での戦略的な協業を進めることになった」と、西村氏はインテルとの戦略的協業に至る経緯を明かす。

田口栄治氏
インテル マーケティング本部 エンタープライズプラットフォーム・マーケティング エンタープライズ・ソリューション・スペシャリスト
田口栄治氏

 一方、インテル マーケティング本部 エンタープライズプラットフォーム・マーケティング エンタープライズ・ソリューション・スペシャリストの田口栄治氏は、インテルがプロセッサー側からのアプローチで暗号化に取り組む背景について、「今後のIT基盤において、セキュリティの重要度はさらに増していくことは確実。その中で、データベースの暗号化も見逃すことのできないセキュリティ要件の一つであると認識している。しかし、残念ながら実際にデータベースの暗号化を導入している企業は少ないのが現状だ。その大きな理由が、“暗号化を行うと業務システムのパフォーマンスが落ちる”という懸念だ。これに対してインテルでは『AES-NI』を提供することで、プロセッサーのパワーを活用して高速に暗号化処理を実現できるIT基盤構築を支援していく」と説明する。

 また、暗号化の導入が進まないもう一つの理由として、「“堅牢なデータセンターの中にデータが格納されているのだから、暗号化しなくても大丈夫”という、見かけだけの安心感で満足している企業が多い」と田口氏は指摘する。確かに、個人情報などの重要な情報はデータセンターの内部で厳重に保護されており、一見、暗号化を行う必要はないようにも思える。

 これに対して、「いくら堅牢なデータセンターでも、データ通信の盗聴やOSのなりすまし、リカバリツールなどを利用した新たな脅威には対処しきれない。このことが、まだ広く認知されていないのが実状だ。実際に米国では、故障したハードディスクの修理を外部の業者に委託したところ、データが暗号化されていなかったため、約3000万人分の個人情報が流出する可能性があったという事件も発生している。そして、こうした事件を受け、企業の扱うデータは必ず暗号化しなければならないという法規制の動きも強まっている。法規制がかかれば、規模の大小を問わず、個人情報を扱う全ての企業が、データベースの暗号化等に対応せざるを得なくなるだろう」(田口氏)と、米国での事例を紹介しながら、情報の暗号化の重要性を改めて訴える。

    「Oracle Database 11g Release 2」×「AES-NI」がもたらす
驚異的な高速性

 それでは、「Oracle Database 11g Release 2」の表領域暗号化と「AES-NI」による暗号化/復号処理高速化の組み合わせは、実際にどれだけの処理性能向上をもたらすのだろうか?

 まず、インテルによる暗号化ベンチマークテストの結果によると、「AES-NI」を実装したインテル® Xeon® プロセッサー 5600番台は、「AES-NI」を搭載しない前世代のインテル® Xeon® プロセッサー 5500番台と比較して、「Oracle Database 11g Release 2」によるデータベース暗号化処理において10倍、復号処理についても8倍という大幅な高速化を実現している。

図1

 また、日本オラクルがインテルの協力(ハードウェア貸与)を得て実施した性能検証では、表領域暗号化において、暗号化/復号処理が実行されるディスクI/Oの部分に集中的に負荷をかけることで、暗号化/復号処理が性能にどう影響を与えるのかを測定した。

 バッチ処理における暗号化および復号性能については、「暗号化なし」「表領域暗号化+AES-NIあり」「表領域暗号化+AES-NIなし」という3種類の表に対しての処理時間を計測。暗号化性能では、AES-NIなしの表でも処理時間の増加はほとんどなく、AES-NIを使用すると暗号化なしの表とほぼ変わらない処理時間を実現した。復号性能では、AES-NIなしの場合、約20%の処理時間増が認められたが、AES-NIありの場合は処理時間増は約3%まで短縮されたという。

図2

 次に、OLTP処理における暗号化/復号性能については、「暗号化なし」「AES-NIあり」「AES-NIなし」の3種類について、暗号化/復号処理が一般的なアプリケーションの性能にどう影響するかを計測した。この結果、暗号化なしとAES-NIありのグラフがほぼ同じ曲線を描き、高いレスポンス性能が要求されるOLTP処理であっても、同等の性能を担保できていることが分かった。

図3

 さらに、1GBのデータを暗号化する場合、AES-NIを使用した場合と使用しない場合において、CPUの使用率にどれだけ差があるかを計測。ここでは、AESの演算処理をソフトウェア側で実行するよりも、AES-NIを使用してプロセッサー側で実行した方がCPU使用率を低く抑えられることが明らかになった。

 これらの検証結果から、「Oracle Database 11g Release 2」と「AES-NI」の組み合わせによる暗号化ソリューションは、ディスクI/Oが多いバッチ処理でも、高いレスポンスが要求されるOLTP処理のいずれの場合においても、性能への影響は限りなくゼロに近いことが実証されたのである。

 なお、インテルでは今年の前半に、4-way以上のサーバ向けであるインテル® Xeon® プロセッサー 7000系の次世代製品を投入する計画だが、このプロセッサーにも「AES-NI」を搭載していく予定で、「ボリュームゾーンの2-wayサーバから、基幹業務で使われる4-way以上のサーバまで、幅広く『AES-NI』が利用できる環境を提供する」(田口氏)という。さらに、「将来のプロセッサーでは『AES-NI』の性能をさらに加速させ、ネイティブ処理を上回るパフォーマンスで暗号化処理を実行できるようにしていく」との展望を示した。

提供:インテル株式会社
企画:アイティメディア 営業企画
制作:@IT情報マネジメント 編集部
掲載内容有効期限:2011年03月31日