ポイントツーポイントトンネリングプロトコル(PPTP )は、仮想プライベートネットワークを実装するための旧式の方法です。PPTPには、よく知られている多くのセキュリティ上の問題があります。
PPTPは、TCP制御チャネルと汎用ルーティングカプセル化トンネルを使用してPPPパケットをカプセル化します。多くの最新のVPNは、同じ機能のためにさまざまな形式のUDPを使用しています。
PPTP仕様では暗号化や認証機能については規定されておらず、あらゆるセキュリティ機能の実装はポイントツーポイントプロトコルのトンネル化に依存している。
Microsoft Windows製品ファミリーに付属するPPTP実装は、Windows PPTPスタックの標準機能として、さまざまなレベルの認証と暗号化をネイティブに実装しています。このプロトコルの目的は、一般的なVPN製品と同等のセキュリティレベルとリモートアクセスレベルを提供することです。
PPTPの仕様は1999年7月にRFC 2637 [ 1 ]として公開され、 Microsoft、Ascend Communications (現在はNokiaの一部)、3Comなどによって結成されたベンダーコンソーシアムによって開発されました。
PPTPは、インターネット技術タスクフォースによって標準規格として提案も承認もされていません。
PPTPトンネルは、 TCPポート1723でピアと通信することによってインスタンス化されます。このTCP接続は、同じピアへのGREトンネルを開始および管理するために使用されます。PPTP GREパケット形式は非標準であり、GREヘッダーの通常のルーティングフィールドの代わりに新しい確認番号フィールドが含まれています。ただし、通常のGRE接続と同様に、これらの変更されたGREパケットは直接IPパケットにカプセル化され、IPプロトコル番号47として認識されます。GREトンネルは、カプセル化されたPPPパケットを伝送するために使用され、IP、NetBEUI、IPXなど、PPP内で伝送可能なすべてのプロトコルのトンネリングを可能にします。
RFC仕様では、任意のPPP認証方式による認証が認められています。Microsoftの実装では、トンネル化されたPPPトラフィックは、PAP、CHAP、MS-CHAP v1/v2、拡張認証プロトコル(EAP)、またはPEAP-MS-CHAP v2で認証できます。
Linux では、このpptpプログラムは GRE レイヤーの設定のみを担当します。認証を含むその他のプロセスは、pppdPPP ハンドラである の責任です。[ 2 ]pppdは、PAP、CHAP、MS-CHAP v1/v2、EAP (MD5-Challenge、SRP-SHA1、EAP-TLS、PEAP) を処理できます。[ 3 ]
使用する認証方法に関わらず、PPTP(正確には、PPPリンクをカプセル化したもの)は、最大128ビットの鍵を使用した脆弱なRC4に基づくMicrosoft Point-to-Point Encryptionのみを使用できます。
PPTPは多くのセキュリティ分析の対象となっており、プロトコルに深刻なセキュリティ脆弱性が発見されています。既知の脆弱性は、使用されている基盤となるPPP認証プロトコル、MPPEプロトコルの設計、およびセッションキー確立のためのMPPEとPPP認証の統合に関連しています。[ 4 ] [ 5 ] [ 6 ] [ 7 ]
EAP-TLS はPPTP の認証方法として優れているとされていますが、[ 13 ]クライアント証明書とサーバー証明書の両方に公開鍵基盤(PKI)を実装する必要があります。そのため、一部のリモート アクセス環境では、認証方法として適さない場合があります。後継の PEAP もパスワード ハッシュと応答パケットの傍受に対する保護を提供し (PEAP-MS-CHAP などの組み合わせを安全にします)、PKI も必要です。PPTP を使用するほとんどのネットワークは、追加のセキュリティ対策を講じるか、現代のインターネット 環境には全く不適切とみなされます。同時に、そうすることで、プロトコルの前述の利点をある程度無効にすることになります。[ 14 ]