データベース暗号化の意義
事を起こすには必ず理由があるように、データベースを暗号化する、しなければならない理由もある。その背景となる脅威については、Think ITの記事で詳細に触れているので一度目を通してほしいが、データベースの暗号化によって防ぐことができる脅威は、盗聴と盗難だ。
具体的に、Oracle Databaseで考えてみると、
- Oracle Netを使ったクライアント~データベース間の通信の盗聴
- データファイル、REDOログファイル、アーカイブログファイルの盗難
- Export、Datapump、Recovery Manager等のバックアップファイルの盗難
ネットワークアナライザのようなソフトウェアでパケットを覗き見られたとしても、USBメモリでデータファイルをコピーして持ち出されたとしても、暗号化されていれば当然そのデータを見ることはできない。実際に、暗号化されていないハードディスクを修理に出した後に顧客情報が漏えいしてしまったという事件もある。情報漏洩対策としては、暗号化、認証やアクセス制御など複数のセキュリティ対策の組み合わせで実施されるべきものではあるが、その中でも暗号化は保険的な最後の砦としてその役割は非常に重い。
暗号化はアクセスコントロールではない
よくデータベースの暗号化というと、下の図のようにユーザーごとにデータが暗号化されるようなイメージを持たれるかもしれない。これは本来暗号化で行うべきものでない。第1回に紹介しているがデータベースにはアクセスコントロールの機能が備わっており、この機能で誰にどのデータを見せるかということを定義することが正しい使い方である。暗号化が防ぐことができる脅威は、データの盗聴と盗難ということを忘れないで欲しい。
Oracle Advanced Security Option (ASO)
Oracle Advanced Securityは、データベースの暗号化に特化したオプションだ。上記で示した脅威に対して、Oracle Advanced Securityでは、それぞれ暗号化することで対応が可能である。今回は、特にネットワークの暗号化と格納データの暗号化の特徴と方法について説明していく。