VPN
VPNについて説明したページです。VPNの必要性やトンネリング、ルーティング時の留意点や暗号化について説明しています。
VPNの概要
インターネットを介して自宅のパソコンから会社のネットワークを使う時、又は事業所間で通信する時は何点かの課題があります。
例えば、接続先のネットワークについてDNSを解決する必要がありますが、内部ネットワークのアドレスについては通常はインターネットからDNSの解決が出来ません。

又、接続先がプライベートアドレスを使っている場合はDNSを解決出来てもインターネットを介した通信は出来ません。

更に、グローバルアドレスを使っていてDNSも解決出来たとしても、誰でも内部ネットワークに通信出来るとセキュリティ上問題です。
これらの問題を解決するのがVPNです。VPNを利用すると、認証後に接続先ネットワークと直接接続されているように使う事が出来ます。

上の図ではVPNサーバーはファイアウォールと一体ですが、個別に構築する事も出来ます。
VPNサーバー機能はファイアウォールだけでなく、ルーターやVPN専用機、WindowsServer、Linux等でサポートされており、個別に構築する場合はDMZに配置します。
又、自宅パソコンだけでなく、スマートフォン等のモバイル端末からの接続をサポートするVPNサーバーも多くあります。
VPNを支える技術の1つがトンネリングです。トンネリングにより元々のパケットにインターネットで使えるIPアドレスを追加して送信する事でインターネットでルーティング出来るようになります。受信側は追加されたIPアドレスを外して元々の送信先のIPアドレスと通信出来るようにします。

パケットにアドレス等を追加する事をカプセル化と言います。カプセル化によりトンネルを構築し、仮想的に相手ネットワークと直結します。

トンネルによる直結後は内部ネットワークと同等のため、DNSを利用して通信可能です。この時、盗聴を防ぐ為、暗号化も出来ます。
VPN利用時のアドレスとルーティング
自宅パソコン等からVPN接続時、割り当てられるIPアドレスは接続先で使えるIPアドレスです。
例えば、イントラネット内部で172.16.0.0のネットワークアドレスを使っていた場合、172.16.2.2等が割り当てられます。
自宅パソコンからのVPNでも事業所間VPNでもリモート先のアドレスは、接続先のネットワークでVPNサーバーまでルーティング出来る必要があります。
例えば、自宅パソコンで172.16.2.1〜254が割り当てられる場合、172.16.2.0/24等のルーティングテーブルが必要で、事業所間VPNで192.168.1.0/24から接続がある場合は192.168.1.0をルーティングでVPNサーバーまで通信出来るようにする必要があります。

VPN接続でもカプセル化されるまでは通常のルーティングに従うためです。
上記の図では支社ネットワーク側でも本社ネットワークに対するルーティングが必要です。
VPN接続時の認証や共通鍵作成ではハッシュが使われます。以下は認証時のハッシュの使い方です。

よく使われるハッシュにはMD5、SHA1、SHA2等があり、この中ではSHA2が最も安全です。
アルゴリズム | ハッシュ値の長さ |
---|---|
MD5 | 128bit |
SHA1 | 160bit |
SHA2 | 224、256、384、512bit |
ハッシュは暗号化時にデータ等からハッシュを利用して得られた値であるMAC値をフレームに付与し、データが改ざんされていないか確認するメッセージ認証にも使われます。ハッシュを使ったこの仕組みをHMACと言い、受信側で同様の計算を行い、受信したMAC値と比較する事で途中でデータが改ざんされていない事が分かります。

トンネリングでデータを暗号化する時に使われる暗号方式が共通鍵暗号方式です。よく使われるアルゴリズムはDES、3DES、RC4、AES等があり、この中ではAESが最も安全です。これらのアルゴリズムは暗号化した鍵と同じ鍵で復号化出来るようになっています。
認証や共通鍵の受け渡しに使われるのが公開鍵暗号方式で、良く使われるアルゴリズムはRSAです。RSAは暗号化した鍵と対になる鍵でだけ復号化出来るようになっています。
又、それぞれのアルゴリズムでは使える鍵長が決まっており、長い程安全です。
方式 | アルゴリズム | 鍵長 |
---|---|---|
共通鍵暗号方式 | DES | 56bit |
3DES | 56、112、168bit | |
RC4 | 40〜2,048bits | |
AES | 128、192、256bits | |
公開鍵暗号方式 | RSA | 〜4,096 |
尚、共通鍵暗号方式と公開鍵暗号方式の詳細は「企業向け無線LAN」をご参照下さい。