Domain fronting bukan VPN: dua nama, satu permintaan
Dua nama dalam satu permintaan HTTPS bukan terowongan. Fronting bergantung pada aturan perutean penyedia; VPN memilih paket mana yang bergerak. Gambarkan keduanya secara terpisah.
Kedua teknik ini diarsipkan bersama karena keduanya melibatkan perantara dan keduanya terdengar seperti penyembunyian. Keduanya bekerja pada objek yang berbeda. Domain fronting membahas nama mana yang muncul di lapisan mana dari satu permintaan HTTPS. VPN membahas paket mana yang menempuh jalur tertentu ke sebuah peer. Menyebut fronting sebagai jenis VPN mengarah pada desain yang tidak dapat bekerja, dan pada tinjauan yang mengajukan pertanyaan yang salah.
Dua nama, dua lapisan
Koneksi TLS dapat membawa nama server dalam handshake-nya. Setelah koneksi ada, permintaan HTTP mengidentifikasi otoritas yang diinginkannya, biasanya pada header Host. Itu dua bidang yang dibaca pada dua momen berbeda oleh dua bagian perangkat lunak berbeda.
| Layer | What carries the name | Who reads it |
|---|---|---|
| TLS handshake | Server name indication | The TLS terminator in front of the service |
| HTTP request | Authority or Host header | The routing layer that picks a backend |
| Network path | Destination address and port | Routers, and the VPN peer if one is in use |
Domain fronting memanfaatkan perbedaan antara keduanya sehingga layanan fronting menerima koneksi lalu merutekan permintaan ke tempat lain. Ini hanya bekerja di tempat layanan itu bersedia merutekannya, yang merupakan soal kebijakan penyedia, bukan trik protokol.
Fronting bergantung pada penyedia, bukan pada tekniknya
Sebagai contoh terbatas, panduan FAQ Front Door dari Azure mendokumentasikan perlindungan terhadap domain fronting. Dokumen itu menjelaskan ketidakcocokan yang diizinkan untuk domain dalam langganan yang sama dan rute yang dikonfigurasi, serta respons 421 Misdirected Request ketika perlindungan ketidakcocokan memblokir permintaan.
Satu kebijakan terdokumentasi itu sekaligus meruntuhkan kedua slogan. Tidak setiap pasangan nama berbeda berfungsi, dan tidak setiap ketidakcocokan dilarang. Layanan lain punya pemeriksaannya sendiri, persyaratan penerapannya sendiri, dan kode kesalahannya sendiri.
Ini juga bukan instruksi untuk melewati batasan jaringan lain. Membaca aturan perutean penyedia untuk memahami apa yang diizinkannya adalah pekerjaan arsitektur; memperlakukan aturan itu sebagai resep penghindaran adalah aktivitas lain dengan konsekuensi lain. Pisahkan kedua aktivitas itu dalam dokumen yang Anda tulis. Yang kedua itulah yang membuat sebuah desain ditolak dalam tinjauan.
Apa yang sebenarnya dipilih VPN
Dalam VPN jaringan, perutean dan kebijakan platform memilih lalu lintas dalam untuk terowongan ke sebuah peer. Bergantung pada penataannya, itu dapat mencakup beberapa aplikasi atau subset tertentu, dan dapat membawa protokol yang sama sekali tidak memiliki permintaan HTTP.
Fronting tidak melakukan semua itu. Mengatur satu permintaan HTTPS melalui layanan fronting tidak memasang rute jaringan privat, tidak membawa aplikasi UDP sembarang, dan tidak membuat setiap program di perangkat memakai layanan itu. Jika Anda membutuhkan cakupan itu, Anda membutuhkan proxy atau terowongan, bukan trik penamaan.
Inilah sebabnya keduanya tertukar dalam tinjauan: keduanya digambarkan sebagai perantara, dan keduanya muncul dalam dokumen tentang akses. Antarmuka yang ditawarkan masing-masing sepenuhnya berbeda, dan hanya salah satunya merupakan jalur jaringan.
Visibilitas bukan biner
Perbandingannya juga bukan sekadar tersembunyi versus terlihat. Kueri DNS, alamat tujuan, fitur handshake, ukuran paket, dan waktu semuanya tetap dapat diamati oleh siapa pun yang berada pada posisi melihatnya, dan apa yang dipelajari pengamat itu bergantung pada di mana ia berada.
Data aplikasi juga terlihat pada titik akhir yang mengakhirinya. Layanan fronting yang merutekan permintaan Anda adalah salah satu titik akhir itu, dan peer VPN adalah yang lain. Tidak ada dari kedua penataan itu yang membuat isi menjadi buram bagi pihak yang harus membacanya untuk melayani Anda.
Gambarkan tiga kotak
Untuk tinjauan arsitektur, gambarkan titik akhir TLS, layanan perutean HTTP, dan aplikasi akhir sebagai tiga kotak terpisah, lalu gambarkan peer VPN mana pun di tempat lain lagi. Tempat yang memilih tujuan web dan tempat yang mengangkut paket jaringan privat tidak harus merupakan sistem yang sama, dan biasanya bukan.
Setelah kotak-kotaknya terpisah, pertanyaannya menjadi terjawab: nama mana yang diterima penyedia ini, protokol mana yang perlu diangkut, dan pihak mana yang dapat melihat apa. Diagram yang menyatukannya menghasilkan desain yang tidak dapat diterapkan siapa pun dan tinjauan yang berdebat soal kosakata.