WebUSB - 这只是一个在现有 JavaScript API 之上工作的 USB 库吗?

WebUSB - Is this just a USB library that works on top of existing JavaScript APIs?

假设:

我的假设是否正确? 或者,我错过了什么吗?

我问这个问题是因为WebUSB声称它会让USB通信更安全。但是,我想知道如果用户不知道 if/when USB 通信的安全性如何。我的理解是,现在网站可以与 USB 设备对话,而浏览器不必告诉用户这正在发生。

WebUSB 看起来会让事情变得更安全,因为用户会被引导到一个安全的网站,有一个安全的界面等等,但在我看来,它并没有解决恶意软件攻击的巨大问题网站可以在您不知情的情况下访问您的 USB 设备。 我错了吗?

  • 浏览器通常不直接与 HID 设备对话,而是通过操作系统的输入 API 抽象出 HID 和 USB 层,以提供更高级别的事件,例如按下或鼠标移动。对于外来的 HID 设备(例如游戏手柄),可能会有一些例外。尽管如此,浏览器并未对这些设备使用 JavaScript,而是使用本机系统 API.
  • 由于上述 "JavaScript talking to a HID device" 的概念不存在。 JavaScript 确实可以从 HID 设备接收这些高级事件。浏览器不会明确地告诉用户它正在接收它们,因为事件的传递完全在用户控制之下。例如,如果用户在页面处于焦点状态时按下某个键,JavaScript 将仅从用户键盘接收事件。 JavaScript 无法向设备发送数据,只能接收。
  • WebUSB 不是 JavaScript 库,而是网络浏览器提供的 API。

与上面对 HID 的讨论相反,实现 WebUSB 的浏览器(目前只有 Chrome)会在页面连接到 USB 设备时通知用户。首先,有一个权限提示,让用户选择页面是否可以访问以及可以访问哪些设备。其次,只要页面有活动连接,选项卡上就会有一个指示器(类似于指示页面正在播放或录制音频的指示器)。

因此,恶意网站无法在您不知情的情况下访问您的 USB 设备。