我有多个IoT设备,它们将连接到一个基于云的平台上,以便控制这些设备。
为了具有适当的安全性,我正在考虑使用身份验证证书,以便每个IoT设备都是我系统中的一个受信任的元素。这里的问题是我对这个话题不太了解,我想知道:
发布于 2020-05-06 17:12:27
每个设备在初始安装过程中都应该生成自己的证书,以防止任何其他方面观察私钥。
第一部分取决于您的部署目标是什么,但是由于最有可能的目标是某种形式的Linux,所以您将看到OpenSSL。在设备生成证书之后,它希望将所谓的证书签名请求(CSR)发送到您自己的颁发CA --这可以是一个完全自签名的链(并且不涉及外部CA),但是获得中间颁发CA也并不困难(通常用于子域)。
每次开始身份验证/连接时,您都需要证书,之后(由于TLS的工作方式)它被交换为对称密钥(也就是说,证书本身不再需要)。但是,没有什么可以自动“删除”我所知道的这些证书,特别是因为您通常需要它们,因为服务中断非常类似(这需要您重新连接)。
证书有一个有效期。有效的策略长度取决于发行者(验证/签署CSR的人),因此如果您正在进行发行,这可以是您想要的任何东西。除了额外的处理时间/带宽,加上对签名服务器的访问之外,没有其他成本。请注意,一些微服务平台可以每周/每天/每小时轮换证书。
您还应该检查云平台上关于IoT设备设置的建议,因为这将是一个非常常见的主题。例如,本主题在Azure物联网文档中至少介绍了其中的一些内容。
发布于 2020-05-07 11:08:05
除了上面的一个很好的答案:如果您想成为超级安全的,您可以在硬件安全模块(HSM)中生成并存储设备特定的私钥。检查您的微控制器供应商的HSM支持和相关的命令/API支持。
然后可以使用PKCS#11 API从OpenSSL访问生成的私钥。请注意,这是流血边缘:肯定从上面的好答案发条-缪斯。
https://security.stackexchange.com/questions/231171
复制相似问题