Vad är PPTP?
PPTP står för Point-to-Point Tunneling Protocol och skapades med hjälp av Microsoft under 1990-talet. PPTP är en vidareutveckling av PPP, och har varit förinstallerat på alla Windows versioner sedan Windows 95, och blev officiellt tillagt i Linuxkerneln den 28:e oktober, 2005.
Varför är PPTP osäkert?
PPTPs historia är full av brister som har uppdagats av säkerhetsexperter. Den första incidenten hände redan 1998, när Bruce Schneier & Mudge publicerade[1] sina fynd angående det då aktuella autensieringsprotokollet MS-CHAPv1. Brister hittades bland annat inom:
- Hashning av lösenord
- Sårbar för man-in-the-middle(MITM) attacker
- Kryptering - möjlighet att dekryptera data som skickades
Microsoft släppte efter Bruce Schneiers rapport en uppdatering av autensieringsprotokollet, döpt till MS-CHAPv2. Det tog däremot inte lång tid innan Bruce Schneier & Mudge publicerade[2] en essä angående säkerhetsbristerna i det nya protokollet.
Sammanfattningsvis är MS-CHAPv2 endast lika säkert som lösenordet för kontot. Detta är problematiskt eftersom det betyder att MS-CHAPv2 är sårbar för exempelvis ordbok-attacker.
Det visades[3] 2012 att en brute-force attack på MS-CHAPv2 endast har en komplexitet på 256, det vill säga en enstaka DES-nyckel.
Hur avlyssnar man PPTP?
Eftersom komplexiteten endast är 256 så är det simpelt att brute-forca lösenordet för att sedan kunna avlyssna all nätverkstrafik i klartext. Du kan med hjälp av programmet chapcrack[4] avlyssna ett nätverk för alla MS-CHAPv2 'handshakes'.
När programmet har hittat en 'handshake' skrivs det ut lite intressant information såsom: användarnamn, känd klartext, två kända ciphertexter, och kommer även att knäcka den tredje DES-nyckeln.
Programmet skriver även ut en token som du kan använda på CloudCracker[5]. CloudCracker brute-forcar lösenordet på mindre än 24 timmar. När du har fått lösenordet från CloudCracker kan du återigen starta chapcrack för att avlyssna all nätverkstrafik i klartext.
Trafik som skickas genom PPTP ska alltså anses som klartext. VPN-leverantörer som erbjuder PPTP erbjuder alltså en tjänst som vem som helst kan dekryptera.
Varför används då PPTP fortfarande?
Det är främst två anledningar till att PPTP fortfarande används.
- PPTP har varit förinstallerat på de flesta operativsystem under så pass lång tid.
- Det är lätt att komma igång. Inget behöver installeras.
Vad kan man göra för att öka säkerheten?
Det första man bör göra är att undvika PPTP. Till och med Microsoft[6] har gått ut med att man inte bör använda PPTP. OpenVPN[7] är det säkraste alternativet när det kommer till VPN-tunnlar.
Om du redan har köpt ett PPTP-abonnemang hos en annan VPN-leverantör och inte vill byta till OpenVPN så är det tyvärr väldigt lite du kan göra.
Det du kan göra är att fråga din leverantör vad de använder för autensieringsprotokoll för PPTP. Det säkraste autensieringsprotokollet för PPTP anses i dagsläget att vara EAP-TLS[8]. Om din VPN-leverantör använder EAP-TLS kan du sova lite lugnare på nätterna, men det bästa alternativet är om du övergår till OpenVPN.
Källor
[1] https://www.schneier.com/paper-pptp.pdf
[2] https://www.schneier.com/paper-pptpv2.html
[3] https://www.cloudcracker.com/blog/2012/07/29/cracking-ms-chap-v2/
[4] https://github.com/moxie0/chapcrack
[5] https://www.cloudcracker.com/
[6] https://technet.microsoft.com/library/security/2743314
[7] https://openvpn.net/index.php/open-source.html
[8] http://technet.microsoft.com/en-us/library/cc739638(WS.10).aspx