Cara meretas Firefox untuk mengatasi masalah tidak didukungnya WebUSB
(github.com/ArcaneNibble)> "Kami tidak butuh WebUSB!"
- Ada cara agar halaman web dapat mengakses perangkat USB tanpa WebUSB. Selain itu, perangkat juga bisa dirancang untuk melewati persyaratan persetujuan pengguna.
Demo cepat
- Muat
u2f-hax.uf2ke Raspberry Pi Pico, lalu muatindex.htmldari localhost atau konteks aman lainnya. - Tombol "On!" dan "Off!" menyalakan/mematikan LED, dan status pin
GP22diperbarui secara berkala di halaman.
Bagaimana ini bisa dilakukan?
- Pico diprogram untuk mengemulasikan dongle U2F (kunci keamanan fisik dua langkah).
- Alih-alih fungsi keamanan, data arbitrer disembunyikan di dalam "key handle" dan tanda tangan pesan
U2F_AUTHENTICATE. - Jika key handle dimulai dengan 0xfeedface, Pico segera "mengonfirmasi" keberadaan pengguna dan mengembalikan data.
Mengapa ini bisa dilakukan?
- Key handle U2F dirancang sebagai bongkahan data buram yang "dimiliki" oleh dongle keamanan.
- Ini dirancang agar dongle berbiaya rendah bisa dikaitkan dengan banyak situs web.
- Dongle secara internal menyimpan kunci kriptografi "master" yang unik, lalu saat pendaftaran membuat dan mengembalikan pasangan kunci publik/pribadi baru.
- Karena key handle diperlakukan sebagai data buram, data arbitrer dapat disembunyikan di dalamnya.
Cara mengembalikan data
- Menyembunyikan data menggunakan tanda tangan ECDSA.
- Tanda tangan terdiri dari dua angka (r, s), dan masing-masing dihitung dalam rentang tertentu.
- Chrome memeriksa apakah angka-angka dalam tanda tangan berada dalam rentang tersebut, tetapi Firefox tidak memeriksanya.
- Untuk melewati validasi default Chrome, byte pertama dari tiap angka diatur ke 0x7f.
Apakah ini kerentanan keamanan?
- Tidak, dan ini tidak memberi akses ke perangkat USB arbitrer.
- Ini hanya berfungsi pada perangkat yang sengaja melanggar aturan.
- Model keamanan perangkat USB di sebagian besar platform memang meragukan.
- Jangan hubungkan perangkat asing yang tidak dikenal secara sembarangan ke komputer Anda.
1 komentar
Komentar Hacker News
Thread ini terutama membahas WebUSB, bukan soal OP. WebUSB adalah hack yang keren
Firefox tidak mendukung komunikasi dengan perangkat USB sembarang. Namun, Firefox mendukung komunikasi USB dengan kunci keamanan U2F
Orang yang menggunakan WebUSB mengatakan itu hebat, sementara yang tidak menggunakannya bingung mengapa itu diperlukan
Menyesuaikan keyboard dengan firmware QMK/Via lewat WebUSB adalah mimpi buruk
USB Serial adalah alat yang hebat, dan sekarang ada daftar alat untuk mengonfigurasi perangkat menggunakan browser
Bagi orang yang sering mem-flash perangkat, keuntungannya jelas. Namun, bagi pengguna umum ini tidak penting
Mungkin lebih baik jika port USB tidak digunakan oleh kode berbasis browser
Mem-flash GrapehenOS ke ponsel Pixel adalah salah satu pengalaman instalasi OS yang paling nyaman dan cepat
Mengenkripsi kunci privat dengan kunci "master", lalu mengembalikan kunci privat terenkripsi sebagai key handle
Ada perdebatan politis terkait WebUSB