为没有屏幕的设备设置家庭 Wi-Fi 访问

物联网 安全 无线上网
2021-06-18 02:56:04

我正在构建一个没有屏幕的连接设备,需要连接到家庭 Wi-Fi。WPS 不是一个选项。除了 Wi-Fi 硬件外,该设备还将具有蓝牙模块。二维码也可以。

我还在构建一个 iOS 应用程序来引导用户完成设置设备的步骤并授予它访问 Wifi 设置的权限。有人可以帮助提供有关最佳通信协议的技术细节以用于:

  1. 让设备与应用程序连接,以便用户可以使用应用程序设置设备

  2. 使用该应用程序作为设备的屏幕,从可用的 SSID 中进行选择,输入密码并连接到家庭 Wi-Fi

我考虑了以下两种选择:

  1. 使用 BLE 将 iOS 应用程序与设备连接,然后使用 BLE 在设备和应用程序之间传递 Wi-Fi SSID 列表、登录凭据。

  2. 仅使用 Wi-Fi 连接设备并在设备和应用程序之间传递 Wi-Fi SSID 列表、登录凭据

他们在用户体验、可靠性(在第一次尝试中完成)和工作量(较低的构建工作量)方面如何进行比较?

1个回答

无线上网

如果您使用的是 Wi-Fi,您将使用手机连接到设备设置的某种接入点,传递必要的信息并将您的设备(和您的手机)重新连接回您真正想要的 Wi-Fi将它们连接到。

如果您使用 Wi-Fi,则没有真正的解决方法。输入您的家庭 Wi-Fi 的信息是应用程序用户体验,对于这个问题有点离题。1 那么让我们关注如何首先建立设备的接入点,然后以最舒适、最安全的方式连接到它?

建立接入点

  • 接入点只有在恢复出厂设置后才可用。(您的设备是否恢复出厂设置?)
  • 有一个进入接入点模式的物理按钮。
  • 您有一些无线方式来触发接入点模式。(从安全的角度来看,这是不可取的。)

初始接入点凭据

  • 没有了。(您可以想象安全审查。)
  • 它们印在设备的手册中,并且对于您的每台设备都是相同的。(好吧,如果接入点的活动时间足够短。)
  • 它们印在设备的手册中,并且因您的每个设备而异。(更好,但确实需要一些生产工作。)
  • 它们以二维码方式(或其他智能设备相机可读方式)打印在您的设备上或手册中。(和上面一样只是更舒服。)

我提到手册是因为即使你的设备有二维码,也不是每台设备都有足够的空间来放置二维码。设计师也很讨厌二维码。另一方面,手册往往会被扔掉。

低功耗蓝牙

老实说,我不喜欢 BLE 配对过程,因为它可以很容易地以通常使用的方式收听。(参见Security.SE 上的这个问题有关 BLE 安全性的博客此白皮书此处此处有关 BLE 安全性的更多信息)。该协议提供了一些更安全的模式,但那些至少只适用于 BLE 4.2这减少了兼容的智能设备以及实现安全配对的所有额外开发工作。甚至可以看看 BLE 5,但如果您使用新的安全功能,您可能会用完兼容的设备。我对您的设备的理解是,它在正常操作中不使用 BLE,这意味着您可以将大量开发工作用于投资于 BLE 安全性的其他内容。

不过,使用 BLE 通常比连接到 Wi-Fi 接入点更舒适。老实说,在我的项目中,由于这些和其他原因,蓝牙几乎总是被排除在外。从成本和安全的角度来看,拥有一个您的实际用例不需要的界面并没有多大用处。另一个大的缺点是要向用户解释为什么你在你刚刚设置好 BLE 之后还需要设置 Wi-Fi。那是用户体验地狱。

声光

基本上,您可以使用设备具有传感器的所有东西来传输凭据。如果您的设备有摄像头,您可以通过智能手机 LED 显示您的 Wi-Fi 密码,或者如果您有麦克风,则使用声音编码(最好不在非人类听觉范围内)传输它。不要在设置过程中单独包含这些组件。人们发现在不应该具有这些功能的东西中找到麦克风或摄像头真的很令人毛骨悚然。

一些一般性建议:

  • 想想您的设备何时接受 Wi-Fi 凭据
  • 保持时间短
  • 在此时间跨度内为用户提供可识别的触发器
  • 用户对凭据传输的困扰越少越好。

1 应用程序很棘手,因为读取当前 Wi-Fi 的 Wi-Fi 密码有点困难,这可能是您要传输到设备的一组凭据。这就是让 UX 通常非常痛苦的原因,而在 iOS 上则更加痛苦,因为您甚至无法轻松获取 Wi-Fi 列表。Android 可让您获得更多信息,以便日后传递。但这是每个人都在与之抗争的另一种用户体验。