欲知更多详情,见RFC 7252。 使用DTLS v1.2.Open source CoAP..

      最后更新:2021-12-07 16:35:42 手机定位技术交流文章

      在这里插入图片描述

      CoAP协议规范

      本节介绍联网平台支持的《保护所有人免受陆上活动污染公约》议定书标准。

      协议版本

      RFC 7252有进一步的资料。

      通道安全

      详情请使用 DTLS v1. 见 DTLS v1. 2。

      开源客户端

      CoAP Technology 。

      具体说明如果使用第三方代码,Ariyun不提供技术援助。

      使用限制

      • 《共同行动计划》来文仅得到东中国2号案(上海)、北中国2号案(北京)和南中国1号案(深圳)的支持。
      • 目前不支持资源发现。
      • 只有UDP协议得到支持,DTLS和对称加密都可用。
      • 在成功登记设备识别之后,只能选择一个通信协议进入网络平台,获取同一设备的身份信息,同时不得使用多型通信协议。

      使用说明

      • CoAP的URI资源与MQTT Torpics兼容;详情见MQTT议定书标准。
      • 根据《共同行动计划协定》,《专题守则》与《MQTT专题守则》一致。coap://host:port/topic/${topic}接口中的${topic}MQTT 主题可以重新使用。
      • 请求的代号是客户端缓存认证返回的 Token 。
      • 交付的数据大小由MTU确定,应小于1千兆贝。
      • 如果设备在10分钟内通过共同操作程序协议报告数据,则在目标网络平台控制器上在线公布。

      CoAP连接通信

      有形网络平台支持《通信连接共同行动计划议定书》,《共同行动计划协议》适用于资源有限的低功用设备,特别是使用NB-IOT设备,该条讨论了《共同行动计划》基于协议的准入程序,以及DTLS和对称加密认证下的自主准入程序。

      基础流程

      以下图像描绘了根据《共同采购协定》建立的NB-IOT设备接入网络平台的流动情况。

      coap

      序号 描述
      将 Ali Clouds 网络平台SDK 整合到设备端端 NB- IOT 模块中。 制造商在物理网络平台申请设备证书( ProductionKey、 设备名称和装置安全设备), 并将其烧入设备中 。
      操作员的移动电话网络用来连接NB-IOT设备,必须同当地操作员联系,检查设备所属地区是否已经覆盖NB网络,并具备NB-IOT的进入能力。
      在NB设备成功连接到网络后,设备产生的流量和成本数据将由运营商的M2M平台控制,这部分平台的能力由运营商提供。
      设备开发商可以通过共同操作方案/联合开发方案议定书向阿里云联网平台发送设备收集的实时数据,并利用物理联网平台为数十亿级设备提供安全连通和数据管理能力,还可通过规则引擎传输数据,用于处理巨大数据产品、云数据库、表格储存等服务。
      为确保设备资产与实际应用的快速整合,实体网络平台提供必要的开放数据接口和信息服务,这些可传递到业务服务器。

      自动存取对称加密

      1. 此函数连接到 CoAP 服务器 。

        端点地址:在公共和商业版本实例中,如终端节点示例所示,CoAP的存取域名为CoAP。

      2. 设备认证。

        设备认证请求:

        1. 详细说明了设备认证设置。
        参数 说明
        Method 只有POST方法可用于申请方法。
        URL URL地址,取值:/auth
        Host 终点地址
        Port 端口,取值:5682
        Accept 设备接收的数据已编码,目前支持两种方式:应用程序/json和应用程序/cbor。
        Content-Format 该设备向物体网络平台提供的上线数据目前以两种格式编码:应用程序/json和应用程序/cbor。
        payload 设备认证信息内容, JSON 数据格式。 请在下表中查看特定参数的“ 有效载荷 ” 。
        表2. 有效载荷备注
        字段名称 是否必需 说明
        productKey 设备证书信息中产品Key的价值是该产品目标网络平台为该产品签发的单一全球识别码,在有形网络平台控制的相关实例下,设备的具体网页可以进入。
        deviceName 当设备注册时,设备证书信息中的设备名称值是一个自定义或自动生成的设备名称。设备的详细页可以在物理网络平台控制的适当示例下查阅。
        ackMode 通信模式。取值:
        • 1: 请求/回应模式是便携式的,即客户向进行交易和提供业务数据以及ACK的部门提出请求。
        • 1: 休息/反应是一种分离模式,客户在处理和提供业务数据之前向服务机构提出请求和服务答复,并附上确认的 " ACK " 。

        如果未指定此选项, 则挂载模式被设为默认 。

        sign 签名。

        您必须使用签名方法计算 。signmethod(DeviceSecret,content)以符号值计算值。支持 hmacmd5 和 hmacsha1 技术。

        签名计算所需参数:

        • 符号方法: 签名方法必须匹配您输入的符号方法值 。
        • 设备安全 : 设备安全 : 设备安全 。 可以在与此示例相对应的物体网络平台下设备的详细页面上找到 。
        • 除版本、符号、资源和符号方法外,内容是按字母顺序向服务器提供的参数,按顺序排序(无拼贴符号)。

          指定用于计算签名的参数值与设备认证请求中提供的参数值兼容。

        签名计算示例:

        signmethod 算法类型; hmcmd5 和 hmacsha1 得到支持; hmacd5 是默认值。
        clientId 客户端 ID, 最大长度为 64 个字符。 建议使用设备 MAC 地址或 SN 代码作为 clietId 的值 。
        timestamp 时间戳目前不进行时间框架核查。
        seq 认证信息中包含的序列号在设备末端生成。

        返回结果示例:

        表3. 返回参数说明
        字段名称 说明
        random 此功能用于向上和向下加密并生成密钥 。
        seqOffset 验证后续偏移的初始值 。
        token 成功验证设备后, 返回 Token 值 。
      3. 上报数据。

        上报数据请求:

        表4. 汇报数据的参数说明。
        字段名称 是否必需 说明
        Method 只有POST方法可用于申请方法。
        URL 传入格式:/topic/${topic}应使用设备数据上行修改变量 $top 主题 。
        Host 终点地址
        Port 端口,取值:5682
        Accept 设备接收的数据已编码,目前支持两种方式:应用程序/json和应用程序/cbor。
        Content-Format ,服务器没有验证。目前,支持两种方式:应用程序/json和应用程序/cbor。
        payload 高级加密标准(AES)用于加密将要上传的数据。

        要加密 AES, 使用变换 。AES/CBC/PKCS5Padding, 初始向量IV为543yhjy97ae7fyfgSha256算法生成了钥匙

        Key生成示例:

        假设deviceSecret=zPwChiLh0EaifR809D5Rc6LDIC6A****,设备认证返回random=8fe3c8d50e10****
        1. 紧随秘密交易和随机交易之后${deviceSecret},${random}格式化下面显示的字符串。
        2. 用 sha256 加密上述文本的 UTF-8 编码结果, 并将其转换为十六进制字符串 。
        3. 您取一个32位字符串( substring (16, 48)), 然后从上一个字符串的第17位开始获取密钥 。
        CustomOptions option值有20882089两种类型:
        • 2088:表示一个符号,值是设备认证后返回的符号值。

          指定所有已报告的数据都需要代号信息。如果代号过期,设备必须重新认证才能获取代号。

        • 2089:表示后继值,随机数大于设备认证后返回的后置值,在认证寿命周期内不再重复。建议使用前一栏所示方式进行 AES 加密填充,视每个请求包的后置值的递增值而定。

        选项返回以下示例:

        2090: 对象网络平台的云信息标识符

        名称和序列可以包含在 URL 中,例如选项中。/topic/${topic}?token=xxxx&seq=xxxxx如果存在选项和 URL, 优先选项。

        一旦信息成功上传,目标网络平台发布的成功状态代码和信息代号将被退回。

      利用DTLS进行自助服务准入。

      1. 此函数连接到 CoAP 服务器 。

        端点地址:在公共和商业版本实例中,如终端节点示例所示,CoAP的存取域名为CoAP。

      2. 如果您使用 Aliun 的设备结束 SDK, DTLS 安全通道默认会使用 PSK 加密算法。 如果您不使用 Aliun 的设备结束 SDK, 您需要获取 DTLS 安全访问根证书, 并亲自使用 DTLS 库连接平台 。 PSK 将以下列方式加密 :
        表 5. 字段说明
        字段 是否必需 说明
        authType 无法关闭临时文件夹:%s。
        signMethod 下列算法得到支持:hmacd5、hmacsha1和hmacsha256。
        productKey 关键产品。
        deviceName 设备Name、 设备Name、 设备Name
        DeviceSecret 秘 秘 秘 秘 书机
        timestamp 时间戳。
      3. Auth 界面验证设备用于获取标记 。 报告数据需要 Tork 信息 。

        设备认证请求:

        除 Port参数外,其他参数及Payload内容说明,可参见 自动存取对称加密 。

        返回结果示例:

        表6. 返回代码说明
        Code 描述 Payload 备注
        2.05 Content 无法关闭临时文件夹:%s。 正确请求。
        4.00 Bad Request no payload 要求的有效载荷是违法的
        4.01 Unauthorized no payload 未授权的请求。
        4.03 Forbidden no payload 禁止的请求。
        4.04 Not Found no payload 请求的路径不存在。
        4.05 Method Not Allowed no payload 请求方法没有值 。
        4.06 Not Acceptable no payload 接受不是已经声明的类型 。
        4.15 Unsupported Content-Format no payload 请求的内容不是给定的类型 。
        5.00 Internal Server Error no payload Aauth 服务器已超时或失败 。
      4. 上线数据。 数据由设备通过一个特殊主题发送到对象网络平台 。

        可在设备网络平台产品信息页面的专题分类列表中确定自定义主题,仅允许发布许可的专题用于数据报告。

        例如:Topic为/${YourProductKey}/${YourDeviceName}/pub如果您现有的设备被命名为设备, 且产品为 A1GFjLP**, 您可以使用a1GFjLP****.coap.cn-shanghai.link.aliyuncs.com:5684/topic/a1GFjLP****/device/pub地址来上报数据。

        上报数据请求:

        7. 详细介绍了数据请求参数。
        参数 是否必需 说明
        Method 支持 POST 方法作为请求方法 。
        URL /topic/${topic}。其中,变量${topic}现用工具替换为Topic。
        Host 终点地址
        Port 端口,取值:5684
        Accept 设备接收的数据已编码,目前支持两种方式:应用程序/json和应用程序/cbor。
        Content-Format ,服务器没有验证。目前,支持两种方式:应用程序/json和应用程序/cbor。
        CustomOptions
        • number取值:2088
        • 通过认证( auth) 返回的象征性值被称为象征性值 。

        指定所有已报告的数据都需要代号信息。如果代号过期,设备必须重新认证才能获取代号。

      示例

      请见CoAP客户端对称加密访问,例如使用CoAP协议进入互联网平台的设备。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/14448.html

          热门文章

          文章分类