Skip to main content

使用SAS Key和X.509证书向DPS认证设备

分类:  Azure物联网 标签:  #Azure #Azure IoT Device Provisioning Service # 发布于: 2023-06-14 20:11:06

我们之前学习Azure IoT Hub的时候也通过SAS Key来连接设备到Hub, 采用DPS方案的时候,我们仍然可以通过SAS Key来向DPS服务认证设备的标识,不过针对于DPS方案,SAS Key主要建议用在一些没有那么多安全设备或者老旧的设备上,例如设备没有HSM,没有TPM等等。或者可以用户测试。

如果要使用SAS Key来向DPS认证设备,在向DPS服务上添加单个设备登记或者分组登记的时候,可以通过Azure Portal来选择,用户可以使用自己定义的SAS Key, 也可以由Azure自动生成, Azure自动生成的Key一般是64位。如下图:


对于单个设备登记,生成SAS Key之后,保存下来,并预置于设备中,设备通过ID ScopeIdRegister IdDevice id, 以及Key来通过DPS向IoT Hub完成注册。

针对于通过分组登记的设备,启用SAS Key, 该key是附加在分组上,不再是一个设备一个key, 因此我们需要采取不同的方式为设备生成设备的key, 这个步骤是采用每个设备需要一个唯一的registration id, 然后通过分组的SAS Key结合这个Registration id 通过算法HMAC-SHA256来哈希一个设备key, 最后在设备中使用分组的registration id, 以及设备key来向分组完成登记注册。

一般通用的做法是使用设备上的MaC地址以及前缀或者后缀来生成一个注册ID。

针对于分组登记的场景,设备开发商必须自行完成注册ID以及设备key的生成以及保存的工作,之后在设备生产完成之后,需要将这些信息预置到设备中,然后准备设备端的代码,设备完成之后,即可加电完成设备初始化。

X.509

使用X.509证书的基本原理我们之前在学习Azure IoT Hub的时候已经详细的讨论过了,基本原理我们就不在这里再次论述了,您可以通过如下的连接来学习:

针对DPS服务基本原理和在IoT Hub中是类似的。不过DPS服务有一个匹配的规则,详细的匹配规则您也可以参考微软官方的文档:https://docs.microsoft.com/en-us/azure/iot-dps/concepts-x509-attestation#controlling-device-access-to-the-provisioning-service-with-x509-certificates