终端设备如何使用信任链向服务器进行身份验证?

物联网 密码学
2021-06-21 05:11:01

希望将加密芯片 (Atmel ATECC608A) 添加到将用于与公司服务器通信的产品中。

我们希望确保只有我们的设备与我们的服务器通信(身份验证)。

据我所知,我的公司将拥有自己的密钥对,我们将用它来签署一个中间密钥对,而后者又将用于签署所有设备密钥对。

我的问题是 - 服务器如何“知道”终端设备是合法的?

2个回答

规范的加密答案将是每个设备上的客户端证书或某种机密。考虑这个示例,其中 Microchip 详细介绍了如何对 ATECC608A 与 Google IoT Cloud 进行身份验证。此处提供详细信息您将需要一个秘密私钥和一个安全算法。

当然,这意味着您必须在芯片上安全地在大规模生产中部署这些秘密。

一般而言,这称为相互身份验证,最常见的是使用 TLS 和客户端证书,尽管其他方案也是可能的。制造商使用发行者私钥对单个设备证书进行签名,并在客户端提供时在通信握手期间验证该签名。这就是服务器“知道”设备合法的方式。

实际上,颁发者/制造商在颁发单个设备证书时需要充当证书颁发机构或 CA 或中间 CA,并维护单个受感染设备的吊销数据库。即设置 CA 涉及的几乎所有其他内容。