Print

发布时间: 2021-12-28
摘要点击次数:
全文下载次数:
DOI: 10.3969/j.issn.2096-8299.2021.06.012
2021 | Volume 37 | Number 6




    计算机与信息科学    




  <<上一篇 




  下一篇>> 





一种基于Merkle树的物联网感知层架构设计
expand article info 周林, 王勇
上海电力大学 计算机科学与技术学院, 上海 200090

摘要

针对当前泛在电力物联网建设中数据采集所面临的开放式环境对数据完整性、传输安全性和设备真实性的挑战,提出了建立树形结构的数据采集节点互连方案,并结合Merkle树形成采集节点的身份验证链。此方案能够较好地避免DoS攻击,确保节点身份的可靠,减少恶意节点对智能电网系统的恶意攻击。

关键词

泛在电力物联网; Merkle树; DoS攻击; 感知层

A Merkle Tree Based Connection Scheme for IoT
expand article info ZHOU Lin, WANG Yong
School of Computer Science and Technology, Shanghai University of Electric Power, Shanghai 200090, China

Abstract

Since UEIoT devices are widely used in smart grid system for end-user data acquisition, the need of data integrity, safe data transmission, and device reliability are so important in an open network environment.We present a connection tree solution for data collection, and a Merkle tree based identity chain is built for each node authentication.The solution can significantly reduce DoS attack, and mitigate malicious attacks on smart grid system.

Key words

obiquitous electric internet of things; Merkle tree; DoS attack; perception layer

2019年3月, 国家电网提出了建设世界一流能源互联网、全面推进泛在电力物联网建设、打造“三型两网”的战略目标, 使基于泛在电力物联网的智能电网建设成为近期讨论的热点。

根据国家电网公司发布的《泛在电力物联网建设大纲》, “泛在物联”是指任何时间、任何地点、任何人、任何物之间的信息连接和交互[1], 泛在电力物联网则是泛在物联在电力行业的具体表现形式和应用。但当前的物联网末端设备普遍存在着一些安全隐患, 比如暴露于开放式环境、缺乏必要的安全措施、设施自身算力差、通信中采用明文传输等。这些问题在万物互联的大环境下必然会给整个系统带来难以避免的灾难。

1 相关研究

物联网环境容易遭受的典型攻击可以归纳为5个方面: 直接的物理攻击或感染病毒; 通信数据被监听; 假数据注入攻击; 针对物联网通信协议的各类攻击(如女巫攻击、回放攻击、中间人攻击、虫洞攻击等); 拒绝服务(Denial of Service, DoS)攻击[2]。2016年10月22日, 美国发生了一起利用物联网设备发起分布式拒绝服务(Distributed Denial of Service, DDoS)攻击的严重事件, 提供核心网络服务的Dyn公司的域名系统基础设施遭受了来自全球范围的DDoS攻击, 攻击持续近7个小时, 致使大半个美国的互联网瘫痪[3]

为解决这类安全问题, 文献[4]从生物免疫学视角探讨了泛在电力物联网各个层次全方位智能联动建立安全免疫体系的构想, 但未能给出实质性的可行方案。文献[5]提出构建基于边缘计算的泛在电力物联网数据处理架构, 加强边缘节点自适应处理数据的能力, 采用就地管理与集群管理相结合的方法, 有效降低了数据处理的平均时间, 但未对数据安全传输以及节点可信度等问题展开讨论。文献[6]给出了基于区块链的电力设备泛在物联网系统架构, 试图解决数据安全、隐私保护等问题; 提出了部分中心化的分区联盟链方案, 尝试以感知层的汇聚节点或网络层的接入网关作为区块链网关, 完成区块链中的计算任务。这种方案客观上要求区块链网关具备相当的计算能力和较大的存储空间, 对拥有庞大节点数量的电力物联网来说未必可行。文献[7]从传感节点自身处理能力的角度出发, 分析了不同加密方法在应用中可能产生的问题, 指出了在提升传感节点安全性与降低节点运算能力要求方面当前并没有更好的策略。

2 感知层连接方案

从技术架构的角度看, 泛在电力物联网从下至上包括感知层、网络层、平台层和应用层。该架构如图 1所示。

图 1 泛在电力物联网技术架构

感知层采集底层物理信息, 通过包含基础通信网络和数据网络的网络层传输所收集的信息, 在平台层实现数据的统一建模、统一应用程序接口, 由应用层承载对内、对外的各种业务。

感知层集中了各类传感器、数据采集终端等物联网末端设备, 采集完的数据借助网络层的各种通信网络传输进入平台层。这是将物理世界的信息变成虚拟空间的数据信息的关键环节。考虑感知层和网络层是泛在电力物联网的数据源头, 是入侵威胁进入的关口。本文所讨论的方案主要针对这两个层面进行设计。所提出的方案将主要解决两个问题: 一是避免物联网节点被利用, 成为攻击其他节点的帮凶; 二是提高感知层各个节点的可信度。

为解决上述问题, 考虑在感知层采用树形结构连接各个末端节点(如传感节点、数据采集节点等), 即所有节点构成一棵树。考虑到不同节点存在算力差异, 以及控制树的规模, 在本文中要求设立不同规模的子树(不一定是二叉树), 每棵子树形成一个逻辑区域。子树的根由一个算力较强的超级节点负责(类似于边缘计算的节点), 属于该区域的所有末端节点都直接连接到区域超级节点(基于有线或无线连接), 末端节点之间没有直接的相互连接。

同时, 考虑节点数量和子树的深度等因素, 大多数以超级节点为根的子树结构只有一层; 如果存在能力较弱、距离过远的末端节点及子树区域, 则通过增加汇聚层节点的方式进行连接。

感知层节点连接的拓扑示意图如图 2所示。

图 2 感知层节点连接拓扑示意

基于以上拓扑结构, 平台层以下的电力物联网结构是一棵由不同规模的单层或两层子树构成的树, 末端节点必须依靠超级节点连接到网络层, 所有末端节点并不直接与平台层或核心系统进行通信, 只是将数据提供给超级节点, 超级节点再负责将收集到的数据经网络层递交给平台层, 形成一种依次递进的数据传递模式, 如图 3所示。

图 3 感知层节点的递进式数据传递模式

3 安全机制设置

在数据采集时, 会同时从多个末端节点收集数据, 而且由于很多节点暴露在外部风险环境中, 需要运用技术手段验证其可信度。为了校验整个树形结构中各个节点的身份是否可靠, 本文采用Merkle树的验证机制[8-9]。每个子节点向其父节点提供自己的哈希值, 通过哈希运算证明其真实性。验证机制的具体步骤如下:

(1) 每个末端节点在部署前(出厂前)都预置有唯一的编号、识别码, 并内置对称加密密钥(硬件加密);

(2) 在每个末端节点部署前(出厂前), 会依据自己的编号、识别码、密钥这一串信息计算出代表自己身份的哈希值, 并提供给超级节点, 以此形成子树的根哈希值;

(3) 超级节点预存本管辖区域的子树的根哈希值;

(4) 每个超级节点在部署前(出厂前)也都预置了唯一的编号、识别码以及基于硬件加密的对称加密密钥, 还内置了所管辖末端节点的解密密钥(即双方通信过程中不需要传递密钥);

(5) 每个超级节点部署前(出厂前), 会向平台层提供基于自己的编号、识别码以及密钥计算出的标识自己身份的哈希值;

(6) 平台层预存由一组超级节点构成的子树的根哈希值(称为顶层根哈希值)。

上述过程是基于以下因素: 电力物联网属于专用网络, 所有节点的部署都属于预先规划再实施, 不存在有末端节点临时加入或未知节点请求加入的可能; 预先规划的节点其软硬件资源属于可控资源, 能够按照安全规范和安全策略达到以上要求。

Merkle树的验证目标是, 属于一棵子树的每个末端节点会计算自己身份信息的哈希值, 再将这些哈希值拼接到一起作一次哈希运算, 从而得到该子树的根哈希值, 具体如图 4所示。子树根哈希值在部署前是预存于超级节点中(或预留在平台层), 在后续数据通信过程中用哈希值验证一棵子树中通信节点的可信度。在整个验证的过程中, 每个节点只需向其父节点证明即可, 即: 感知层的末端节点向超级节点证明自己的真实性, 超级节点则向平台层证明自己的真实性。

图 4 子节点向父节点提供自己的哈希值

由于平台层需要面对所有的超级节点, 为避免节点太多造成信息量过大, 因此在平台层也采取了构建子树的方法, 将一定范围内的超级节点构成逻辑区域, 比如具有相似的功能、完成任务相似等。这使得逻辑区域内超级节点的数量有限, 减小了平台层处理所有超级节点的信息时可能产生的通信和计算压力; 而且这种逻辑区块分割, 使超级节点在物理上和逻辑上都没有直接关联, 进一步避免了相互干扰的可能, 也能够降低平台层的算力成本和存储压力。区块分割示意如图 5所示。

图 5 超级节点之间的区块分割示意

图 5中, 在逻辑区域中的超级节点之间, 并不需要采用区块链的方式相互证明身份, 每个超级节点只与其父节点有通信往来, 也只需向父节点证明自己。这样就避免了在超级节点上投入太多资源用于计算和存储, 也避免了超级节点之间相互联系给网络层带来的通信压力及传播恶意代码的可能。

实际上, 按照前文中给出的树形结构, 已经在最大程度上减少了末端节点之间、超级节点之间的相互通信。一颗子树中的所有叶节点(即末端节点)只能与根节点通信, 叶节点之间无法直接联系。如果出现个别叶节点被利用, 企图感染其他叶节点, 则需要通过所在子树的根节点进行通信路由; 而子树的根节点除了汇总数据之外, 还具有路由过滤功能, 会拦截一切目的地是非根节点的通信请求, 从而遏止了无关流量和DoS攻击的风险。

4 节点验证流程

在部署超级节点和末端节点之前, 这些节点的可信信息已经备案, 且已形成身份信息的可信链, 但部署完成后, 相互通信的节点双方互不可见, 因此需要提供自己的身份验证信息来确保发送数据的一方就是它声称的那个节点, 以避免出现冒名顶替的情况。

数据传递的过程如图 6所示。无论是由最末端的传感节点向超级节点传输数据, 还是超级节点向平台层汇总数据, 该过程的步骤都是相同的。

图 6 子节点与根节点之间的数据传输流程

(1) 每个子节点将要传输的数据与自己的设备编号、识别码、时间戳一并形成数据串, 然后对该串信息分别进行哈希运算和加密。

(2) 子节点将由哈希值和密文构成的报文发送给接收方(父节点)。

(3) 接收方自报文中取出密文进行解密, 再对明文进行哈希运算, 与收到的哈希值进行比对, 以防止报文被篡改。如果比对失败, 则结束接收过程, 向发送方反馈错误码。如果报文正确, 则将收到的发送方识别码、自己的解密密钥等, 与预存的子树根哈希值进行验证, 以完成发送方身份的验证。

(4) 前述验证通过后, 对收到数据的时间戳进行验证, 以确保不会收到重复的、失效的数据。

(5) 如果接收方是超级节点, 那么收集的数据会暂存, 并定期发送给平台层; 如果接收方是平台层, 那么收到的数据均来自超级节点, 汇总到数据库后就可以进行后续的数据可靠性验证, 从而及时发现假数据注入等风险。

5 安全分析

(1) 节点身份验证。方案中各节点采用的是预置密钥信息, 因此不存在密钥传递过程中信息泄露的问题, 也不必担心使用非对称等加密手段对节点运算能力的要求。一个节点只要能够正确地与根节点传递加密信息, 就认为该节点是可信的; 如果有节点频繁出现密文交互差错, 则根节点会将其列入不可信风险名单, 以便于后续处理。当某个区域、某种类型的节点被入侵或被暴力破解时, 确实有可能会出现假冒合法节点身份、提供虚假数据的情况, 但这类攻击可以在平台层收集数据后采用人工智能、传统测量统计等多种方法进行检测(后台数据本来也需要这样处理), 不属于本文讨论的范畴。

(2) 防止DoS攻击。文中提到的域名系统基础设施遭DDoS攻击的案例, 是由于该案例中的物联网设施具有因特网访问能力。本文中涉及的末端节点首先都不具备因特网连接, 它们只与根节点通信, 也就不存在通过因特网被敌方控制的可能; 其次, 如果有个别节点存在漏洞被攻击者利用, 由于方案设计中末端节点之间没有直接的相互通信链路, 也就不可能出现同类型节点被恶意代码快速传染的问题。由于根节点有更强的防范能力和运算能力、防火墙机制、更严格的数据访问控制策略, 不会允许未经授权访问其他节点, 因此, 借助根节点再去感染其他末端节点这种假设成立的可能性也微乎其微。

另外, DoS攻击想要达到效果, 必须有足够大的通信流量。在本方案的树形拓扑结构中, 每个区域中的感知层节点所能产生的流量、节点数量都非常有限。同时, 因感知层节点暴露在开放环境中, 靠物理破坏去控制数量庞大的末端节点所需的代价也非常高昂。即便是有一定数量的末端节点被利用来进行DoS攻击, 由于根节点或超级节点的路由限制安全策略的存在, 攻击节点唯一可能攻击的目标就是末端节点所连接的超级节点, 这种DoS攻击对全网的影响非常小, 并且能够在发现后被及时遏制。

6 结语

本文提出了一种基于树形拓扑对感知层节点进行通信布局的方案。该方案能够最大限度地避免末端采集节点之间的直接通信, 避免出现大量恶意物联网节点参与的DoS攻击。通过建立末端节点的身份链信息, 实现了对节点身份的验证, 构建了可信的通信环境, 有效地抑制了仿冒身份、中间人攻击等恶意攻击行为。后续研究中将着重探讨节点身份链的数据构成和节点数量对鲁棒性、验证效率、存储代价等方面的影响。

参考文献