设备需要通过设备密钥才能连接物联网平台,本文将为您介绍什么是设备密钥、以及如何通过两种方式(产线烧录设备密钥、动态注册)进行设备密钥配置。

背景信息

设备密钥指阿里物联网平台为每个设备分配设备身份标识,该身份标识包含:

  • ProductKey:产品型号
  • DeviceName:设备的唯一标识
  • DeviceSecret:物联网平台与设备之间的共享密钥

当设备连接物联网平台时,平台将会使用设备密钥对设备进行认证,认证通过之后设备可以正常与平台进行消息的收发。

设备通过不同的协议连接平台时如何使用设备密钥已经在“端云通信方式”中进行了讲解,请参考相关章节了解使用细节。

设备密钥产线烧录

客户可以在产线上将每个设备的设备密钥烧写在设备的NVRAM/FLASH里面,让设备上电后使用设备密钥连接物联网平台。

说明 客户需要对产线流程进行修改,在产线上对每个设备烧写该设备自己的密钥。

动态注册

在产线上为每个设备烧写设备密钥需要对产线进行改造,如果客户不希望对产线进行改造,并且每个设备有唯一的设备标识(比如序列号、MAC地址等),那么可以使用动态注册功能来达到一型一密的效果。

动态注册的工作过程:

  1. 设备在固件中固化设备的ProductKey和ProductSecret,这两个参数对于同一个产品下的所有设备都是一样的。
  2. 使用设备的序列号或者MAC地址(Media Access Control Address)作为设备的DeviceName,并需要预先将设备的DeviceName上传到阿里云物联网平台做白名单;若客户不能预先将设备的DeviceName上传到物联网平台,那么可以采用免白名单方案。
  3. 设备上电后连接到物联网平台,使用ProductKey和DeviceName去获取设备对应的DeviceSecret,使用ProductSecret进行安全验证,当物联网平台预先上传的白名单中发现DeviceName已存在,则返回改设备DeviceName对应的DeviceSecret。
  4. 当设备具有了DeviceSecret之后,则可以使用ProductKey、DeviceName、DeviceSecret连接到物联网平台并通过设备认证了。
目前物联网平台提供两种方式的动态注册方案:
  • HTTPS动态注册
  • MQTT动态注册

    这种方式支持HTTPS方式的功能外,还支持不用预先上传设备的DeviceName作为白名单,但是安全性上比预先上传设备的DeviceName的安全性上要差。

目前SDK获取时如果选中了动态注册功能,HTTPS动态注册、MQTT动态注册的代码都会被下载下来,客户在代码集成时只需要集成相应的代码目录即可。