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

问题描述 投票:0回答:1

我正在开发一种内存受限的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的证书必须值得信赖。”

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

任何有关理解可以减少根证书列表的方法的帮助 - 例如基于ECC的验证与基于RSA的验证的终止 - 将会有所帮助。

mqtt tls1.2 google-cloud-iot root-certificate
1个回答
1
投票

感谢Github上一位乐于助人的Google工程师,他在Google提供的iot-device-sdk-embedded-c项目中回答了问题Clarify how trusted_RootCA_certs were chosen,解决方案是使用long-term support (LTS) domain

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

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

所需的根CA是:

请注意long-term support (LTS) domain文档中嵌入式设备的其他要求和功能。

© www.soinside.com 2019 - 2024. All rights reserved.