首页 > 解决方案 > 减少受限设备所需的根证书列表

问题描述

我正在开发内存受限的 IoT 设备,并希望通过 MQTT 将其连接到 Google IoT Core。必须信任以允许服务器 TLS 证书验证所需的根证书列表非常长。我正在寻找一个适合资源有限的物联网设备但不会突然停止工作的较小列表。有没有办法安全地减少这个所需证书的列表?

在“设备安全建议”部分下的在线文档(https://cloud.google.com/iot/docs/concepts/device-security)中,它指出:

'与 mqtt.googleapis.com:8883(或 :443)通信时使用 TLS 1.2,并使用根证书颁发机构验证服务器证书是否有效。阅读此安全说明,了解详细的 TLS 要求和未来兼容性。

从安全说明(https://security.googleblog.com/2015/09/disabling-sslv3-and-rc4.html)它指出:

“至少必须信任https://pki.google.com/roots.pem中的证书。”

我可以清楚地看到文档指出完整列表是必需的,但这对于内存受限的物联网设备来说似乎是不可接受的。例如,AWS 只需要一个证书 - 取决于所选的 TLS 密码。请参阅服务器身份验证下的 AWS 文档 ( https://docs.aws.amazon.com/iot/latest/developerguide/managing-device-certs.html )

任何有助于了解可以减少根证书列表的方式(例如基于 ECC 的验证与基于 RSA 的验证的消除)都会有所帮助。

标签: mqtttls1.2google-cloud-iotroot-certificate

解决方案


感谢 Github 上一位乐于助人的 Google 工程师回答了问题Clarify how trusted_RootCA_certs are selected in the Google provided iot-device-sdk-embedded-c 项目,解决方案是使用长期支持 (LTS) 域

从文档中,可以使用特殊域“ mqtt.2030.ltsapis.goog ”代替“mqtt.googleapis.com”,只需要两个带有小型 ECC 256 公钥的根 CA 证书,而不是整个根。 pem 包 (128KB)。

这些根 CA 证书将在 2030 年之前得到修复。

所需的根 CA 是:

请注意长期支持 (LTS) 域文档中嵌入式设备的其他要求和功能。


推荐阅读