270 likes | 380 Views
10年目の DeleGate. 情報処理部門 佐藤豊. 要旨. 最初の 10 年を振り返って(反省等) 近況(最近始めたこと) 今後 10 年の計画? その先の 10 年??. DeleGate とは. 一般的分類:多機能プロキシサーバ 「多目的アプリケーションプロトコル中継システム」 単純な原理:アプリケーションプロトコルを中継 アプリケーション層のプログラム 中継する内容(プロトコル)を解釈しながら中継 多様な用途:中継時に様々な付加価値を実現 ファイアウォール ( アクセス制御、フィルタリング ) 高速化(キャッシュ)
E N D
10年目のDeleGate 情報処理部門 佐藤豊
要旨 • 最初の10年を振り返って(反省等) • 近況(最近始めたこと) • 今後10年の計画? • その先の10年??
DeleGateとは • 一般的分類:多機能プロキシサーバ • 「多目的アプリケーションプロトコル中継システム」 • 単純な原理:アプリケーションプロトコルを中継 • アプリケーション層のプログラム • 中継する内容(プロトコル)を解釈しながら中継 • 多様な用途:中継時に様々な付加価値を実現 • ファイアウォール(アクセス制御、フィルタリング) • 高速化(キャッシュ) • プロトコル変換(暗号化、圧縮、…) • コンテンツ変換(翻訳、…) • 仕様・実装の変化・不備の緩衝材・パディング
開発開始時の大目標 (未達成) • マルチプロトコルプロキシを題材にした研究 • 複数の応用プロトコルを統合サポート • 共通要素の抽出、実装上の統合化・ライブラリ化 • プロトコル仕様の重複の整理 • 共通部分のサブプロトコル化提案 • 大統一プロトコルの設計 • 汎用プロトコルインタプリタ・生成系 • 文字列処理エンジン(分解・合成・適合)の実現 • 応用層上の多重化通信プロトコルの提案 • …
DeleGateの概要 • 1994年生まれ・現在も成長中 • 小規模Gopher専用プロキシ(SunOS版)からの持続的な成長 • 多用途プロキシサーバ • アクセス制御、キャッシュ、経路制御、トンネリング、プロトコル変換、サーバ統合、コンテンツフィルタ、コンテンツ変換、… • マルチプロトコル対応 • HTTP,FTP,SMTP,POP,NNTP,Telnet,DNS,SOCKS,SSL,… • マルチプラットフォーム対応 • Unix,Windows,OS/2,MacOS-X • 配布形態・配布状況 • オープンソース・フリーソフト、149カ国・26,000サイト
DeleGateの近況 • 安定期 • ゆるやかな持続的成長 • 既存の実装ベースに果てしなく続く改良・修整 • ゆるやかな継続的普及 • 区切りの時期? • 実用ソフト化して保守的に、機能的発展の減速 • 独法化・商用化への対処 • 実験ソフトから実用ソフトへ、根本的な作り直し? • 次の10年に向けて • 新たな発展を求めて新機軸の模索
開発状況:プログラム規模の推移 v1 v2 v3 v4 v5 v6 v7 v8 02年12月 SockMux 97年1月 Windows対応 01年2月 実験的コード 削除 94年6月 配布開始 95年10月 Mimekit 9年間に520回の改訂版リリース 94年3月 開発開始
各版での主な新規課題 • V.01994 Gopher(go-far) • V.11994 HTTP, 文字コード変換, 殆どの基本機能実験着手 • V.21995 NNTP, FTP, 各種Unix移植 • V.31996 Mount実用化, originサーバ化着手, CFI着手 • V.41997 Windows移植開始 • V.51998 暗号化プロキシ機能(SSLway), SMTP (成長期?) • V.61999 バッファ溢れ検出・停止機能, マニュアル整備 • V.72001 プロキシ認証機能, XSS対応 • V.82002 セキュリティ関連仕様変更、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% SockMux • 0.8% ICP • 0.8% POP • 0.6% Gopher • 0.5% LDAP • 0.1% IMAP
配布状況(2003年4月) 総配布数: 26,270 ソース配布: 20,555 Windows版: 14,285 01年9月 産総研Firewall PASV不可に 自宅サーバに切り替え PASV可・匿名可に 新規サイト 15サイト/日 FreshMeat登録 (主にLinux向け) Windows版 99年11月BugTraq LinuxGazzete
トップドメイン別配布先サイト数(2003年4月末現在)トップドメイン別配布先サイト数(2003年4月末現在) • 非jp 15,929 • 4124 com • 2425 net • 359 org • 337 edu • 55 mil • 35 gov • 5 biz • 5 info • 4 int • Jp 10,341 • 6435 co • 1986 or,ne • 732 ac • 259 gr • 168 go • 131 ad • 630 * • 1051 de 独 • 1019 ru 露 • 500 fr 仏 • 367 au 濠 • 356 it 伊 • 343 br 伯 • 340 uk 英 • 217 ca 加 • 197 nl 蘭 • 196 se 瑞 • 196 pl 波 • 172 cz • 166 es 西 • 166 ua • 159 tw 台湾 • 158 ch 瑞 • 140 hu 洪 • 135 at 墺 • 134 cn 中国 • 128 ro • 111 fi 芬 • 98 kr 韓国 • 98 be 白 • 92 us 米 • 92 ar 亜 • 90 no • 85 dk • 76 za • 71 nz • 68 mx 墨
DeleGateが選ばれる理由? • 以下全てを満たす唯一のプロキシサーバ? • マルチプロトコル • ほとんどの基盤的プロトコルをカバー • 多機能 • ひととおりのことはできる • マルチプラットフォーム • どこでも走る(Unix,Win,Mac) • オープンソース・フリーソフト • 純国産・日本語によるサポートを期待? • 特徴的機能 • マウント、経路制御、外部フィルタ
DeleGateが選ばれない理由(反省点・課題) • とっつきにくさ • 未整備なドキュメント・設定例、FAQ無し • 設定・管理用GUI・対話的IF無し (⇒外付け可) • セキュリティ問題 • バッファオーバフロー可能性 (⇒委託可) • ライセンスが不明確 • 歴史的事情・内部事情もあって • いずれの機能も未完成・非最適 • 最適ソフトは別にある
最初の10年を振り返って • 10年前には現在を予想・予測困難 • ドッグイヤーだったし • 予想以上・以下・予想外 • DeleGate • 社会状況 • 背景の変遷・動向 • 次の10年をどのような前提で考えるか?
予想以上・以下の状況(DeleGate) • 予想程度の普及度 • インターネットの膨張にほぼ伍して • 予想以下の技術的進展 • 初期に構想したものの域を出ていない • 成長力の減衰 • 実用システムとしての安定性に縛られる • とにかく作ってみる、ことが減少 (蛮勇力の低下)
予想外の状況(社会的背景) • 応用層の意外な安定 • HTTPの発展収束・FTP等既存プロトコルとの共存 • プロキシ対応の仕様変更無し • 物理層の劇的な発展 • 光ファイバか家庭に ・・・共有キャッシュ必要性の減少 • 携帯でインターネット ・・・圧縮変換プロキシの必要性 • OS / コンピュータの変遷 • Windows, Linux の隆盛 • PCの普及、WSの衰退
基盤的応用プロトコルの栄枯盛衰(DeleGateの今後)基盤的応用プロトコルの栄枯盛衰(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で構成される仮想ネットワークへ
App. App. App. VIABUS再興? • 1991年頃開発 • アプリケーション層上の通信メディア • アプリケーション間の可変長メッセージ通信 • コンテンツによるアドレス(パターンマッチ) • マルチキャスト VIABUS
次の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関数