VPNとは
VPN(Virtual Private Network)は、日本語で「仮想的な専用ネットワーク」と表現されます。通常、企業が拠点間で通信する際には専用線や広域イーサネットなどを利用していましたが、VPNを用いればインターネットといった公衆網の上に暗号化された仮想回線を構築できるため、安全に通信を行うことができます。特にIPsecなどのセキュリティ技術を組み合わせることで、盗聴や改ざんを防止しながら企業WANを低コストで実現できるのが大きなメリットです。
VPNの特徴
VPNを利用すると、従来は高額だったWAN接続コストを削減でき、例えばFTTHのような安価で広帯域な回線をWAN回線として活用できます。ただし、VPNでは暗号化やカプセル化によって元のIPパケットにヘッダーが追加されるため、パケットのサイズが大きくなります。その結果、通常よりもMSS(Maximum Segment Size)を小さく調整しないと通信効率が悪化する点には注意が必要です。
VPNの種類
VPNは大きく「インターネットVPN」と「IP-VPN」に分類されます。
- インターネットVPN
インターネットなどの公衆回線を利用し、IPsecやSSLを用いて通信を暗号化します。- IPsec-VPN:IPsecを利用してルータやVPNゲートウェイ間の通信を暗号化
- SSL-VPN:SSL/TLSを利用し、Webブラウザや専用クライアントで安全な接続を実現
- IP-VPN(MPLS-VPN)
通信事業者が提供する閉域IP網を利用したVPNです。MPLSを用いて経路情報を管理するため、インターネットを通らず、より安定した品質を確保できます。
インターネットVPNのタイプ
インターネットVPNには、利用形態に応じて2つのタイプがあります。
- サイト間VPN
企業の複数拠点をルータ同士で接続する方式です。暗号化や復号の処理はすべてルータ(VPNゲートウェイ)が行うため、クライアントPCに特別なソフトを入れる必要はありません。拠点間通信でよく使われます。 - リモートアクセスVPN
自宅や外出先のPC・スマートフォンから社内ネットワークに安全に接続する方式です。クライアント端末にはVPNソフトウェア(例:Cisco AnyConnect)をインストールし、VPNゲートウェイと直接暗号化通信を行います。テレワークや外出先からの業務利用で多用されています。
VPNにおけるトンネリングと暗号化
VPNが安全な通信を実現できるのは、トンネリングと暗号化という2つの仕組みによります。
- トンネリングは、公衆回線(インターネットなど)の上に仮想的な専用回線を構築する技術で、あたかも直接つながっているかのように通信を行えるようにします。
- 暗号化は、通信データを第三者に読めないように変換する仕組みで、盗聴や改ざんを防ぎます。
VPNで利用される代表的なトンネリングプロトコルには PPTP、L2F、L2TP、GRE、IPsec があります。この中で暗号化機能を持つのはIPsecのみです。そのため、他のプロトコルを使う場合は暗号化のためにIPsecを併用するケースが多くなります。
VPNに関連する基本用語
- トンネル:インターネットなどの公衆網に構築された仮想的な専用回線
- 暗号化:平文(もとのデータ)を解読不能な暗号文に変換する処理
- 復号:暗号文をもとの平文に戻す処理
- ハッシュ関数:入力データから固定長の要約値を生成する演算(例:SHA、MD5)
- 認証:利用者やプロセスの身元を確認する手続き
- 認可:認証済みの利用者に適切なアクセス権を与えること
- 公開鍵暗号方式:公開鍵と秘密鍵のペアを用いた暗号化方式
- 共通鍵暗号方式:暗号化と復号に同じ鍵を使う方式
- CA(認証局):デジタル証明書の発行・管理を行う信頼機関
- Diffie-Hellman鍵交換:共通鍵を安全にやり取りするための仕組み
主なVPNプロトコルの比較
VPNで利用される主要プロトコルにはそれぞれ得意分野があります。特に注目すべきは、IPsecは暗号化もトンネリングも単独で可能だがマルチキャスト通信は扱えないという点です。このため、OSPFなどのルーティングプロトコルを拠点間で使う場合は、GREとIPsecを組み合わせる(GRE over IPsec)のが一般的です。
| VPNプロトコル | トランスポート | 伝送できるプロトコル | マルチキャスト対応 | 暗号化 | 主な利用例 |
|---|---|---|---|---|---|
| IPsec | IP | L3(IP) | × | ○ | サイト間VPN(ユニキャスト通信) |
| GRE | IP | L3(IP, IPXなど) | ○ | × | ルーティングプロトコルのトンネリング(GRE/IPsec併用) |
| L2TP | UDP/IP, ATM | L2(PPP)、L3全般 | ○ | × | PPP拡張、認証強化(L2TP/IPsec併用) |
暗号システムの概要
VPNは単に「トンネルを張る」だけでは安全性を確保できません。その裏では、複数のセキュリティ技術が組み合わさって機能しています。代表的な要素は 鍵管理、暗号化、ハッシュ関数、認証 の4つです。ここではそれぞれの概要を整理しておきましょう。
鍵管理方式
VPNで安全に通信するには、まず「暗号化に使う鍵」をどうやって相手に渡すかを決めなければなりません。
IPsecでは Diffie-Hellman鍵交換方式 を使い、安全でない通信路でも暗号鍵を盗聴されずに共有できる仕組みを実現しています。
暗号化方式
通信データそのものを秘匿する技術が暗号化です。代表的な方式は2種類あります。
- 共通鍵暗号方式
暗号化と復号に同じ鍵を使う方式。AESや3DESなどが代表的で、処理が速いため実データの暗号化に多用されます。 - 公開鍵暗号方式
暗号化と復号に異なる鍵(公開鍵と秘密鍵)を使う方式。RSAなどが代表的。処理は遅いですが、安全な鍵交換やデジタル署名に利用されます。
ハッシュ関数
ハッシュ関数は、与えられたデータから固定長の「要約値」を生成する仕組みです。代表例は MD5 や SHA。
これ自体には暗号化機能はなく、改ざん検知やデータの整合性確認に使われます。例えば受信側が再度ハッシュを計算して照合することで、途中で改ざんされていないか確認できます。
認証方式
認証の仕組みには HMAC と デジタル署名 の2種類があります。
- HMAC(Hash-based Message Authentication Code)
共通鍵とハッシュ関数を組み合わせて、データの改ざんを検知します。ハッシュ関数にはMD5やSHAが使えます。 - デジタル署名
公開鍵暗号を応用した仕組みで、送信者の正当性とデータの改ざん検知を同時に実現します。SHAと組み合わせて利用されるのが一般的です。
IPsecにおける利用例
IPsec-VPNでは、セキュリティの基本要素が次のように使われています。
- IKE(Internet Key Exchange) のメッセージ交換で、Diffie-Hellmanを用いた安全な鍵共有を実現
- データの暗号化には共通鍵暗号(AESなど)を利用
- 改ざん検知にはハッシュ関数(MD5やSHA)を利用
- 認証にはHMACまたはデジタル署名を利用
共通鍵暗号(対称暗号)
共通鍵暗号とは、暗号化と復号の両方で同じ鍵を利用する方式のことです。この鍵を「共通鍵」または「秘密鍵」と呼びます。別名「対称暗号」とも言われます。
たとえば、友達と合言葉を決めておいて、その合言葉を知っている人だけが暗号文を読めるようにするイメージです。
代表的な方式には RC4、DES、3DES、AES があります。特に現在の標準として最も強力とされるのは AES です。
公開鍵暗号(非対称暗号)
公開鍵暗号は、2つの異なる鍵をペアで使用する方式です。暗号化に使うのが「公開鍵」、復号に使うのが「秘密鍵」です。
送信者は受信者が公開している「公開鍵」を使って暗号化し、受信者は自分だけが持つ「秘密鍵」で復号します。公開鍵は誰に知られても問題ありませんが、秘密鍵を持つ本人だけが暗号を解ける仕組みです。
共通鍵暗号では「鍵を相手に安全に渡す方法」が課題でしたが、公開鍵暗号ではその必要がない点が大きなメリットです。代表的な方式には RSA と ElGamal があり、Ciscoルータでは主に RSA が利用されます。
Diffie-Hellman鍵交換
Diffie-Hellman(ディフィー・ヘルマン)鍵交換は、インターネットのような安全でない通信路を通じて、共通鍵暗号に必要な「共通鍵」を安全にやり取りするための仕組みです。
ここで重要なのは、鍵そのものを送らないという点です。実際には乱数や公開情報を使ってやり取りを行い、最終的に双方が同じ共通鍵を導き出します。この方法により、盗聴されても共通鍵が漏れることはありません。
IPsecでは、IKE(Internet Key Exchange)の仕組みの中で、このDiffie-Hellman鍵交換が標準的に使われています。
ハッシング
ハッシングとは、もとのデータに「ハッシュ関数」という数式をかけて、固定長の文字列(ハッシュ値、ダイジェスト)を作ることです。
これは暗号化とは目的が違い、データの完全性(改ざんされていないこと)を確認するために使われます。たとえば、長い文章をすべて比較するのは大変ですが、ハッシュ値を比べれば一瞬で同じかどうかを判断できます。
代表的なハッシュ関数には MD5 や SHA-1 があります。
認証とHMAC
さらに強固にするために、HMAC(Keyed-Hashing for Message Authentication Code)という方式があります。これは、共通鍵とハッシュ関数を組み合わせて、送信者が本物であることを確認できる仕組みです。
流れを整理すると次のようになります。
送信者は「元データ」と「共通鍵」を組み合わせてハッシュ値を作り、それをデータと一緒に送ります。受信者は自分の持つ共通鍵で同じ計算を行い、ハッシュ値が一致すれば「改ざんされていない」「確かに正しい相手から届いた」と判断できます。
HMACには、HMAC-MD5 と HMAC-SHA-1 があり、後者の方が暗号強度が高いとされています。