我正在开发内存受限的 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 的验证的消除)都会有所帮助。