PowerScan
ID

String User-Agent dan Client Hints: apa yang diungkapkan dan apa yang dibekukan

Fingerprint Browser · 6 menit baca · oleh PowerScan

Foto: Unsplash

String user agent adalah sinyal identifikasi tertua di web dan yang paling banyak berubah dalam beberapa tahun terakhir. Membacanya dengan baik berarti tahu apa yang masih ada di dalamnya, apa yang sengaja dibekukan, dan ke mana detail yang dihapus pergi.

Apa yang dikatakan string itu

String Chromium terkini di Windows terlihat seperti Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Safari/537.36. Token historis (Mozilla/5.0, AppleWebKit, like Gecko, Safari) ada demi kompatibilitas dengan skrip yang ditulis puluhan tahun lalu dan tidak membawa informasi. Bagian yang berguna adalah platform (Windows NT 10.0, bahkan di Windows 11), arsitektur, dan versi mayor browser.

Apa yang dulu ada di sana telah dihapus dengan sengaja. Versi minor dan patch kini 0.0.0. Versi Windows dikunci pada 10.0. String Android tidak lagi menyertakan model perangkat. Inilah "user agent reduction" yang dirilis Chromium antara 2022 dan 2023 justru karena string itu telah menjadi permukaan fingerprinting.

Client Hints: data yang sama, atas permintaan

Detail yang dihapus tidak lenyap; ia pindah ke User-Agent Client Hints. Server dapat meminta bidang tertentu dengan header Accept-CH, dan browser kemudian akan mengirim header seperti Sec-CH-UA-Platform-Version atau Sec-CH-UA-Model pada permintaan berikutnya. Petunjuk berentropi rendah (merek dan versi mayor, platform, penanda seluler) dikirim secara default. Yang berentropi tinggi (versi lengkap, arsitektur, bitness, model, versi platform) hanya dikirim ke situs yang memintanya, dan skrip dapat meminta set yang sama lewat navigator.userAgentData.getHighEntropyValues().

Tujuan desainnya adalah agar situs harus menyatakan apa yang diinginkannya, sehingga pengumpulan menjadi terlihat dan dapat diaudit. Dalam praktik, situs yang ingin melakukan fingerprinting tetap bisa meminta semuanya; bedanya, permintaan itu terlihat oleh browser, yang dapat mencatat atau menolaknya.

Masalah konsistensi

Karena fakta yang sama kini tersedia dari dua sumber, keduanya dapat dibandingkan. Browser yang mengubah string user agent untuk mengaku macOS tetapi membiarkan navigator.userAgentData.platform melaporkan Windows telah menciptakan kontradiksi yang sangat mudah dideteksi. Hal yang sama berlaku untuk properti navigator.platform, font khusus OS yang terlihat oleh halaman, dan string renderer WebGL, yang menyebut driver grafis yang hanya ada di satu sistem operasi. Memalsukan string saja telah menjadi strategi yang kalah selama bertahun-tahun.

Membaca milik Anda sendiri

Diagnostik menunjukkan string mentah, browser dan versi yang diuraikan darinya, serta mesinnya (Blink, Gecko, atau WebKit). Perhatikan bahwa setiap browser di iOS melaporkan WebKit, apa pun mereknya, karena Apple mewajibkannya. Jika nama browser hasil uraian mengejutkan Anda, string itu diubah oleh ekstensi atau pengaturan profil; apakah itu masalah bergantung pada apakah bagian browser lainnya sepakat dengan perubahan tersebut.

Semua artikel · Jalankan pemindaian