【我的物联网成长记9】物联网平台安全如何破?
【摘要】 很多朋友都很关心华为物联网云平台的安全能力,今天它来了。安全的设备接入,稳定放心;安全的数据传输,可靠不怕泄露;安全的数据处理,保护用户隐私。今天我们就将围绕端、管、云和应用的安全能力为大家进行详细介绍。
物联网的核心是建立一个万物感知、万物互联、万物智能的网络,驱使全球各行各业向数字化和智能化转型。正如硬币有正反两面,物联网在驱动全行业数字化的同时,也带来了物联网技术应用的安全风险,据Gartner分析预测,到2020年,企业发现的攻击中超过25%涉及物联网。
(注:引自Gartner 2017年IoT分析报告,https://www.gartner.com/imagesrv/books/iot/iotEbook_digital.pdf)
随着物联网业务越来越多的进入落地运营阶段,客户也明显认识到物联网安全的重要性,全球各行业在物联网安全的支出也越来越高。由于不同的商业应用面临的安全威胁差异巨大,物联网安全也从单一的产品安全,逐步走向端到端解决方案,并从端到端解决方案安全提升到整个架构的安全。通过不断演进的安全架构,来满足未来更多新的商业场景,如智慧农业、智慧城市、智慧交通等。因此,华为凭借在互联网、运营商网络多年的安全技术和经验积累,围绕端、管、云和应用构筑领先的物联网安全解决方案防护体系架构。今天我们就将为大家详细讲述其中的几种安全方案。
一机一密设备安全接入
一机一密安全接入方案适用于MQTT设备的接入鉴权。所谓一机一密,即物联网平台会为每一个MQTT设备分配唯一的密钥信息,设备在烧录时,将该密钥信息提前烧录到设备中。当设备与物联网平台进行连接时,物联网平台对设备接入时携带的密钥信息进行认证,认证通过后,设备与物联网平台之间才能建立连接和传输数据。
用户通过应用在物联网平台上注册设备,将设备的nodeId(设备的唯一标识,一般为IMEI或MAC地址)信息注册到平台中。
物联网平台收到注册信息后,将生成全局唯一的deviceId和secret信息,并在平台进行加密存储。
物联网平台向设备返回注册响应,携带deviceId和secret信息,用于后续设备的接入鉴权。
用户进行设备的烧录,将deviceId和secret信息烧录到设备中。
设备(MQTT客户端)向物联网平台(MQTT服务端)发起建链请求,携带deviceId和secret信息。
物联网平台将设备携带的deviceId和secret信息与平台存储的信息进行鉴权认证,鉴权通过后,允许设备与物联网平台之间建立MQTT连接。
设备与物联网平台之间通过建立的MQTT连接进行数据传输。
DTLS+数据安全传输
DTLS+加密方案,适用于建立NB-IoT设备的安全传输通道。在与物联网平台之间进行消息交互时,会在设备与平台之间建立DTLS+(Datagram Transport Layer Security,数据报传输层安全性协议)通道,对设备与物联网平台之间的数据传输通道进行加密。相比传统的DTLS协议,DTLS+在会话协商等方面做了优化,减少了终端与物联网平台通信过程中的握手次数,从而延长终端电池的使用寿命。下面我们就来看看NB-IoT设备详细的接入过程。
设备厂商批量烧录PSK到设备中,用于设备接入时的DTLS建链。
用户通过应用在物联网平台上注册设备,将设备的nodeId(设备的唯一标识,一般为IMEI或MAC地址)和PSK信息注册到平台中。当然,用户也可以选择先在物联网平台上注册完设备后,再将注册的PSK烧录到设备中。
物联网平台将应用注册的设备信息在平台上进行加密存储,用于后续DTLS建链和设备的接入鉴权。
注册完成后,物联网平台会向设备返回注册响应消息。
设备接入物联网平台,发起DTLS建链请求,请求消息中携带nodeId和PSK。其中,PSK用于与平台存储的PSK进行校验,校验通过后,保留会话信息(源/目的IP地址、源/目的端口号、协议类型),建立DTLS链接成功。DTLS+是在DTLS的基础上,引入Resume_ID,在后续的交互过程中,通过Resume_ID即可建立DTLS链路,而不需要重新协商,可以大大减少协商过程中的消息交互次数,达到设备省电的目的。nodeId用于设备的身份认证,只有设备携带的nodeId与平台存储的一致,才允许设备的接入。
通过DTLS链路,设备上报数据和应用下发命令的传输通道,均为加密通道,从而保障了设备与平台、应用交互的过程中,数据不会被非法窃取。
X.509数字证书安全认证
数字证书是由CA(Certificate Authority)机构发行的一种电子文档,是一串能够表明网络用户身份信息的数字,提供了一种在计算机网络上验证网络用户身份的方式。数字证书可以校验对方身份的合法性,还可以协商数据加密密钥,对交换的数据进行加密,同时还可以通过数字摘要校验数据的完整性。在物联网平台中,数字证书校验用户身份主要用于以下场景:
MQTT设备接入:MQTT设备接入时,采用加密的MQTTS协议,设备侧需要校验物联网平台的合法性,同时协商数据传输的加密密钥。
应用调用API接口:应用调用物联网平台的API接口时,采用加密的HTTPS协议,应用需要校验物联网平台的合法性,同时协商数据传输的加密密钥。
设备数据推送:物联网平台向应用推送订阅的设备数据时,采用加密的HTTPS协议,物联网平台需要校验应用的合法性,同时协商数据传输的加密密钥。
首先我们来看下网络用户身份真实性的校验过程:
Client A预置CA机构颁发的CA根证书(包含了CA公钥),然后向Server B发起建链请求,以明文的方式发送随机数RandomC、SSL版本、支持的加密算法等信息。
Server B向Client A以明文的方式返回服务器证书、随机数RandomS和协商后的加密算法。服务器证书是用CA机构的CA私钥进行加密的,包含了服务器的公钥信息。
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,该随机数在传递过程中,都是密文形式,即使被窃取,没有私钥也是解密不了的。然后在通过这三个随机数生成一个会话密钥,安全性就大大增加,破解的难度就更高了。
Client A用从Server B获得的公钥,对PreMaster Key进行加密,并以密文的形式发送给Server B。
Server B获取到使用自己公钥加密后的密文后,使用自己的私钥对密文进行解密,得到随机数PreMaster Key,然后根据获取的三个随机数(RandomC、RandomS和PreMaster Key)和协商后的加密算法生成一个会话密钥。
Server B会将握手消息通过Hash算法得到一个Hash值,然后使用计算生成的会话密钥进行加密,以密文的形式发送给Client A。
Client A通过生成的会话密钥,对密文进行解密并计算握手消息的Hash值,计算的Hash值与解密获得的Hash值一致,表明密文是没有被修改过的。至此,Client A和Server B的SSL握手结束。
后续Client A与Server B的通信,均通过会话密钥进行加密后进行传输,从而保障了传输过程中的数据安全。
平台数据隐私保护处理
华为物联网平台依据如下图的个人数据处理基本原则进行用户数据、设备数据的采集、存储、处理和销毁,满足GDPR(General Data Protection Regulation)法规对个人数据处理的要求。
(1)数据主体的“知情权”
通过华为云隐私政策提供隐私声明,包括详细的个人数据清单、系统收集用的所有个人数据,手机的目的和缺省存留期,帮助数据控制者了解平台个人数据的使用情况。
(2)数据主体的“更正权”
用户可以通过管理控制台或者API接口更新设备信息,例如更新设备的厂商信息、厂商名称等,以及新增、更新设备的产品模型信息。
(3)数据主体的“可删除、被遗忘权”
华为物联网平台提供个人数据的删除机制:
对于设备静态数据,如设备注册信息,控制台和API接口均提供删除设备的接口。
对于设备动态数据,如设备上报的数据,会根据用户设置的存留期进行处理,超过存留期则永久性删除。
(4)提供适当的安全保护措施
个人数据的访问控制机制,租户之间相互隔离,只有授权的帐号才能访问个人、设备的数据,文件的管理权限采用最小权限原则设置。
敏感数据的加密存储,对于个人、设备的敏感数据,如密钥、GPS位置信息等敏感数据进行加密存储。
个人数据匿名化处理,物联网平台支持用户导出个人数据,在导出数据时,对于个人敏感数据,如帐号、IMEI、GPS位置信息等数据进行匿名化处理。
提供Web安全防护机制,如防XSS攻击,防SQL注入攻击,防CSRF攻击等,防止通过上述攻击引起的数据泄露或篡改。
提供基本的组网隔离措施,关键的数据库部署在独立的虚拟机,不同子网之间通过访问控制策略限制,从组网上提升整个系统安全性。
后记
物联网平台的安全能力构筑是一个端到端的系统工程,华为正在围绕端、管、云和应用,不断构筑和提升端到端的安全架构和能力,如DICE安全设备接入、HIDS主机安全、异常设备检测/隔离等安全能力。
HDC.Cloud 华为开发者大会2020 即将于2020年2月11日-12日在深圳举办,是一线开发者学习实践鲲鹏通用计算、昇腾AI计算、数据库、区块链、云原生、5G等ICT开放能力的最佳舞台。
欢迎报名参会(https://www.huaweicloud.com/HDC.Cloud.html?utm_source=&utm_medium=&utm_campaign=&utm_content=techcommunity)