図1 「ICAP」を使って外部の装置の機能を利用するしくみ
図1 「ICAP」を使って外部の装置の機能を利用するしくみ
[画像のクリックで拡大表示]

 ICAPとはinternet content adaptation protocolの略で,プロキシ/キャッシュ・サーバーが外部の機能を利用できるようにするためのプロトコルである。

 フリーのプロキシ・ソフトには,URLフィルタリングをしたり,ウイルスを検出する機能は備わっていない。こうした機能が必要な場合,プロキシ・ソフトは,ウイルス対策ゲートウエイやURLフィルタリング・ゲートウエイなど,ほかの製品を利用して足りない機能を補うことになる。

 ほかの製品の機能を利用する単純な方法は,Webアクセスの経路上にほかの製品を置いて,多段接続すること。ただ,これだと信頼性確保の点で問題がある。ほかの製品が止まってしまうとWebアクセスもできなくなる可能性があるからだ。外部の製品がダウンしても,最低限の通信を確保できる仕組みの方が信頼性確保の点では望ましい。それを実現するのがICAPである。

 実際の動きを見てみよう(図1)。ICAPクライアント機能を備えたプロキシは,処理が必要なコンテンツをICAPサーバーに転送する。HTTPリクエストを転送するときは,ICAPメッセージにHTTPリクエストを格納して転送する。転送先のICAPサーバーは,処理結果を送り返してくるので,その内容をWebサーバーに転送する。Webサイトから受け取ったWebコンテンツを処理してもらうときは,HTTPレスポンスをICAPメッセージに格納して転送する。応答は,Webブラウザに転送するわけだ。

 フリーのプロキシの代表格である「Squid」は,2007年12月に公開されたバージョン3.0以降でICAPクライアント機能を備える。ICAPサーバー機能を備えた外部のURLフィルタリング製品やウイルス検出装置に,Webコンテンツの処理を依頼できる。

 ICAPサーバー機能を備えたセキュリティ対策製品は,シマンテック,トレンドマイクロなどのメーカーが出荷している。また,ICAPによる連携機能は,Squidだけでなく,製品版のプロキシも多くが備えている。たとえ1台でできる処理であっても,負荷を考えると互いに役割分担した方がよいこともあるからだ。