WiFi密码应该如何安全地存储在物联网(嵌入式)设备上?

信息安全 加密 密码 嵌入式系统
2021-08-29 23:09:42

某些设备需要存储和(重新)使用密码(不是哈希),例如使用家庭 wifi、SmartTV 等的手机;

他们应该如何将密码存储在闪存中?这样一个对芯片有物理访问权限的人就无法取回它吗?

如果使用 PKI 方法,则设备还需要有私钥才能解密密码并使用它来加入网络。那个私人也遇到了同样的问题。

此外,拥有某种主密钥意味着一旦读取了一个设备的主密钥,那么所有设备的数据都可以使用主密钥进行加密。

目前这通常如何实施,理想情况下应该如何实施?

3个回答

对于 Windows 7 及更高版本,Microsoft 通过 RunAsPPL=1 注册表更改启用了受保护的进程。这可以保护 LSA 甚至不会被 SYSTEM 帐户转储。LSA(lsass.exe 进程)包含机密,包括 WiFi 密钥和机器凭据。为了再次访问这些机密,当前登录的用户必须将他或她的屏幕锁定和解锁、注销并重新登录,或者重新启动机器并成功登录。我已经测试并验证,当 lsass 以这种方式保护时, WirelessKeyView等工具将无法工作。

这种保护仍然在软件中提供(并且可以通过内核或驱动程序空间技术绕过,甚至在诸如Uroburos 之类的恶意软件中也可以看到)——但它对于许多环境来说已经足够了,而且肯定比没有保护要好得多一点也不。对于硬件等价物,许多人正在寻找英特尔 SGX 以提供安全飞地如果物联网制造商可以利用英特尔 SGX 或类似技术,那么这将是存储共享机密(例如 WiFi 密码、凭据和加密密钥材料)的最佳位置。

注意,这个讨论的一部分来自谷歌的 Thomas Dullien的演讲——http : //www.slideshare.net/hashdays/why-johnny-cant-tell-if-he-is-compromised——https : //www.youtube.com/watch?v=kG2sISGNZmk

正如对您问题的评论所提到的,您所能做的就是让它变得更难。

当前的 WiFi 协议要求客户端和 AP 都知道 PSK。就目前而言,这是不可避免的,我不确定是否有任何改变这一点的计划。

您可以使用多种不同的技术来使秘密更难获得。不过,您需要考虑您的威胁模型——您要保护什么,您要保护它免受谁的侵害,以及您希望它受到保护多长时间。

该任务与保护硬件安全模块中的密钥没有什么不同。这些通常使用高级技术来防止某人(即使具有扩展的物理访问权限)获取密钥。

具体来说,对于大多数物联网设备,它们已经存储在受保护的区域,即房屋内。Ring Doorbell 和一些闭路电视 IP 摄像机打破了这一障碍,并且位于攻击者可以更轻松地访问它们的区域 - 应该考虑这一点。也就是说,您不应该依赖该保护区内的每个人都是良性的——例如,如果您的孩子只能使用有时间限制的 SSID,他们可以尝试从另一个设备恢复另一个 PSK 以获得正常的 SSID。

显然,您应该保护通过网络读取的密钥,正如我们在 Ring Doorbell 中发现的那样(完全披露,我是发现问题的 Pen Test Partners 的员工)。许多常见的 WiFi SoC/板都带有带有这些漏洞的 SDK。

一些 WiFi SoC/板允许 PSK 设置一次,然后很难恢复密钥。至少,这些需要连接 JTAG 或 SPI 来读取一些内存。在最坏的情况下,您可能需要开发新的攻击来恢复板载 EEPROM 的内容。

物理灌封板使访问总线和芯片变得更加困难,并将阻止攻击者。

这可以进一步扩展以添加防篡改功能,例如在硬件安全机制或芯片和引脚终端中发现的功能。

在大多数可以受到物理攻击的小型嵌入式系统中,使用对称密钥加密密钥在很大程度上是没有意义的。

如果可能的话,密钥可以存储在智能卡/HSM/TPM 中(我在下面将它们称为安全存储设备),它不会让密钥泄露,而是使用密钥处理操作(签名、加密等)。

特别是对于 WPA WLAN,密钥本身仅用于派生我们可以称为会话密钥的东西,之后不再需要 WLAN 热点的密码,因此可以通过安全存储设备轻松实现。

问题之一是,即使使用@atdre 提到的runasppl,windows 网络和共享中心也可能直接在Vista 及更高版本的GUI 中提供管理帐户银片上的密钥,因此,如果您使用Windows,除非您做很多事情您制作了一个 WLAN 软件,可以处理 WLAN 密钥的安全存储设备。

虽然我会说 HSM 纯粹是矫枉过正,但 TPM 正变得越来越普遍,甚至是获得带有 Win10 贴纸的计算机所必需的。

更有趣的问题是构建一个可以与安全存储一起使用以创建 WLAN 握手的软件。