【问题标题】:Azure IoT device provisioningAzure IoT 设备预配
【发布时间】:2018-08-29 13:33:28
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: azure-iot-hub azure-iot-sdk


    【解决方案1】:

    恐怕答案是否定的。

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

    对于Device Provisioning Service,您需要选择x509 或基于TPM 的身份来配置设备。

    Device Provisioning Service 是 IoT Hub 的辅助服务 支持对正确的 IoT 中心进行零接触、即时配置 无需人工干预,允许客户提供 以安全且可扩展的方式处理数百万台设备。

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

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

    【讨论】:

    • 我在想客户的 x509 证书来自哪里并不重要。如果它可以创建一个使用中间证书签名的证书,它又是由设备配置服务的根证书签名的,那它不会工作,
    【解决方案2】:

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2020-05-25
    • 2018-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多