在服务器和物联网设备之间的安全通信方面,我不明白使用 CA 证书的真正好处是什么。
我在使用 Ubuntu 作为操作系统的物联网设备上工作,我打算使用 CA 证书。但是,如果我的用户不更新他们的设备固件会怎样? 现在证书在 1 年后到期,并考虑到一些用户很长时间没有更新他们的物联网设备......我遇到的风险是这些设备在证书到期后无法更新,因为它们无法通信与我的服务器。
有了自签名证书,我可以将有效期设置为 45 年,无论如何,我都可以授权,我可以撤销或决定何时发布新证书甚至交叉签名证书。
我显然只是在谈论设备和服务器之间的通信......用户的其余 api 将使用默认的 CA 证书。
我正在考虑的另一个选择是使用 CA 证书进行设备和服务器通信,同时添加一个自签名证书,我可以将其用作备份,以防主证书过期并且设备需要下载新软件(将包含新证书)这是可行的解决方案吗?
我应该这样处理证书吗?!或者我应该只使用操作系统根存储并确保它以某种方式更新? (在这种情况下......如何?......我想唯一的方法是发布设备固件的更新)
最佳答案
证书用于身份验证和加密。参见 https://www.ssl.com/faqs/what-is-a-certificate-authority/
如果您想确保您收到的数据来自经过身份验证的设备,那么您将使用证书。 您可以使用证书来加密每个请求。但它会占用大量资源。或者您使用证书进行身份验证并返回 JWT token 以供进一步请求。 (这就是服务帐户在云中的工作方式。)
手动证书管理很快就会变得复杂。 服务帐户是对应用程序/设备进行身份验证的常用方法。 Keycloak 是支持服务帐户的开源选项。
您应该将设备更新与身份验证分开。设备更新可能会也可能不会发生在经过身份验证的设备上。等待证书过期来更新设备听起来很奇怪。
关于ssl - IoT 设备的自签名证书或 CA 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64686840/