VPNを使う時に、どのように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はiOS10から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ポートによってはファイアーウォールにブロックされる事もあるようです。
SSTP(Secure Socket Tunneling Protocol)
SSTP(Secure Socket Tunneling Protocol)はマイクロソフトがWindowsの為に開発したプロトコルです。SSL v3を使って接続を確立しています。因みに、TLS(Transport Layer Security)はSSLのアップグレード版で基本的には同じプロトコルを指しています。
SSL/TLSはホームページ上でクレジットカードの支払いの際や、パスワードの入力の際に使われている信頼の高いセキュリティレイヤーです。ブラウザのURL画面で「保護された通信 | https:」と表示されていれば、そのウェブサイトはSSL/TLSによって保護されており、第三者はアクセスしている内容を見ることが出来ません。また、SSL通信の特徴上、ファイアーウォールを回避する事が可能です。
以上の理由から、SSTPは非常に安全なプロトコルと言えます。ただしサポートしている端末がWindows、一部のLinuxとRouterのみと、使用出来るOSが限定的な事、またオープンソースではなく、不透明な点があるという点が挙げられます。
参照TLS
IKEv2(Internet Key Exchange Version2)
IKEv2(Internet Key Exchange Version2)はIPsecをベースにCiscoとマイクロソフトによって開発され、2006年頃から実装されている比較的新しいプロトコルです。現在では、Windows, Mac, Android, iOS, LinuxとほとんどのOSに対応しています。取り分けBlackBerryに対応している数少ないプロトコルの一つです。
総合的に言ってIKEv2はPPTP, L2TP, SSTPに比べるとセキュリティを犠牲にすること無く高速で接続する事が出来るプロトコルです。
IKEv2の際立った特徴が「Mobility and Multihoming Protocol」です。通信の信号を自動的に追従してくれるプロトコルで、Wi-Fi通信からセルラー通信(3GやLTE等)へ切り替わる際にシームレスでVPN接続を維持する事が出来ます。モバイル機器に適したプロトコルと言えます。
OpenVPN
OpenVPNは現時点で最も信頼出来るVPNプロトコルです。当サイトのオススメVPNは全てOpenVPNに対応しています。
最大の特徴はOpenVPNはSSL v3 / TLS v1とOpenSSL Libraryをベースとしたプロトコルで、オープンソースで開発されているという点です。他のプロトコルはいわゆる「レシピ」を公開しておらず、バックドアの存在が懸念されています。しかしOpenVPNはオープンソースで、セキュリティ専門企業や専門家によって常に精査され、更新されています。
別の特徴として、このプロトコルは柔軟で様々な設定が可能です。UDPポートの使用が主ですが、TCPにも対応可能です。また、HTTPSと同じトラフィック構造なので、フィルタリングしている側はHTTPSなのかOpenVPNなのか見分けがつかず、中国等のファイアーウォールも通過可能です。VyprVPNのカメレオンはOpenVPNをベースにしており、パケットの特徴を隠してHTTPSのように偽装して仮想トンネルが確立されるように設計されています。
暗号化によって速度は変わりますが、L2TP/IPsecやPPTPより高速で安定しています。また、様々な暗号化に対応しており、NSA等の機関が解読に成功したとう事例は過去にありません。
Wireguard
2016年にコードが公開された最新のVPNプロトコルです。ホワイトハッカーであるJason Donenfeld氏によって開発されたプロトコルで、今までのVPNプロトコルとは根本的に設計思想が異なるプロトコルです。
SSHのように安全でシンプルに扱える事を念頭に開発されてきました。コードが4000行前後と、OpenVPNの3分の1程度となっており、エンジニアがコードを短時間で理解出来る為、脆弱性への対処が簡単に行える事や、カスタムが用意である点も特徴の1つです。
暗号化のオプションはありませんが、ChaCha20-Poly1305, Curve25519, BLAKE2s, SipHash24と言った最先端で強力な暗号化が採用されています。
通信はUDPで行われる為、会社内やセキュリティの厳しいエリアで使う際には注意が必要です。ファイアーウォール等の設定でUDPを許可する必要があります。
実装のしやすさ、接続/切断のスピード、セキュリティ、Pingや通信速度と言ったあらゆる観点から見てもOpenVPN, IKEv2と言ったプロトコルより優れています。現在大手VPNプロバイダーはLightway, NordLynxなどと言ったWireguardのカスタムプロトコルを提供しています。
比較結果
幾つかの主要なプロトコルを比較してみました。PPTPは安全性の問題からVPN接続での選択肢としておすすめ出来ません。また、L2TPも速度や安定性の面からおすすめ出来ませんが、他に選択肢がない場合は使用しても大きな問題はありません。
中国以外の地域で携帯端末を使用している場合に限りIKEv2も良い選択肢の一つです。べすとVPNでは総合的な信頼性からTCPが必要な場合はOpenVPN、UDPで問題無い場合はWireguardをおすすめします。
インターネットプロバイダーや利用元ネットワークの都合からUDPが適さない場合もあります。VPNを選ぶ際にOpenVPNで接続出来るか否かを一つの基準として選んでみて下さい。