Kumar, Tanesh & Braeken, An & Ramani, Vidhya & Ahmad, Ijaz & Harjula, Erkki & Ylianttila, Mika. (2019). SEC-BlockEdge: Security Threats in Blockchain-Edge based Industrial IoT Networks.
以一个木屋建造场景作为IIoT用例,简要介绍了一个区块链-边缘计算框架。然后以此为基础讨论了关键的安全需求,每个层次中可能出现的安全威胁和解决方案。
木屋建造场景
作者使用的木屋用例包含了一些关键的工业流程。以下是该用例的6个主要阶段。
区块链-边缘计算框架
结合区块链和边缘计算为 IIoT 提供便利,提出了一个框架,由 Local, Edge, Global, Ledger 四层组成
本地层负责收集原始数据,上传到边缘和云。
边缘层提供部分计算资源和能力,处理原始数据并追踪原材料的收集和交付过程。
全局层提供更多的资源和能力,访问频繁的资源会放在边缘,但访问频率较低的资源会放在云。
区块链层为其它三层提供一些具体的服务,本地层主要是认证和监控是否符合条件,边缘层主要是促进来自不同地方的数据的处理、存储和共享,全局层则是总体的监督。
安全需求
以下是一些系统必须遵守的安全需求
需求 | 说明 |
---|---|
Authentication | 场景涉及不同的角色,包括传感器/执行器,边缘设备/服务器,服务/网络提供者和第三方。这种情况下,保证只有合法实体才能访问和提供资源非常重要。智能合约可以实现。 |
Integrity | 木屋场景中的数据处理和共享涉及多个利益相关者,某些如边缘设备可能通过边缘服务器/数据中心共享和复制数据,导致数据完整性受威胁。 |
Privacy | 当身份公开,如果交易存储在公链上,任何人都可以跟踪并访问,可能泄露公司与竞争对手相关的重要商业信息。 |
Trustworthy Computation | 一些计算/处理工作可能放到不信任的节点上运行,需使用可信计算保证可信度 |
Availability | 确保需要的数据在每一个层次上持续可用 |
Network Security | 木屋场景中的边缘层是攻击者的主要攻击目标,区块链的一些关键特性可以增强安全性 |
安全威胁和解决方案
以下对作者列出的安全威胁和解决方案做总结和分析。
Layer | Security Threats | challenges | solutions |
---|---|---|---|
Local | Docker/Container | 容器可以提供各种本地进程执行所需的轻量级虚拟化微服务。容器虚拟化主要依赖于内核所提供的特性,因此需要特别关注幽灵和熔断这种攻击。此外,随着最近容器的频繁使用,出现了一些与镜像相关的威胁、基于主机和操作系统的漏洞以及基于硬件的攻击。 | 通过定期扫描镜像和应用来对抗镜像漏洞。通过加密签名验证已注册镜像, 确保使用可信镜像。对于与内核和操作系统相关的威胁,部署能够验证操作系统和内核安全的管理工具。 |
Local | Local Nodes/Devices | 本地层中的低功耗节点由于节点资源有限,容易受到节点篡改、恶意代码注入、旁道攻击、虚假节点和物理破坏等攻击,可能会被篡改或窃取相关信息,影响网络乃至整个物联网系统的性能和安全。因此,需要轻量级安全机制,特别是密钥管理机制,通过身份认证,来防止所有可能的威胁,并保证消息完整性和机密性。 | 预安装密钥是初始化安全机制最简单的方式,目前为止提出的基于对称密钥或公钥的机制已满足了大部分的安全需求(如防篡改、匿名性等),然而预安装的密钥依赖于可信第三方(TTP)的存在,掌握密钥分发的TTP是整个体系的弱点。一种隐式证书(implicit based)方案允许在没有TTP的情况下生成私钥对,是可能的解决方案。 |
Local | Local Communication | 本地层的短距离通信协议/技术包括:低功耗蓝牙,ZigBee,NFC,Wi-Fi。每一种通信技术都面临多种威胁,被攻击者捕获的设备可能用来假冒正常节点。 | 主要的解决方案是使用安全密钥协商协议生成共享密钥用于之后的安全通信。如果需要添加新的安全需求,还需要使用专用协议。而对于防止设备被捕获,可使用如物理不可克隆之类的原语。 |
Edge | Virtualization | 不理解 | |
Edge | Edge Devices | 边缘网络包括网关、IoT设备和边缘数据服务器等多种不同设备,这些设备可能被攻击者物理访问和损坏。边缘数据中心是攻击者的主要攻击目标。例如rogue攻击可能造成管理者完全失去控制权,一旦攻击者夺取了控制权,他就可以控制资源以及所连接的其它设备。边缘服务器同时受到内外两方面攻击的威胁。 | 对设备进行身份验证防止篡改,以及使用入侵检测系统(ids)检测和监视边缘服务器和边缘数据中心上的各种威胁。 |
Global | Virtualization | 不理解 | |
Global | Cloud | DoS/DDoS攻击在云端更为频繁,被认为是数据和服务不可用的主要原因。消费者还担心他们在云端存储的数据,因为不清楚在服务器上如何保护数据。因此,用户缺乏对自己数据的控制使其容易受到各种安全威胁。云也容易受到Web和API的安全攻击。在这种环境下,访问控制和身份管理将变得非常复杂,需要高度重视。由于云服务是由多个利益相关者提供和使用的,因此在用户和其他实体之间就服务的各个方面达成法律协议至关重要。 | 不同的加密技术(如同态加密和基于属性的加密)被用于保证云端用户数据的安全、机密和完整以及访问控制。Web和API在开发和运行的生命周期应保证安全。 |
Blockchain | Smart Contract | Multiple function attack; self destruct function; timestamp dependency | |
Blockchain | Node | eclipse attack; Sybil attack | |
Blockchain | Platform | DAO; re-entrance attack | |
Blockchain | General Blockchain | 51% problem; private key security threats |
理解和想法
文中提出的区块链-边缘计算框架是在 Local-Edge-Cloud 这一套体系的基础上加入区块链,解决各参与方之间的信任问题,提供一些服务和功能。这些服务包括目前广泛研究的身份认证、访问控制、数据共享、全局状态审计等功能。区块链运行在所有参与方中有足够能力的设备中。
但区块链的能力应当不至于此,通过智能合约和Dapp,可以提供更强大的功能,如一些流程、文书工作的自动化,以及平时以云为后端运行的各种应用。也许不再将云视作对立,将其一同纳入区块链范畴是一种思路,但将参与各方的服务器组织起来进行协同计算以及提供分布式的云存储同样可行。
区块链的节点应散布在整个架构的所有设备中,终端IoT设备是否作为区块链节点存在应分类讨论或根据场景决定,安装哪种类型的节点(全节点、轻节点还是slock.it这种IoT设备专用节点)根据设备能力确定。如设计中有云的存在,云也应当作为区块链节点。
由于每个人都能访问链上信息,公链恐怕不适合产业界的使用。无论联盟或大或小,都应使用联盟链/私链,共识的选择同样根据场景而定。除吞吐量和延迟的限制外,联盟链/私链的准入机制和隐私支持是有别于公链而应被企业接受的主要理由。
区块链不适合海量数据的存储,但可以使用数据哈希来间接的实现该功能。这一机制解决的问题同云使用同态加密或基于属性额加密解决的问题是相同的,但使用基于云的方案还是基于区块链的方案则各有所得。
异常检测应当是和区块链并行的,每个区块链节点同样有资格作为协作入侵检测(CIDS)的节点,检测区块链网络本身的异常,但同时也可以检测作为区块链节点的物联网设备或边缘设备的异常,这两种应该是统一的。检测的算法可以定义在智能合约或共识算法中,但同样可以独立于区块链网络单纯的利用机器学习算法检测网络中产生的数据。框架中谈到的传感器/执行器状态的监督以及场景整个运行流程的全局状态监督应当指的就是异常检测的一方面。
关于认证,原先依赖可信第三方建立PKI体系进行认证的设备现在可以依赖区块链建立信任,但本地短距离通信技术面临的种种威胁区块链无法起作用,智能通过传统的密钥协商方案解决。
如因资源受限使用分层管理的体系,区块链客户端不安装在最底层的IoT设备中,还是会出现单点故障问题,代理网关的沦陷意味着与之连接的所有设备的沦陷,应当采用某种手段如定期的检查代理网关状态,在检测到异常时将网关代理的所有设备技术移交其它网关管理。异常检测依然会在该问题中起到重要作用。