Додайте підтримку WebUSB до Firefox за допомогою спеціального USB -пристрою

Додайте підтримку WebUSB до Firefox за допомогою спеціального USB -пристрою

На базі RP2040 PICO-плата діє як U2F-ключа з Firefox. (Кредит: Arcanenbibble, Github)
На базі RP2040 PICO-плата діє як U2F-ключа з Firefox. (Кредит: Arcanenbibble, Github)

Стандарт WebUSB, безумовно, суперечливий. Багато хто вважає це ризиком безпеки, і, на сьогоднішній день, лише браузери на основі хрому підтримують його. Але існує обхід, яке, за іронією долі, повинна підвищити безпеку. Суміжний стандарт універсального 2 -го фактора (U2F) також додає (обмежену) підтримку USB браузерам. Звичайно, це має на увазі виключно для підтримки USB-ключів U2F для двофакторних цілей аутентифікації, але як [ArcaneNibble] Продемонструє використання прошивки, сумісного з U2F, на Raspberry PI RP2040, виключаючи корисну навантаження U2F, цей API може бути використаний для забезпечення функціональності, подібної до WebUSB.

Надана демонстрація передбачає миготіння RP2040 (наприклад, Pico Board) з u2f-hax.u2f прошивка та завантаження index.html Сторінка від LocalHost або подібного безпечного контексту. Після цього кнопки на сторінці браузера можуть бути використані для перемикання світлодіодів на платі PICO ввімкнено або вимкнено. Ви також можете прочитати вхід назад з RP2040.

Цей подвиг став можливим завдяки непрозорому характеру ручки ключа U2F, а це означає, що в цій крапці можна поставити все, що завгодно. Це робить швидке передання даних з U2F -ключа до хоста. Для зворотного, речі стають трохи складнішими. Тут підпис ECDSA маніпулюється всередині ASN.1, який повертається до ключа. Оскільки Firefox не виконує перевірки підписів (і Chrome лише перевіряє діапазон), це працює. MCU також Auto-Confirms присутність користувача, почавши ручку ключа 0xfeedfaceтому пристрій працює без взаємодії користувачів. Однак ви, здається, отримуєте дратівливе спливаюче вікно, яке негайно проходить.

Звичайно, це працює лише в тому випадку, якщо ви створите для цього спеціальний USB -пристрій. Це означає, що ваші звичайні USB -пристрої все ще захищені. Хоча ми знаємо, що це може бути ризиком безпеки, ви можете зробити цікаві речі з WebUSB. Ми бачили кілька проектів, які його використовують.