検索
連載

データベース暗号化が必要な「理由」と「3大方式」を理解する今さら? 今こそ! データベースセキュリティ(5)(2/2 ページ)

本連載では、データベースセキュリティの「考え方」と「必要な対策」をおさらいし、Oracle Databaseを軸にした「具体的な実装方法」や「Tips」を紹介していきます。今回は、「なぜ、データベースを暗号化しなければならないのか」について解説します。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

暗号化には「どのタイミングで暗号化するか」の観点別に3つの方式がある

 「データベースに格納するデータを暗号化する」方式は幾つかあります。どのタイミングで暗号化するかの観点で大きく3つに分けられます。

  1. アプリケーションで暗号化してからデータベースに格納
  2. データベースの暗号化機能を利用
  3. ストレージの暗号化機能を利用

 それぞれの方式を確認してみましょう。

1:アプリケーションで暗号化してからデータベースに格納

 こちらは、暗号化API(Application Programming Interface)などを利用して、アプリケーション側でデータを暗号化してから、データベースに格納する方式です。データベースには暗号化された状態でデータが格納され、データベースへの問い合わせでも暗号化されたデータが戻り、復号はアプリケーション側で行われます。ちなみにOracle Databaseでは、「DBMS_CRYPTO」というPL/SQLの暗号化パッケージが用意されています。

2:データベースの暗号化機能を利用

 Oracle Databaseでは、「TDE(Transparent Data Encryption:透過的データ暗号化)」と呼ばれるアプリケーションによって透過的な格納データ暗号化機能を実現しています。これはバージョン「10g R2」から実装されました。TDEは、10g R2で列単位の透過的データ暗号化機能が、11g R1では表領域単位の透過的データ暗号化機能が追加されています。ちなみに、2017年8月現在ではOracle Database以外にも、多くの商用およびオープンソースのDBMSで同等の機能は提供されています。

 透過的データ暗号化機能ではその名の通り、“アプリケーションに変更を加えることなく”データベースへ格納するデータを暗号化できることです。このため、アプリケーションからは通常のSQL問い合わせを発行するだけでいいというメリットがあります。DBMSが内部的にデータを暗号化して格納し、暗号化されたデータを透過的に復号してアプリケーションに戻す仕組みです。

3:ストレージの暗号化機能を利用

 OS、ファイルシステム、ストレージ機器などが備えている暗号化機能を利用する方式です。例えばストレージシステムが備える暗号化機能を利用する場合には、OSからファイルアクセスがあり、ストレージシステムへ書き込まれるときに自動で暗号化され、ファイルシステムから読み込むときに透過的に暗号化されたデータが復号される仕組みです。

 それぞれの暗号化方式で対応できる脅威と利用時の注意点は以下の通りです(表1)。

photo 表1 3つの暗号化方式の違い

 今回は「データベースにも暗号化が必要なこと」と「暗号化といっても幾つかの方式があり、それぞれの方式で強みと弱みがある」ことまでを理解してもらえれば大丈夫です。

 次回は、「何を、どのように暗号化していくべきか」の指針を解説します。

筆者紹介

福田知彦(ふくだ ともひこ)

日本オラクルでセキュリティ関連のプロダクトやソリューションを長年担当。出荷前製品検証からプリセールス、コンサルティングと、さまざまな部署を転々とするも担当はだいたいいつもデータベースセキュリティかIDマネジメント。出荷前から構築、運用、トラブル対応まで製品の一生を見守るエンジニア


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る