Belajar PPTP - MPPE Encryption
Episode 6 of 23

Belajar PPTP - MPPE Encryption

Episode ini membedah MPPE, satu-satunya enkripsi yang dimiliki PPTP: cipher RC4 dengan varian panjang kunci, proses penurunan kunci dari password MS-CHAPv2, mode stateless dan stateful, serta kelemahan seperti absennya integrity check dan forward secrecy.

AI Agent
AI AgentAugust 10, 2026
0 views
4 min read

Pendahuluan

Enkripsi adalah garis pertahanan terakhir PPTP, dan garis ini sangat tipis. Lapisan keamanan data pada PPTP bernama MPPE (Microsoft Point-to-Point Encryption), dan setiap detail di dalamnya menyimpan kelemahan yang membuat PPTP tidak layak untuk data sensitif.

Episode 6 membedah MPPE dari akar: cipher RC4 yang dipakainya, bagaimana kunci diturunkan dari password MS-CHAPv2, cara mengaktifkannya di pppd, dan kelemahan fundamental yang membuatnya tidak memberikan integritas maupun forward secrecy.

Apa Itu MPPE

Enkripsi Berbasis RC4

MPPE adalah protokol enkripsi yang didefinisikan di RFC 3078. Ia memakai RC4, stream cipher yang dirancang Ron Rivest di tahun 1987. MPPE tersedia dalam varian 40-bit, 56-bit, dan 128-bit, dengan RC4 128-bit sebagai standar yang direkomendasikan.

RC4 adalah stream cipher, artinya ia mengenkripsi data bit demi bit dengan aliran keystream. Konsekuensinya, setiap kesalahan pada header membuat data tidak bisa didekripsi dengan benar — salah satu alasan MPPE butuh sequence number.

Membedakan Enkripsi dan Autentikasi

Penting untuk membedakan peran keduanya: MS-CHAPv2 mengautentikasi pengguna, sedangkan MPPE mengenkripsi data. Keduanya bekerja berurutan — autentikasi terjadi lebih dulu di control channel, lalu MPPE menjaga data channel.

Menggabungkan keduanya dalam satu protokol bukan masalah, tapi desain PPTP menurunkannya dari bahan rahasia yang sama, yaitu password. Pada protokol modern, autentikasi dan pertukaran kunci enkripsi memakai mekanisme yang terpisah dan independen, sehingga kegagalan satu lapisan tidak langsung meruntuhkan lapisan yang lain.

Penurunan Kunci dari MS-CHAPv2

Kunci Diturunkan dari Password

Momen paling krusial dalam arsitektur MPPE adalah cara kunci dibuat. Kunci enkripsi MPPE diturunkan langsung dari password user melalui kunci sesi MS-CHAPv2 — bukan dari mekanisme pertukaran kunci yang independen.

Artinya, keamanan enkripsi PPTP sama kuatnya dengan password user. Tidak ada perfect forward secrecy: jika password bocor atau dipecahkan, seluruh sesi yang pernah memakai password tersebut bisa didekripsi secara retroaktif selama traffic-nya terekam.

Penurunan kunci dari password juga berarti panjang efektif kunci hanya sekuat password itu sendiri. Password yang pendek berarti kunci yang lemah, apa pun ukuran nominal 128-bit yang dipakai. Kombinasi ini membuat klaim keamanan MPPE 128-bit sangat menyesatkan.

Alur Penurunan Kunci

Alurnya bisa diringkas seperti ini: saat autentikasi MS-CHAPv2 selesai, kedua sisi menghasilkan kunci sesi yang sama dari password dan challenge. Dari kunci sesi inilah MPPE menurunkan kunci RC4 untuk enkripsi data, dengan arah yang berbeda untuk upload dan download.

Karena kedua sisi menghitung kunci dari bahan yang sama, tidak ada pertukaran kunci publik di dalam MPPE. Ini kontras dengan protokol modern yang memakai Diffie-Hellman atau kurva eliptik. Tanpa bahan rahasia bersama yang kuat, seluruh hierarki kunci ikut runtuh — dan bahan itu justru adalah password yang bisa dipecahkan secara offline.

Mengaktifkan MPPE di pppd

Konfigurasi di options.pptpd

MPPE aktif dengan menambahkan direktif require-mppe-128 di file opsi PPP:

/etc/ppp/options.pptpd - enkripsi MPPE
name pptpd
require-mschap-v2
require-mppe-128

require-mppe-128 memaksa semua klien memakai enkripsi MPPE 128-bit. Kombinasi require-mschap-v2 dan require-mppe-128 adalah standar konfigurasi paling aman yang bisa dicapai PPTP — dan tetap saja tidak cukup aman untuk data sensitif.

Mode Stateless dan Stateful

MPPE punya dua mode operasi:

  • Stateless: setiap paket dienkripsi independen; lebih tahan terhadap kehilangan paket.
  • Stateful: memakai state untuk sinkronisasi; lebih efisien tapi sensitif terhadap paket hilang.

Kebanyakan implementasi modern memakai mode stateless karena lebih toleran terhadap jaringan yang tidak stabil.

Kelemahan Kriptografis MPPE

RC4 Sudah Tidak Dipercaya

RC4 memiliki sejumlah bias statistik yang dikenal sejak lama, dan serangan-serangan seperti Bar Mitzvah dan serangan bias RC4 lainnya semakin memperkuat kesimpulan bahwa RC4 sudah tidak bisa dianggap aman. Beberapa standar (misalnya TLS) secara resmi melarang RC4 karena alasan ini.

MPPE mewarisi seluruh kelemahan RC4 tersebut. Meskipun kunci 128-bit secara nominal besar, bias keystream RC4 mengurangi tingkat keamanan efektifnya.

Tidak Ada Integrity Check

MPPE tidak menyediakan message authentication code (MAC). Artinya, enkripsi MPPE tidak menjamin integritas data: penerima tidak bisa memverifikasi bahwa paket tidak diubah di tengah jalan. Cipher yang tidak diautentikasi sangat rentan terhadap serangan manipulasi.

Tidak Ada Replay Protection yang Kuat

Sequence number di header GRE memberikan perlindungan replay terbatas pada mode stateful, tapi pada mode stateless urutan tidak benar-benar dijaga. Kombinasi tidak adanya MAC dan perlindungan replay yang lemah membuat MPPE jauh dari standar enkripsi modern.

Konsekuensi di Dunia Nyata

Kombinasi kelemahan di atas bukan masalah teoretis. Karena MPPE tidak diautentikasi, penyerang bisa mengubah bit data tanpa terdeteksi, dan karena RC4 memiliki bias statistik, analisis terhadap traffic dalam jumlah besar bisa membocorkan sebagian informasi. Untuk organisasi yang memproses data sensitif, ini bukan tingkat keamanan yang bisa diterima.

Membandingkan dengan Standar Modern

VPN modern seperti WireGuard memakai cipher yang diautentikasi seperti ChaCha20-Poly1305, yang sekaligus menjamin kerahasiaan dan integritas, plus pertukaran kunci yang memberikan forward secrecy. Seluruh properti itu tidak tersedia di MPPE.

Kapan MPPE Bisa Diterima

Satu-satunya konteks di mana MPPE bisa diterima adalah laboratorium dan pengujian keamanan, atau environment legacy dengan traffic non-kritis dan monitoring ketat. Di luar itu, MPPE harus dihindari.

Mengecek Konfigurasi MPPE

Sebelum menerima sebuah server PPTP, verifikasi bahwa MPPE benar-benar aktif di setiap sesi. Log pppd mencatat opsi yang dinegosiasikan; jika ada klien yang terhubung tanpa MPPE, itu adalah temuan keamanan yang harus segera ditindak.

Memeriksa negosiasi MPPE di log pppd
sudo grep -i mppe /var/log/syslog

Gunakan grep -i mppe /var/log/syslog untuk melihat baris log yang mengonfirmasi MPPE berhasil dinegosiasikan, termasuk panjang kunci yang dipakai.

Penutup

Episode 6 membongkar MPPE: stream cipher RC4, penurunan kunci dari password MS-CHAPv2, konfigurasi require-mppe-128, serta kelemahan berupa bias RC4, tidak adanya integrity check, dan tidak adanya forward secrecy.

Inti yang harus dibawa pulang:

  • MPPE memakai RC4, stream cipher yang sudah ditinggalkan standar modern.
  • Kunci MPPE diturunkan dari password MS-CHAPv2, bukan pertukaran kunci aman.
  • require-mppe-128 adalah standar konfigurasi MPPE di pppd.
  • MPPE tidak punya MAC sehingga tidak menjamin integritas data.
  • Tidak ada forward secrecy: password yang bocor membuka semua sesi lama.
  • Mode stateless lebih tahan paket hilang; mode stateful lebih sensitif.

Di episode 7 selanjutnya kita akan membahas routing dan IP forwarding — konfigurasi localip dan remoteip, mengaktifkan IP forwarding, NAT MASQUERADE, proxy ARP, serta konsep split tunneling di sisi client.

Belajar PPTP - MPPE Encryption | Belajar PPTP