9月7日-8日,相约 2023 腾讯全球数字生态大会!聚焦产业未来发展新趋势! 了解详情
写点什么

物联网平台安全如何破?(二)

  • 2019-12-24
  • 本文字数:3376 字

    阅读完需:约 11 分钟

物联网平台安全如何破?(二)

-----------一机一密设备安全接入-----------

一机一密安全接入方案适用于 MQTT 设备的接入鉴权。所谓一机一密,即物联网平台会为每一个 MQTT 设备分配唯一的密钥信息,设备在烧录时,将该密钥信息提前烧录到设备中。当设备与物联网平台进行连接时,物联网平台对设备接入时携带的密钥信息进行认证,认证通过后,设备与物联网平台之间才能建立连接和传输数据。


1573526246201244.png


  1. 用户通过应用在物联网平台上注册设备,将设备的 nodeId(设备的唯一标识,一般为 IMEI 或 MAC 地址)信息注册到平台中。

  2. 物联网平台收到注册信息后,将生成全局唯一的 deviceId 和 secret 信息,并在平台进行加密存储。

  3. 物联网平台向设备返回注册响应,携带 deviceId 和 secret 信息,用于后续设备的接入鉴权。

  4. 用户进行设备的烧录,将 deviceId 和 secret 信息烧录到设备中。

  5. 设备(MQTT 客户端)向物联网平台(MQTT 服务端)发起建链请求,携带 deviceId 和 secret 信息。

  6. 物联网平台将设备携带的 deviceId 和 secret 信息与平台存储的信息进行鉴权认证,鉴权通过后,允许设备与物联网平台之间建立 MQTT 连接。

  7. 设备与物联网平台之间通过建立的 MQTT 连接进行数据传输。

-----------DTLS+数据安全传输-----------

DTLS+加密方案,适用于建立 NB-IoT 设备的安全传输通道。在与物联网平台之间进行消息交互时,会在设备与平台之间建立 DTLS+(Datagram Transport Layer Security,数据报传输层安全性协议)通道,对设备与物联网平台之间的数据传输通道进行加密。相比传统的 DTLS 协议,DTLS+在会话协商等方面做了优化,减少了终端与物联网平台通信过程中的握手次数,从而延长终端电池的使用寿命。下面我们就来看看 NB-IoT 设备详细的接入过程。


1573526282584691.png


  1. 设备厂商批量烧录 PSK 到设备中,用于设备接入时的 DTLS 建链。

  2. 用户通过应用在物联网平台上注册设备,将设备的 nodeId(设备的唯一标识,一般为 IMEI 或 MAC 地址)和 PSK 信息注册到平台中。当然,用户也可以选择先在物联网平台上注册完设备后,再将注册的 PSK 烧录到设备中。

  3. 物联网平台将应用注册的设备信息在平台上进行加密存储,用于后续 DTLS 建链和设备的接入鉴权。

  4. 注册完成后,物联网平台会向设备返回注册响应消息。

  5. 设备接入物联网平台,发起 DTLS 建链请求,请求消息中携带 nodeId 和 PSK。其中,PSK 用于与平台存储的 PSK 进行校验,校验通过后,保留会话信息(源/目的 IP 地址、源/目的端口号、协议类型),建立 DTLS 链接成功。DTLS+是在 DTLS 的基础上,引入 Resume_ID,在后续的交互过程中,通过 Resume_ID 即可建立 DTLS 链路,而不需要重新协商,可以大大减少协商过程中的消息交互次数,达到设备省电的目的。nodeId 用于设备的身份认证,只有设备携带的 nodeId 与平台存储的一致,才允许设备的接入。

  6. 通过 DTLS 链路,设备上报数据和应用下发命令的传输通道,均为加密通道,从而保障了设备与平台、应用交互的过程中,数据不会被非法窃取。

-----------X.509 数字证书安全认证-----------

数字证书是由 CA(Certificate Authority)机构发行的一种电子文档,是一串能够表明网络用户身份信息的数字,提供了一种在计算机网络上验证网络用户身份的方式。数字证书可以校验对方身份的合法性,还可以协商数据加密密钥,对交换的数据进行加密,同时还可以通过数字摘要校验数据的完整性。在物联网平台中,数字证书校验用户身份主要用于以下场景:


  • MQTT 设备接入:MQTT 设备接入时,采用加密的 MQTTS 协议,设备侧需要校验物联网平台的合法性,同时协商数据传输的加密密钥。

  • 应用调用 API 接口:应用调用物联网平台的 API 接口时,采用加密的 HTTPS 协议,应用需要校验物联网平台的合法性,同时协商数据传输的加密密钥。

  • 设备数据推送:物联网平台向应用推送订阅的设备数据时,采用加密的 HTTPS 协议,物联网平台需要校验应用的合法性,同时协商数据传输的加密密钥。


首先我们来看下网络用户身份真实性的校验过程:


://bbs.huaweicloud.com/static/ueditor/themes/default/images/spacer.gif


1573526293361073.png


  1. Client A 预置 CA 机构颁发的 CA 根证书(包含了 CA 公钥),然后向 Server B 发起建链请求,以明文的方式发送随机数 RandomC、SSL 版本、支持的加密算法等信息。

  2. Server B 向 Client A 以明文的方式返回服务器证书、随机数 RandomS 和协商后的加密算法。服务器证书是用 CA 机构的 CA 私钥进行加密的,包含了服务器的公钥信息。

  3. Client A 获取到 Server B 返回的服务器证书后,验证证书的合法性。Client A 用 CA 根证书对服务器证书进行解密,获得证书的有效期、公钥、摘要(Hash 值 X)等信息,Client A 通过 Hash 算法计算证书内容,得到 Hash 值 Y,然后比较 Hash X 和 Hash Y 的一致性,如果一致,则验证了 Server B 的真实性。证书校验完成后,Client A 会生成随机数 PreMaster Key,然后根据获取的三个随机数(RandomC、RandomS 和 PreMaster Key)和协商后的加密算法生成一个会话密钥,该会话密钥用于后续的数据加密。

  4. 注:可能有人会问,为什么还需要一个额外的随机数来生成会话密钥。因为客户端与服务端在交换 RandomC 和 RandomS 的过程中,都是明文的方式在进行通信,很有可能被不法分子窃取。因此通过这两个随机数计算出的会话密钥是不安全的,所以引入了第三个随机数 PreMaster Key,该随机数在传递过程中,都是密文形式,即使被窃取,没有私钥也是解密不了的。然后在通过这三个随机数生成一个会话密钥,安全性就大大增加,破解的难度就更高了。

  5. Client A 用从 Server B 获得的公钥,对 PreMaster Key 进行加密,并以密文的形式发送给 Server B。

  6. Server B 获取到使用自己公钥加密后的密文后,使用自己的私钥对密文进行解密,得到随机数 PreMaster Key,然后根据获取的三个随机数(RandomC、RandomS 和 PreMaster Key)和协商后的加密算法生成一个会话密钥。

  7. Server B 会将握手消息通过 Hash 算法得到一个 Hash 值,然后使用计算生成的会话密钥进行加密,以密文的形式发送给 Client A。

  8. Client A 通过生成的会话密钥,对密文进行解密并计算握手消息的 Hash 值,计算的 Hash 值与解密获得的 Hash 值一致,表明密文是没有被修改过的。至此,Client A 和 Server B 的 SSL 握手结束。

  9. 后续 Client A 与 Server B 的通信,均通过会话密钥进行加密后进行传输,从而保障了传输过程中的数据安全。

-----------平台数据隐私保护处理-----------

华为物联网平台依据如下图的个人数据处理基本原则进行用户数据、设备数据的采集、存储、处理和销毁,满足 GDPR(General Data Protection Regulation)法规对个人数据处理的要求。


1573526307593324.png


(1)数据主体的“知情权”


通过华为云隐私政策提供隐私声明,包括详细的个人数据清单、系统收集用的所有个人数据,手机的目的和缺省存留期,帮助数据控制者了解平台个人数据的使用情况。


(2)数据主体的“更正权”


用户可以通过管理控制台或者 API 接口更新设备信息,例如更新设备的厂商信息、厂商名称等,以及新增、更新设备的产品模型信息。


(3)数据主体的“可删除、被遗忘权”


华为物联网平台提供个人数据的删除机制:


  • 对于设备静态数据,如设备注册信息,控制台和 API 接口均提供删除设备的接口。

  • 对于设备动态数据,如设备上报的数据,会根据用户设置的存留期进行处理,超过存留期则永久性删除。


(4)提供适当的安全保护措施


  • 个人数据的访问控制机制,租户之间相互隔离,只有授权的帐号才能访问个人、设备的数据,文件的管理权限采用最小权限原则设置。

  • 敏感数据的加密存储,对于个人、设备的敏感数据,如密钥、GPS 位置信息等敏感数据进行加密存储。

  • 个人数据匿名化处理,物联网平台支持用户导出个人数据,在导出数据时,对于个人敏感数据,如帐号、IMEI、GPS 位置信息等数据进行匿名化处理。

  • 提供 Web 安全防护机制,如防 XSS 攻击,防 SQL 注入攻击,防 CSRF 攻击等,防止通过上述攻击引起的数据泄露或篡改。

  • 提供基本的组网隔离措施,关键的数据库部署在独立的虚拟机,不同子网之间通过访问控制策略限制,从组网上提升整个系统安全性。


后记


物联网平台的安全能力构筑是一个端到端的系统工程,华为正在围绕端、管、云和应用,不断构筑和提升端到端的安全架构和能力,如 DICE 安全设备接入、HIDS 主机安全、异常设备检测/隔离等安全能力。后续也会逐步上线相关的物联网安全服务,敬请关注华为云物联网平台官网首页或华为 IoT 云服务微信公众号。


本文转载自华为云社区博客。


原文链接:https://bbs.huaweicloud.com/blogs/129189


活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2019-12-24 13:24987

评论

发布
暂无评论
发现更多内容

【第三周】代码重构

云龙

私有云PAAS平台的思考

8小时

Hazelcast IMDG 带你瞬间进入内存计算的时代

张磊

分布式计算 内存管理 分布式缓存 分布式内存网格

架构师训练营第三周学习总结

Gosling

极客大学架构师训练营

「剑指offer」27道Mybatis面试题含解析

Java架构师迁哥

实用威胁建模指南(一)

亚伦碎语

敏捷 安全设计 系统安全 #威胁建模

架构师训练营第 1 期第 4 周作业

好吃不贵

极客大学架构师训练营

有这些要素,架构才完整

北风

架构 架构师之道 架构方法

入行架构师之前,这7项技能你要先了解一下

Java架构师迁哥

区块链技术最重要价值所在

CECBC

区块链 数字经济 经济

第三周总结

Geek_ac4080

架构师训练营第三周课后作业

Gosling

极客大学架构师训练营

2N方定点算法

武夷梅占

php 数据库 分布式 算法 后端

线上服务平均响应时间太长,怎么排查?

小Q

Java 程序员 测试 Jmeter 性能调优

Python时间序列分析简介(1)

计算机与AI

Python pandas 数据处理 时间序列

架构师训练营第 1 期第 4 周学习总结

好吃不贵

极客时间架构 1 期:第 3 周代码重构 - 命题作业

Null

爆赞!这份《Java核心宝典》绝对是面试复习的最佳选择

Java架构之路

Java 程序员 面试 编程语言

干货 | 全面解析“数字经济”

CECBC

数字经济 经济 经济建设

基于区块链技术实现“资产通证化”

CECBC

资产证券化 流动性

发几张国庆的照片

亨利笔记

容器 k8s Harbor 镜像

单例模式

魏小龙

3. CocoaPods 命令解析 - CLAide

Edmond

ruby ios objective-c CocoaPods PackageManager

第三节课后作业

happy

架构师训练营第四周作业

尹斌

spring-boot-route(九)整合JPA操作数据库

Java旅途

Java Spring Boot jpa

Redis-技术专题- 热点Key如何解决

洛神灬殇

【第三周】课后作业

云龙

云原生虚机应用托管-设计篇

8小时

架构师训练营第三周作业(9.28-10.4)

zjzj2017

Redis-技术专题-基础介绍

洛神灬殇

  • 扫码添加小助手
    领取最新资料包
物联网平台安全如何破?(二)_语言 & 开发_我是卤蛋_InfoQ精选文章