暗号化技術の変遷と最新のトレンドを知る
各種暗号化技術とその効果
今回は、暗号化を利用した具体例を示す前に技術的な側面から、暗号化について掘り下げた解説をします。
前回、情報漏えい対策としてお勧めした「暗号化」ですが、技術的には決して新しいものではありません。特にファイルの暗号化については、機密ファイルを守るため旧来利用されている手法です。ところが、昨今の企業におけるデータセキュリティの需要が増すにつれ、生まれた技術のひとつに「透過式暗号化」があります。
透過式暗号とは、利用者が意識することなく暗号化操作できる技術のことです。具体的には、ユーザーがファイルを開いたり、編集したりする際に、システムが自動で保護されてないファイルに対して暗号化および復号化を行います。したがって、ファイルがディスクに保存された状態では暗号化が施され、メモリ上でのみ平文(復号化)の状態となるため、そのファイルを利用前(もしくは利用後)の状態では、自動的に復号化が行われずファイルは(暗号化されていて)保護されるという仕組みです。
透過式暗号化のメカニズム
「透過式暗号化」のメカニズムはファイルの「オープン(読込)」、「保存(書込)」をOS上のいくつかのレイヤー(層)にて監視をすることで実現します。CPUは、0~3の4種類のレイヤーで定義されています。これらはリング(Ring)と呼ばれています(図1)。
図1:透過式暗号化を構成する4種類のレイヤー(Ring) |
リングは、「0」を最高権限とし、「3」を最小権限(アプリケーション・レイヤー)としています。「0」で実行されているプログラムがカーネル・レイヤー、「3」はアプリケーション・レイヤーと呼ばれています。一般的にアプリケーションは「3」のアプリケーション・レイヤーで実行されていますが、「0」のカーネルレイヤーにあるシステムのコア(OS)に対しては直接アクセスすることはできません。したがって、各種記憶メディアに保存されているファイルをアプリケーションで操作(アクセス)する場合には、OSが提供するAPI関数を利用して実現しています。
透過式暗号化はOSと密接な関係を持たせ、連動させることが重要です。技術的な切り口で見ると、暗号化はカーネルレイヤーの暗号化とアプリケーション・レイヤーの暗号化の2つに分類され、一般的にカーネル・レイヤーではファイル・フィルタリング技術を、アプリケーション・レイヤーではAPI HOOK技術を利用しています。
基本的なメカニズムは、ファイルのI/O(読み書き)権限を取得し、保護されているアプリケーションのI/Oを監視し、保護されたファイルをダイナミックに暗号化/復号化します。これらの操作はOSのカーネル層で自動的に実行~完了しますので、アプリケーション・プロセスの速度は若干落ちてしまいますが、ユーザーには意識させることなく通常通りに操作が可能となります。
透過式暗号化は他の暗号化技術と比べ以下の優位性を持っています。
- 社内でファイルのやりとりをする場合:作成者と利用者の間で暗号化/復号化および権限付与などの特別な処理作業が不要
- 社外でファイルをやりとりする場合:ファイルの社外流出や認証不可能な状態に置かれると自動的に無効(利用不可)となり、堅牢に知的財産を保護できる
また、従来のDRM技術では、各種アプリケーションが提供するAPIでコントロールするので、ある程度のセキュリティを確保することはできますが、APIの開発期間(約3~6ヶ月と想定されている)とそれに伴う利用者ライセンス費用は膨大なコストとなります。これはアプリケーションがバージョン・アップする度に発生するものです。一方、透過式暗号化はAPIに頼らず、直接アプリケーションで処理を行うため、こうしたデメリットを払しょくできています。
カーネル・レイヤーで製品開発しているメーカーが、“ファイル・フィルタリング技術を駆使している暗号化はセキュリティをより強固なものにできる”とアピールしている理由はそこにあります。
図2:暗号化における各技術の違い |