PPTP
Protocolul de tunelare punct-la-punct (PPTP, în ) este o metodă de implementare a unor rețele private virtuale. PPTP folosește un canal de control peste TCP și un tunel GRE pentru a încapsula pachetele PPP.

Specificația PPTP nu descrie metode de criptare sau autentificare, ci se bazează pe faptul că protocolul PPP este tunelat pentru a implementa securitatea. Totuși, implementarea cea mai comună a protocolului, care este livrată cu sistemul de operare Microsoft Windows, are diferite nivele de autentificare și criptare. Scopul acestui protocol este să ofere un nivel de securitate și de acces comparabile cu produsele VPN tipice.

Specificația pentru PPTP a fost publicată în iulie 1999 ca RFC 2637, fiind dezvoltată de un consorțiu format din Microsoft, Ascend Communications (astăzi parte din Alcatel-Lucent), 3Com și alții. PPTP nu a fost propus sau adoptat ca standard de către Internet Engineering Task Force.

Descrierea protocolului 
Un tunel PPTP este instanțiat deschizând o conexiune TCP către portul 1723. Această conexiune este apoi folosită pentru a iniția și a administra un al doilea tunel GRE către același peer.

Formatul pachetului GRE din PPTP este non-standard, incluzând un câmp adițional confirmare (în ) ce înlocuiești câmpul rutare (în ) în antetul GRE. Totuși, ca și într-o conexiune GRE normală, pachetele din PPTP sunt încapsulate direct în pachete IP, având același număr de identificare a protocolului în pachetul IP - 47.

Tunelul GRE este folosit pentru a transporta pachete PPP încapsulate, permițând tunelarea oricărui protocol ce poate fi încapsulat în PPP, inclusiv IP, NetBEUI sau IPX.

În implementarea Microsoft, traficul PPP tunelat poate fi autentificat folosind PAP, CHAP sau MS-CHAP v1/v2 .

Implementări 
PPTP a fost primul protocol VPN din Microsoft Dial-up Networking. Toate versiunile de Microsoft Windows de la Windows 95 OSR2 vin cu un client de PPTP, deși sunt limitate la doar două conexiuni simultane. Microsoft Windows Mobile 2003 și mai noi (cu excepția Windows Phone 8.x) includ de asemenea protocolul PPTP. Anumite versiuni ale sistemului de operare includ și un server PPTP. Această implementare folosește criptarea DES în MS-CHAP, care este considerată nepotrivită pentru cerințele curente de securitate.

Windows Vista și mai noi permit folosirea PEAP cu PPTP. Mecanismele de autentificare sunt PEAPv0/EAP-MSCHAPv2 (pentru parole) și PEAP-TLS (pentru smartcards și certificate). Windows Vista a renunțat la suportul pentru protocolul  MSCHAP-v1 la autentificarea conexiunilor la distanță.

În Linux, serverul de PPTP este implementat în daemonul PoPToP și modulele de kernel pentru PPP și MPPE (Microsoft Point-to-Point Encryption). Prima implementare de client a apărut în 1997, dar prima variantă folosită pe scară largă în servere a fost dezvoltată de Matthew Ramsay în 1999 și distribuită sub licența GNU GPL de Moreton Bay. Totuși, ea nu a fost inclusă în distribuțiile Linux ale vremii deoarece se considera că MPPE avea în spate patente, nefiind o implementare liberă. O implementare completă de MPPE a fost adăugată în kernelul de Linux în versiunea 2.6.14 din 28 octombrie 2005. SuSE Linux 10 a fost prima distribuție Linux ce a oferit un client complet de PPTP. Tot pe Linux mai există și serverul ACCEL-PPP – PPTP/L2TP/PPPoE ce implementează PPTP în kernel.

OpenBSD și FreeBSD includ ambele PoPToP. 

OS X și iOS includ un client de PPTP, iar OS X Server include și un server de PPTP.  Cisco și Efficient Networks vând clienți de PPTP pentru versiuni mai vechi de Mac OS. 

Multe telefoane mobile cu sistemul de operare Android oferă de asemenea clienți de PPTP.

Securitate 
PPTP a făcut obiectul multor analize de securitate și au fost identificate numeroase vulnerabilități legate de protocoalele de autentificare ale PPP, designul protocolului MPPE precum și legat de integrarea dintre MPPE și autentificarea PPP.

Câteva din aceste vulnerabilități sunt:
 MS-CHAP-v1 este fundamental nesigur. Există unelte care permit extragerea cu ușurință a rezumatului (engleză hash) parolei NT dintr-un schimb de mesaje MSCHAP-v1 capturat.
 Când se folosește MSCHAP-v1, MPPE folosește aceeași cheie RC4 pentru criptare în ambele direcții de comunicare. Aceasta poate fi obținută cu resurse standard, aplicând funcția XOR între pachetele din fiecare direcție.
 MS-CHAP-v2 este vulnerabil la atacuri de tip dicționar la adresa pachetelor de răspuns la challenge. Există unelte care pot realiza acest lucru rapid.
 În 2012 a fost demonstrat că un atac prin forță brută asupra MSCHAP-v2 este echivalent cu același atac asupra unei chei DES. A fost prezentat un serviciu online capabil să restaureze rezumatul MD4 al MSCHAP-v2 în 23 de ore.
 MPPE folosește algoritmul de criptare RC4. Nu există nicio metodă de autentificare a mesajului criptat și de aceea, acesta e vulnerabil la înlocuirea unor biți. Un atacator ar putea modifica mesajul în tranzit și să ajusteze anumiți biți fără a putea fi detectat. Acești biți pot fi însă detectați de protocolele tunelate prin sume de control sau alte metode.
EAP-TLS este văzut ca o alegere mai bună pentru autentificarea PPTP; totuși, necesită implementarea unei infrastructuri cu chei publice atât pentru client cât și pentru server. De aceea, nu este o opțiune viabilă pentru accesul la distanță a anumitor clienți.

Vezi și 
 IPsec
 L2TP
 SSTP
 OpenVPN, o aplicație cu sursă deschisă care implementează VPN

Note

Legături externe 
 Windows NT: Understanding PPTP de la Mirosoft
 FAQ on security flaws in Microsoft's implementation, Bruce Schneier, 1998
 Cryptanalysis of Microsoft's PPTP Authentication Extensions (MS-CHAPv2), Bruce Schneier, 1999
 PPTP VPN Configuration

Protocoale de nivel transport
Protocolul de tunelare punct-la-punct ( PPTP , în ) este o metodă de implementare a unor rețele private virtuale . PPTP folosește un canal de control peste TCP și un tunel GRE pentru a încapsula pachetele PPP . Specificația PPTP nu descrie metode de criptare sau autentificare , ci se bazează pe faptul că protocolul PPP este tunelat pentru a implementa securitatea . Totuși , implementarea cea mai comună a protocolului , care este livrată cu sistemul de operare Microsoft Windows , are diferite nivele de autentificare și criptare . Scopul acestui protocol este să ofere un nivel de securitate și de acces comparabile cu produsele VPN tipice . Specificația pentru PPTP a fost publicată în iulieca RFC fiind dezvoltată de un consorțiu format din Microsoft , Ascend Communications ( astăzi parte din Alcatel-Lucent) ,om și alții . PPTP nu a fost propus sau adoptat ca standard de către Internet Engineering Task Force . Descrierea protocolului Un tunel PPTP este instanțiat deschizând o conexiune TCP către portul Această conexiune este apoi folosită pentru a iniția și a administra un al doilea tunel GRE către același peer . Formatul pachetului GRE din PPTP este non-standard , incluzând un câmp adițional confirmare ( în ) ce înlocuiești câmpul rutare ( în ) în antetul GRE . Totuși , ca și într- o conexiune GRE normală , pachetele din PPTP sunt încapsulate direct în pachete IP , având același număr de identificare a protocolului în pachetul IP - Tunelul GRE este folosit pentru a transporta pachete PPP încapsulate , permițând tunelarea oricărui protocol ce poate fi încapsulat în PPP , inclusiv IP , NetBEUI sau IPX . În implementarea Microsoft , traficul PPP tunelat poate fi autentificat folosind PAP , CHAP sau MS-CHAP v1/v2 \ . Implementări PPTP a fost primul protocol VPN din Microsoft Dial -up Networking . Toate versiunile de Microsoft Windows de la WindowsOSR2 vin cu un client de PPTP , deși sunt limitate la doar două conexiuni simultane . Microsoft Windows Mobileși mai noi ( cu excepția Windows Phonex ) includ de asemenea protocolul PPTP . Anumite versiuni ale sistemului de operare includ și un server PPTP . Această implementare folosește criptarea DES în MS-CHAP , care este considerată nepotrivită pentru cerințele curente de securitate . Windows Vista și mai noi permit folosirea PEAP cu PPTP . Mecanismele de autentificare sunt PEAPv0/EAP-MSCHAPv2 ( pentru parole ) și PEAP-TLS ( pentru smartcards și certificate ) . Windows Vista a renunțat la suportul pentru protocolul MSCHAP-v1 la autentificarea conexiunilor la distanță . În Linux , serverul de PPTP este implementat în daemonul PoPToP și modulele de kernel pentru PPP și MPPE ( Microsoft Point-to-Point Encryption ) . Prima implementare de client a apărut în dar prima variantă folosită pe scară largă în servere a fost dezvoltată de Matthew Ramsay înși distribuită sub licența GNU GPL de Moreton Bay . Totuși , ea nu a fost inclusă în distribuțiile Linux ale vremii deoarece se considera că MPPE avea în spate patente , nefiind o implementare liberă . O implementare completă de MPPE a fost adăugată în kernelul de Linux în versiunea6.14 dinoctombrie SuSE Linuxa fost prima distribuție Linux ce a oferit un client complet de PPTP . Tot pe Linux mai există și serverul ACCEL-PPP – PPTP/L2TP/PPPoE ce implementează PPTP în kernel . OpenBSD și FreeBSD includ ambele PoPToP . OS X și iOS includ un client de PPTP , iar OS X Server include și un server de PPTP . Cisco și Efficient Networks vând clienți de PPTP pentru versiuni mai vechi de Mac OS . Multe telefoane mobile cu sistemul de operare Android oferă de asemenea clienți de PPTP . Securitate PPTP a făcut obiectul multor analize de securitate și au fost identificate numeroase vulnerabilități legate de protocoalele de autentificare ale PPP , designul protocolului MPPE precum și legat de integrarea dintre MPPE și autentificarea PPP . Câteva din aceste vulnerabilități sunt : MS-CHAP-v1 este fundamental nesigur . Există unelte care permit extragerea cu ușurință a rezumatului ( engleză hash ) parolei NT dintr- un schimb de mesaje MSCHAP-v1 capturat . Când se folosește MSCHAP-v1 , MPPE folosește aceeași cheie RC4 pentru criptare în ambele direcții de comunicare . Aceasta poate fi obținută cu resurse standard , aplicând funcția XOR între pachetele din fiecare direcție . MS-CHAP-v2 este vulnerabil la atacuri de tip dicționar la adresa pachetelor de răspuns la challenge . Există unelte care pot realiza acest lucru rapid . Îna fost demonstrat că un atac prin forță brută asupra MSCHAP-v2 este echivalent cu același atac asupra unei chei DES . A fost prezentat un serviciu online capabil să restaureze rezumatul MD4 al MSCHAP-v2 înde ore . MPPE folosește algoritmul de criptare RC4 . Nu există nicio metodă de autentificare a mesajului criptat și de aceea , acesta e vulnerabil la înlocuirea unor biți . Un atacator ar putea modifica mesajul în tranzit și să ajusteze anumiți biți fără a putea fi detectat . Acești biți pot fi însă detectați de protocolele tunelate prin sume de control sau alte metode . EAP-TLS este văzut ca o alegere mai bună pentru autentificarea PPTP ; totuși , necesită implementarea unei infrastructuri cu chei publice atât pentru client cât și pentru server . De aceea , nu este o opțiune viabilă pentru accesul la distanță a anumitor clienți . Vezi și IPsec L2TP SSTP OpenVPN , o aplicație cu sursă deschisă care implementează VPN Note Legături externe Windows NT : Understanding PPTP de la Mirosoft FAQ on security flaws in Microsoft's implementation , Bruce Schneier , Cryptanalysis of Microsoft's PPTP Authentication Extensions ( MS-CHAPv2 ) , Bruce Schneier , PPTP VPN Configuration Protocoale de nivel transport