本稿ではIPA試験で必要とされる知識をまとめます。
PPTP/L2TP/L2TP over IPsecの違い
PPTP/L2TP/L2TP over IPsecの違いは下図の通りです。
詳細
PPTPとL2TPはいずれもインターネット上にトンネルを作るプロトコルです。PPTPでは,TCPで張られた制御コネクションでPPPを用いて認証やIPアドレスの割り当てを行った後にGREでカプセル化します。GREヘッダをわざわざ挟む理由は,新しいIPヘッダとカプセル化内のパケットのクッション的な役割を果たすと捉えておきましょう。GREは汎用的なIPパケットのトンネリングプロトコルで,今回の場合はPPPフレームをGREヘッダと新しいIPヘッダでカプセル化する仕様です。つまり,オリジナルIPペイロードにはTCPヘッダが格納されています。RFCで定義されているPPTPは認証機能と暗号化機能を有していないため古くはMS-CHAPで認証してからMPPEで暗号化していましたが,これらに脆弱性が見つかってからはPPTPはあまり利用されなくなっています。
PPTPではトンネルの確立にTCP,PPPフレームを通信するためのカプセル化にGREを利用しますが,L2TPではいずれもUDPを用いて実現します。つまり,オリジナルIPペイロードにはUDPヘッダが格納されており,PPPフレームもUDPヘッダでカプセル化します。ただし,UDPによるカプセル化の前にL2TPトンネルを作成するためにL2TPヘッダでPPPフレームをカプセル化することに注意します。PPTPにおけるGREヘッダがL2TPヘッダとUDPヘッダに化けると捉えるとよいでしょう。
L2TP over IPsecでは,L2TPでカプセル化されたフレームをESPでカプセル化して暗号化します。NAT機器を経由する場合は,ESPでカプセル化されたフレームをさらにUDPでカプセル化することでNATトラバーサルを実現します。
補足1
PPTPは処理が軽いため高速ですが,上述の通り認証に利用するMS-CHAPや暗号化に利用するMPPEに脆弱性が発見されているため安全性が低いです。L2TP over IPsecは上述の通りデータをL2TPでカプセル化してからIPsecで暗号化するため処理が重いですが,PPTPよりは安全性が高いです。ただし,L2TP over IPsecはNSA(米国安全保障局)に解読されていて安全性が担保されている訳ではないため,最近ではIKEv2やOpenVPNを利用することが多いです。
補足2
PPPはP2P通信でしか利用できないプロトコルであるため,IP上で用いるためにはトンネリングを用いる必要があります。PPPはL2のデータリンク層で動作することから,このトンネリングはL2トンネリングと呼ばれます。
L2トンネリングの代表的なプロトコルにはPPTP/L2F/L2TPがあります。PPTPは上述の通りですが,送信側のVPN機器をPAC,受信側のVPN機器をPNSと呼びます。L2Fは制御コネクションの確立とカプセル化の両方にUDPを利用します。L2TPはPPTPとL2Fを混ぜたようなL2トンネリングプロトコルで,上述の通り制御コネクションの確立とカプセル化の両方にUDPを利用し,PPTPにおけるPAC/PNSに相当するLAC/LNS間の通信を行います。
L2FとL2TPはUDPでカプセル化しますが,PPTPはGREでカプセル化する点に注意です。「PPTPだからPPTPヘッダを用いる」と存在しないヘッダで早とちりしてしまうことがあります。
略称一覧
- PPTP:Point to Point Tunneling Protocol
- L2TP:Layer 2 Tunneling Protocol
- MS-CHAP:Microsoft Challenge-Handshake Authentication Protocol
- MPPE:Microsoft Point-to-Point Encryption
- ESP:Encapsulated Security Payload
- PAC:PPTP Access Concentrator
- PNS:PPTP Network Server
- LAC:L2TP Access Concentrator
- LNS:L2TP Network Server
コメント