データの暗号化は,万が一の情報漏えいの際に被害を最小化できる有効な対策である。安価な暗号化ツールや,暗号機能を標準装備した製品が増えており,暗号機能は手軽に利用できるようになっている。

 しかし,安易にデータを暗号化するのは好ましくない。セキュリティを強化する目的だったのが,システム全体のセキュリティ・バランスを悪くするケースがあるからだ。

 代表例として以下のようなものがある。

(1)データベースで検索するデータの暗号化

 安全性を高めたいデータは,システムで最初に受け取ったときに,速やかに暗号化することがセキュリティの基本である。しかしデータベースに格納し,検索対象になるデータまで暗号化してしまうことがある。これではまったく検索できなくなる。笑い話のようだが,実際にそうした設計になった実例を筆者は知っている。

(2)メールの添付ファイルの暗号化

 添付ファイルを暗号化すると,メール・ゲートウエイ型のアンチウイルス・ソフトや,情報漏えい防止のために導入したメール・フィルタリング・ソフトで内容をチェックできなくなる。同様に,SSL(Secure Sockets Layer)やIPsecなどの暗号プロトコルを使うと,不正アクセスを検知するために導入したIDS(侵入検知システム)が無効化される場合がある。

(3)PCのファイル・システムの暗号化

 ファイル・システムの暗号化は,パスワードや暗号鍵の管理体制を整備しておかないと,バランスが悪くなる。

 パスワードの管理をユーザーに任せてしまうと,本人がパスワードを忘れてしまったとき,PCの起動さえできなくなる場合がある。データはすべて諦め,PCを再インストールするしかない。システムが保持する暗号鍵のバックアップを忘れて,バックアップ・メディアから取り出したファイルが復号できないというケースもよくある。メールを暗号化していて,暗号鍵の更新によって過去のメールがすべて読めなくなる事例もよく聞くパターンだ。

 PCに暗号機能を導入した直後は,たいてい問題は起こらない。数年後に問題になる場合がほとんどである。運用を考慮した最初の設計が肝心である。

(4)多重の暗号化

 多様な製品に暗号機能が備わっているため,安易に暗号化が繰り返される傾向がある。性能が確実に劣化するため,バランスを考える必要がある。

 Webシステムでの典型例を挙げると,以下のようになる()。

図●Webシステムにおける多重暗号化の例
図●Webシステムにおける多重暗号化の例

・WebブラウザとWebサーバー間において,SSLでデータを暗号化
・Webアプリケーション内で,データを暗号化
・Webサーバーとアプリケーション・サーバー間,さらにアプリケーション・サーバーとデータベース・サーバー間において,SSLやIPsecで暗号化
・データベース・サーバーにおいて,DBMSが備える機能でデータを暗号化
・データベース・サーバーのディスク・ドライブが備える機能でデータを暗号化

 暗号化する場合,なぜ行うのか,どんなリスクから情報を守るのかを,よく考える必要がある。上記の例なら,Webアプリケーション内でデータを暗号化したなら,DBMSやディスク・ドライブでの暗号化は不要だろう。その方が性能の劣化はなく,リスクはそれほど違わないことを理解してほしい。

木幡 康弘(こはた やすひろ)
NTTデータ ソリューション&テクノロジーカンパニー
基盤システム事業本部MS開発部 部長
シニアITスペシャリスト(セキュリティ)
1990年,NTTデータ通信(現NTTデータ)に入社。開発本部にてUNIXやTCP/IPに関する技術開発に従事し,以降,ネットワーク技術,運用管理技術,QoS関連技術の開発を経て,1999年,セキュリティ関連部署でセキュリティ・ビジネスを立ち上げた。2002年,NTTデータセキュリティに出向。セキュリティ診断,セキュリティ監視,セキュリティ対策などを手掛ける。2006年に出向復帰以降,大規模イントラネットの構築などに取り組んでいる。