VPNの基礎知識

VPNプロトコルの比較と特徴 - PPTP, L2TP, SSTP, IKEv2, OpenVPN, Wireguard

2017年10月30日

VPNを使う時に、どのようにVPN接続が確立されて通信が行えるのか細かい仕組みを知る必要はないかもしれません。しかし、アプリやVPNのセッティングを行う時にいつも表示されるのがこのプロトコル。このプロトコルによって、ネットワーク上に作られた仮想トンネルがどのように機能するかが左右されます。つまりは、接続の安全性や安定性、速度が関係してきます。

それぞれのプロトコルにはどんな長所や短所があるのか比較・紹介していきます。

VPNのプロトコルとは何か

プロトコルとは、通信機器同士がデータをやり取りするときに従う共通のルールと手順のことです。人間が文法という約束事に従って言葉を交わすのと同じで、機器の側にも約束事が要ります。WindowsとmacOSのように設計の違う端末同士が問題なく通信できるのは、このルールが標準化されているからです。

通信プロトコル全体の設計指針は、ISO(国際標準化機構)が定めたOSI基本参照モデルで階層ごとに整理されています。VPNのプロトコルは、そのうち「ネットワーク上に仮想トンネルをどう作るか」「通信をどう暗号化するか」を決めている部分にあたります。

つまりVPNのプロトコル選びは、トンネルの作り方の選択です。同じサービス・同じサーバーを使っても、選んだプロトコル次第で速度・接続の安定性・ファイアーウォールに検知されやすいかどうかが変わってきます。

PPTP(Point-to-Point Tunneling Protocol)

互換性が高いPPTP。PPTPとは「Point-to-Point Tunneling Protocol」の略で、VPNが確立された初期から使用されているプロトコルです。90年代にマイクロソフトによってPPP(Point-to-Point Protocol)をベースに改良して開発され、Windows95から搭載されています。

VPNの標準的なプロトコルとして採用されてきたので、新旧問わずほとんどの端末に対応しています。基本的に128bitの暗号化で使用されており、処理項目が少ない(軽い)ので、速度が重要視されるオーディオや、ビデオストリーミング、計算能力の低い古いデバイスで使われています。しかし、現代では時代遅れのプロトコルです。AppleはiOS 10とmacOS Sierraの世代でPPTPを削除しており、アップグレードするとVPNプロファイルからPPTPの設定自体が取り除かれます。AndroidもOS標準の設定アプリからPPTPの項目がなくなっており、追加のアプリなしでは利用できません。

PPTPの最大の問題は安全性です。特に、ハンドシェイクのMS-CHAP-v1/v2に大きな脆弱性があると報告されているのは有名な話です。既に2000年代頭にPPTPの暗号化に対して問題視されていました。

NSA(アメリカ国家安全保障局)がかなりの昔に解読に成功しており、現在は無料ツールを使ってPPTP(MS-CHAP-v1/v2)を解読する事が可能です。セキュリティ確保を目的としている人にはおすすめできないプロトコルです。

参照Breaking Microsoft's PPTP Protocol

アドバンテージ

  • 速度が早い
  • 互換性が高い

ウィークポイント

  • 最低レベルの安全性

L2TP(Layer 2 Tunneling Protocol)

L2TPとは「Layer 2 Tunneling Protocol」の略で、PPTPのアップグレード版として1999年にリリースされました。L2TP自体には強力な暗号化や認証が付属していないので、IPsecと一緒に使われています。

IPsecは(Internet Protocol security)の略で、IETFというインターネットの標準化機関によって開発されました。名前の通りIPパケット単位で暗号化して通信するので、柔軟かつ高い安全性を確保出来ます。IPsecは安全なプロトコルでハックされていたという報告は発表されていません。しかし、エドワード・スノーデンの公開資料によるとNSAがIPsecのハッキングに取り組んでいたようです。

L2TPはPPTPに比べて遥かに安全ですが、データをL2TPに変換してからIPsecで暗号化するという2つの過程が必要になるので、速度が犠牲になります。また、使用するUDPポートによってはファイアーウォールにブロックされる事もあるようです。

アドバンテージ

  • 互換性が高い
  • PPTPより安全な接続

ウィークポイント

  • OpenVPNより速度が出ない
  • ファイアーウォールに引っかかる事がある

SSTP(Secure Socket Tunneling Protocol)

SSTP(Secure Socket Tunneling Protocol)はマイクロソフトがWindowsの為に開発したプロトコルです。SSL/TLS(TCPの443番ポート)を使って接続を確立しています。因みに、TLS(Transport Layer Security)はSSLの後継規格です。SSL 3.0は脆弱性のため廃止されており、現在実際に使われているのはTLSです。

SSL/TLSはホームページ上でクレジットカードの支払いの際や、パスワードの入力の際に使われている信頼の高いセキュリティレイヤーです。ブラウザのアドレスバーのURLが「https://」で始まっていれば、そのウェブサイトとの通信はSSL/TLSによって保護されており、第三者はアクセスしている内容を見ることが出来ません。また、HTTPSと同じ443番ポートを使うため、一般的なファイアーウォールを通過しやすい特徴があります。

以上の理由から、SSTPは非常に安全なプロトコルと言えます。ただしOS標準の機能として使えるのはWindowsだけで、それ以外は一部のLinuxやRouter、あるいはAndroid向けのサードパーティ製クライアントに頼ることになります。対応範囲が限られる事、またオープンソースではなく、不透明な点があるという点が挙げられます。

参照TLS

アドバンテージ

  • 一般的なファイアーウォールを通過しやすい
  • 高いセキュリティを確保出来る

ウィークポイント

  • 互換性が低い
  • オープンソースではない

IKEv2(Internet Key Exchange Version2)

IKEv2(Internet Key Exchange Version2)はIPsecの鍵交換を担うプロトコルです。Ciscoやマイクロソフトなどが策定に関わり、IETFの標準規格(現行はRFC 7296)として仕様が公開されています。2005年に最初の規格が出て以降、Windows, Mac, Android, iOS, LinuxとほとんどのOSが標準で対応しています。

総合的に言ってIKEv2はPPTP, L2TP, SSTPに比べるとセキュリティを犠牲にすること無く高速で接続する事が出来るプロトコルです。

IKEv2の際立った特徴が「Mobility and Multihoming Protocol」です。通信の信号を自動的に追従してくれるプロトコルで、Wi-Fi通信からセルラー通信(3GやLTE等)へ切り替わる際にシームレスでVPN接続を維持する事が出来ます。モバイル機器に適したプロトコルと言えます。

アドバンテージ

  • 高い安全性
  • ネットワーク切替時の接続が安定している
  • L2TP, PPTPより高速

ウィークポイント

  • 固定ポート(UDP 500・4500)を使うため検知・遮断されやすい
  • 難読化の仕組みを持たない

IKEv2とL2TP/IPsecの違い

IKEv2とL2TP/IPsecの違いは、暗号化の強さではなくトンネルの作り方にあります。暗号化を担当しているのはどちらもIPsecで、そこに優劣はありません。差が出るのは、L2TP/IPsecがデータをL2TPで包んでからさらにIPsecで包む二重構造なのに対してIKEv2はIPsecだけで完結する点と、IKEv2だけが通信回線の切り替えに追従できる点の2つです。

比較軸 IKEv2/IPsec L2TP/IPsec
暗号化を担う層 IPsec(ESP) IPsec(ESP)
鍵交換 IKEv2 主にIKEv1
カプセル化 IPsecのみの一重 L2TP+IPsecの二重
速度 二重処理がないぶん有利 オーバーヘッドのぶん不利
回線の切り替え時 MOBIKEで接続を維持 接続し直しになる
使用ポート UDP 500・4500 UDP 500・4500・1701
OS標準での対応 主要OSで設定できる Android 12以降は新規作成不可・15で項目削除
DPIでの識別 固定ポートで容易 固定ポートで容易

速度の差は、暗号化アルゴリズムの違いではなく処理の段数から来ています。L2TP/IPsecはL2TPでカプセル化したパケットをIPsecでもう一度カプセル化するため、ヘッダのオーバーヘッドと暗号化処理が二重にかかります。IKEv2にはこの一段目がありません。

安定性の差はもっとはっきりしています。IKEv2にはMOBIKE(IKEv2 Mobility and Multihoming Protocol、RFC 4555)という拡張があり、端末のIPアドレスが変わってもトンネルを張り直さずに接続を維持できます。Wi-Fiから4G/5Gへ切り替わる瞬間や、移動中に基地局が切り替わる瞬間に効くのがこの仕組みです。L2TP/IPsecにこれに相当する機能はなく、IPアドレスが変わった時点でセキュリティアソシエーションが無効になり、接続し直しになります。外出先で使う端末ほど、この差が体感に出ます。

中国での検知されやすさについては、どちらも同じ弱点を抱えています。両者ともIKEの鍵交換をUDPの500番、NAT越えを4500番という固定ポートで行い(L2TP/IPsecはこれに加えて1701番を使います)、ハンドシェイクの最初のやり取りには暗号化されていない特徴的なヘッダが乗ります。ポート番号とパケットの形が決め打ちできるということは、DPIで機械的に見分けられるということです。難読化の仕組みを持たない以上、どちらがGFWに強いかという比較自体が成立しにくくなります。中国から使う前提での考え方は後述の「中国からの利用時の注意点」で扱います。

対応端末の状況も変わっています。AndroidはOS標準のVPN設定の扱いが段階的に変わっています。Android 12の世代で新しいL2TP/IPsecプロファイルを作成できなくなったと報告されており(アップデート前から残っている設定はそのまま動作するとされています)、Android 15ではAOSPの設定アプリが提供するVPNの種類そのものがIKEv2/IPsecの3種類のみになりました。iOS・macOS・WindowsにはL2TP/IPsecの項目が今も残っていますが、新規に選ぶ理由は乏しくなっています。

OS標準の機能だけでVPNを設定するなら、選ぶべきはIKEv2です。L2TP/IPsecは、接続先のサーバーがIKEv2に対応していない場合や、古い端末で他に選択肢がない場合の代替と位置づけるのが妥当なところです。

OpenVPN

OpenVPNは長年の実績があり、対応する端末とサービスの幅が最も広いVPNプロトコルです。当サイトで紹介している汎用VPNの多くもOpenVPNに対応しています。ただし主要なVPN事業者の既定プロトコルは、すでにWireGuardかその派生に移っています。OpenVPNの提供そのものを終了した事業者も出てきており、新規に選ぶなら第一候補はWireGuard系、TCPが必要な場合や接続先がWireGuardに未対応の場合にOpenVPN、という整理が実態に近いと考えられます。

最大の特徴はOpenVPNはSSL/TLS(現行はTLS 1.2/1.3)とOpenSSLライブラリをベースとしたプロトコルで、オープンソースで開発されているという点です。SSTPのように仕様や実装が特定企業の管理下にあるプロトコルは、外部から検証しにくい点が弱みになります。OpenVPNはオープンソースで、セキュリティ専門企業や専門家によって継続的に精査され、更新されています(後述のWireGuardも同じくオープンソースです)。

別の特徴として、このプロトコルは柔軟で様々な設定が可能です。UDPポートの使用が主ですが、TCPにも対応可能です。また、HTTPSと同じTCPの443番ポートを使えるため、ポート番号だけで判定する一般的なファイアーウォールは通過しやすくなります。ただしハンドシェイクにはOpenVPN固有の特徴があり、通信の中身まで調べるDPIには識別されます。中国のGFWはこの方法でOpenVPNを検知するため、素のOpenVPNは中国では通りにくいと考えてください(後述の「中国からの利用時の注意点」を参照)。VyprVPNのカメレオンはOpenVPNをベースにしており、この特徴を隠す目的でパケットのメタデータを加工する独自プロトコルです。

速度は暗号化の設定や実装で変わります。処理の軽いPPTPや後述のWireGuardと比べると速度面では不利ですが、安定性と設定の柔軟さには定評があります。また、様々な暗号化に対応しており、適切に設定されたOpenVPNが解読されたという公表事例は確認されていません。

アドバンテージ

  • 速度、暗号化、安定性の高いバランス
  • オープンソースなので、あらゆる角度から精査されている
  • 高い柔軟性で、暗号化等の細かい設定が可能
  • 443番ポート(TCP)を使えるので一般的なファイアーウォールを通過しやすい(中国のGFWは除く)

ウィークポイント

  • サードパーティアプリが必要な場合がある

WireGuard

2016年にコードが公開され、2020年にLinuxカーネル本体へ統合された比較的新しいVPNプロトコルです。ホワイトハッカーであるJason Donenfeld氏によって開発されたプロトコルで、今までのVPNプロトコルとは根本的に設計思想が異なるプロトコルです。

SSHのように安全でシンプルに扱える事を念頭に開発されてきました。コードが4000行前後と、数万行以上あるOpenVPNに比べて桁違いに小さく、エンジニアがコードを短時間で理解出来る為、脆弱性への対処が簡単に行える事や、カスタムが容易である点も特徴の1つです。

暗号化のオプションはありませんが、ChaCha20-Poly1305, Curve25519, BLAKE2s, SipHash24と言った最先端で強力な暗号化が採用されています。

通信はUDPで行われる為、会社内やセキュリティの厳しいエリアで使う際には注意が必要です。ファイアーウォール等の設定でUDPを許可する必要があります。

実装のしやすさ、接続/切断のスピード、通信速度といった点ではOpenVPNやIKEv2より優位です。一方でUDPでしか動作せず、難読化の仕組みも持たないため、制限の厳しいネットワークでは使えない場面があります。現在は大手のVPN事業者が独自プロトコルを提供しています。NordVPNのNordLynxはWireGuardをベースに独自のNAT構成を組み合わせたもので、同社アプリの既定プロトコルになっています。一方でExpressVPNのLightwayはWireGuardの派生ではなく、wolfSSLの暗号ライブラリを用いて独自に開発されたプロトコルです。名前が並べて語られやすいので、成り立ちは分けて捉えてください。

アドバンテージ

  • 接続確立までが速い
  • 転送速度とコードの小ささで他のプロトコルより優位
  • 実装が簡単

ウィークポイント

  • UDPのみ対応

WireGuardとIKEv2はどちらを選ぶべきか

WireGuardとIKEv2を比べるときの軸は、実効速度と接続手段の手軽さです。転送性能・接続確立の速さ・コード規模の小ささではWireGuardが優位です。一方でIKEv2は主要OSに標準で入っていて追加アプリなしに設定でき、MOBIKEによる回線切り替え時の粘りがあります。

WireGuardはUDPのみで動作するため、UDPを絞っている社内ネットワークやホテルの回線では接続できないことがあります。そうした環境ではIKEv2、あるいはTCPが選べるOpenVPNが現実的な逃げ道になります。

中国からの利用時の注意点

ここまで紹介したPPTP、L2TP、SSTP、IKEv2、OpenVPN、WireGuardは、いずれも一般的な地域での利用を前提に設計されたプロトコルです。しかし、中国国内からVPNを使う場合は事情が異なります。

中国のGFW(グレートファイアウォール)は、DPI(Deep Packet Inspection、通信内容を解析する技術)によって通信のパターンを分析し、VPNらしい通信を検知してブロックする仕組みを備えています。OpenVPNやWireGuardは海外では非常に優秀なプロトコルですが、パケット形式に特徴的なシグネチャがあるため、GFWのDPIによって「VPN通信である」と判定されブロックされるケースが報告されています。特にWireGuardは通信効率を優先した設計のため、難読化機能を持たない標準実装では中国国内での接続が不安定になりやすい点に注意が必要です。

そのため、中国からの安定した接続を最優先するなら、ここで紹介した汎用プロトコルではなく、GFWによる検知を回避する目的で設計された難読化プロトコル(Shadowsocks系、VLESS+Reality、Hysteria 2など)を採用したサービスを選ぶのが現実的な選択肢になります。仕組みの詳細はShadowsocksとは?仕組みと今も使える条件で解説しています。素のShadowsocksは2021年11月から検知の対象になりましたが、接続の先頭バイトの見え方を変える対策を取り込んだ実装は、2023年2月の時点でも通っていたと報告されています(USENIX Security 2023)。

UCSSはこのうちShadowsocksを開発初期から運用しているサービスで、中国向けのプランは全サーバーが国際専用回線を経由します。利用者側でプロトコルを意識して選ぶ必要がない設計になっています。中国からのVPN利用を検討している場合は、UCSSの中国での利用実態もあわせて確認してみてください。

比較結果

幾つかの主要なプロトコルを比較してみました。PPTPは安全性の問題からVPN接続での選択肢としておすすめ出来ません。また、L2TPも速度や安定性の面からおすすめ出来ませんが、他に選択肢がない場合は使用しても大きな問題はありません。

中国以外の地域で携帯端末を使用している場合に限りIKEv2も良い選択肢の一つです。べすとVPNでは総合的な信頼性からTCPが必要な場合はOpenVPN、UDPで問題無い場合はWireGuardをおすすめします。

インターネットプロバイダーや利用元ネットワークの都合からUDPが適さない場合もあります。VPNを選ぶ際にOpenVPNで接続出来るか否かを一つの基準として選んでみて下さい。

関連【目的・状況別】管理人オススメの有料VPN

-VPNの基礎知識
-