Episode ini membedah lapisan PPP yang menjadi jantung PPTP: fase pembentukan link dengan LCP, fase autentikasi, dan fase jaringan dengan NCP. Kalian membandingkan PAP, CHAP, MS-CHAPv2, dan EAP, lalu memahami kenapa MS-CHAPv2 dianggap telah terpecahkan.

Di episode 3, sesi PPP terbentuk hampir tanpa kalian sadari. Sekarang kita buka kap mesin: memahami PPP (Point-to-Point Protocol) adalah kunci untuk memahami autentikasi PPTP, dan memahami autentikasi adalah kunci untuk memahami kelemahan keamanannya.
Episode 4 membedah fase-fase PPP, membedakan PAP, CHAP, MS-CHAPv2, dan EAP, lalu menjelaskan secara jujur mengapa MS-CHAPv2 — protokol autentikasi yang paling umum dipakai PPTP — dianggap telah terpecahkan sejak 2012.
PPP bekerja dalam empat fase utama:
LCP → Authentication → NCP (IPCP) → Data TransferAlur LCP → Authentication → NCP → Data Transfer ini terjadi di dalam tunnel GRE, dan frame-nya dikirim sebagai payload GRE ke arah peer.
LCP (Link Control Protocol) digunakan untuk membangun, mengonfigurasi, dan menguji link. LCP menyepakati Maximum Receive Unit (MRU), opsi kompresi, dan menegosiasikan metode autentikasi yang akan dipakai.
Opsi LCP penting yang berkaitan dengan PPTP adalah kesepakatan metode autentikasi dan enkripsi MPPE. Keduanya dinegosiasikan lewat opsi khusus yang dikirim selama fase LCP.
NCP (Network Control Protocol) digunakan untuk mengonfigurasi protokol jaringan di atas PPP. Untuk IP, NCP yang dipakai adalah IPCP — protokol inilah yang memberikan alamat IP ke klien, mengirim alamat DNS, dan menetapkan WINS.
Saat kalian melihat interface ppp0 mendapat alamat dari pool remoteip, itu adalah hasil kerja IPCP.
PAP (Password Authentication Protocol) mengirimkan username dan password dalam bentuk plaintext. Siapa pun yang bisa menyadap traffic tunnel bisa membaca kredensial. PAP tidak pernah direkomendasikan untuk produksi.
CHAP menggunakan skema challenge-response. Server mengirim challenge, client menghitung hash dari challenge dan password, lalu mengirimkan hasilnya. Password tidak pernah melewati kabel dalam bentuk asli. CHAP generik memakai MD5 sebagai hash function.
MS-CHAPv2 adalah versi Microsoft dari CHAP yang memakai hash password NT (NT hash) dan memasukkan nilai challenge-response yang saling mengautentikasi. Versi inilah yang umum dipakai PPTP, dan dari sinilah kunci MPPE diturunkan.
EAP (Extensible Authentication Protocol) adalah kerangka yang memungkinkan berbagai metode autentikasi. PPTP mendukung EAP, tapi dalam praktiknya MS-CHAPv2 tetap yang paling sering ditemui.
Di file /etc/ppp/options.pptpd, kalian mengontrol metode autentikasi mana yang boleh dipakai:
name pptpd
require-mschap-v2
refuse-pap
refuse-chap
refuse-eapBaris require-mschap-v2 memaksa klien memakai MS-CHAPv2, sementara refuse-pap menolak autentikasi plaintext. Ini adalah konfigurasi keamanan minimal yang harus ada.
Pada 2012, peneliti Moxie Marlinspike dan David Hulton mendemonstrasikan bahwa challenge-response MS-CHAPv2 bisa diubah menjadi serangan offline terhadap password. Dengan menangkap pasangan challenge-response, penyerang bisa melakukan brute-force atau dictionary attack terhadap password tanpa perlu berinteraksi dengan server.
sudo tcpdump -i any port 1723 -AKeluaran tcpdump -i any port 1723 -A membantu kalian melihat pertukaran kontrol yang membawa challenge-response MS-CHAPv2. Ini bukan sekadar teori: sejak 2012, password MS-CHAPv2 yang lemah bisa dipecahkan dalam hitungan jam.
Karena kunci enkripsi MPPE juga diturunkan dari password yang sama, memecahkan password MS-CHAPv2 berarti memecahkan enkripsi seluruh sesi. Inilah alasan inti mengapa PPTP dianggap tidak aman — dan topik ini akan kita dalami di episode 13.
Selain itu, keamanan sesi PPTP tidak pernah lebih baik dari keamanan password-nya. Kebijakan password yang kuat menaikkan biaya serangan, tapi tidak menghilangkan serangan — penyerang tetap bisa bekerja offline sepuasnya.
Pilihan protokol autentikasi bukan sekadar preferensi teknis. Memakai PAP di PPTP berarti mengirim password plaintext di dalam tunnel yang bahkan bisa berjalan tanpa enkripsi. Konfigurasi require-mschap-v2 adalah batas minimal, dan tidak ada kombinasi konfigurasi yang membuat PPTP benar-benar aman.
Dari perspektif praktis, hal ini berarti kalian harus selalu memilih opsi autentikasi paling ketat yang didukung seluruh klien — dan tetap merencanakan migrasi sebagai solusi permanen.
Episode 4 menjelaskan mesin PPP di balik PPTP: fase LCP, autentikasi, dan NCP; perbedaan PAP, CHAP, MS-CHAPv2, dan EAP; serta konfigurasi require-mschap-v2 di pppd. Yang terpenting, kalian sekarang paham akar kelemahan: MS-CHAPv2 yang bisa dipecahkan secara offline.
Inti yang harus dibawa pulang:
require-mschap-v2 dan refuse-pap adalah minimal security baseline.Di episode 5 selanjutnya kita akan membahas GRE dan proses enkapsulasi — bagaimana frame PPP dibungkus GRE, besaran overhead yang memengaruhi MTU, MSS clamping, serta keterbatasan GRE yang membuatnya tidak NAT-friendly.