文档首页/ 设备接入 IoTDA/ 常见问题/ 设备发放相关问题
更新时间:2024-07-30 GMT+08:00
分享

设备发放相关问题

使用SDK中的设备发放功能后,还需要在设备接入服务中注册设备吗?

不需要,通过设备发放服务成功发放的设备,会将设备信息同步到设备接入服务。

设备发放流程中使用到的证书都有哪些,它们有何区别?

设备发放提供证书认证方式,证书认证为双向认证过程,涉及到设备发放(平台)和设备两端,过程如下图所示。

图1 设备发放流程

双向证书认证过程使用到了如下几类证书:

表1 证书类别

证书

说明

证书及其私钥持有者

签发者

服务端证书

步骤2中,设备发放设备侧将该证书返回设备。

设备发放设备侧持有

权威CA(服务端证书的CA证书)签发

服务端CA证书

步骤3中,客户端使用该服务端CA证书验证服务端证书,通常为权威CA证书,获取方式见MQTT CONNECT连接鉴权

权威CA机构持有

权威CA机构签发

设备证书(客户端证书)

步骤4中,设备将该证书发送给设备发放设备侧。

设备

CA证书

CA证书(设备CA证书/客户端CA证书)

步骤5中,设备发放设备侧使用该CA证书验证来自设备的客户端证书。用户通过应用侧上传该证书到设备发放平台。

用户

通常为自签发

样例中各类证书常用文件名:

表2 证书常用文件名

证书

文件名

MQTT.fx中的字段名

服务端证书

-

-

服务端CA证书

如下其中之一:

GlobalSignRSAOVSSLCA2018.bks(android)GlobalSignRSAOVSSLCA2018.crt.pem(c或java)GlobalSignRSAOVSSLCA2018.jks(java)

bsca.jks(java)

bsrootcert.pem(c)

CA File

设备证书(客户端证书)

client.crt

Client Certificate File

设备证书(客户端证书)私钥

client.key

Client Key File

CA证书(设备CA证书/客户端CA证书)

server.crt

-

双向认证,即双向证书认证,与单向认证中不同的是,不仅包含单向认证中的设备对平台的证书验证步骤,还包含了平台对设备的证书验证步骤。

证书指纹是什么?如何获取?在业务中有何作用?

证书指纹

证书指纹,即证书哈希值,是用于标识较长公共密钥字节的短序列。通过使用哈希算法对证书内容进行计算获取指纹。

证书指纹通常使用sha1或sha256算法计算,算法不同,证书指纹的长度也不同。sha1算法得到40位长度的序列,sha256算法得到64位长度的序列。

无特别说明,物联网平台均使用sha1算法计算、存储和校验证书指纹,校验过程不区分大小写。

获取证书指纹

  • 使用Windows自带的工具

    使用Windows自带的工具打开证书,单击详细信息,在显示的字段中选择指纹,即可获取该证书指纹。

    图2 证书指纹样例
  • 使用openssl工具
    # 使用sha1算法
    openssl x509 -fingerprint -sha1 -in client.crt
    # 使用sha256算法
    openssl x509 -fingerprint -sha256 -in client.crt

    通过openssl工具计算出的指纹携带了“:”,使用前请删除,确保序列长度为40位或64位。

在业务中的用途

在证书认证方式中,平台存储设备CA证书,不存储设备证书完整内容,但会存储、计算和校验设备证书指纹。

为确保设备与平台通信的安全性,在双向认证过程中,平台不仅使用设备CA对设备证书进行验证,还会校验【设备关联的证书指纹】与【双向认证使用的设备证书的指纹】的一致性。

相关文档