热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

动态注册_阿里云接入的认证方式,一机一密一型一密动态注册

篇首语:本文由编程笔记#小编为大家整理,主要介绍了阿里云接入的认证方式,一机一密一型一密动态注册相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了阿里云接入的认证方式,一机一密一型一密动态注册相关的知识,希望对你有一定的参考价值。






  设备接入阿里云物联网平台之前,需通过身份认证。目前,阿里云平台支持使用设备密钥、ID²和X.509证书进行设备身份认证。
  必须要明白产品和设备的关系,他们是从属关系,比如某个小区的水表就是一个产品,然后小区里面每户的水表就是设备,如果这个小区有1000户,那么这个产品下就有1000个设备。产品有一个ProductKey,每个设备有自己的DeviceName和DeviceSecret,当接入阿里云的时候,提供这3个字符串,就能把每个设备和平台上的设备一一对应起来,DeviceSecret用于鉴权,防止他人伪造ProductKey和DeviceName,恶意接入。因为他人很容易就能知道ProductKey和DeviceName。


设备密钥认证

  在创建产品时,认证方式选择为设备密钥,物联网平台会为设备颁发ProductSecret、DeviceSecret等密钥。设备接入物联网平台时,需使用密钥进行身份认证。

  针对不同的使用环境,物联网平台提供了使用密钥认证的四种认证方案。


  • 一机一密:每台设备烧录自己的设备证书(ProductKey、DeviceName和DeviceSecret)。
  • 一型一密预注册:同一产品下设备烧录相同产品证书(ProductKey和ProductSecret)。开通产品的动态注册功能,设备通过动态注册获取DeviceSecret。
  • 一型一密免预注册:同一产品下设备烧录相同产品证书(ProductKey和ProductSecret)。开通产品的动态注册功能,通过动态注册,设备不获取DeviceSecret,而是获取ClientID与DeviceToken的组合。
  • 子设备动态注册:网关连接上云后,子设备通过动态注册获取DeviceSecret。

  四种方案在易用性和安全性上各有优势,您可以根据设备所需的安全等级和实际的产线条件灵活选择。方案对比,如下表所示。


对比项一机一密一型一密预注册一型一密免预注册子设备动态注册
设备端烧录信息ProductKey、DeviceName、DeviceSecretProductKey、ProductSecretProductKey、ProductSecretProductKey
云端是否需要开启动态注册无需开启,默认支持。需打开动态注册开关。需打开动态注册开关。需打开动态注册开关。
是否需要提前在物联网平台创建设备,注册DeviceName需要,产品下DeviceName唯一。需要,产品下DeviceName唯一。不需要。需要,确保产品下DeviceName唯一。
产线烧录要求逐一烧录设备证书,需确保设备证书的安全性。批量烧录相同的产品证书,需确保产品证书的安全存储。批量烧录相同的产品证书,需确保产品证书的安全存储。网关可以本地获取子设备ProductKey。将子设备ProductKey烧录在网关上。
安全性较高一般一般一般
是否有配额限制有,单个产品50万上限。有,单个产品50万上限。有,单个产品50万上限。有,单个网关最多可注册1500个子设备。
其他外部依赖依赖网关的安全性保障。

一机一密

官方文档链接
  一机一密认证方法,即预先为每个设备烧录其唯一的设备证书(ProductKey、DeviceName和DeviceSecret)。当设备与物联网平台建立连接时,物联网平台对其携带的设备证书信息进行认证。认证通过,物联网平台激活设备,设备与物联网平台间才可传输数据。
  一机一密认证方式的安全性较高,推荐使用。

使用流程
在这里插入图片描述
操作步骤


  1. 创建产品。
    在物联网平台控制台创建产品。
  2. 添加设备。
    在已创建产品下添加设备,并获取设备证书信息。
  3. 产线烧录。
    开发设备端程序,把三元素(ProductKey、DeviceName和DeviceSecret)嵌入程序中或者保存到外部Flash中,每个设备保存自己的三元素。
  4. 设备联网。
    设备上电联网后,携带设备证书发起认证请求。
  5. 云端激活。
    物联网平台对设备证书进行校验。认证通过后,与设备建立连接,设备便可通过发布消息至Topic和订阅Topic消息,与物联网平台进行数据通信。

BC26连接阿里云,MQTT协议,AT流程和STM32代码实现


一型一密

官方文档链接
  一型一密认证方式下,同一产品下所有设备可以烧录相同的设备标志信息,即所有设备包含相同的产品证书(ProductKey和ProductSecret)。设备发送激活请求时,物联网平台会进行身份确认,认证通过后,下发设备接入所需信息。
  一型一密认证支持两种使用方式:一型一密免预注册、一型一密预注册,对比说明如下表所示。



注意


  • 采用一型一密认证方式,设备烧录相同的标志信息,存在产品证书泄露风险。您可以在物联网平台控制台的产品详情页面,手动关闭动态注册开关,拒绝新设备的认证请求。
  • 一型一密动态注册时必须使用TLS加密,如果您的设备端SDK无法运行TLS加密,则无法使用一型一密认证方式,请采用一机一密认证方式。


对比项一型一密免预注册一型一密预注册
接入协议MQTT协议HTTP协议、MQTT协议
支持地域华东2(上海)HTTP协议:除华北2(北京)、华南1(深圳)以外的所有地域。
MQTT协议:物联网平台支持的所有地域。
功能特点不需要在物联网平台预注册设备DeviceName。使用方法,请参见下文“操作步骤”。需要在物联网平台预注册设备DeviceName。使用方法,请参见下文“操作步骤”。
使用限制物联网平台允许最多5个物理设备使用同一组ProductKey、ProductSecret、DeviceName进行激活,并为不同物理设备下发不同的ClientID、DeviceToken。同一组设备证书只能用于激活一个物理设备。若DeviceName名下已激活物理设备A,但物理设备B需要使用该DeviceName,则您可以在物联网平台上删除设备A,使设备A的DeviceSecret作废,再使用原DeviceName重新添加设备,激活物理设备B。
若设备因丢失DeviceSecret等原因需要重新激活,需您调用ResetThing接口,重置设备状态为未激活,然后将设备重新联网激活。此时,物联网平台下发的DeviceSecret不变。

使用流程
在这里插入图片描述
操作步骤


  1. 创建产品:在物联网平台控制台创建产品。
  2. 开启动态注册:在已创建产品的产品详情页面,开启动态注册开关。物联网平台将进行短信验证,以确认是您本人操作。


说明 若设备发出激活请求时,物联网平台校验发现该开关未开启,将拒绝新设备的动态激活请求。已激活设备不受影响。


在这里插入图片描述


  1. 可选:批量添加设备或单个添加设备:若使用一型一密预注册认证方式接入设备,您需在已创建产品下添加设备。因设备激活时会校验DeviceName,建议您采用可以直接从设备中读取到的ID,如设备的MAC地址、IMEI或SN码等,作为DeviceName使用。
    添加设备成功后,物联网平台为设备颁发DeviceSecret。设备初始状态为未激活。

  2. 产线烧录:开发设备端程序,完成产线烧录。
    在设备端SDK中,填入产品证书(ProductKey和ProductSecret)。

  3. 设备联网。
    设备上电联网后,携带ProductKey、ProductSecret、DeviceName发起认证请求。请参见基于MQTT通道的设备动态注册、基于HTTP通道的设备动态注册。

  4. 物联网平台激活设备。
    一型一密预注册:物联网平台校验通过后,为实际物理设备下发步骤3中为该设备颁发的DeviceSecret。至此,物理设备获得连接物联网平台所需的设备证书(ProductKey、DeviceName和DeviceSecret),可以与物联网平台建立连接,进行数据通信。
    一型一密免预注册:物联网平台校验通过后,下发ClientID、DeviceToken。设备后续通过ProductKey、ProductSecret和下发的ClientID、DeviceToken与物联网平台建立连接,进行数据通信。
    当多个不同ClientID的物理设备共用一个DeviceName时,物联网平台控制台产品详情页将提示当前产品下有设备同时有两个ClientID。您可根据以下操作,指定保留唯一物理设备,或清除所有物理设备:


    • 在产品详情页,单击该提示后的查看,跳转到产品下的风险设备列表。
    • 在设备管理 > 设备,单击列表中设备对应的查看,进入设备详情页,页面显示当前连接的ClientID,单击ClientID右侧的切换或清除。
      切换:从下拉列表选择ClientID,通过该ClientID对应设备的首次连接时间,或者单击日志服务,通过该ClientID对应设备的云端运行日志,判断其是否为需要保留的物理设备。选择要保留的物理设备的ClientID,单击确认。未被选择的ClientID对应物理设备,将被禁止连接。
      有关云端运行日志说明,请参见云端运行日志。
      清除:所有物理设备都将被禁止连接。

EC20模块AT指令MQTT连接阿里云IoT,HTTP接口来实现一型一密动态注册的流程。


ID²认证

  阿里云提供IoT设备身份认证ID²(Internet Device ID)。ID²是一种物联网设备的可信身份标识,具备不可篡改、不可伪造、全球唯一等安全属性。

  在创建产品时,认证方式选择为ID²,设备接入物联网平台时,使用ID²身份认证。

  使用ID²认证,需购买ID²服务。ID²服务购买方式和使用指南,请参见IoT设备身份认证(ID²)用户手册



说明
目前仅华东2(上海)地域支持ID²认证。
连网方式选择为LoRaWAN的产品不支持ID²认证。



X.509证书认证

  X.509是由国际电信联盟(ITU-T)制定的数字证书标准,具有通信实体鉴别机制。目前物联网平台华东2(上海)地域支持使用X.509证书进行设备身份认证。

使用X.509证书的操作流程:


  1. 在创建产品时,认证方式选择为X.509证书。
  2. 在该产品下创建设备,物联网平台会为设备颁发X.509证书和密钥。
  3. 开发设备端,将X.509数字证书和密钥烧录到设备上。设备端上身份认证配置,请参见使用X.509证书认证。


说明
仅MQTT协议直连的设备可使用X.509证书认证。
目前仅华东2(上海)地域支持X.509证书认证。
连网方式为LoRaWAN的产品不支持X.509证书认证。
设备身份认证方式设置后,不可更改。







推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
author-avatar
Hmily-西瓜先生
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有