インターネットにおける パーソナルネットワークの構築 光来健一* 千葉滋**,*** *東京大学 **東京工業大学 ***さきがけ21 ネットワーク利用形態の変化 複数のネットワークを利用 大学、自宅、出張先… それぞれのネットワークは閉鎖的 P2P(peer-to-peer)通信を利用 Gnutellaなど 公開サーバとの通信だけではない インター ネット ネットワークA PC ネットワークB 位置情報に基づくアクセス制御 従来は位置情報(IPアドレス)に基づいてア クセス制御を行っていた IPの割り当ては組織の構造を反映する • 組織毎のアクセス制御に適する ユーザが複数のネットワークを利用する場合 に問題が生じる リモートログインして利用するのは不便 アクセス制御には固定のグローバルIPが必要 • DHCPによる動的割り当てやプライベートアドレス ユーザ中心のネットワークの必要性 ユーザ情報に基づいてネットワークの利用を 制御すべき ユーザの概念はOSの他の部分では使われてい る ネットワークトポロジに縛られず、利用できるネッ トワークの全ての能力を使える • あたかもそのネットワーク内にいるかのように IPよりきめ細かなアクセス制御ができる • 一台のホストを複数ユーザで使う場合など ユーザ中心のネットワークで 実現できる世界 リモートネットワーク リモートネットワークのサー ビスを使える ローカル・ウェブページの参照 高速ネットワークの利用 ユーザに基づく新たなネット ワークを構築できる 別々のファイアウォール内の ホスト同士の通信 複数ユーザで仮想サブネット を構築 ウェブサーバ 低速ネットワーク ネットワークA 仮想サブネット PC ユーザA ユーザB PC ネットワークB パーソナルネットワークの提案 仮想プライベートネットワーク(VPN)にユー ザの概念を取り入れたもの ユーザ専用の仮想ネットワークを構築 • ユーザ毎にネットワーク資源を割り当てる • ユーザ毎にネットワークの設定を行える • 経路上のホストはユーザ毎に異なる中継をする ゲートウェイ ユーザA サーバ1 B C クライアント 拒否 サーバ2 リモートネットワーク ネットワーク資源のパーソナライズ 特定のユーザにしか使えない仮想ネットワー クを張ることができる ユーザID、ユーザの証明書で利用を制限 ユーザ毎に通信路を暗号化 • 組織内の通信路も暗号化する 通信相手ごとにネットワークポートに割り当 てるサービスを変更できる 同一のポート80番で別々のウェブサーバ ネットワーク設定のパーソナライズ ユーザ毎(プロセス毎)に異なるネットワーク 設定ができる ルーティングテーブル • ユーザが最適な経路を選択できる IPアドレス、ホスト名、ドメイン名 • 構成する仮想ネットワークに合わせて変更できる サーバ設定、ドメイン名の検索順序 • ユーザレベルでのネットワーク関連処理も変更できる ゲートウェイのパーソナライズ ユーザ認証に基づいてパケットを中継する 通信相手によってパケットの中継先を変える • 同一ポートであっても別々のサービスに中継可能 • 許可されたユーザからのパケットはファイアウォール を超えられる 仮想的にリモートユーザの役割を演じる • パケットの送信元アドレスを変換する • ゲートウェイのアドレスまたはユーザ専用の内部アドレス • 従来のIPによるアクセス制御が使える 信頼できないユーザとの通信 通信相手ごとに異なるパーソナルネットワー クを使うことができる 安全性への配慮 • 通信相手ごとに異なる仮想ネットワークを使う • 通信に関与しているプロセスを他のプロセスやネット ワークから分離する ホストA 盗聴できる ホストB 信頼できないユーザとの通信 通信相手ごとに異なるパーソナルネットワー クを使うことができる 安全性への配慮 • 通信相手ごとに異なる仮想ネットワークを使う • 通信に関与しているプロセスを他のプロセスやネット ワークから分離する 盗聴できない ホストA 干渉できない ホストB 実装 パーソナルネットワークを使って直接通信で きないホスト間のプライベート通信を実現 双方共にファイアウォール内にある、または、プ ライベートアドレスしか持たない場合 実装した機能 SSLのカーネルサポート ゲートウェイでのユーザ認証に基づく中継 SSLのカーネルサポート 機能 証明書を用いたユーザ認証 通信路の暗号化 API setsockopt(SO_USE_SSL) ...SSL利用宣言 certctl …証明書登録 connect/accept ...SSLネゴシエーション write/read, send/recv ...暗号化・復号化 カーネルサポートの利点 アプリケーション透過にできる ユーザ単位でSSLセッションを再利用できる 証明書を用いた完全なSSLネゴシエーションをし なくてよい • セッション確立の性能改善 fork/execしてもSSLセッションを継続できる forkしてもセッション管理の整合性がとれる ライブラリレベルでの対応ではexecによってセッ ション情報が失われる acceptの実装 サーバ側はカーネルスレッ ドを使ってSSLネゴシエー ションを行う acceptは確立したコネクショ ンをキューから取り出す コネクション確立と同時に別 の通信を行う場合に対応 カーネル スレッド ユーザ スレッド connect(s) (SSLconnect) SSLaccept write(s0) read(s0) • UNIXではacceptを発行しなく てもコネクションが確立する accept(s) クライアント サーバ ゲートウェイのSSLルーティング ユーザ認証に基づいてSSLセッションを中継 する 内部ユーザが中継ルールを登録できる • ユーザ証明書による制限つき ゲートウェイ kourai 10080 セッション1 80 復号化 暗号化 セッション2 host B host A 登録 port 10080 hostB:80 user kourai 2つのSSLセッションの結合 クライアント-ゲートウェイ間、ゲートウェイサーバ間のセッションを1つに結合 復号化・暗号化のオーバヘッドを減らす ゲートウェイで通信内容の解析を行える ①セッション1の情報を送る セッション1 クライアント ゲートウェイ セッション2 サーバ セッションID 暗号方式 マスター鍵 : セッション1 復号も可能 ②仮想セッションを作る 実験 パーソナルネットワークを通してSSLを使った場合 の性能を測定した SSLセッションの再利用による性能改善 SSLセッションの結合による性能改善 実験環境 OpenSSL 0.9.6 • SSLv3, RSA 1024bit, 3DES, SHA1 PentiumIII 733MHz 3台 100Mbpsイーサネット Linux 2.4.2上のユーザプログラム 実験結果 SSLセッションの再利 用による性能改善 大幅な改善 コネクションが頻繁に張 られる場合に有効 表1:セッションを確立するまでに かかる時間 SSLセッションの結合 による性能改善 1.7倍の性能向上 復号化・暗号化が大き なボトルネック 表2:セッション結合の有無による スループットの差 msec Mbps 再利用しない 60 結合しない 3.9 再利用する 1 結合する 6.5 関連研究(1/2) IPsec [RFC 2401] PPTP [RFC 2637] ホスト全体がリモートネットワークに参加し、ユー ザ単位での制限はできない PPP接続時にはユーザ認証を行うが、その後は 誰でも使えるネットワークになる SSLプロキシ/sshポート・フォワーディング 暗号化通信路の確立時にはユーザ認証を行う が、その後は誰でも使えるポートになる 関連研究(2/2) 多重通信クラス [廣津ら’00] Active Network [Tennenhouse et al.97] VLANを使ってトポロジの観点からネットワーク を分割し、複数の仮想ネットワークを構築できる 経路上の各ノードにプログラムを送り込むことで、 パケット毎に中継の仕方を変えられる FreeBSD jail 各サービスを一種のVMで動かせる まとめ パーソナルネットワークを提案した 直接通信できないホスト同士のプライベート通信を 可能にした 仮想プライベートネットワークにユーザの概念を追加 SSLのカーネルサポート ゲートウェイでのユーザ認証に基づく中継 パーソナルネットワークを通してSSLを使うことによ り、性能が改善することを確かめた 今後の課題 実現できていない機能を実装する ユーザ毎のネットワークポート空間の分離 ネットワーク設定のパーソナライズ • いかに安全に整合性のとれる形でユーザにネット ワークの設定を許すか • ユーザレベルのネットワーク設定をどのように変更さ せるか 通信しているプロセスの隔離
© Copyright 2024 ExpyDoc