管理者の立場でセキュリティをできるだけ強化しようと考えるなら,「暗号化されたパケットの中身までチェックできるかどうか」というのは気になるところだ。UTMの中には,米セキュア コンピューティングの「Sidewinder G2」のように,SSLのような暗号化して通信する場合でも,パケットの中身をチェックできるものがある。どのようなしくみになっているのかを見ていこう。

UTMがSSLのサーバーにもなる

 UTMでSSL通信の中身をチェックする方法を知るには,まずSSLによる通信のポイントを押さえておく必要がある。SSL通信では,最初にサーバーが正しいかどうかを認証し,正しいと確認できたら暗号化通信を始める。これら二つの作業に必要なのが,サーバーの証明書だ。証明書には,サーバーが正しいものであることを示すディジタル署名と,暗号化通信に必要な鍵が添付されている。このように,証明書はとても重要なものである。

 UTMがSSLでやりとりするパケットをチェックするとなると,UTMのところで一度,暗号化されたデータを復号しなければならない。しかし,SSLの暗号は途中で復号できない。そこで,クライアントに対してUTMがサーバー機能を代行する。つまり,サーバー-UTM間とUTM-クライアント間でそれぞれSSLのトンネルを作り,クライアントはUTMの証明書で暗号化処理するという構成にする(図1)。

図1●SSLでやりとりするパケットもチェックできる
図1●SSLでやりとりするパケットもチェックできる
UTMの中にはSSLのように暗号化されたパケットをチェックできる製品がある。UTMはサーバーとクライアントの間に入って,暗号化されたパケットをいったん復号し,中身をチェックしてからクライアントに届ける。UTMが通信を中継できるように,サーバーとUTM,UTMとクライアントの間でそれぞれSSL通信をする。
[画像のクリックで拡大表示]

 サーバーが暗号化して送ったパケットはUTMが受け取って,サーバーの証明書を基に暗号化されたパケットを復号して中身をチェックする。パケットの中身をチェックした後,UTMは自分の証明書に基づいてデータを暗号化し,パケットをクライアントに送る。パケットを受け取ったクライアントは,UTMの証明書を使って生成した鍵で復号するというしくみである。

対応製品が増えるかどうかは不明

 SSLは本来,クライアント側でサーバーが正しいかを認証して通信するというのが大前提。ところが,途中でUTMがパケットをチェックするとなると,クライアントでサーバーを認証できなくなってしまい,本来の暗号化通信の考え方から少し外れてしまう。このため,今後対応製品が増えるかどうかは今のところ不明だ。