オンデマンド VPNにおけるポリシー制御機能に関する一検討 
 竹内 陽一 早川 晃弘 高橋 成文
株式会社 NTT データ  
１. はじめに 
インターネットでは，データの暗号化と相互認証を行うプロトコルとして I Psec[ 1] による VPN が利用されている．しかし，I Psec による従来のインターネット VPN では，管理者が事前にマニュアルでパラメータを設定する必要があった．また，設定誤りにより正しく動作しない等 の 問 題 が 指 摘 さ れ て い た ． 更 に ， I nt ernet  Key Exchange ( I KE) を行うための事前情報が漏洩すると，VPNそのものの安全性に問題が生じる． そこで，我々は，利用者の要求に合わせて I Psec による VPN を自動的に構築するオンデマンド VPN の開発を進めている[ 2] ．具体的には，オンデマンド VPNは，利用者の接続要求を基に，センタで接続の可否を判断し，I Psecによる VPN接続に必要な設定情報を各機器に配信する．  本稿では，オンデマンド VPN において，接続の可否を判断する接続制御機能について述べる．以下，接続制御に用いる接続ポリシーと要求コンテキスト，更に，接続制御の処理方式について説明し，XACML による実装方式を示す．  ２. I Psec の接続制御における問題点 
I Psec では，通常，パケットの振る舞いを決定するSPD( Securi t y Pol i cy Dat abase) を接続元と接続先にあらかじめ設定しておく．SPD には，利用するセキュリティプロトコルや，暗号アルゴリズム等が記述されている．しかし，SPD の条件部には，パケットの接続元アドレスや接続先アドレス，ポート番号，上位レイヤプロトコル等が記述できるが，例えば，端末のセキュリティレベル等を記述することはできない． 宛先端末のセキュリティレベルに応じて I Psec による接続の可否を決定する様なオンデマンド VPN では，SPDとは別に接続ポリシーを導入し，接続制御機能で接続ポリシーに基づいた接続可否判断を行っている．  ３. オンデマンド VPNにおける接続制御 3.1 接続ポリシーと要求コンテキスト オンデマンド VPN では，各機器の管理者は，システム・セキュリティポリシーを基に接続ポリシーを作成しあらかじめ端末毎に設定しておく． 利用者から接続要求を受け付けると，要求コンテキストが生成され，接続ポリシーと要求コンテキストを比較し，VPNの接続制御を行う． 接続ポリシーは，「i f  <Condi t i on> t hen <Act i on>」形式で記述されたルールの集合で定義される．接続ポリシーの<Condi t i on>部には，VPN 接続を行う時間帯や接続先 の 組 織 名 等 に 関 す る 条 件 が 記 述 さ れ る ． ま た ，<Act i on>部には接続要求が<Condi t i on>部を満たした時，
その接続を許可とするか不許可とするかを記述する．接続ポリシーの主な記述内容を図 1に示す． 
条件部(Condition)[相手先端末]・機器ID＋端末ID・端末のIPアドレス・端末の種別・端末の役割・機器が所属する組織名[VPNで利用するAPの種類]・サービス名[相手先利用者の条件]・利用者の役割[時間]・接続する時間帯実行部(Action)[接続判断]・許可または不許可 
図 1 接続ポリシーの主な記述内容 
3.2 VPN 接続制御 3.2.1. 接続の可否判断 ユーザの役割を用いて接続制御を行う Rol e Base Access Cont rol  ( RBAC[ 3] ) 等，従来の接続制御は，接続対象( 接続先であり，RBAC では obj ect に相当する) が持つ接続ポリシーに基づき，接続の可否を判断する．一方，VPN の接続は，相互に通信可能となる特性を持つため，接続元も接続対象に対して接続ポリシーを設け，接続の可否を判断する．つまり，オンデマンド VPN は，ポリシー制御機能として，接続対象( 接続先) が持つ接続ポリシーだけでなく，接続元が持つ接続ポリシーも用いて接続可否を判断する．  3.2.2. 接続制御の処理方式 オンデマンド VPN における接続制御の処理方式について以下に述べる．図 2に示すように，端末 A を操作している利用者から端末 B に対して，VPN 接続要求が発せられた場合を想定して，接続制御の流れを説明する．  ① 各機器の管理者は，あらかじめ，ポリシーリポジトリに接続ポリシーを登録する．接続ポリシーには，3. 1 で説明した記述内容が含まれている． ② 端末 A を操作している利用者が，端末 B への VPN接続要求を，VPN管理サーバに出す． ③ VPN管理サーバは，VPN接続要求を受信すると接続要求のパラメータから要求コンテキストを生成する． ④ VPN管理サーバは，ポリシーリポジトリから，A の接続ポリシーと Bの接続ポリシーを抽出する． ⑤ VPN 管理サーバは，抽出した A の接続ポリシーのうち，要求コンテキストと比較して条件部を全て満たす接続ポリシーに対して，実行部をチェックし，許可/不許可を判定する． ⑥ B の接続ポリシーに対して，⑤と同様のマッチング処理を行い，許可/不許可の判定を行う． ⑦ VPN管理サーバは，VPN接続判定を行う．A と B 共に，
A study of Policy control on On-demand VPN † Yoichi TAKEUCHI(takeuchiyui@nttdata.co.jp)   Akihiro HAYAKAWA (hayakawaak@nttdata.co.jp)   Shigefumi TAKAHASHI (takahashisg@nttdata.co.jp) NTT DATA CORPORATION 
情報処理学会第67回全国大会
許可となった場合， VPN接続を許可する． ⑧ VPN管理サーバは，VPN接続が許可の場合は，接続ポリシーの実行部に従い，I Psec を設定するという SPDを生成し，OD- VPN機器に設定する． 
ポリシーリポジトリ
接続ポリシー
②接続要求②接続要求事前共有鍵構成情報
事前共有鍵構成情報
ＶＰＮ管理サーバ
ＶＰＮ管理サーバ
VPN接続の可否判定機能
・ＩＰアドレス・接続可能な端末情報
・ＩＰアドレス・接続可能な端末情報
構成情報生成機能
ルータの動作状態ルータ配下の端末
システムセキュリティポリシー
情報システム管理者
OD-VPN利用者
OD- VPN機器OD- VPN機器OD- VPN機器OD- VPN機器
⑧SPD生成⑧SPD生成
①接続ポリシーの登録①接続ポリシーの登録
②ポリシーの抽出
②ポリシーの抽出
③リクエストコンテキストの生成
⑤，⑥ポリシマッチング処理
⑦VP接続判定
端末A端末B
OD-VPN利用者
ポリシーリポジトリ
接続ポリシー
②接続要求②接続要求事前共有鍵構成情報
事前共有鍵構成情報
ＶＰＮ管理サーバ
ＶＰＮ管理サーバ
VPN接続の可否判定機能
・ＩＰアドレス・接続可能な端末情報
・ＩＰアドレス・接続可能な端末情報
構成情報生成機能
ルータの動作状態ルータ配下の端末
システムセキュリティポリシー
システムセキュリティポリシー
情報システム管理者
情報システム管理者
OD-VPN利用者OD-VPN利用者
OD- VPN機器OD- VPN機器OD- VPN機器OD- VPN機器
⑧SPD生成⑧SPD生成
①接続ポリシーの登録①接続ポリシーの登録
②ポリシーの抽出
②ポリシーの抽出
③リクエストコンテキストの生成
⑤，⑥ポリシマッチング処理
⑦VP接続判定
端末A端末B
OD-VPN利用者OD-VPN利用者 
図 2 接続制御の流れ 
４. 実装 4.1 VPN 管理サーバの実装方式 本提案手法に，柔軟で拡張性のあるアクセス制御を実現するため，接続ポリシーの記述方法として，XACML（eXt ensi bl e Access Cont rol  Markup Language[ 4] ）を用いた．また，接続ポリシーを用いてマッチング処理を行うエンジンには，Sun Mi crosyst ems が公開しているXACML i mpl ement at i on[ 5] を用いた．VPN 管理サーバの処理フローを図 3に示す．  4.2 要求コンテキストの生成処理の実装方式 XACML では，要求コンテキストを XML 文書の形式で表す．XACML における要求コンテキストは，接続元<Subj ect >，接続先<Resource>，動作<Act i on>の 3 つのタグを含んでいる．オンデマンド VPNでは， VPN要求を行う接続元を<Subj ect >に，接続先を<Resource>に， VPN 接続という動作を<Act i on>に，それぞれ割り当てる．また，<Subj ect >や<Resource>の中には，端末の I P アドレスや端末の役割等の属性を<At t ri but e>タグを用いて記述する． このように，オンデマンド VPN での要求コンテキストはシンプルな構造をしている．この点に着目し，要求コンテキストをテンプレートを用いて動的に生成することとした． 具体的には，テンプレートエンジン Vel oci t y[ 6] を用いて実装した．属性値を抽出する J ava のコードが埋め込まれたテンプレートをあらかじめ作成しておき，利用者からの接続要求に応じて動的に要求コンテキストを生成する． また，要求コンテキストは，<Subj ect >や<Resource>の中に<At t ri but e>タグの繰り返しを含んでいる．そこで，属性値を抽出する J ava のコードをタグの繰り返し分だけ呼び出す．このようにして，<At t ri but e>タグの数に関わらず１つのテンプレートで要求コンテキストを生成する事が可能となる． 
アクセスリクエスタポリシー実行点
ポリシー決定点Contexthandler
VelocityWrapper
1. VPN接続要求
7. 要求コンテキスト
2. VPN接続要求
3. 属性値
4. Velocity Template
10. 応答コンテキスト
14. 許可/不許可
8. 接続元
接続ポリシー
接続ポリシー
接続ポリシー
接続ポリシー
接続ポリシー
接続元制御ポリシー
15. 許可/不許可
6. 要求コンテキスト
VelocityTemplate
VelocityTemplate
5.接続条件とVelocity Templateのマージ処理/要求Context変換処理
接続先制御ポリシー
11. 要求コンテキスト
12. 応答コンテキスト
12. 接続先
接続ポリシー
9,13. 
マッチング処理
アクセスリクエスタポリシー実行点
ポリシー決定点Contexthandler
VelocityWrapper
1. VPN接続要求
7. 要求コンテキスト
2. VPN接続要求
3. 属性値
4. Velocity Template
10. 応答コンテキスト
14. 許可/不許可
8. 接続元
接続ポリシー
接続ポリシー
接続ポリシー
接続ポリシー
接続ポリシー
接続ポリシー
接続ポリシー
接続元制御ポリシー
15. 許可/不許可
6. 要求コンテキスト
VelocityTemplate
VelocityTemplate
5.接続条件とVelocity Templateのマージ処理/要求Context変換処理
接続先制御ポリシー
11. 要求コンテキスト
12. 応答コンテキスト
12. 接続先
接続ポリシー
9,13. 
マッチング処理
図 3 VPN 管理サーバの処理フロー 
５. まとめ 
本稿では，オンデマンド VPN において，接続の可否を判断する接続制御機能について述べた．接続制御に用いる接続ポリシーの記述内容を明らかにし，接続制御の処理方式についても説明した．また，XACML による実装方式を示した．今後は，VPN 管理サーバの接続制御に関して，速度やスループット等の性能の評価を行う予定である．  謝辞 本研究は，総務省からの平成 16 年度「高度ネットワーク認証基盤技術の研究開発」の委託に基づき実施している「オンデマンド VPN 技術についての研究開発」に関するものである．関係者各位に感謝する．  参考文献 [ 1]  S.  Kent ,  R.  At ki nson,  “Securi t y Archi t ect ure f or t he I nt ernet  Prot ocol ”,  RFC 2401,  I nt ernet  Soci et y,  Net work Worki ng Group,  Nov.  1998 [ 2]  早川晃弘，星川 知之，高橋 成文，鎌仲 裕久：”オンデマンドアーキテクチャの提案”，情報処理学会第 67回全国大会，2005 [ 3]  R. Sandj u,  E. Coyne,  H. Fei nst ei n and C. Youman,  “Rol e Based Access Cont rol  Model ”,  I EEE Comput er,  29( 2) ,  Feb. 1996 [ 4]  OASI S,  “ext ensi bl e Access Cont rol  Markup Language( XACML)  Versi on 1. 0” ht t p: //www-
oasi sopen. org/commi t ees/downl oad. php/2406/oasi s-xacml - 1. pdf ,  2003 [ 5]  Sun’s XACML I mpl ement at i on,  ht t p: //sunxacml . sourcef orge. net / [ 6]  Vel oci t y,  ht t p: //j akart a. apache. org/vel oci t y/ 