もしかしたらVPN関係の設定の仕事が来るかも知れないんで、VPNについて調べてみました。
情報処理の試験でVPN周辺の知識も問われるんで、試験対策としてはやってたんだけど、所詮暗記知識だけで終わらせており、分かったつもりになってたんで、この際仕組みもちゃんと理解しとこうかなと。
とにかくVPN周辺は認証とか暗号化方式とかで覚えにくい略語がオンパレードで出てくるので、しっかり整理して理解することが重要です。
インターネットVPNとは何か?
インターネットを使って、拠点Aと拠点Bの間の通信を暗号化し、あたかも内部LANであるかのように仮想的なLANを構築して通信を行うことができる技術。
IP-VPNとは似て非なるものなので注意。(僕はこれらを混同して使っていました)
VPNにはトランスポートモードとトンネルモードの2種類あります
- トランスポートモード
– パソコン―パソコン間の通信。パソコンに専用クライアントソフトを入れる必要があります。
– IPヘッダはカプセル化せずに、中身のデータだけを暗号化して転送します。
- トンネルモード
– VPNゲートウェイ-VPNゲートウェイ間の通信。
– 専用のVPNゲートウェイ機器が必要です。
– VPN通信はゲートウェイ間だけなので、パソコンには何もソフトを入れなくても良い。
– データだけではなくIPヘッダも含めてカプセル化され、VPN通信用に新しいIPアドレスが付与されます。
VPNには複数のプロトコルが選択できます
トランスポートモードとトンネルモードという方式は暗号化区間とか構成の話だけど、それとは別にVPNで使うプロトコルも複数あります。
VPN=Vertual Private Network だから、VPNそのものがプロトコルという訳ではなく、「仮想的にプライベートな通信を行う方式の総称」として理解すればいいのかも。
なので、それを実現するためのプロトコルは何種類かあるという訳です。
- IPSec(Internet Protocol Security)
現在主流となっているプロトコル。
- PPTP(Point to Point Tunneling Protocol)
Microsoft社によって提案された暗号通信のためのプロトコル。
Windows NT 4.0のころから使われてきたトンネリング・プロトコル。
ダイヤルアップ接続で使われるPPPプロトコルを拡張して圧縮や暗号化を組み込んだもので、
Windows系OSのシステムでよく使われています。
- L2TP(Layer 2 Tunneling Protocol)
PPPをベースにしたトンネリング用のプロトコル。ただし暗号化機能は含まれず、
IPSec(IP Security)で行うことになっている。これらの仕様はRFCとして決められており、
ハードウェアのルータ製品を中心に実装が進んでいます。
- SOCKS
アプリケーションプロト コルに依存せずに、トランスポート層の上でアクセス制御を行うためのプロトコル。
IPSecについて詳しく
- IP(IPv4)ではオプション扱いですが、次世代IP(IPv6)では実装することが必須となっています。
- IPSecでは、データの完全性を保証するための認証アルゴリズムや、暗号化アルゴリズムは固定されておらず、
任意のアルゴリズムを実装することができます。
これは、現在は実用的な強度を持つアルゴリズムであっても、コンピュータの演算速度の向上によって、
いずれ陳腐化すると予想されるためです。
- IPSecサービスでは、
「認証ヘッダ(AH:Authentication Header)」と
「暗号ペイロード(ESP:Encapsulating Security Payload)」の2つのプロトコルが用意されています。
- AHは、発信元の認証、データの完全性(改ざんされていないこと)認証、リプレイ・アタックの阻止などの機能を提供します。
- ESPは、AHの機能に加えてデータの暗号化機能を提供します。
- この他、IPSecには安全に鍵交換を行うためにIKE(Internet Key Exchange)というプロトコルが規定されています。
IKEは、UDPのポート500番を利用します。
AHについて詳しく
以下の認証アルゴリズムがあります 。
- MD5(Message Digest Five)
暗号アルゴリズムの一つで,アルゴリズムの簡潔さ,安全性,速度を重視しています。
128ビットの固定長鍵をサポート。128bitsの認証様データを生成。
- SHA-1(Secure Hash Algorithm)
MD5とほぼ同じアルゴリズムです。より安全性に優れますが,MD5より処理が重くなります。
160ビットの固定長鍵をサポート。160bitsの認証様データを生成。
ESPについて詳しく
以下の暗号化アルゴリズムがあります。
広く利用されている方式です。
DESの暗号処理を3回続けて行います。そのため,強度な暗号化をすることができます。
最近のVPNゲートウェイでは、その他にもAES/Blowfish/CASTなど複数の暗号化アルゴリズムをサポートしています。
参考
- インターネットVPNの基礎知識 - @IT
http://www.atmarkit.co.jp/fwin2k/verification/vpn02/vpn02_03.html - VPNガイダンス:IPsecとは?
http://www.furukawa.co.jp/network/vpn/about_vpn/ipsec/ipsec_top.html - 5分で絶対に分かるVPN
- @IT:インターネットVPNの導入メリット(前編)
http://www.atmarkit.co.jp/fsecurity/special/22fivemin/fivemin00.html
http://www.atmarkit.co.jp/fsecurity/special/33vpn/vpn01.html