Mqtt 减少受约束设备所需的根证书列表

Mqtt 减少受约束设备所需的根证书列表,mqtt,tls1.2,google-cloud-iot,root-certificate,Mqtt,Tls1.2,Google Cloud Iot,Root Certificate,我正在开发一个内存受限的物联网设备,并希望通过MQTT将其连接到谷歌物联网核心。必须信任以允许服务器TLS证书验证的所需根证书的列表非常长。我正在寻找一个适用于有限资源物联网设备但不会突然停止工作的较小列表。有没有办法安全地减少所需证书的列表 从设备安全建议部分的在线文档中可以看出: '与mqtt.googleapis.com:8883或:443通信时使用TLS 1.2,并使用根证书颁发机构验证服务器证书是否有效。请阅读本安全说明,了解详细的TLS要求和未来的兼容性。” 它在安全说明中指出: “

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

从设备安全建议部分的在线文档中可以看出:

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

它在安全说明中指出:

“至少必须信任中的证书。”

我可以清楚地看到,文档说明需要完整的列表,但对于内存受限的物联网设备来说,这似乎是不可接受的。例如,AWS只需要一个证书-取决于所选的TLS密码。请参阅服务器身份验证下的AWS文档


任何有助于理解如何减少根证书列表的帮助(例如基于ECC的验证与基于RSA的验证的删除)都会很有帮助。

感谢Github上一位帮助谷歌的工程师,他在谷歌提供的iot-device-sdk-embedded-c项目中回答了这个问题,解决方案是使用

从文档中可以看出,可以使用专用域mqtt.2030.ltsapis.goog代替mqtt.googleapis.com,从而只需要两个带有小型ECC 256公钥的根CA证书,而不需要整个root.pem包128KB

这些根CA证书固定到2030年

所需的根CA是:

作为主要 作为备份
请注意文档中关于嵌入式设备的其他要求和功能。

如果我计划从Raspberry Pi使用LTS域,它会工作吗?如果是的话,你能告诉我怎么做吗?