[[ネットワーク講座]] > VPN

| 暗号通信のポイント | 例 |h
| 最初は、[[公開鍵暗号]]を使う | → IPsecの[[IKEフェーズ>#d5e43db8]] |
| 次に、[[共通鍵暗号]]を使う | → IPsecの[[IPsecフェーズ>#c9dbf43a]] |
|>| という2段階の手順で構成されている |

(参考)[[公開鍵暗号 - プログラミング探して!>http://program.sagasite.info/wiki/index.php?%E5%85%AC%E9%96%8B%E9%8D%B5%E6%9A%97%E5%8F%B7]]
>公開鍵暗号は秘密鍵暗号よりも処理が複雑になりがちであり、より多くの計算資源や時間を必要とする。
&color(red){このため、暗号通信に利用する場合は、実際の通信内容の暗号化には即興で鍵を生成した秘密鍵暗号を使い、その鍵を送信者と受信者の間で安全に交換するために公開鍵暗号を使うといった使い方をすることが多い。};

* 目次 [#i84f6110]

#contents

* 参考書 [#oc942bd0]

#html{{
<table><tr>
<td width="33%">

<table border="0" cellpadding="5"><tr><td valign="top">
<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4048676059/sagasite-22/"><img src="http://ecx.images-amazon.com/images/I/51i-Wq5e2GL._SL160_.jpg" border="0"></a>
</td>
<td valign="top">
<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4048676059/sagasite-22/">すっきりわかった!VPN 改訂版 (すっきりわかったBOOKS)</a>
<br>
ネットワークマガジン編集部<br>
アスキー・メディアワークス<br>
2009-03-02<br>
<font color="orange">★★☆☆☆</font>
</td></tr></table>

</td>
<td width="33%">

<table border="0" cellpadding="5"><tr><td valign="top">
<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4822267687/sagasite-22/"><img src="http://ecx.images-amazon.com/images/I/51c1p3-Q21L._SL160_.jpg" border="0"></a>
</td>
<td valign="top">
<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4822267687/sagasite-22/">ヤマハルーターで挑戦 企業ネットをじぶんで作ろう</a>
<br>
谷山 亮治<br>
日経BP社<br>
2011-06-21<br>
</td></tr></table>

</td>
<td width="33%">

<table border="0" cellpadding="5"><tr><td valign="top">
<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4899771673/sagasite-22/"><img src="http://ecx.images-amazon.com/images/I/4173RWCS8PL._SL160_.jpg" border="0"></a>
</td>
<td valign="top">
<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4899771673/sagasite-22/">OpenVPNで構築する超簡単VPN入門―Windows/Mac OS X/Linux対応</a>
<br>
ケイズプロダクション<br>
ラトルズ<br>
2006-09<br>
<font color="orange">★★★★☆</font>
</td></tr></table>

</td>
</tr></table>
}}

* VPN [#nc09b677]
[[VPN]](Virtual Private Network)は、公共ネットワークの中で、仮想的な専用線を作る技術。

- 専用線は、セキュリティと通信速度の点で、公共ネットワーク(インターネット)よりも優れているが、通信コストが高い。
- VPNは、専用線の代替として、公共ネットワークを仮想的に専用化し、通信コストを安くする用途で使われる。

** VPNの種類 [#u20f025f]
http://itpro.nikkeibp.co.jp/article/COLUMN/20060922/248777/
「どこにVPNを通すか」「どんな技術を使って構築するか」によって分けられる。

CENTER:''VPNの種類''
| 伝送路 | 名称 | 使う技術 | 名称 |h
| インターネット | [[インターネットVPN]] | [[SSL]] | [[SSL-VPN]]|
|~|~| [[IPsec]] | [[IPsec-VPN]] |
| 通信業者の広域IP網 | [[IP-VPN]] | [[MPLS]] | [[MPLS-VPN]] |

** インターネットVPN [#z57997ab]
- 伝送路 = インターネット

|メリット|デメリット|h
| 通信費が安い | 通信帯域は保証されない |
| 手軽=インターネットにアクセスできる環境なら、どの[[ノード]]からもVPNが使える | 面倒=基本的に、設定はユーザー自身が行う |

*** IPsec-VPN [#tba136aa]
- 認証と暗号化に[[IPsec]]を使うインターネットVPN。
- 固定的な拠点間を結ぶのに最適。(東京支店と大阪支店を結ぶ、など)

*** SSL-VPN [#nff2c005]
- 認証と暗号化に[[SSL]]を使うインターネットVPN。
- リモートアクセスで使うのに最適。(社外のノートPCと東京本社を結ぶ、など)

** IP-VPN [#dfd8c67e]
- 伝送路 = 通信業者の広域IP網

|メリット|デメリット|h
| 帯域が保証されている、保守サービスがある | 通信費が高い |

*** MPLS-VPN [#hcda7848]
- [[MPLS]]を使うIP-VPN。
- 固定的な拠点間を結ぶのに最適。(東京支店と大阪支店を結ぶ、など)

* VPNの基本構成 [#la8963fd]
VPNの基本は、[[トンネリング]]+暗号化+[[認証]]の機能を提供すること。
http://fenics.fujitsu.com/products/ipcom/catalog/data/2/1.html

- [[トンネリング]] … VPNソフトやVPNゲートウェイの間で、データのカプセル化を行い、仮想的な経路を作る。
- 暗号化 … 伝送路の途中で、通信内容を盗聴されないようにする。
- [[認証]] … 成りすましによる不正アクセスを防ぎ、データ改ざんの有無を検出する。

* VPNを実現するプロトコル [#dc1693af]
[[VPN]]で利用される[[プロトコル]]には、
- [[SSH]]
- [[TLS]]
- [[SSL]]
- SoftEther
- [[IPsec]]
- [[PPTP]]
- [[L2TP]]
- L2F
- [[MPLS]]
などがある。

現在、多く使われているのは、[[IPsec]]と[[PPTP]]である。
- [[IPsec]]は、[[ネットワーク層]](L3)のプロトコル
- [[PPTP]]は、[[データリンク層]](L2)のプロトコル

* IPsec [#q28297bc]
- [[IPsec]]は、[[IP]]レベル(L3)で[[トンネリング]](暗号化、[[認証]]、改ざんの検知)を行うプロトコル。
- IPv4ではオプション仕様だが、IPv6では標準仕様として採用されている。
- IPsecを採用するメリットは、従来IPを利用してきた機器を、大きく変更することなく、透過的に利用できること。

IPsecの各機能は、複数のプロトコルによって実現されている。
IPsecで使われるプロトコルには、
- [[IKE]] (Internet Key Exchange) インターネット鍵交換プロトコル
- [[XAUTH]] (eXtended AUTHentication) IKEの拡張プロトコル
- [[ESP]] (Encapsulated Security Payload) カプセル化セキュリティペイロードプロトコル
- [[AH]] (Authentication Header) 認証ヘッダプロトコル
などがある。

** IPsec-VPNの2つのモード [#a28d2f67]
[[IPsec-VPN]]は、接続形態の違いによって、[[トランスポートモード]]と[[トンネルモード]]という、2つのモードを使い分ける。

- 2つのモードは、[[IPパケット]]をカプセル化する方式が違う。
- [[ルータ]]を超える、ネットワーク間のVPNは、[[トンネルモード]]を選ぶ。
- 社内LANなど、ホスト間のVPNで暗号化の必要がない場合は、[[トランスポートモード]]も選べる。

| 通信モード | ネットワークへの適用例 |h
| [[トランスポートモード]] | [[IPsec]]が実装された&color(red){ホスト間};での[[IPsec-VPN]] |
| [[トンネルモード]] | [[IPsec]]が実装された&color(red){ルータ間};での[[IPsec-VPN]] |
CENTER:[[IPsec - トランスポートモード・トンネルモード ->http://www.infraexpert.com/study/ipsec6.html]]

*** トランスポートモード [#vff33701]
[[IPsec]]の[[トランスポートモード]]では、通信を行う端末([[ノード]])が、直接データの暗号化を行う。

- トランスポートモードでは、すべての端末に、&color(red){VPNソフトをインストール};する必要がある。
- データ([[ペイロード]])は暗号化される。
- [[IPヘッダ]]は暗号化されず、そのまま。 → 不正アクセスの可能性あり。

*** トンネルモード [#ef5c915f]
[[IPsec]]の[[トンネルモード]]では、VPN[[ゲートウェイ]]を設置して、暗号化を行う。

- トンネルモードでは、端末にVPNソフトのインストールは不要。&color(red){VPNゲートウェイ};によって、透過的な通信が可能。
- [[IPヘッダ]]もデータ([[ペイロード]])も暗号化される。
- VPNゲートウェイが、新たなIPヘッダを追加する。
(=逆に言えば、VPNゲートウェイを通過しないLAN内部分の通信は暗号化されていない、という欠点もある。)

** IPsecの通信手順 [#je4ce9de]
[[IPsec]]の通信には、[[IKE]]フェーズと[[IPsec]]フェーズという2段階がある。
+ [[IKE]]フェーズ … 準備の段階。暗号化方法と鍵の[[ネゴシエーション]]を行う。
+ [[IPsec]]フェーズ … 本番の段階。暗号化されたデータのやりとりを行う。

CENTER:&ref(ipsec02.gif);
>https://www.fmmc.or.jp/fm/nwts/nwmg/keyword02/vpn/ipsec.htm
IPsec通信のスタート

(参考) http://itpro.nikkeibp.co.jp/article/COLUMN/20071012/284403/
CENTER:&ref(ipsec_zu1.jpg);
CENTER:&ref(ipsec_zu2.jpg);

*** セレクタとは? [#l5c17848]
[[IPsec]]では、まずIPsecを適用する条件と方法を定義する。
「Aの条件に合致したら、B方式でIPsec通信を確立する」といったもので、この定義を&color(red){セレクタ};という。
PCやルータ、VPNゲートウェイなどの[[ノード]]は、パケットに対してセレクタを適用し、合致した場合はそこで定義されている方法によってIPsec通信を行う。

*** SA(セキュリティ・アソシエーション)とは? [#ad4f06b0]
IPsec通信を行う場合、各[[ノード]]は、[[SA]](セキュリティ・アソシエーション)という&color(red){仮想的な通信路};(トンネル)を作成する。

*** IKEフェーズ [#d5e43db8]
- 最初に、[[IKE]]フェーズ用の[[SA]](IKE SA)が作られる。
- IKE SAを通して、暗号化方式の決定と鍵の生成・交換が行われる。 → [[Diffie-Hellman]]法で安全。
- IKEフェーズでは、&color(red){''公開暗号鍵''};が使われる。

*** IPsecフェーズ [#c9dbf43a]
- 次に、IPsecフェーズ用の[[SA]](IPsec SA)が作られる。
- IPsec SAは、送信用と受信用が別々に作られる。
- IPsecフェーズでは、&color(red){''共通暗号鍵''};が使われる。

** IKEフェーズの動作モード [#c46f92fd]
IKEフェーズには、[[メインモード]]と[[アグレッシブモード]]という2つの動作モードがある。
固定IPアドレスの有無によって、通信相手の特定=[[認証]]の方式が違っている。

- メインモードは、LAN間接続(固定のIPアドレス)
- アグレッシブモードは、リモートアクセス(動的なIPアドレス)
での利用を想定している。

*** メインモード [#e76233d0]
[[メインモード]]は、&color(red){通信相手の認証にIPアドレスを使う};。
そのため、IPアドレス固定の環境で使う。

*** アグレッシブモード [#xed72a81]
[[アグレッシブモード]]は、通信相手の認証は任意の情報を用いることができる。
そのため、[[DHCP]]等で[[IPアドレス]]が変更される環境でも使える。

** IPsecフェーズのプロトコル [#l9b20ed4]
IPsecフェーズには、[[ESP]]や[[AH]]というプロトコルが使われる。

*** ESP [#bb5c0ee8]
IPsec SAで使われるセキュリティプロトコル(フレームフォーマット)が[[ESP]](Encapsulation Secrity Payload)。

[[ESP]]のフォーマットには、
- 暗号化に必要なSPI情報
- 着信時に[[ヘッダ]]情報を検証するための[[IPヘッダ]]([[トンネルモード]]時)
- [[ノード]]の認証と改ざん検出を行うための認証データ
が挿入される。

ESPの認証データは、メッセージダイジェストによって構成される。

*** AH [#n615238f]
IPsec SAでは、[[ESP]]の他に、[[AH]](Authentication Header 認証ヘッダ)というセキュリティプロトコル(フレームフォーマット)もある。
(ESPがよく使われており、AHはあまり使われない。)

- AHは、認証と改ざんの検出を行う。(ESPと違って、暗号化はしない。)
- AHは、ESPと組み合わせて使うこともできる。
- AHヘッダには、[[IPヘッダ]]とデータ部分([[ペイロード]])から作られたICV(Integrity Check Vector)と呼ばれるチェックサムが含まれており、改ざんを検出できる。

* PPTP [#e652570d]
- [[PPTP]](Point to Point Tunneling Protocol)は、マイクロソフトが作ったVPN[[プロトコル]]。
- [[データリンク層]]で、暗号化や認証、改ざんの検出を行う。
- そのため、上位層の[[ネットワーク層]]で[[IP]]以外のプロトコルを利用していて、[[IPsec]]が使えない環境でも[[VPN]]を構築できる。

PPTPでも、[[IPsec]]の[[IKE]]フェーズのように、データ通信に先立って各種の[[ネゴシエーション]]を行う。

CENTER:''PPTPのネゴシエーション''
| 認証 | MS-[[CHAP]](Microsoft Challenge Handshake Authentication Protocol) |
| 暗号化 | MPPE(Microsoft Point to Point Encryption) |

** PPTPフレームフォーマット [#xbe87f8b]
CENTER:http://program.sagasite.info/wiki/index.php?plugin=attach&refer=PPTP&openfile=vpntech01.gif

PPTPのフレームフォーマットは、[[PPP]]をもとに構成されている。
PPPと異なっているのは、[[GRE]](Generic Routing Encapsulation)というプロトコルでカプセル化する点で、これはIPsecの[[ESP]]によるカプセル化と同様である。

*** IPsecとPPTPの違い [#pac42058]
- PPTPは、暗号化アルゴリズムとしてRC4が指定されているため、暗号化アルゴリズムに関する[[ネゴシエーション]]が不要。
- 動作する階層が違う。

| | IPsec | PPTP |h
| 暗号化アルゴリズム | 選択可能 | RC4(指定) |
| 動作する階層 | [[ネットワーク層]](レイヤー3)| [[データリンク層]](レイヤー2) |

* L2TP [#zf65a153]
[[L2TP]]は、[[PPTP]]の[[認証]]手段などを拡張したVPNプロトコル。
RFC2661で定義されている。

- セッションにUDPを使う点が、PPTPと異なる。
- 1つのトンネルで、複数のセッションを張ることができる。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS