Google тестирует новую функцию под названием “Unrestricted WebUSB”, которая позволит доверенным изолированным веб-приложениям обходить ограничения безопасности в API WebUSB.
WebUSB – это JavaScript API, который даёт возможность веб-приложениям взаимодействовать с локальными USB-устройствами на компьютере. Согласно спецификации WebUSB, некоторые классы интерфейсов защищены от доступа веб-приложений, чтобы предотвратить доступ вредоносных скриптов к потенциально чувствительным данным.
К защищённым классам интерфейсов относятся аудио, HID (Human Interface Device), накопители, смарт-карты, видео, аудио/видео устройства и беспроводные контроллеры.
Кроме того, спецификация WebUSB включает блок-лист конкретных USB-устройств, которые не могут быть доступны через API, таких как YubiKey, Google Titan и ключи безопасности Feitian, используемые для многофакторной аутентификации.
Именно на такие случаи Google разрабатывает функцию Unrestricted WebUSB, позволяющую изолированным веб-приложениям получать доступ к этим ограниченным устройствам и интерфейсам.
На платформе Chrome Platform Status компания отметила:“Спецификация WebUSB определяет блок-лист уязвимых устройств и таблицу защищённых классов интерфейсов, доступ к которым заблокирован через WebUSB”.
С этой функцией изолированные веб-приложения с разрешением на использование функции “usb-unrestricted” смогут получить доступ к устройствам из блок-листа и защищённым классам интерфейсов.
Изолированные веб-приложения – это приложения, не размещённые на реальных веб-серверах, а упакованные в Web Bundles, подписанные их разработчиком и распространённые среди конечных пользователей. Обычно они создаются для внутреннего использования компаниями. Для работы этой функции веб-приложения должны иметь разрешение на использование “usb-unrestricted”.
Когда приложение с таким разрешением пытается получить доступ к USB-устройству, система сначала проверяет, находится ли устройство в блок-листе уязвимых устройств. Если да, то устройство обычно удаляется из списка доступных. Однако это ограничение обходится для веб-приложений с разрешением “usb-unrestricted”.
Система также проверяет, находится ли устройство в списке разрешённых устройств приложения. Если нет, доступ отклоняется. Дополнительно производится проверка, является ли доступный интерфейс защищённым. Если да, и у приложения нет разрешения “usb-unrestricted”, доступ отклоняется.
Новая функция Google позволит доверенным изолированным веб-приложениям получить доступ к более широкому спектру USB-устройств, что обеспечит большую функциональность в доверенной среде. Google планирует начать тестирование этой функции в Chrome 128, релиз которого намечен на август 2024 года.