如何正确保护 IoT 设备的 WiFi 设置过程?

信息安全 tls 无线上网 http 嵌入式系统 物联网
2021-08-27 07:07:33

我的公司开发了一款连接 WiFi 的物联网产品。我想确保将用户的 WiFi 凭据输入设备的过程尽可能安全。目前,该产品处于原型阶段,因此我们可以(并且将)在它投放市场之前进行进一步的更改。

目前,流程如下:

  1. 该设备会创建自己的 WiFi 热点。此热点的凭据打印在设备本身的标签上。
  2. 用户访问某个 URL(由产品上的嵌入式 Web 服务器提供的网页,使用纯 HTTP)
  3. 用户在该页面上的表单中输入他的 WiFi 凭据
  4. 设备保存这些凭据并使用它们连接到用户的 WiFi

公司里的几个人认为这是安全的。攻击者需要进入热点以嗅探用户的 WiFi 凭据。

我不同意,因为我认为进入 WiFi 是一个相当低的障碍。攻击者可能在访问期间瞥了一眼标签上的凭据,强行进入 WiFi 热点或利用 WiFi 热点身份验证中的弱点(并非闻所未闻)。我建议将过程更改为如下所示:

  1. 该公司创建一个自签名 SSL 根证书。
  2. 我们使用此根证书来签署每个销售产品独有的单独证书。产品的证书和私钥在制造过程中嵌入闪存中。
  3. 用户访问我们的网站并下载我们的根证书并将其安装到他的操作系统中。
  4. 该设备会创建自己的 WiFi 热点。此热点的凭据打印在设备本身的标签上。
  5. 用户访问某个 URL(由产品上的嵌入式 Web 服务器提供的网页,使用 HTTPS 和设备的唯一证书。浏览器信任该证书,因为我们安装了根证书。)
  6. 用户将他的 WiFi 凭据输入到该页面上的表单中。信息通过 TLS 加密通道发送到设备。
  7. 设备保存这些凭据并使用它们连接到用户的 WiFi

我认为这个过程是非常安全的。但它带来了其他问题:

  • 我们如何更新设备的证书?可能,但非常麻烦且费力。
  • 用户必须手动安装证书。这对用户不是很友好,即使我们提供了非常详细的说明,技术娴熟的用户也可能无法正确执行此操作。

我的问题:

  1. 建议的流程对于物联网产品是否足够安全(将其想象为某种智能电表来测量您的用电量)?
  2. 有什么方法可以改善流程的用户体验(例如绕过安装我们的证书的需要)?
  3. 有没有什么方法可以为我们改进实现复杂性的过程(不影响用户的安全性)?
  4. 是否有其他方法可以将 WiFi 凭据获取到我们的设备上?我们不能使用蓝牙,设备既没有屏幕也没有键盘。
1个回答

回答这个问题让我想起了我回答的关于消防安全产品安全的问题。

安全性与最薄弱的环节一样好。在这种情况下,它是最终用户

要求最终用户安装根证书不仅是在乞求提出问题(您或您的公司是否有足够的声誉成为 CA?),而且如果用户以某种方式解决问题,这将被证明是浪费时间。随着时间的推移,您将需要更新证书,甚至可能撤销证书,没有限制,构建 PKI 超出了此类项目的范围。

WPS 和蓝牙配对等技术证明,easy 通常更适合更广泛受众的安全性。虽然 WPS 存在问题,但这并不重要,因为大多数 WiFi 路由器都带有基于序列号的 ISP 品牌和可怕的默认凭据。我的甚至没有提供禁用“密码恢复”功能的方法,因为存储纯文本密码从来都不是一个坏主意……

无论如何,本地攻击并没有真正被阻止,因为谁会诚实地闯入你的房子(刑事犯罪),篡改免费 WiFi 的设备(可能是另一项刑事犯罪),而他们可能会犯下更有利可图的刑事犯罪,比如拍摄你的信用牌)?

最初的场景似乎很合适,因为热点仅在有限的时间段内保持“开启”,并且在没有设置任何内容时超时。按下设备上的按钮再次启动“设置”阶段。

如果您对其他(“异国情调”)解决方案感兴趣:

  • 我以前对军用或警察无线电中使用的“密钥加载器”很感兴趣。是否可以使用 USB 密钥来适应这个想法,该 USB 密钥保存 WiFi 设置信息,加载信息后会删除?
  • 生成一次性密码,在设备上显示 60 秒,然后要求设备擦除以更改设备设置或再次配对设备。
  • 如果这将在商业环境中使用,通过蓝牙配对然后使用应用程序进行设置可能是个好主意。
  • 如果您想要更“高科技”的方法,请使用在按下设备上的按钮后通过 NFC 将信息传输到设备的应用程序。营销部门真的很喜欢 NFC 这样的流行词。
  • 像高档商店支付终端那样做。包括专有接口/标准和清除易失性存储器中的键的压敏开关等功能。
  • 假设基于证书的 WiFi,您可以将证书加载到 YubiKey 上,并让用户将 Yubikey 放置在设备上。让密钥完成所有加密,而大多数攻击者很难提取私钥。为包含“FIPS”模型收取 $$$,因为营销部门再次喜欢流行语。

最后,安全性只有在可用时才是好的。为您的最终用户记住这一点。