インターネット基盤ソフト 「DeleGate」の開発
Download
Report
Transcript インターネット基盤ソフト 「DeleGate」の開発
インターネット基盤ソフト
「DeleGate」
情報処理研究部門
佐藤豊
DeleGateとは
• インターネット用基盤ソフトウェア
• 多目的応用プロトコル中継システム ⊃ プロキシサーバ
• 10年前に電総研で生まれ、持続的成長
• 世界的な老舗プロキシサーバのひとつ
• 広く世界で使われている純国産プログラム
• 152ヶ国、2万8千以上の利用者サイト
クライアント/サーバモデル
• インターネット上の応用サービスの普遍的実現モデル
利用者
•
応用プロトコル
– 各々の応用サービスごとに規定: ウェブ(HTTP),メール(SMTP),FTP,…
– サーバ/クライアント間の要求・応答の手順とデータの形式
提供者
接続障害
• クライアントとサーバの間の障壁
• 直接接続が不能
– ファイアウォール
– プロトコル不一致
プロキシサーバによる解決
• クライアントとサーバの間の通信を中継するサーバ
• 発展的利用:中継時に様々な付加価値を実現
– アクセス制御、フィルタリング(検閲)、データ変換(翻
訳、圧縮、暗号化)、サービス統合、、、
プロキシサーバの発展
• 用途の多様化
– フィルタリング
• 不正アクセス/有害コンテンツ/ウィルス/迷惑メール
• 世界中に100を超える競合ソフト
• フリーソフト/商用ソフト
DeleGateの特徴
– 多目的・多用途(プロキシサーバの応用可能性の探求)
•
•
•
•
•
セキュリティ保護(アクセス制御、暗号化、フィルタリング)
高速化(圧縮、キャッシュ)
サービス統合(プロトコル変換)
翻訳(データ変換)
仮想ネット構成(経路制御)
– マルチプロトコル
•
主要な基盤的応用プロトコルを網羅 (HTTP, SMTP, POP, NNTP, FTP, Telnet, SOCKS …)
– マルチプラットフォーム
•
ほとんどのOSの上で動作可能 (Unix*, Windows, OS/2, MacOSX)
– オープンソース
– 問題点:完成度は中程度、ユーザサポート弱、ドキュメント少
DeleGateの普及状況
DeleGate配布先サイト数の推移
30000
•
無償配布先サイト数(2003年12月末現在)
– 総数 28,300 (+3,236/年)
– 海外 17,508 (+2,525/年) 152ヶ国
– 国内 10,792 (+ 711/年)
•
有償提供
– 本年度、有償使用規定を整備
– 契約業務は産総研イノベーションズ担当
– 現在5社と契約作業進行中
•
参考
– DeleGate利用者サイト一覧
– ITバブル崩壊:ウェブサーバ総数の推移
– 競合するソフト
25000
海外
国内
総数
20000
15000
10000
5000
6月
03
年
6月
20
02
年
6月
20
01
年
6月
20
00
年
6月
20
99
年
6月
19
98
年
6月
19
97
年
6月
19
96
年
6月
19
95
年
19
19
94
年
6月
0
トップドメイン別配布先サイト数(2003年12月末現在)
• Jp 10,792
– 6685 co
– 2046 or,ne
– 740 ac
– 259 gr
– 172 go
– 139 ad
– 744 *
非jp
17,508
4553
2644
390
369
59
37
com
net
org
edu
mil
gov
7 biz
5 info
5 int
1155
1141
525
398
382
379
372
232
223
220
206
198
181
180
179
de
ru
fr
au
it
br
uk
pl
ca
nl
se
cz
es
ua
tw
独
露
仏
濠
伊
伯
英
波
加
蘭
瑞
西
台湾
179
163
143
145
149
119
100
101
100
101
96
90
84
77
73
ch
hu
at
cn
ro
fi
kr
be
us
ar
no
dk
za
nz
mx
瑞
洪
墺
中国
芬
韓国
白
米
亜
墨
国内への普及状況
(2003年4月末現在)
• 大口ユーザには、ほぼ普及完了?
• 大学
– Ac.jp – 740サイト (大学、短大、高校、他)
– 全大学(約700?)中、430大学(61%)
• 企業
– Co.jp – 6435社
– 東証一部上場企業1507社中、502社(33%)
• 情報通信
• 電気機器
64社中、47社(73%)
149社中、92社(62%)
開発状況:プログラム規模の推移
v1
v2
v3
v4
v5
v6
v7
v8
140000
プログラムサイズ(行数)
120000
100000
97年1月
Windows
対応
80000
10年間に550回の改訂版リリース
60000
40000
94年6月
20000 配布開始
3月
20
03
年
3月
20
02
年
3月
20
01
年
3月
20
00
年
3月
19
99
年
3月
19
98
年
3月
19
97
年
3月
19
96
年
3月
19
95
年
19
94
年
3月
94年3月
開発開始 0
コンテンツ変換プロキシ
プロキシが中継するコンテンツの変換
翻訳、通訳、圧縮、等、様々な応用
DeleGate: 変換機能を外付けするインターフェイスを提供
Hi,
どーも
翻訳
通訳
コンテンツ変換の応用実例
• 日本語コード変換
– JIS,Shift_JIS,EUC-JP,UTF-8
• 暗号化中継(SSL)
• 英日翻訳中継
– O社、S社、 農水省農業生物資源研究所
• 画像圧縮変換中継
– H社
• 大阪弁化フィルタ, 熊本弁化フィルタ
• 携帯端末用コンテンツ圧縮・分割フィルタ
サーバ統合プロキシ
•
•
複数のサーバを一つのサーバのように見せて提供する
サーバサイト側でのサーバ運用維持支援
– 各部門では独自にローカルにサーバを運用
• 内容の更新やログの管理が容易
– 各サーバを組織の代表サーバに統合し提供
要求の書き換え・転送
(プロトコル変換)
(応答のキャッシュ)
応答の書き換え・転送
利用例(産総研)
• 産総研ウェブサーバ
– http://www.aist.go.jp/
• http://www.aist.go.jp/RIODB/
• http://www.aist.go.jp/GSJ/
• http://www.aist.go.jp/…
公開
監視
• ユニットごとに自由なサーバ運用
– 更新・維持・運用が容易
• 内部サーバを統合して外部へ公開
– 一元的なアクセス制御・ログ監視
所内ウェブサーバ
現状と今後
• 実用ソフトとして要求される拡張/改良/修整の継続
• 従来の実装ベースの継続的拡張
• 商用利用へのライセンス供与の開始
• 平成15年度より
• 今後の持続的成長のための新機軸
• 根本的な作り直し?(実験ソフトから実用ソフトへ)
• 今後のセキュリティモデルを想定した基盤通信機能の検討
背景・動機・目標
• 基盤的ソフトウェアの輸入超過(OS、通信ソフト、言語、
…)
• ソフトウェア防衛(国産ソフトウェア技術の維持)
• 世界的に一線級の基盤ソフトの開発・輸出
• インターネットから受けた恩恵(フリーソフト)へのお返し
• 必要に迫られて作り始めたソフトが他者にも有用
DeleGateの用途
• インターネットの運用・サーバ構築・利用の支援
– セキュリティ保護
ファイアウォール・アクセス制御
– 性能向上・資源節約 キャッシング
– 安定性の向上
動的経路制御・負荷分散
– 運用・管理の支援
プロトコル変換・サーバ統合
– 付加価値実現の支援 翻訳、暗号化、圧縮
セキュリティのためのDeleGateの利用例
攻撃者
サービス提供者
利用者
通信プロバイダ
SockMuxプロトコル
–
目的:応用プログラムによる柔軟な仮想ネットワークの実現
– 物理的単位(ホスト・ネット)から独立した応用プログラムのネットワーク
役割:応用プログラム間の通信の多重化・暗号化
特徴:簡便・軽量・柔軟
– PPPプロトコルよりも簡素 (ソケットAPIに直結)
– Socksプロトコルには無い多重化機能を内包
– SSLプロトコル等を必要としない簡便な暗号化機能を内包
– IPアドレスに限らない可視性制御 (Unixドメインのソケット等)
–
–
多重化
暗号化
クライアント
クライアント
DeleGate
サーバ
DeleGate
クライアント
サーバ
DeleGate
ポートaの可視範囲
利用例: 隔絶した or 隔離された空間
の間での、クライアント・サーバ間の中
継
クライアント
ポートbの可視範囲
DeleGate
DeleGateの概要
• 1994年生まれ・現在も成長中
– 小規模Gopher専用プロキシ(SunOS版)からの持続的な成長
• 多用途プロキシサーバ
– アクセス制御、キャッシュ、経路制御、トンネリング、プロトコ
ル変換、サーバ統合、コンテンツフィルタ、コンテンツ変換、…
• マルチプロトコル対応
– HTTP,FTP,SMTP,POP,NNTP,Telnet,DNS,SOCKS,SSL,…
• マルチプラットフォーム対応
– Unix,Windows,OS/2,MacOS-X
• 配布形態・配布状況
– オープンソース・フリーソフト、149カ国・26,000サイト
配布状況(2003年4月)
総配布数: 26,270
ソース配布: 20,555
Windows版: 14,285
配布先サイト数
30000
新規サイト
10サイト/日
01年9月
産総研Firewall
PASV不可に
non-jp
jp
total
25000
20000
新規サイト
15サイト/日
15000
FreshMeat登録
(主にLinux向け)
10000
Windows版
6月
20
03
年
6月
20
02
年
6月
6月
20
00
年
6月
19
99
年
6月
19
98
年
6月
19
97
年
6月
19
96
年
19
95
年
6月
0
6月
99年11月
BugTraq
LinuxG
azzete
20
01
年
5000
19
94
年
自宅サーバに切り替え
PASV可・匿名可に
信条
•
•
•
•
役に立たない論文・特許より役に立つソフト
二流の研究より一流のモノ作り
小さく産んで大きく育てる
持続的に成長可能なソフトウェア
• 産地直送ソフトウェア/顔の見えるモノ作り
• 桃李もの言わざれども下おのずから蹊をなす
DeleGateとは
• 一般的分類:多機能プロキシサーバ
• 「多目的アプリケーションプロトコル中継システム」
• 単純な原理:アプリケーションプロトコルを中継
• アプリケーション層のプログラム
• 中継する内容(プロトコル)を解釈しながら中継
• 多様な用途:中継時に様々な付加価値を実現
•
•
•
•
•
ファイアウォール(アクセス制御、フィルタリング)
高速化(キャッシュ)
プロトコル変換(暗号化、圧縮、…)
コンテンツ変換(翻訳、…)
仕様・実装の変化・不備の緩衝材・パディング
現状と今後
• 安定期
• ゆるやかな持続的成長
– 既存の実装ベースに果てしなく続く改良・修整
• ゆるやかな継続的普及
• 区切りの時期?
• 実用ソフト化して保守的に、機能的発展の減速
• 商用化への対処 (技術面、ライセンス面)
• 実験ソフトから実用ソフトへ、根本的な作り直し?
• 次の10年に向けて
• 新たな発展を求めて新機軸の模索
• 10年後以降のセキュリティモデルを考えて先行投資
9
8
7
6
5
系列1
系列2
4
3
2
1
0
1
2
3
開発開始時の大目標 (未達成)
• マルチプロトコルプロキシを題材にした研究
– 複数の応用プロトコルを統合サポート
• 共通要素の抽出、実装上の統合化・ライブラリ化
• プロトコル仕様の重複の整理
– 共通部分のサブプロトコル化提案
– 大統一プロトコルの設計
– 汎用プロトコルインタプリタ・生成系
• 文字列処理エンジン(分解・合成・適合)の実現
• 応用層上の多重化通信プロトコルの提案
• …
各版での主な新規課題
• V.0 1994 Gopher(go-far)
• V.1 1994 HTTP, 文字コード変換, 殆どの基本機能実験着手
• V.2 1995 NNTP, FTP, 各種Unix移植
• V.3 1996 Mount実用化, originサーバ化着手, CFI着手
• V.4 1997 Windows移植開始
• V.5 1998 暗号化プロキシ機能(SSLway), SMTP
(成長期?)
• V.6 1999 バッファ溢れ検出・停止機能, マニュアル整備
• V.7 2001 プロキシ認証機能, XSS対応
• V.8 2002 セキュリティ関連仕様変更、SockMux着手
(成熟期?停滞期?)
実装コード量の機能別分類
– 58% プロトコル共通
–
–
–
–
–
–
–
–
6.1% 移植関連(プラットフォーム依存)
4.3% MOUNT機能
4.1% アクセス/経路制御機能
3.6% ホスト名リゾルバ
3.5% INET (IPアドレス・ソケット依存)
3.2% 外部フィルタ機能
3.2% MIMEフォーマット処理
1.9% 文字コード変換
– 42% プロトコル固有
– 12.2% HTTP
– 7.6% NNTP
– 5.2% FTP
– 2.7% SMTP
– 1.3% SOCKS
– 1.2% Telnet
•
•
•
•
•
•
1.1%
0.8%
0.8%
0.6%
0.5%
0.1%
SockMux
ICP
POP
Gopher
LDAP
IMAP
DeleGateが選ばれる理由?
• 以下全てを満たす唯一のプロキシサーバ?
– マルチプロトコル
– ほとんどの基盤的プロトコルをカバー
– 多機能
– ひととおりのことはできる
– マルチプラットフォーム
– どこでも走る(Unix,Win,Mac)
– オープンソース・フリーソフト
• 純国産・日本語によるサポートを期待?
• 特徴的機能
– マウント、経路制御、外部フィルタ
DeleGateが選ばれない理由(反省点・課題)
• とっつきにくさ
• 未整備なドキュメント・設定例、FAQ無し
• 設定・管理用GUI・対話的IF無し (⇒外付け可)
• セキュリティ問題
• バッファオーバフロー可能性
(⇒委託可)
• ライセンスが不明確
• 歴史的事情・内部事情もあって
• いずれの機能も未完成・非最適
• 最適ソフトは別にある
最初の10年を振り返って
• 10年前には現在を予想・予測困難
• ドッグイヤーだったし
• 予想以上・以下・予想外
• DeleGate
• 社会状況
• 背景の変遷・動向
• 次の10年をどのような前提で考えるか?
予想以上・以下の状況(DeleG
ate)
• 予想程度の普及度
• インターネットの膨張にほぼ伍して
• 予想以下の技術的進展
• 初期に構想したものの域を出ていない
• 成長力の減衰
• 実用システムとしての安定性に縛られる
• とにかく作ってみる、ことが減少 (蛮勇力の低下)
予想外の状況(社会的背景)
• 応用層の意外な安定
• HTTPの発展収束・FTP等既存プロトコルとの共存
• プロキシ対応の仕様変更無し
• 物理層の劇的な発展
• 光ファイバか家庭に
• 携帯でインターネット
・・・共有キャッシュ必要性の減少
・・・圧縮変換プロキシの必要性
• OS / コンピュータの変遷
• Windows, Linux の隆盛
• PCの普及、WSの衰退
基盤的応用プロトコルの栄枯盛衰(DeleGateの
今後)
• 古典的・不死身?
– SMTP, FTP, Telnet (インターネット最古)
– DNS, POP, IMAP
• 新興・安定化
– HTTP, SOCKS, SSL, LDAP
• 衰退傾向?
– NNTP, ICP, X, CU-SeeMe?
• 絶滅
– Gopher, WAIS, Ident
現状の応用プロトコルの問題(マッチポン
プ?)
• FTPデータコネクション
• データ転送用TCPコネクションの繰り返し接続
• 不必要に高機能な仕様が、セキュリティ上の問題の根源に
• HTTPコネクション再利用(Keep-Alive)
• リクエスト毎のくり返し接続
• 場当たり的な解決で、不完全(並列性無し)
• それぞれに直接にIP上に乗ってるが故の問題
• たてわりの弊害、一国一城。横断的技術調整組織なし。
• 本来、共通に解決可能
• 応用プロトコルに共通の解決手段
• 並列セッション、圧縮、暗号化
• 共通化の動きも:MIME形式、認証プロトコル等
SockMuxプロトコル
• アプリケーション層の多重化通信メディア
–
–
–
–
アプリケーションプログラム間を繋ぐ
API:Socketインターフェイス互換
下位層(TCP)の永続的コネクション上を利用
PPPのようなもの?IRC?
• 当面の実際的応用
– トンネリングプロトコル
– FTPデータ、HTTPデータ、…効率的転送
• SockMuxで構成される仮想ネットワークへ
VIABUS再興?
• 1991年頃開発
• アプリケーション層上の通信メディア
• アプリケーション間の可変長メッセージ通信
• コンテンツによるアドレス(パターンマッチ)
• マルチキャスト
App.
App.
VIABUS
App.
次の10年間の課題
•
•
•
•
バッファオーバフローの根絶(別の記述言語)
設定用インターフェイス(フォーム、言語)
商用化
SockMux(のようなプロトコル)
•
•
•
•
大統一プロトコル?
テストケースの自動生成
共有ライブラリ、ツールキット化
形式記述+生成系へ
10年後以降のDeleGate?
• セキュリティ技術の今後
• フィルタリング vs. 暗号化の衝突
• 古典的ファイアウォール技術の衰退
• 暗号化通信の普及により、通過コンテンツ不可視に
• 現状でもHTTPS/SSLプロキシがあれば何でも通せてしま
う
• 物理的単位(ネットワーク、ホスト)での防御の限界
10年後以降のDeleGate?
• 仮想ファイアウォール
• 仮想プライベートマシン(VPM入れ子)
• 仮想プライベートネットワーク(階層的) ←SockMux
• データの署名に基づくアクセス制御
• 全てのデータ(入れ子)が、作成者の署名付きに
• 仮想プライベートマシンを出る時に自動署名付与
• データの仮想マシンへの出入り許可を署名に基づいて制
御
おしまい
• ・・・
インターネットのセキュリティ
技術
• 隔離・隔絶
(ネットワークレベル)
– プライベートアドレス、VPN
• フィルタリング
(⇒ ファイアウォール)
– 外側と内側モデル-外から内を守る(通信の監査・検閲)
– ネットワークレベル:ルータ/パケットフィルタリング
– 応用レベル:プロキシ/応用メッセージプロキシ/応用メッセージ
• 暗号化・認証
(コンテンツレベルの隔離・隔絶)
– 送信・中継・受信モデル-内容の盗聴と偽造を防ぐ
– ネットワークレベル :IPsec
– 応用レベル:SSL,SSH,S-HTTP,PGP,S/MIME,…
• 監視・検出
– パケット監視 (IDS)、ログ監視、ウィルス走査
• セキュリティホール対策 (バグの悪用防止)
– 発生防止: 言語仕様、コンパイラ、実行時検査、…
– 悪用防止: アドレスランダム化、繰り返し試行防止、…
• …
SockMux 動機
• FTP, HTTP, SMTP, …
• 共通の並列セッション・データ転送手段
• アプリケーション層の多重化通信
• トンネリングのための実現手段
• 接続の繰り返しコスト削減効果
• 仮想ネットワークの構成
• 応用層VPN
• VIABUS(1991)
SockMux実装法(普及法)
• 既存の応用プログラムへの適用支援
• Socket関数の置き換え
• Connect関数他 (SOCKSと同様)
• マクロ+静的ライブラリ / 動的ライブラリ
• 入出力関数の置き換え
• Read/write関数、send/recv関数
インターネット上の応用サー
ビスの中継・変換・統合技術
プロキシサーバ「DeleGate」
産業技術総合研究所
情報処理研究部門
佐藤豊
http://www.delegate.org/
DeleGateの概要
• 1994年生まれ・現在も成長中
– 小規模Gopher専用プロキシ(SunOS版)からの持続的な成長
• 多用途プロキシサーバ
– アクセス制御、キャッシュ、経路制御、トンネリング、プロトコ
ル変換、サーバ統合、コンテンツフィルタ、コンテンツ変換、…
• マルチプロトコル対応
– HTTP,FTP,SMTP,POP,NNTP,Telnet,DNS,SOCKS,SSL,…
• マルチプラットフォーム対応
– Unix,Windows,OS/2,MacOS-X
• 配布形態・配布状況
– オープンソース・フリーソフト、148カ国・24,000サイト
DeleGateの多用途化の経緯
•
•
•
•
•
•
•
•
必要性
⇒ 機能
ファイアウォール越え
⇒ アクセス制御付き中継
日本語非対応のブラウザ
⇒ コード変換
低速な広域ネットワーク
⇒ キャッシュ
不安定なネットワーク接続 ⇒ 経路制御・迂回
IP的に不連続なネットワーク
⇒ トンネリング中継
内部サーバ群を外部へ提供 ⇒ サーバ統合
翻訳中継・画像圧縮中継
⇒ 外部フィルタ呼び出し
プライバシー保護
⇒ 暗号化通信
DeleGateの対応プロトコル
•
•
•
•
•
•
•
•
•
•
•
•
応用プロトコル
応用サービス
HTTP,ICP
ウェブ、キャッシュ
SMTP,POP,IMAP
電子メール
NNTP
電子ニュース
FTP
ファイル転送
SOCKS,VSAP
プロキシ中継
SSL
暗号化通信
DNS
ドメイン名検索
Telnet,X
遠隔端末
Tcprelay,Udprelay
単純中継
LDAP
ディレクトリサービス
Lpr
遠隔プリンタ
Gopher,Wais,CU-SeeMe,Ident
絶滅?
DeleGateのプログラム規模の推移
8年間に500回の改訂版リリース
140000
100000
97年1月
Windows
対応
80000
60000
40000
20000
02
年
3月
20
01
年
3月
20
00
年
3月
20
99
年
3月
19
98
年
3月
19
97
年
3月
19
96
年
3月
19
19
95
年
3月
0
94
年
3月
94年3月
開発開始
94年6月
配布開始
19
プログラムサイズ(行数)
120000
6月
20
02
年
6月
20
01
年
6月
20
00
年
6月
19
99
年
15000
6月
配布先サイト数
20000
19
98
年
6月
19
97
年
6月
19
96
年
6月
19
95
年
6月
19
94
年
DeleGateの配布状況(1)
+7サイト/日
25000
海外
国内
全体
10000
5000
0
DeleGateの配布状況(2)
140000
(配布元サーバからのダウンロードホスト数)
120000
100000
80000
60000
40000
20000
02
年
6月
20
01
年
6月
20
00
年
6月
20
99
年
6月
19
98
年
6月
19
97
年
6月
19
96
年
6月
19
95
年
6月
19
19
94
年
6月
0
クライアント/サーバモデル
• インターネット上の応用サービスの実現モデル
– サーバは情報や機能を提供し、クライアントは通信を実行しなが
らそれを利用する
• 応用プロトコル
– サーバ/クライアント間の要求・応答の手順とデータの形式
– 各々の応用サービスごとに規定される
– HTTP,SMTP,FTP,…
プロキシサーバ
• クライアントとサーバの間の通信を中継するサーバ
• サーキットレベルプロキシ
– 単なるバイト列として要求と応答を中継 (SOCKS)
• アプリケーションレベルプロキシ
– 応用プロトコルに固有な、要求と応答の手順とデータの形式を解
釈しながら中継
プロキシサーバの種類別得失
• サーキットレベルプロキシ(SOCKS等)
– 単なるバイト列として要求と応答を中継
– 実装が容易、全ての応用プロトコルに共通に適用可
– 中継以外の用途への発展性は乏しい
• アプリケーションレベルプロキシ
– 応用プロトコルに固有な要求と応答の手順とデータの形式を理解して中継
– 実装が複雑(クライアントとサーバのサブセット機能×各プロトコル)
– 理解している内容にしたがってきめ細かな制御が可能
– ただ中継するだけでなく、手順やデータの変換、フィルタ、統合ができる
⇒ 多様な付加価値サービスの実現可能性
• DeleGateは両者を実現。後者の可能性を追及
ファイアウォール用プロキシ
• プロキシの一般的な用途
–
–
–
–
クライアントサイト側での利用
アクセス制御付き中継
コンテンツキャッシュ
有害コンテンツ除去
CFI:Common Filter Interface
• プロキシに機能を外付けするインターフェイス
– コンテンツ変換、コンテンツフィルタ、プロトコル変換
• プロキシサーバ用CGI、のようなもの
– 外付けフィルタプログラム+CFIスクリプト
• 開発の背景・動機
–
–
–
–
DeleGateに付加価値を付けて商用利用する申し込み
組み込みだとライセンス上の問題が生じる(国有財産…)
独立なプログラム同士として連携するだけなら無問題
CGI的な機能をプロキシに導入するとどうなるかに興味
CGI:Common Gateway Interface
• 動的コンテンツの提供
– 外部プログラムによる、
HTTPサーバの機能拡張
• インターフェイス仕様
– 入力
• 環境変数
• プログラム引数
• 標準入力
– 出力
• 標準出力
• プログラム記述言語
– 任意の言語
• 適用プロトコル
– HTTP
CFI-CGIとの対比
• 付加価値サービスの提供
– 外部プログラムによる、プ
ロキシサーバの機能拡張
• インターフェイス仕様
– 入力
• 環境変数
• プログラム引数
• 標準入力
– 出力
• 標準出力、標準エラー出力
• プログラム記述言語
– 任意の言語
• 適用プロトコル
– 任意のプロトコル
CFIの使用法
• CFIスクリプト
– 適用フィルタの選択
– ヘッダの加工
– ボディの加工
• フィルタの挿入位置
#!cfi
Content-Type: text/
Filter: en2ja
-Content-Type:image/gif
Filter: gif2jpeg
--
– 要求フィルタ・応答フィルタ・双方向フィルタ
CFIによる暗号化プロキシの実
現
• 任意のSSL非対応プロトコル、SSL非対
応クライアント/サーバを、SSL対応に
• SSL用フィルタは、CFIにより接続
(OpenSSL使用)
CFIの利点
•
•
•
•
•
単純・普遍的なインターフェイス仕様
任意の記述言語でフィルタを実装できる
既存ソフトをフィルタとして再利用が容易
DeleGateを改変せず利用可・独立な頒布
栄枯盛衰する基盤技術からの独立
– 応用プロトコル
– 記述言語