Seorang pengembang telah mendemonstrasikan cara untuk melewati pembatasan WebUSB di Firefox dengan mengemulasi kunci keamanan U2F, memicu perdebatan baru tentang kemampuan akses perangkat keras browser. Bukti konsep ini menunjukkan bagaimana Raspberry Pi Pico dapat diprogram untuk berkomunikasi dengan halaman web melalui Firefox meskipun browser tersebut tidak mendukung WebUSB, menyoroti keseimbangan kompleks antara fungsionalitas dan keamanan dalam browser modern.
Peretasan ini bekerja dengan memanfaatkan fakta bahwa meskipun Firefox tidak mendukung WebUSB, browser ini mendukung kunci keamanan U2F. Dengan memprogram mikrokontroler untuk berpura-pura menjadi kunci keamanan dan menyelundupkan data arbitrer melalui bidang handle kunci dan tanda tangan dari pesan autentikasi U2F, pengembang menciptakan saluran komunikasi tersembunyi. Ini memungkinkan situs web untuk mengontrol perangkat keras seperti LED pada perangkat tanpa memerlukan dukungan WebUSB secara eksplisit.
Perbedaan WebUSB: Chrome vs. Firefox dan Safari
Komentar-komentar mengungkapkan perpecahan mendalam di komunitas teknologi mengenai dukungan WebUSB. Chrome (dan browser berbasis Chromium) mendukung WebUSB, sementara Firefox dan Safari secara sengaja memilih untuk tidak mengimplementasikannya. Ini bukan hanya perbedaan teknis tetapi mencerminkan ketidaksepakatan filosofis fundamental tentang model keamanan browser.
Mozilla dan Apple telah menolak WebUSB dengan alasan privasi dan keamanan, berpendapat bahwa perangkat USB tidak dirancang untuk menangani interaksi yang berpotensi berbahaya dan bahwa persetujuan pengguna yang bermakna sulit didapatkan. Pendekatan Google adalah mengimplementasikan fitur dengan prompt izin dan daftar blokir perangkat, terutama untuk perangkat yang sensitif terhadap keamanan seperti kunci FIDO/U2F.
Dukungan WebUSB oleh Browser Utama
- Chrome/Chromium: Didukung sepenuhnya
- Firefox: Tidak didukung (masalah keamanan dan privasi)
- Safari: Tidak didukung (masalah keamanan dan privasi)
Kasus Penggunaan WebUSB yang Umum Disebutkan
- Memflash firmware ke ESP32 dan mikrokontroler lainnya
- Mengkonfigurasi keyboard yang dapat diprogram
- Memperbarui perangkat keras seperti kontroler Stadia
- Mengelola printer label
- Mendukung perangkat keras khusus seperti perekam MiniDisc
Masalah Keamanan
- Perangkat USB tidak dirancang untuk input yang berpotensi berbahaya
- Kesulitan mendapatkan persetujuan pengguna yang berarti
- Potensi untuk fingerprinting perangkat
- Kemiripan antara prompt WebUSB dan prompt kunci keamanan
- Risiko serangan phishing melalui kebingungan izin
Kasus Penggunaan Dunia Nyata vs. Kekhawatiran Keamanan
Bagi banyak pengembang dan penghobi, WebUSB menawarkan manfaat praktis yang signifikan. Ini memungkinkan konfigurasi keyboard berbasis browser, flashing firmware ke mikrokontroler seperti ESP32, dan pemrograman perangkat tanpa menginstal perangkat lunak khusus platform. Pengguna fitur-fitur ini menggambarkan pengalaman tersebut sebagai ajaib dibandingkan dengan metode tradisional yang memerlukan aplikasi native.
Namun, para ahli keamanan memperingatkan tentang potensi risiko mengekspos perangkat USB ke situs web. Protokol USB tidak dirancang dengan mempertimbangkan keamanan web, dan banyak perangkat tidak memiliki perlindungan terhadap input berbahaya. Ada juga kekhawatiran tentang fingerprinting dan pelacakan melalui pengidentifikasi perangkat USB.
Semua orang menyukai fakta bahwa browser adalah sandbox yang aman, memungkinkan pengguna menjalankan kode yang tidak tepercaya. Saya tidak mengerti mengapa orang ingin membuat begitu banyak lubang di sandbox.
Pertanyaan yang Lebih Luas: Apa yang Seharusnya Dilakukan Browser?
Perdebatan ini menyentuh pertanyaan mendasar tentang peran browser web. Haruskah mereka menjadi penampil dokumen minimal dengan kemampuan terbatas, atau haruskah mereka berkembang menjadi platform aplikasi komprehensif dengan akses ke sumber daya sistem?
Banyak komentator mencatat bahwa alternatif untuk WebUSB sering kali adalah mengunduh dan menginstal aplikasi native, yang biasanya memiliki akses sistem yang lebih luas dan pembatasan keamanan yang lebih sedikit daripada browser. Yang lain menunjukkan bahwa pengguna rata-rata memiliki sedikit kebutuhan untuk fungsionalitas WebUSB, membuat risiko keamanan tambahan dipertanyakan untuk populasi yang lebih luas.
Diskusi ini juga menyoroti tantangan merancang sistem izin yang memberikan persetujuan yang bermakna. Banyak pengguna mengklik prompt izin tanpa sepenuhnya memahami implikasinya, terutama ketika prompt tersebut terlihat mirip dengan permintaan autentikasi yang sah.
Seiring browser terus berkembang, ketegangan antara memperluas kemampuan dan mempertahankan keamanan kemungkinan akan tetap menjadi pusat pengembangan platform web. Hack kreatif yang ditunjukkan dalam artikel ini menunjukkan baik kecerdikan pengembang maupun pertimbangan keamanan kompleks yang harus dinavigasi oleh vendor browser.
Referensi: Update: Hi HN et al.!