特定ユーザー のみが利用可能な仮想プライベート・ネ

特定ユーザーのみが利用可能な
仮想プライベート・ネットワーク
学籍番号:9804020
宇崎 央泰
1
仮想プライベートネットワーク
(VPN)とは
 オープンネットワーク上に、仮想的にプライ
ベートネットワークを構築する技術

暗号化、ハッシュ関数、認証などの技術を使い、
盗聴、改竄、なりすましなどの危険を防ぐ
 代表的なVPNプロトコル:IPsec、PPTP、
L2TP、SSH
2
VPN の認証
 IPsec


VPN確立のときに
送信元と受信先のホストを認証
IPパケット単位で暗号化
 SSHのポートフォワーディング


VPN確立のときにユーザーのRSA認証を行う
TCPストリームを暗号化
3
VPNの問題点
 他のユーザーにVPNを利用されてしまう

ユーザーの概念が取り入れられていない
VPNの入り口でユーザー認証が行われない
 Grandma のような共有計算機では問題

このプロセスのユーザーが
VPNを作成
他のユーザーのプロセスまで
VPNを使えてしまう
VPNの入り口
VPN
サー
バー
4
パーソナルVPN(PVPN)
の提案
 パケットごとにユーザー認証を行うVPN

PVPNを作成したユーザーしか使えない
PVPNの入り口でPVPNフォワーダ(PVPNF)がパケッ
トの認証をし、PVPNにフォワーディングか遮断する
 PVPNフォワーダは信頼する

このプロセスのユーザーが
PVPNを作成
他のユーザーのプ
ロセスはPVPNを利
用できない
PVPN
PVPNフォワーダ
5
パーソナルVPNの
認証と暗号化
 SSL (Secure Socket Layer) で実現


PVPN作成時に
クライアントがサーバ・ホストを認証
認証後の通信の暗号化
 ユーザの認証

PVPN作成時に、SSL上で、
RSAでPVPNを作成するユーザーを認証
6
PVPN入り口のユーザー認証
 Divertソケットで横取り
 IPパケットの送信ユーザーを調べる

procファイルシステムを利用

tcp通信の場合、送信元ポートと/proc/net/tcpの
local_addressのポート番号が一致するエントリのユー
ザーIDからわかる
PVPNF
App
PVPNF
Divert ソケット
PVPNフォワーダ
パケットのユーザー認証
とフォワーディング
PVPN
PVPNF
App
Rawソケット
7
PVPNの連結
 2つのPVPN間でルーティング可能

サーバとクライアントが直接通信できない場合
(例: private IP)に利用
 RSA認証によるユーザー認証

途中のゲートウェイが中継
クライアント
ゲートウェイ
②
サーバー
①
①サーバーがゲートウェイに
対しRSAユーザー認証を行う
②ゲートウェイはRSAユー
ザー認証をクライアントに中継
8
PVPNのオーバーヘッド
 実験


WebStoneベンチマークを利用
計測


Web server のスループットと平均レスポンスタイム
以下の3つについて計測
サーバーとクライアントが直接通信
 パーソナルVPNを通して通信(暗号化無し)
 パーソナルVPNを通して通信(暗号化有り)

9
実験結果
 PVPNを使うと10倍から数百倍遅くなる

100倍以上遅くなるときは、パケットの再送が
頻繁に起きていた
表:Throughput(Kbyte/sec)
File
size(byte)
1k
10k
1000k
711.3
3168.8
8497.3
Noencrypt
6.1
262.6
821.6
Encrypt
2.2
30.8
629.1
Normal
10
まとめ
 パーソナルVPNを提案・実装した

パケットごとにユーザー認証を行うVPN
 今後の課題



再送が頻発する原因を調査、修正
PVPNの連結は設計はできているが、まだ未完成なの
で、実装を完成させる
カーネル内部に実装を行う
11