【我的物联网成长记 9】物联网平台安全如何破?

阅读数:3 2019 年 12 月 24 日 14:07

【我的物联网成长记9】物联网平台安全如何破?

【摘要】 很多朋友都很关心华为物联网云平台的安全能力,今天它来了。安全的设备接入,稳定放心;安全的数据传输,可靠不怕泄露;安全的数据处理,保护用户隐私。今天我们就将围绕端、管、云和应用的安全能力为大家进行详细介绍。

物联网的核心是建立一个万物感知、万物互联、万物智能的网络,驱使全球各行各业向数字化和智能化转型。正如硬币有正反两面,物联网在驱动全行业数字化的同时,也带来了物联网技术应用的安全风险,据 Gartner 分析预测,到 2020 年,企业发现的攻击中超过 25% 涉及物联网。【我的物联网成长记9】物联网平台安全如何破?

【我的物联网成长记9】物联网平台安全如何破?

(注:引自 Gartner 2017 年 IoT 分析报告, https://www.gartner.com/imagesrv/books/iot/iotEbook_digital.pdf)

随着物联网业务越来越多的进入落地运营阶段,客户也明显认识到物联网安全的重要性,全球各行业在物联网安全的支出也越来越高。由于不同的商业应用面临的安全威胁差异巨大,物联网安全也从单一的产品安全,逐步走向端到端解决方案,并从端到端解决方案安全提升到整个架构的安全。通过不断演进的安全架构,来满足未来更多新的商业场景,如智慧农业、智慧城市、智慧交通等。因此,华为凭借在互联网、运营商网络多年的安全技术和经验积累,围绕端、管、云和应用构筑领先的物联网安全解决方案防护体系架构。今天我们就将为大家详细讲述其中的几种安全方案。

【我的物联网成长记9】物联网平台安全如何破?

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

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

【我的物联网成长记9】物联网平台安全如何破?

  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 设备详细的接入过程。

【我的物联网成长记9】物联网平台安全如何破?

  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 协议,物联网平台需要校验应用的合法性,同时协商数据传输的加密密钥。

首先我们来看下网络用户身份真实性的校验过程:【我的物联网成长记9】物联网平台安全如何破?

【我的物联网成长记9】物联网平台安全如何破?

  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)和协商后的加密算法生成一个会话密钥,该会话密钥用于后续的数据加密。

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

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

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

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

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

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

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

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

【我的物联网成长记9】物联网平台安全如何破?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

后记

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

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

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

评论

发布