- Terungkap bahwa layanan WiFi perpesanan gratis di dalam pesawat milik British Airways sebenarnya mengizinkan akses internet terbatas melalui pemfilteran berbasis domain tertentu
- Penulis berhasil mengakses situs web biasa dengan memanipulasi field TLS SNI (Server Name Indication) agar sistem maskapai menganggapnya sebagai lalu lintas perpesanan
- Untuk itu, ia mengatur
wa.me (domain WhatsApp) sebagai SNI, lalu mengalihkan lalu lintas menggunakan proxy HTTPS dan stunnel
- Hasil eksperimen menunjukkan situs berbasis teks (seperti Hacker News) dapat dimuat normal, tetapi gambar atau konten berukuran besar dikirim lambat karena pembatasan bandwidth
- Kasus ini menunjukkan kelemahan pemfilteran berbasis TLS SNI serta perlunya teknologi ECH (Encrypted Client Hello) untuk melengkapinya
Cara kerja WiFi perpesanan gratis
- British Airways menyediakan WiFi gratis khusus perpesanan untuk anggota “The British Airways Club”
- Pendaftaran dapat dilakukan di portal dalam pesawat tanpa verifikasi email; WhatsApp, Signal, dan WeChat berfungsi, tetapi Discord diblokir
- Penulis mempertanyakan bagaimana layanan ini hanya mengizinkan aplikasi perpesanan
- Ia menyimpulkan bahwa ini bukan sekadar pembatasan lalu lintas sederhana, melainkan whitelist domain berbasis field TLS SNI
- Hasil analisis Wireshark menunjukkan bahwa saat mengakses
example.com, terjadi TCP reset setelah Client Hello
- Ini berarti domain yang tidak diizinkan diblokir menggunakan nilai SNI yang terekspos selama TLS handshake
Prinsip pemfilteran berbasis SNI
- TLS SNI mengirimkan nama domain tujuan dalam bentuk plaintext pada tahap sebelum enkripsi
- Dengan begitu, ISP atau pengelola jaringan dapat melihat situs apa yang diakses pengguna
- British Airways mendaftarkan hanya domain yang terkait dengan aplikasi perpesanan ke dalam whitelist, lalu mereset koneksi lain
- Penulis juga memastikan bahwa koneksi IP langsung tanpa SNI (
openssl s_client -connect) ikut diblokir
- Artinya, ketiadaan SNI itu sendiri dianggap sebagai lalu lintas tidak normal
Eksperimen manipulasi SNI
- Penulis mencoba koneksi TLS dengan
wa.me (domain WhatsApp) sebagai SNI
- Sertifikat server bukan untuk
wa.me, tetapi koneksi tetap dapat dilakukan jika klien mengabaikan ketidakcocokan sertifikat
- Akibatnya, sistem BA salah mengenalinya sebagai lalu lintas perpesanan dan mengizinkan tunnel TLS
- Setelah itu, ia menulis permintaan HTTP secara langsung dan berhasil menerima konten dari servernya sendiri (
saxrag.com)
- Eksperimen ini membuktikan bahwa selama field SNI bisa dikelabui, lalu lintas arbitrer dapat dikirimkan
Bypass penuh menggunakan proxy HTTPS
- Penulis membangun server proxy HTTPS menggunakan
tinyproxy dan stunnel
stunnel menambahkan lapisan TLS agar terlihat seolah klien terhubung ke wa.me
- Pada perintah
curl, ia menggunakan opsi --resolve untuk memetakan wa.me ke IP VPS miliknya
- Dengan cara ini, SNI tetap disetel ke
wa.me, tetapi koneksi sebenarnya terjadi ke server pribadi
- Galat sertifikat TLS diabaikan dengan
--proxy-insecure, sehingga permintaan eksternal melalui proxy berhasil
- Saat meminta
ifconfig.co, IP VPS dikembalikan, yang menegaskan bahwa proxy bekerja
Pengujian saat penerbangan nyata
- Pada penerbangan pulang, ia tersambung ke WiFi dengan konfigurasi yang sama dan menerima respons HTTP 200 yang normal melalui
curl
- Setelah itu ia mengatur proxy HTTPS di browser (Chromium) dan mendaftarkan
wa.me di file hosts
- Hasilnya, situs Hacker News berhasil diakses, dan halaman berbasis teks dimuat normal
- Di Wireshark, dekripsi TLS juga dikonfirmasi menggunakan SSLKEYLOGFILE
- Gambar atau konten besar termuat sangat lambat per baris, yang mengindikasikan adanya pembatasan bandwidth
- Ini menyiratkan bahwa BA menerapkan pembatasan kecepatan lalu lintas selain pemeriksaan SNI
Eksperimen ECH (Encrypted Client Hello)
- Penulis juga menguji langsung teknologi ECH untuk mengatasi masalah keterpaparan TLS SNI
- Ia membuat ECHConfig dengan
wa.me sebagai public_name lalu menerapkannya di Firefox
- Hasilnya, SNI luar tetap
wa.me, tetapi ClientHello internal memuat domain sebenarnya (rfc5746.mywaifu.best)
- Koneksi TLS normal pun berhasil dibuat dengan sertifikat Let’s Encrypt
- Menariknya, ini juga berfungsi pada port non-standar (7443) dan melewati pemfilteran British Airways
- Penulis menduga ECHConfig mungkin dikirim melalui DNS-over-HTTPS (DoH)
Keterbatasan SNI dan implikasi keamanan
- Pada dasarnya, SNI hanyalah informasi setingkat “petunjuk” untuk memilih sertifikat server
- Dalam lingkungan di mana klien dan server sama-sama dapat dikendalikan, nilai SNI arbitrer bisa disisipkan
- Ini berarti sistem sensor atau solusi deteksi ancaman dapat mengalami false positive bila terlalu bergantung pada pemfilteran berbasis SNI
- Pembuat malware juga dapat menggunakan SNI yang menyamar sebagai domain tidak berbahaya saat terhubung ke server C&C
- Karena itu, kebijakan keamanan jaringan memerlukan analisis lalu lintas tambahan di luar SNI serta verifikasi lapisan enkripsi
Kesimpulan
- WiFi gratis British Airways hanya mengizinkan lalu lintas perpesanan melalui pemfilteran domain berbasis SNI dan pembatasan bandwidth
- Namun, eksperimen ini membuktikan bahwa melalui manipulasi SNI, lalu lintas HTTPS arbitrer dapat disamarkan sebagai perpesanan
- Kasus ini menunjukkan keterbatasan struktural dalam desain TLS dan menegaskan perlunya adopsi ECH
- Operator jaringan dan penanggung jawab keamanan perlu menyadari kerentanan pemfilteran yang bergantung pada SNI
- Secara teknis ini adalah contoh bypass yang menarik, tetapi juga merupakan studi yang harus disertai pertimbangan keamanan dan etika
1 komentar
Komentar Hacker News
Beberapa maskapai (mungkin American Airlines) memakai firewall Fortinet, jadi bukan cuma melihat SNI secara sederhana, tetapi juga memverifikasi hostname dan certificate authority dari sertifikat server
Dia melewati ini dengan memakai SNI aa.com dan meneruskan TLS 1.2 handshake milik aa.com yang asli apa adanya
Setelah masuk ke tahap data terenkripsi, handshake itu diabaikan dan koneksi dipakai begitu saja sebagai tunnel terenkripsi biasa
Sekarang, kalau memakai TLS 1.3, sertifikatnya terenkripsi sehingga firewall tidak bisa melihat isinya, jadi masalah seperti ini bisa dihindari
Jika request yang cocok dengan SNI tertentu masuk tanpa secret key, seluruh SSL handshake diproksikan ke website umpan
Jika tidak, ia bertindak sebagai proxy biasa yang menyamar sebagai traffic SSL
Awalnya dibuat untuk melewati GFW (Great Firewall) di Tiongkok, tetapi katanya ketika temannya mengatur Google Analytics sebagai SNI, itu juga berhasil pada firewall Wi‑Fi dalam penerbangan American
Wi‑Fi dan aplikasinya gratis dipakai, tetapi sebagian besar traffic diblokir
Dari Wireshark terlihat hanya beberapa paket awal koneksi TCP yang diizinkan, lalu setelah itu ClientHello diperiksa dan hanya domain whitelist yang dilewatkan
Aplikasi kapal pesiarnya tetap berjalan karena domain perusahaan ada di whitelist
Celah seperti ini sebaiknya dipakai diam-diam saja, jangan terlalu dieksploitasi. Sayang kalau jadi ditutup karena terlalu ramai diketahui
Meskipun harga perangkat dan biayanya mahal, itu tetap sepadan sebagai semacam ‘deklarasi kemerdekaan’ dari perusahaan kapal pesiar
Sekarang captive portal memang hampir selalu memblokir traffic eksternal, tetapi masih banyak tempat yang tetap rapuh
Saya merekomendasikan SoftEther — berkat fitur Azure Relay, ia bekerja sangat baik bahkan di jaringan yang memakai whitelist
Saya sendiri belum sampai memakai iodine untuk komunikasi DNS dua arah, tetapi walau lambat sepertinya tetap akan berhasil di sebagian besar kasus
Kalau proses pembayarannya diulang-ulang untuk terus dimulai, itu bisa dipakai untuk melewatinya
Awalnya lambat karena harus mencoba banyak port, tetapi tingkat keberhasilannya mengejutkan tingginya
Namun sekarang sering kali hanya traffic DNS yang diizinkan, sementara resolver sembarang diblokir
Kalau ada yang bisa membuat VPN TCP-over-WhatsApp, itu akan sangat keren
Bukan DNS, tetapi HTTP(S) yang saya jalankan lewat tunneling UDP, dan saya cukup bangga ketika berhasil menyiapkannya dalam batas gratis Wi‑Fi 30 menit di Bandara Stansted
Saya menyebutkan kerentanan serius pada websitenya, tetapi mereka menanggapinya enteng dengan bilang, “kalau itu penting, nanti akan ketahuan di pentest”
Kami berpisah tanpa kesan yang terlalu baik satu sama lain
Keamanan Wi‑Fi dalam penerbangan pada dasarnya cuma alat untuk menghasilkan uang, terpisah dari keamanan perusahaan itu sendiri
Banyak perusahaan mengira keamanan sudah beres hanya karena melakukan pentest tahunan, sementara engineer yang benar-benar memahami produknya justru tidak mendapat persetujuan investasi
Industri teknologi adalah bidang dengan penghasilan tinggi, jadi menurut saya biaya Wi‑Fi seperti ini seharusnya dibayar saja
Ini alat untuk mem-proxy traffic melalui node lain, saya implementasikan sendiri untuk memahami jaringan
Tujuannya juga untuk melewati undang-undang verifikasi usia di Inggris
Link GitHub
Saya suka waktu singkat ketika benar-benar terputus dari dunia. Jadi saya tidak terlalu senang jika semua orang akhirnya memakai Wi‑Fi gratis
Kalau Anda tidak mau, ya tinggal tidak perlu terhubung. Orang lain memakainya tidak memengaruhi Anda
Saya menyalakan paket pesan gratis dan sedang memakai tunnel WireGuard, jadi sepertinya firewall-nya tidak dirancang untuk memblokir dengan sempurna
Saya pernah mencobanya dulu, tetapi setahu saya tidak berhasil