660 likes | 1.2k Views
インターネット 基盤ソフト 「 DeleGate 」. 情報処理研究部門 佐藤豊. DeleGate とは. インターネット用基盤ソフトウェア 多目的応用プロトコル中継システム ⊃ プロキシサーバ 10年前に電総研で生まれ、持続的成長 世界的な老舗プロキシサーバのひとつ 広く世界で使われている純国産プログラム 152ヶ国、2万8千以上の利用者サイト. (1). 要求. (2). 応答. クライアント/サーバモデル. インターネット上の応用サービスの普遍的実現モデル 応用プロトコル
E N D
インターネット基盤ソフト「DeleGate」 情報処理研究部門 佐藤豊
DeleGateとは • インターネット用基盤ソフトウェア • 多目的応用プロトコル中継システム ⊃ プロキシサーバ • 10年前に電総研で生まれ、持続的成長 • 世界的な老舗プロキシサーバのひとつ • 広く世界で使われている純国産プログラム • 152ヶ国、2万8千以上の利用者サイト
(1) 要求 (2) 応答 クライアント/サーバモデル • インターネット上の応用サービスの普遍的実現モデル • 応用プロトコル • 各々の応用サービスごとに規定: ウェブ(HTTP),メール(SMTP),FTP,… • サーバ/クライアント間の要求・応答の手順とデータの形式 応用サービス 利用者 提供者 クライアント サーバ 応用プロトコル
接続障害 • クライアントとサーバの間の障壁 • 直接接続が不能 • ファイアウォール • プロトコル不一致 クライアント サーバ
プロキシ (2) クライアント (1) サーバ 要求 要求 応答 応答 (4) (3) プロキシサーバによる解決 • クライアントとサーバの間の通信を中継するサーバ • 発展的利用:中継時に様々な付加価値を実現 • アクセス制御、フィルタリング(検閲)、データ変換(翻訳、圧縮、暗号化)、サービス統合、、、
プロキシサーバの発展 • 用途の多様化 • フィルタリング • 不正アクセス/有害コンテンツ/ウィルス/迷惑メール • 世界中に100を超える競合ソフト • フリーソフト/商用ソフト
DeleGateの特徴 • 多目的・多用途(プロキシサーバの応用可能性の探求) • セキュリティ保護(アクセス制御、暗号化、フィルタリング) • 高速化(圧縮、キャッシュ) • サービス統合(プロトコル変換) • 翻訳(データ変換) • 仮想ネット構成(経路制御) • マルチプロトコル • 主要な基盤的応用プロトコルを網羅 (HTTP, SMTP, POP, NNTP, FTP, Telnet, SOCKS …) • マルチプラットフォーム • ほとんどのOSの上で動作可能 (Unix*, Windows, OS/2, MacOSX) • オープンソース • 問題点:完成度は中程度、ユーザサポート弱、ドキュメント少
無償配布先サイト数(2003年12月末現在) 総数 28,300 (+3,236/年) 海外 17,508 (+2,525/年) 152ヶ国 国内 10,792 (+ 711/年) 有償提供 本年度、有償使用規定を整備 契約業務は産総研イノベーションズ担当 現在5社と契約作業進行中 参考 DeleGate利用者サイト一覧 ITバブル崩壊:ウェブサーバ総数の推移 競合するソフト DeleGateの普及状況 DeleGate配布先サイト数の推移
トップドメイン別配布先サイト数(2003年12月末現在)トップドメイン別配布先サイト数(2003年12月末現在) • 非jp 17,508 • 4553 com • 2644 net • 390 org • 369 edu • 59 mil • 37 gov • 7 biz • 5 info • 5 int • 1155 de 独 • 1141 ru 露 • 525 fr 仏 • 398 au 濠 • 382 it 伊 • 379 br 伯 • 372 uk 英 • 232 pl 波 • 223 ca 加 • 220 nl 蘭 • 206 se 瑞 • 198 cz • 181 es 西 • 180 ua • 179 tw 台湾 • 179 ch 瑞 • 163 hu 洪 • 143 at 墺 • 145 cn 中国 • 149 ro • 119 fi 芬 • 100 kr 韓国 • 101 be 白 • 100 us 米 • 101 ar 亜 • 96 no • 90 dk • 84 za • 77 nz • 73 mx 墨 • Jp 10,792 • 6685 co • 2046 or,ne • 740 ac • 259 gr • 172 go • 139 ad • 744 *
国内への普及状況(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 97年1月 Windows 対応 10年間に550回の改訂版リリース 94年6月 配布開始 94年3月 開発開始 開発状況:プログラム規模の推移
プロキシ (2) クライアント (1) サーバ 要求 要求 English 応答 応答 (4) (3) 日本語 コンテンツ変換プロキシ • プロキシが中継するコンテンツの変換 • 翻訳、通訳、圧縮、等、様々な応用 • 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/… • ユニットごとに自由なサーバ運用 • 更新・維持・運用が容易 • 内部サーバを統合して外部へ公開 • 一元的なアクセス制御・ログ監視 公開 監視 DeleGate 組織 所内ウェブサーバ
現状と今後 • 実用ソフトとして要求される拡張/改良/修整の継続 • 従来の実装ベースの継続的拡張 • 商用利用へのライセンス供与の開始 • 平成15年度より • 今後の持続的成長のための新機軸 • 根本的な作り直し?(実験ソフトから実用ソフトへ) • 今後のセキュリティモデルを想定した基盤通信機能の検討
背景・動機・目標 • 基盤的ソフトウェアの輸入超過(OS、通信ソフト、言語、…) • ソフトウェア防衛(国産ソフトウェア技術の維持) • 世界的に一線級の基盤ソフトの開発・輸出 • インターネットから受けた恩恵(フリーソフト)へのお返し • 必要に迫られて作り始めたソフトが他者にも有用
DeleGateの用途 • インターネットの運用・サーバ構築・利用の支援 • セキュリティ保護 ファイアウォール・アクセス制御 • 性能向上・資源節約 キャッシング • 安定性の向上 動的経路制御・負荷分散 • 運用・管理の支援 プロトコル変換・サーバ統合 • 付加価値実現の支援 翻訳、暗号化、圧縮
セキュリティのためのDeleGateの利用例 攻撃者 サービス提供者 利用者 通信プロバイダ
SockMuxプロトコル • 目的:応用プログラムによる柔軟な仮想ネットワークの実現 • 物理的単位(ホスト・ネット)から独立した応用プログラムのネットワーク • 役割:応用プログラム間の通信の多重化・暗号化 • 特徴:簡便・軽量・柔軟 • PPPプロトコルよりも簡素 (ソケットAPIに直結) • Socksプロトコルには無い多重化機能を内包 • SSLプロトコル等を必要としない簡便な暗号化機能を内包 • IPアドレスに限らない可視性制御 (Unixドメインのソケット等) クライアント 多重化 暗号化 サーバ A DeleGate a DeleGate SockMux DeleGate クライアント クライアント サーバ B b クライアント DeleGate 利用例: 隔絶した or 隔離された空間の間での、クライアント・サーバ間の中継 ポートaの可視範囲 ポートbの可視範囲
DeleGateの概要 • 1994年生まれ・現在も成長中 • 小規模Gopher専用プロキシ(SunOS版)からの持続的な成長 • 多用途プロキシサーバ • アクセス制御、キャッシュ、経路制御、トンネリング、プロトコル変換、サーバ統合、コンテンツフィルタ、コンテンツ変換、… • マルチプロトコル対応 • HTTP,FTP,SMTP,POP,NNTP,Telnet,DNS,SOCKS,SSL,… • マルチプラットフォーム対応 • Unix,Windows,OS/2,MacOS-X • 配布形態・配布状況 • オープンソース・フリーソフト、149カ国・26,000サイト
総配布数: 26,270 ソース配布: 20,555 Windows版: 14,285 配布状況(2003年4月) 01年9月 産総研Firewall PASV不可に 自宅サーバに切り替え PASV可・匿名可に 新規サイト 15サイト/日 FreshMeat登録 (主にLinux向け) Windows版 99年11月BugTraq LinuxGazzete
信条 • 役に立たない論文・特許より役に立つソフト • 二流の研究より一流のモノ作り • 小さく産んで大きく育てる • 持続的に成長可能なソフトウェア • 産地直送ソフトウェア/顔の見えるモノ作り • 桃李もの言わざれども下おのずから蹊をなす
DeleGateとは • 一般的分類:多機能プロキシサーバ • 「多目的アプリケーションプロトコル中継システム」 • 単純な原理:アプリケーションプロトコルを中継 • アプリケーション層のプログラム • 中継する内容(プロトコル)を解釈しながら中継 • 多様な用途:中継時に様々な付加価値を実現 • ファイアウォール(アクセス制御、フィルタリング) • 高速化(キャッシュ) • プロトコル変換(暗号化、圧縮、…) • コンテンツ変換(翻訳、…) • 仕様・実装の変化・不備の緩衝材・パディング
現状と今後 • 安定期 • ゆるやかな持続的成長 • 既存の実装ベースに果てしなく続く改良・修整 • ゆるやかな継続的普及 • 区切りの時期? • 実用ソフト化して保守的に、機能的発展の減速 • 商用化への対処 (技術面、ライセンス面) • 実験ソフトから実用ソフトへ、根本的な作り直し? • 次の10年に向けて • 新たな発展を求めて新機軸の模索 • 10年後以降のセキュリティモデルを考えて先行投資
開発開始時の大目標 (未達成) • マルチプロトコルプロキシを題材にした研究 • 複数の応用プロトコルを統合サポート • 共通要素の抽出、実装上の統合化・ライブラリ化 • プロトコル仕様の重複の整理 • 共通部分のサブプロトコル化提案 • 大統一プロトコルの設計 • 汎用プロトコルインタプリタ・生成系 • 文字列処理エンジン(分解・合成・適合)の実現 • 応用層上の多重化通信プロトコルの提案 • …
各版での主な新規課題 • 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
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関数
インターネット上の応用サービスの中継・変換・統合技術インターネット上の応用サービスの中継・変換・統合技術 プロキシサーバ「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的に不連続なネットワーク ⇒ トンネリング中継 • 内部サーバ群を外部へ提供 ⇒ サーバ統合 • 翻訳中継・画像圧縮中継 ⇒ 外部フィルタ呼び出し • プライバシー保護 ⇒ 暗号化通信