Azure IoT 设备配置

Azure IoT device provisioning

我正在研究使用 Azure IoT 中心在软件客户端和后端之间进行通信。软件客户端应充当 IoT 中心用语中的设备。

是否可以在没有为每个客户端提供 TPM 模块中的唯一标识符或唯一的 X.509 证书的情况下,将软件客户端设置为具有 IoT 中心设备配置服务的设备?

我不需要在预配之前对客户端进行身份验证,我只希望每个客户端都能够与 IoT 中心安全通信。配置后,客户端必须是唯一可识别的。届时,其他客户端应该无法冒充。

目前,我认为客户端软件需要嵌入一个中间证书,它可以用来签署它在尝试配置自身时创建的证书。

是否有其他方法可以让 IoT 中心客户端设备自行配置,而无需使用 SAS、令牌或其他唯一标识符进行预编程?

恐怕答案是否定的。

要连接 Azure IoT 中心,设备(软件客户端)需要 select 安全密钥(与令牌相关)或 x509(证书)作为身份验证方法。

至于 Device Provisioning Service,您需要 select x509 或 TPM-based 身份才能配置设备。

Device Provisioning Service is a helper service for IoT Hub that enables zero-touch, just-in-time provisioning to the right IoT hub without requiring human intervention, allowing customers to provision millions of devices in a secure and scalable manner.

X.509 证书和 SAS 令牌都可以存储在硬件安全模块中,因此您不必在设备客户端中使用 SAS、令牌或其他唯一标识符进行预编程。

对于软件客户端,也许你可以使用software-based TPM。但我不确定您的平台是否支持 software-based TPM。 There 是 Windows 10 IoT 核心支持的软件 TPM。

使用设备配置服务不需要使用 HSM(来源:我是该服务的 PM)。如果您的客户都已经拥有可用于生成叶证书的中间证书,并且如果您所有设备的所有中间证书都有一个共同的签名者,那么您可以使用该共同的签名证书在配置服务中创建一个注册组,并且允许您的所有设备通过该注册组进行配置。

供应服务不关心哪个实体是您的设备客户端提供的证书的最终信任根,但您必须通过所有权证明步骤来证明您可以访问私有部分使用注册组时的签名证书。通过证明链中签名证书的所有权(不一定是根证书,只是中间证书之一),您证明您有权为将注册为一部分的设备生成叶证书那个招生组。