Cara Kerja Browser Antideteksi: Penjelasan Teknis Lengkap

Permukaan fingerprint, pembuatan identitas yang koheren, isolasi penyimpanan di disk, perutean per profil, dan batas-batas jujur dari seluruh pendekatan ini.
Browser antideteksi mengerjakan empat tugas. Ia menyimpan data penjelajahan tiap profil secara terpisah, mengendalikan identitas perangkat yang dilaporkan setiap profil, merutekan lalu lintas tiap profil secara mandiri, dan menjaga ketiganya tetap konsisten dari waktu ke waktu. Artikel ini menelusuri cara tiap tugas dikerjakan, pada tingkat mekanisme, dan ditutup dengan hal-hal yang tidak bisa dilakukan pendekatan ini.
Permukaan fingerprint
Mulailah dari apa yang bisa dibaca sebuah halaman, karena semua hal lain adalah tanggapan terhadapnya. Skrip di situs web mana pun bisa mengajukan pertanyaan kepada browser, dan jawabannya menggambarkan mesin tersebut. Permukaan-permukaan itu terkelompok secara alami.
| Permukaan | Yang dibaca halaman |
|---|---|
| Navigator | Nama dan versi browser, platform, daftar bahasa, jumlah prosesor dan memori yang dilaporkan, dukungan sentuh |
| Layar | Lebar, tinggi, area kerja yang tersedia, kedalaman warna, rasio piksel perangkat |
| Canvas | Piksel persis hasil menggambar teks dan bentuk di luar layar, di-hash menjadi nilai yang stabil |
| WebGL | String vendor dan renderer grafis, ditambah hash dari adegan yang dirender |
| Audio | Keluaran osilator yang dijalankan melalui graf pemrosesan audio, yang bervariasi menurut stack |
| Font | Jenis huruf yang terpasang, disimpulkan dari pengukuran teks |
| Zona waktu dan jam | Zona dan offset yang dilaporkan, dibandingkan dengan asal datangnya lalu lintas |
| Jaringan | Alamat itu sendiri, pandangan WebRTC tentang kandidat koneksi, dan bentuk handshake TLS |
Tidak ada satu baris pun yang mengidentifikasi sebuah mesin. Kombinasinyalah yang melakukannya, dan kombinasi itu juga tempat kebohongan tertangkap: nilai-nilai yang mustahil berasal dari satu mesin nyata adalah sinyal yang lebih keras daripada nilai tunggal mana pun.
Pengumpulannya murah dan senyap. Setiap nilai dalam tabel tersedia bagi halaman mana pun melalui API yang terdokumentasi, tanpa permintaan izin, dan sebagian besarnya tiba dalam detik pertama kunjungan. Apa pun posisi Anda terhadap praktik ini, itu adalah fakta tetap dari web modern, dan itulah garis dasar yang dijadikan acuan rekayasa browser antideteksi.
Bagaimana identitas yang koheren dibuat
Pendekatan naif adalah mencegat tiap pertanyaan dan mengacak jawabannya. Pendekatan itu gagal karena alasan struktural. Jawaban-jawabannya menggambarkan satu mesin, sehingga saling berkorelasi, dan jawaban acak yang independen merusak korelasi itu. User agent Windows bersama font yang hanya ada di macOS, ukuran layar yang belum pernah dipakai laptop mana pun, string grafis yang tidak pernah hidup berdampingan dengan platform yang diklaim: masing-masing adalah kontradiksi yang bisa diuji pemeriksa dengan murah.
Maka browser antideteksi yang berfungsi membuat identitas sebagai satu set. Ia berangkat dari kelas mesin nyata yang umum dan menurunkan setiap nilai dari pilihan itu. Platform menentukan daftar font, string grafis, dan dukungan sentuh yang masuk akal. Layar diambil dari ukuran yang memang dipakai kelas mesin tersebut. Bahasa dan zona waktu berasal dari wilayah yang dituju profil. Nilai-nilai itu saling cocok karena dipilih bersamaan, dari satu deskripsi tentang satu mesin.
Sifat kedua sama pentingnya: set itu disimpan. Ia ditulis ke dalam profil saat profil dibuat, dan setiap sesi melaporkan nilai yang sama, karena perangkat yang berubah antarkunjungan menggambarkan perangkat keras yang tidak dimiliki siapa pun. Kestabilan adalah sebagian besar dari makna masuk akal.
Isolasi penyimpanan di disk
Tugas penyimpanan adalah yang paling tidak glamor dan paling mutlak. Setiap profil memiliki satu direktori, dan semua yang disimpan browser berada di dalamnya: basis data cookie, Local Storage, IndexedDB, cache HTTP, registrasi service worker, state ekstensi, riwayat, dan kredensial tersimpan. Dua profil berarti dua direktori yang terpisah sepenuhnya, dan setiap browser yang berjalan diarahkan ke direktorinya sendiri.
Keterpisahan penuh adalah sifat yang perlu diperiksa, karena isolasi parsial gagal secara diam-diam. Cookie mudah dipisahkan. Cache dapat mengidentifikasi browser yang kembali melalui sumber daya yang disimpannya. Service worker dapat menyimpan pengenal dan terus berjalan di antara kunjungan. IndexedDB adalah tempat aplikasi modern menyimpan catatan yang benar-benar mereka percayai. Isolasi yang mencakup penyimpanan yang terkenal tetapi berbagi penyimpanan lainnya baru mengisolasi bagian yang terlihat dari masalahnya.
Persistensi adalah separuh lainnya. Sesi mengumpulkan nilai: pemeriksaan keamanan yang selesai, riwayat login yang mapan, bentuk pengunjung yang kembali. Profil mempertahankan direktorinya antarsesi, dan itulah yang membuat kerja akun mungkin dilakukan. Penulisan saat penutupan membuat direktori itu tahan lama, itulah sebabnya mematikan proses profil di tengah sesi bisa menghilangkan sesi yang baru saja dibangunnya.
Perutean jaringan
Setiap profil membawa rutenya sendiri, diterapkan saat browsernya dimulai, sehingga lalu lintas keluar melalui proxy profil itu tanpa menyentuh pengaturan sistem atau rute profil lain.
- Proxy dipasang per profil, bukan per mesin. Browser biasa memakai proxy sistem. Di sini, setiap profil yang berjalan terhubung melalui endpoint-nya sendiri.
- Resolusi nama juga melewati rute, karena permintaan yang tiba dari satu negara sementara pencarian namanya tiba dari negara lain adalah kontradiksi di lapisan jaringan.
- WebRTC dibatasi agar sesuai dengan rute. Jika dibiarkan, ia dapat memunculkan kandidat koneksi yang tidak pernah disentuh proxy.
- Zona waktu dan bahasa disesuaikan dengan negara rute, karena alamat adalah satu-satunya nilai yang tidak bisa dibuat, sehingga bagian cerita lainnya harus selaras dengannya.
Rute juga merupakan komponen yang paling layak diverifikasi secara independen, karena dibeli dari pihak ketiga. Menguji sebuah endpoint sebelum menetapkannya, dan membaca kembali alamat yang teramati alih-alih yang diiklankan, menangkap kegagalan selagi masih berupa masalah konfigurasi dan belum menjadi masalah akun.
Apa yang diubah browser itu sendiri
Ada dua tempat sebuah alat dapat mengubah jawaban yang diterima halaman, dan perbedaan di antara keduanya adalah persimpangan paling teknis dalam topik ini.
| Pendekatan | Cara kerja | Kelemahan |
|---|---|---|
| Injeksi skrip | Ekstensi atau skrip yang disuntikkan menimpa fungsi yang dipanggil halaman, sehingga pembacaan canvas dan pencarian navigator mengembalikan nilai pengganti | Penimpaan itu sendiri terlihat. Fungsi yang ditambal bisa dikenali sebagai ditambal, dan permukaan apa pun yang terlewat oleh injektor tetap menjawab dengan nilai asli |
| Di dalam kode browser itu sendiri | Implementasi browser menjawab dengan nilai tersimpan milik profil, di jalur kode tempat nilai asli dihasilkan | Jauh lebih banyak pekerjaan untuk dibangun dan dipelihara, itulah yang membedakan alat yang dibuat khusus dari ekstensi |
Pendekatan injeksi adalah titik awal kategori ini, dan batas atasnya sudah dipahami dengan baik: halaman dapat memeriksa apakah fungsi bawaan masih tampak bawaan, dan dapat mencapai permukaan yang sama lewat jalur yang tidak tercakup injeksi. Karena itu browser antideteksi yang dibuat khusus melakukan perubahan di dalam browser itu sendiri, sehingga identitas tersimpan adalah yang dilaporkan implementasi melalui setiap jalur yang membacanya.
Apa yang sebenarnya dilakukan saat profil dibuka
- Identitas tersimpan dimuat: satu set nilai perangkat yang koheren, set yang sama seperti terakhir kali.
- Browser dimulai terhadap direktori milik profil itu sendiri, sehingga setiap penyimpanan persisten adalah milik profil.
- Rute diterapkan: proxy, resolusi nama melaluinya, WebRTC yang dibatasi padanya.
- Sesi berjalan, mengumpulkan state di dalam direktori.
- Saat ditutup, state ditulis keluar, sehingga pembukaan berikutnya melanjutkan perangkat, penyimpanan, dan rute yang sama.
Setiap bagian daftar itu bisa diperiksa dari luar. Buka halaman uji fingerprint dua kali dan bandingkan nilainya antarpembukaan. Lihat direktori profil di disk. Baca kembali alamat yang teramati. Alat dalam kategori ini seharusnya mengundang pemeriksaan semacam itu, karena mekanismenya adalah produknya.
Batas-batas yang jujur
Pendekatan ini punya tepi, dan mengetahuinya adalah bagian dari menggunakannya dengan cakap.
- Ia tidak bisa membuat browser mustahil diidentifikasi, dan tidak ada yang bisa mengukur klaim semacam itu. Target yang realistis adalah profil yang terbaca sebagai mesin biasa yang konsisten secara internal dan tetap stabil.
- Ia tidak bisa memperbaiki kontradiksi yang Anda buat sendiri. Rute di satu negara dengan zona waktu di negara lain adalah kesalahan konfigurasi, dan alat hanya bisa membuat konfigurasi yang benar menjadi yang termudah.
- Ia tidak mencakup perilaku. Waktu, volume, dan ritme dibaca bersama lingkungan, dan sekumpulan akun yang bertindak serempak mengidentifikasi dirinya sendiri sebersih apa pun tiap lingkungannya.
- Ia tidak mencakup identitas yang dideklarasikan. Data pemulihan yang sama, instrumen pembayaran yang sama, dan teks yang dipakai ulang menghubungkan akun melalui catatan platform itu sendiri, jauh di atas browser.
- Ia tidak mengubah aturan platform. Isolasi memisahkan lingkungan yang sah. Apa yang diizinkan platform adalah keputusan platform, dan tidak ada hasil di platform yang tidak kami kendalikan yang dijanjikan di sini.
Bacalah batas-batas ini sebagai definisi, bukan kekecewaan. Browser antideteksi adalah instrumen konsistensi: penyimpanan terpisah, identitas yang stabil dan masuk akal, rute yang cocok, dipegang bersama per profil dan diulang identik setiap kali dibuka. Itulah seluruh mekanismenya, dan semua yang lain yang ditulis tentang kategori ini hanyalah variasi darinya.

