インターネット基盤ソフト 「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を改変せず利用可・独立な頒布
栄枯盛衰する基盤技術からの独立
– 応用プロトコル
– 記述言語