设备安全认证
设备接入设备发放和接入平台之前,需要通过身份认证。当前,物联网平台支持密钥认证和X.509证书认证两种认证方式进行设备身份认证。
密钥认证
创建设备时,认证方式选择密钥认证,用户为设备指定或者平台自动生成设备密钥。设备接入平台时,携带密钥(为避免密钥在通信链路中直接传输,实际传输值为密钥衍生内容,衍生方式参见MQTT CONNECT连接鉴权章节中的Password参数说明)。
X.509证书认证
X.509是一种用于通信实体鉴别的数字证书,物联网平台支持设备使用自己的X.509证书进行认证鉴权。使用X.509认证技术时,设备无法被仿冒,避免了密钥被泄露的风险。
使用X.509证书认证的完整操作流程为:
1. 在平台上传设备CA证书并完成验证(或使用华为云证书服务的私有CA);
2. 创建设备或注册组时,认证方式选择X.509证书认证,并关联已认证的设备CA证书;
3. 开发设备端,将X.509证书及其私钥烧录到设备上;
4. 设备在与平台双向认证过程中,设备验证平台证书,平台使用设备CA证书验证设备证书并验证设备证书与设备的关联关系。
X.509双向证书认证
X.509证书双向认证过程,涉及到设备发放(平台)和设备两端,过程如下图所示。
双向证书认证过程中使用到了如下几类证书:
证书 |
说明 |
证书及其私钥持有者 |
签发者 |
---|---|---|---|
服务端证书 |
步骤2中,设备发放设备侧将该证书返回设备。 |
设备发放设备侧持有 |
权威CA(服务端证书的CA证书)签发 |
服务端CA证书 |
步骤3中,客户端使用该服务端CA证书验证服务端证书,通常为权威CA证书,获取方式见MQTT CONNECT连接鉴权。 |
权威CA机构持有 |
权威CA机构签发 |
设备证书(客户端证书) |
步骤4中,设备将该证书发送给设备发放设备侧。 |
设备 |
CA证书 |
CA证书(设备CA证书/客户端CA证书) |
步骤5中,设备发放设备侧使用该CA证书验证来自设备的客户端证书。用户通过应用侧上传该证书到设备发放平台。 |
用户 |
通常为自签发 |
双向认证,即双向证书认证,与单向认证中不同的是,不仅包含单向认证中的设备对平台的证书验证步骤,还包含了平台对设备的证书验证步骤。