CSA报告| 《用区块链技术保障物联网安全》
物联网将是下一个推动世界高速发展的“重要生产力”,物联网也是新一代信息技术的重要组成部分。随着万物联网的兴起,如何应用新技术保证物联网的安全,成为当下需要解决的问题。区块链是一种分布式数据存储、点对点传输、共识机制、加密算法等多种技术相整合的新型安全保障,使用区块链的技术确保物联网的安全是一种前瞻也是一种发展。
云安全联盟 (CSA)发布了《用区块链技术保障物联网安全》报告,该报告涉及两种不同成熟度级别的技术:区块链和物联网,重点介绍了使用区块链技保护连接设备时应考虑的各种功能,探讨区块链技术在促进和改善物联网安全方面的能力。报告对区块链技术进行了高度概述, 描述了一组体系结构模式使区块链技术可以作为一种防护手段来保障物联网安全,同时还提供了区块链技术应用于物联网安全的实例。本文翻译并提取云安全联盟发布的英文版《用区块链技术保障物联网安全》报告的主要内容,希望以与读者一些启发,能够应用新应技术区块链保证物联网的安全。
区块链概述
区块链技术【1】简称是区块链【2】是一种区块服务,它是一个事务存储库,将事务分组存到区块中。“每个区块都包含上一个区块的散列函数(Hash),就产生了创建从原始区块到当前区块的一系列区块的效果【3】,并对每个区块的内容进行数字签名,以确保记录的事务的数据完整性。”
区块链服务的三个主要组件
(1) 自治节点网络
自治节点网络是指区块链服务的所有节点(也称为区块链平台)协作以保持分类帐簿的一致性。其中独立节点自动生成,并将合法的事务注册到分布式账簿本。对于验证事务,不需要中央主管(权威)机构或可信的第三方。
每个节点都运行一个被称为协商一致意见【4】的程序机制。协商一致意见是节点在一组事务中如何更新区块链的过程,并且达成共识,确保网络中的大多数节点都验证了相同的事务集。
分布式协商一致的目标是保持系统中足够多数的分类账簿是正确和最新的(在一个粗略的时间尺度上)。协商一致性的机制防止了:
A)恶意的事务的通过
B)追溯修改交易来破坏账簿的完整性
C)执行未经许可的事务(例如:“双支出”和在加密货币设置中转让非自有资产)或阻止对正确事务请求的接受和预订。
在开发区块链服务防范特定攻击时所选择协商一致的方法,这些攻击缓解措施并不完全是技术性的。以比特币的“工作量证明”为例,即获得51%的采矿哈希计算力,将有可能使攻击者花费双倍花费的硬币或改变近期的交易历史。
此外,获得51%的哈希计算力和传播恶意交易将迅速破坏对加密货币的信心,并显著降低恶意方的利益风险价值。此外,恶意方可以简单地利用他们的哈希计算力在挖掘过程中为自己创造收益。
在一个被许可的(封闭的)系统中,经济不利因素可能不存在。许可系统还往往采用减少开采困难,允许在网络中进行更快的事务。这些许可系统必须要符合传统的网络安全控制,包括弹性防护、基于硬件的钱包、网络矿工限制访问控制、身份管理和强大的审计能力,以确保潜在的监管介入、诉讼和刑事调查系统在内的不当行为。
三种在区块链中的主要共识的机制:
拜占庭容错(BFT):拜占庭式容错(BFT)算法的设计是为了避免攻击和软件错误引起的故障节点表现出任意的行为(拜占庭式的错误)。BFT在参与的情况下提供了一致意见。
这种方法的缺点是,在形成区块链网络的节点数量上,可伸缩性限制。已经提出了BFT的替代方法,包括实用的拜占庭式容错。目前使用PBFT的区块链实现的例子是Linux基金会Hyperledger fabric (0.6)和瑞波币.
由比特币和以太坊(Ethereum)使用的“工作量证明”(POW)是一种广为人知的建立共识的机制:在工作量证明(POW)【5】一个单独的节点可以向其他节点提供其结论,该节点可以由网络中的其他节点进行验证。提交一个生成的块的节点,为了能够达成共识,还必须提供它执行的工作的证明,这是一个计算困难的任务(基于哈希函数的“密码解题”)。
工作量证明(POW)提供了良好的网络稳定性。然而,工作量证明(POW)的成本特别高。计算资源消耗。“矿工”被授予作为成功的块生成的回报,获得一个秘密奖励。
权益证明(POS)【6】与POW类似:节点在生成块时获得奖励。然而,只有几个节点可以参与到这个阶段。实际上,下一个生成节点是基于累积的财富(即,即:“权益”)。基于POS的区块链的挖掘过程通常称为“伪造”或“铸造”。推出PoS的技术就是点点币(PeerCoin)。
(2) 交易分类帐
“区块链”中数据库是由块组成。每个块包含一个有效的事务列表、一个时间戳和将当前块链接到上一个块的信息。通过每个块的链接到前面的块的链接创建分类账簿。
分类账的核心是哈希加密,这是一种数学算法,它将可变大小的数据映射到一个固定大小的字符串。所有的交易——A, B, C, D -都是散列- H(A), H(B), H(C), H(D) -然后汇总成连续的哈希- H(hA|hB), H(hC|hD) -构成一棵Merkle树。顶部散列,或Merkle树根,是集成块头部。
Merkle tree connecting block transactions to block header Merkle root
(3)分布式数据库
分布式数据库【7】是指当添加新的事务时,会生成一个分类账,并且可以在系统的节点上进行复制,这就是分布式账簿。网络上的每个节点都有自己的数据库副本,可以访问任何数据库的历史事务。
特定的加密货币的区块链容量将驱动特联网和其他主机的存储容量需求。下表为流行的加密货币在2017年8月14日提供区块链容积。
事务传播和区块链建设
下面是区块链事务的通用处理流程。当一个事务被提交到一个节点时,一个区块链服务通常运行如下:
1. 将新事务广播到所有节点。
2. 每个节点将新事务收集到块中。
3. 每个节点工作在块的一致性算法上(一般来说,这个任务在节点处理和耗电方面是昂贵的)。
4. 当节点完成协商一致性算法处理时,它将该块和处理结果广播给所有节点,然后接收该工作的补偿。(在比特币的情况下,补偿是由比特币矿工处理和接收的交易费用。)
5. 节点仅在其所有事务有效时才接受该块。
6. 通过使用已接受块的散列作为前一个散列,通过在链中创建下一个块来表示对块的接受。
这种技术并不新鲜:它涉及数字签名、密码哈希算法、对等连接、分布式数据库等等。在当前的形势下,有效结合这些离散技术的区块链技术是必要的,因为提高计算能力和互联网速度可以实现分布式计算。
智能合约
智能合约【8】是在分类帐上执行的自执行代码。使用智能合约,双方进行交易。例如,一方可以提供服务,而另一方为该服务提供支付。智能合约强制执行交易规则,也可以执行与违约相关的惩罚。
在物联网的背景下,设备可以预先配置为基于区块链上的契约地址与智能合约进行交互。这些设备随后可以进入彼此之间的事务处理。智能合约监视事务流程,并并验证在发布资金或允许操作之前遵循了规则。
使用智能合约的物联网系统的实现者必须考虑潜在的误用案例,并安装规则在合约中。例如,一个智能合约开发人员可能会强制执行托管(保留资金)要求,直到完成智能合约条款的验证。与智能合约一起工作时,考虑其他安全要求,包括需要避免在第一次合约交易完成之前再次执行合约的竞争条件(即第一笔合约交易完成之前,合同可以再次执行),验证合约的发送方和接收方不使用相同的地址。确保只有授权的设备才能使用智能合约。
链下存储解决方案
负责实施区块链技术的解决方案开发人员应该认识到,没有与使用公共区块链网络相关的机密性保护。即使是私有/许可的网络也缺乏足够的保密工具来支持在链上存储敏感数据。相反,许多组织需要建立起来“链下”存储解决方案,这些解决方案可以用来存储数据产品,而区块链将这些产品的散列记录为事务。这些链下存储解决方案应该根据任何法规要求或行业最佳实践进行加密。
部署选项
区块链可以在三个区域内部署:
?未经许可的区域(public):
每个节点都可以读取和发送事务,也可以参与协商一致的过程。POW一致性算法最适合于不受约束的区域。
?联盟区域(例如部分许可):
定义节点可以参与协商一致过程。读取和发送交易可能是公开的或受限制的。拜占庭容错(BFT)最好应用于联盟部署,比如Hyperledger——一个由Linux基金会管理的开源项目。
?许可区域(private):
受信任的组织可以将事务写入区块链,而协商一致机制则无关紧要。这种部署对受监管的行业或属于同一法律实体的组织最有效。例如由项目R3和金融机构的链核心所提议的垂直项目,很可能是由中央权威管理的私人区块链。
比特币和以太坊是不受许可的区块链实现,它们在支持分布式应用程序(DAP)方面获得了广泛的支持。以太坊包括可以使用的固体编程语言。轻松构建智能合约,实现物联网设备之间的自主点对点交易。解决方案,如BTC中继,提供了在以太坊中解决智能合约的能力,并通过比特币进行支付。
区块链实现是在区块链网络上构建服务的框架,例如加密货币、分布式应用程序和智能合约。该框架描述了要使用的理论概念以及它们如何组合(例如,协商一致机制,数字签名、密码方法和通信属性等内容)。由实现者指定并详细说明实现框架的技术组件。右边的图提供了在设计基于块的物联网的安全解决方案时要考虑的技术组件。
多个区块链实现是可能的,并且每一个都提出了不同用法和服务的建议。在这些网络之间的“无信任交换”将可能使用一个名为双向挂钩”的中继,允许访问另一个区块链的功能。Rootstock是一个开放源代码的智能合约平台,采用双向绑定的比特币。
基于区块链技术的物联网架构
将区块链技术应用到物联网【9】中,需要对物联网的体系结构模式进行测试。区块链服务,定义的模式应该包括以下三个部分:
通信模型
通信模型描述了直接在物联网节点上安装区块链软件,或者将应用程序编程接口(api)安装到IoT节点上。下图展示了一个通用的、接受的模型,结合了区块链技术和IoT,当IoT edge设备具有强大的功能,使它们能够承载事务节点软件,存储分类账,并通过节点网络维护通信。
Each IoT node acts as a blockchain transaction node
物联网事务节点
在前面的图中,每个物联网设备都承载了分类账,并且能够参与包括挖掘在内的区块链事务。每个设备都配置了一个私有密钥,或者包含了内部自生成的私有密钥来参与网络事务。这个最终状态模型提供了三个基本功能,可以启动使用区块链服务:
? 自主的物联网设备网络,包括自主协调(如:协商一致和点对点信息);
? 任何物联网的设备都可以创建运行加密特性的事务的事务分类账簿;
? 一个分布式数据库,其中任何物联网设备都有最新版本的分类账簿;
硬件的限制使得采用这个模型在当前的时间内很难实现。具有如下挑战;
1. 低处理:区块链服务的计算需要较高的CPU、内存和电源能力。在区块链平台上,主要的潜在硬件是挖掘POW;智能合约的执行和加密原始执行。
2. 小存储:在分类帐中添加的事务量会增加,即使处理小的事务数据也会变得很麻烦。
3. 有限的连通性:一个物联网设备可以利用低带宽的互联网或无线电访问,这在下载期间的性能问题并与分类账同步时都会引入性能问题。
一些公司,如IOTA,提出了“区块链”微型传感器的新方法,包括以下内容及解决方案:
? 简化挖掘处理过程,减少硬件需求。
? 实现与物联网交互相关的微事务。
? 保持轻量级的帐簿
基于云计算的物联网区块链网络
在启用云的区块链网络中,事务和挖掘节点都位于云和预置环境。根据实现的不同,节点可能是企业服务器;企业/个人电脑或智能设备。(手机或平板电脑);基于云的虚拟机和物联网设备,需要拥有足够的硬件资源(CPU、RAM、存储等)。
具有有限硬件资源的物联网设备作为区块链客户端。他们不存储分布式账本。这些客户机通过api与上游的基于云的区块链事务节点交互。api可能是HTTP REST或JSON RPC。
物联网设备收集数据转发到事务节点以进行区块链服务的处理,或者通过指向在云中运行的区块链节点参与智能合约事务。在这种情况下,特联网设备仍然配置了私有密匙来签署它们的数据。然后将已签名的数据发送到事务节点进行处理。为了安全地发送数据,特联网设备和事务节点之间必须有一个单独的信任协议。例如,一对一的关系可以在两个设备(一个物联网设备和一个事务节点)之间使用白名单和双向身份验证功能。还应该使用硬件安全性来安全地存储私有签名密钥。
对于许可区域(私有区块链服务),对挖掘节点的访问可能仅限于授权的操作人员。在一个联合区域(部分许可的区块链服务)或许可区域(私人区块链服务),成员可以决定实现该体系结构模式以提高安全性或用于法规遵从性目的。
比特币的实现使用“瘦客户端”来提出这种功能,也叫简化支付验证(SPV),它不存储所有分类账的完整副本。这些“瘦客户机”与使用比特币客户端API (BCCAPI)的节点通信。
可以在多个特联网设备之间交换消息。这些消息包含的数据被集成到参与交换到事务节点的特联网设备的事务中。物联网设备之间的通信协议和消息格式超出了区块链实现的范围:这些通信是指机器对机器的通信,如消息队列遥测传输(MQTT)。
一个利用互操作性能力的丰富的生态系统利用互操作能力
围绕区块链技术开发一个生态系统将是一个加速其采用的机会。这个潜在的生态系统将提供简化物联网集成到区块链服务的功能。
服务提供商,如块密码,提供API功能,简化物联网与区块链服务客户和服务之间的交互。API中间层允许开发物联网上与不同区块链服务通信的特性,方法是关注服务的价值而不是区块链技术的技术实现。
解决方案提供商,例如信用,提供了快速构建私有区块链服务的框架。这些框架在事务节点上运行每个节点都由客户端通过API访问。这些框架还提供了与其他块链服务交互的功能。
多个区块链服务之间的共存
如下图所示,另一个概念集中于多个区块链服务,每个服务提供不同的特性和货币,它们的数量将增长。这些区块链服务将提出互补的功能。每个区块链服务都可以与其他服务进行绑定,或者使用第三方提供的api。
Each blockchain service can run in different contexts, such as personal home network, enterprise and the Internet.
每次区块链服务可以运行在不同的语境中,如个人的家庭网络,企业和互联网。
基于区块链技术的物联网架构模式
CSA 物联网和区块链/分布式分类技术工作组提出了以下系统,在多区块链服务中,物联网客户端可以进行协作。
区块链服务1是一个专注的企业实施:
?事务节点是托管在云中的企业计算机或服务器。
?物联网区块链客户是部署在企业地区区块链服务2的传感器和智能设备,是一个消费智能家居:
?事务节点是个人计算机和其他设备或云订阅。
?物联网区块链客户是智能设备,如冰箱、温度传感器和安全摄像头。
物联网设备是区块链服务的客户端的架构,主要是由当前业界的努力所采用的实现区块链技术。
用于物联网安全的区块链技术的选择
区块链技术可以帮助保护物联网设备。物联网设备可以配置为利用公共区块链服务或通过安全API与云中的私有区块链节点通信。将区块链技术纳入物联网系统的安全框架中,使物联网设备能够安全地发现彼此,使用分布式密钥管理技术对机器对机器的事务进行加密,并验证软件映像更新的完整性和真实性,以及策略更新。
基于本报告中详细描述的潜在架构模式,物联网设备将通过API与区块链事务节点进行通信,甚至允许受限设备参与区块链服务。
为了确保安全性,在将物联网设备引导到特定的区块链服务时应该注意。下面是物联网发现的一个用例,它支持将一个物联网设备注册到一个事务节点中。物联网设备必须首先配置凭据,可以用来证明授权,以便将其添加到事务节点。必须在安全的环境中进行这种凭据供应,以防范特定物联网设备生态系统的威胁。
我们对区块链技术的回顾和市场计划的发展,突出了五个需要考虑的特点。使用区块链技术保护物联网时:
1、物联网发现可伸缩
2、信任的沟通
3、消息身份验证/签名(事件链)
4、物联网配置和更新
5、安全固件映像的发布和更新。
1. 物联网发现可伸缩
智能城市和大型企业物联网的部署将导致数千或数万个必须协同工作的物联网设备[28]的激活。通常,这些设备将在自主机器对机器的事务中相互协调。这些设备还必须能够发现合法的对等点和服务进行交互。物联网系统可以利用公共和私有的区块链实现来利用可扩展的物联网发现。
例如,在比特币内部,一组硬编码的DNS种子为新用户和设备提供了引导服务。这些DNS种子可以在物联网设备中预先配置。物联网设备查询这些地址,并提供完整节点的IP地址。然后物联网设备将自己注册到一个节点,并请求网络上的其他物联网设备列表。当供应时,物联网设备可以开始点对点通信,同时向网络中邻居传播同伴发现信息。
命名DNS种子地址的预配置(硬编码)降低了执行中间人攻击的能力。物联网设备在选择一个节点注册之前,从多个DNS种子接收信息。必须使用DNS 安全来确保根服务器的名称解析,并减轻DNS欺骗攻击。
命名DNS种子地址应该硬编码到固件中;案例5提供了一种保护固件映像分布和更新的方法。
一个私有的区块链服务也可以支持引导和注册物联网设备到网络上。事务节点将在提供可信节点列表之前对物联网设备进行身份验证,物联网设备的注册。
可以包括以下内容的凭证:
在安装过程中安装的物联网设备上安装的安全凭据必须被生成,并提供一个安全的过程,这可能是区块链实现的一部分。
物联网设备的所有者或安装技术人员提供的凭据将初始化设备注册到安全服务器,以获得物联网的特定凭证。
2. 信任的沟通
在某些情况下,例如公共部署,物联网设备需要使用安全通信通道来交换构建事务所需的数据,以便存储到分类帐簿中。这个分类账也可以用来存储公共加密密钥。
如果交换必须保密,物联网设备(发送方)将加密消息发送到对等物联网设备(接收方)使用接收器物联网设备的公钥,该设备存储在区块链服务中。
为了方便这个安全的事务,物联网发送者请求它的事务节点从物联网接收器的公钥到区块链分类。物联网发送者使用物联网接收器的公钥对消息进行加密。
只有接收者可以用他们的私钥解密消息。关键的协议算法,如基于椭圆曲线密码学算法(ECDH),应该用来创建密钥来保护诸如内容加密密钥(CEK)和/或通信加密密钥(TEKs)之类的事务。
在这个用例中,区块链服务充当分布式公共密钥基础结构[29]。公共密钥存储在事务中:当一个新的物联网设备注册到一个私有或公共的区块链服务(见上一节)时,将创建一个新的事务。该事务由物联网属性(包括其公钥)组成。如果物联网设备必须更新其证书,则重新注册。被撤销的证书也可以作为事务添加到区块链服务中。在分类帐中记录的有担保的交易记录提供了在他们的一生中物联网设备键的一致性。
在区块链中实现了使用多种类型的加密密钥。用于确保区块链交易的密钥通常被称为钱包参数。在这个用例中讨论的参数代表了身份密钥,可以用来生成加密密钥(TEKs)或内容加密密钥(CEKs)进行通信,来保护特联网设备点对点之间的通信。
物联网身份密钥(参数):非对称密钥对用于生成密钥材料,用于加密物联网设备之间的消息内容和流量。
钱包钥匙(参数):用于存储在分类帐簿中的交易;可能包括物联网身份密钥。
3. 半自治机器对机器的操作
物联网技术的一个关键驱动力是机器能够以半自治的方式协同工作以实现特定目标的能力。区块链可以使用智能合约功能作为这些自治事务的安全助推器。
智能合约可以写下来,包括合同的规则、处罚和条件。物联网相关设备可以配置一个API来与智能合约进行交互,从而与对等设备或服务签订协议。每个事务必须在执行之前满足协定的条件,并且所有的事务都被写入到区块链。
智能合约可以强制执行访问限制,比如谁(物联网设备)可以进入事务。每个事务都与物联网节点的钱包参数签名,钱包应该存储在硬件安全容器中。在区块链上的事务记录确保了事务不能被拒绝(例如,当一个服务提供者的物联网设备与一个消费者的物联网设备进行交易时)。
4. 物联网配置和更新控制
随着更多的物联网设备的诞生,区块链技术在可信的安全配置领域是有希望连接到云服务。以下是三种安全措施:
1. 分类账簿可以托管物联网属性,例如最后一个版本的验证的固件和配置细节。在引导过程中,特联网设备要求事务节点从分类帐簿中获取配置。通过对公共分类账簿的内容进行分析,可以在分类账簿中对配置进行加密,以避免物联网的网络拓扑的发现。
2. 分类账簿可以为每个特联网设备托管最新配置文件的哈希值。物联网设备从云服务下载最新的可信配置文件(或设置时间),然后利用事务节点API来检索和匹配存储在区块链上的哈希值。这允许管理员定期刷错误的配置,并在其网络中重新启动物联网设备,并加载新的配置。
3. 上述第2条所讨论的过程可以应用于物联网设备的固件映像,尽管这可能,在物联网设备上需要额外的带宽容量。
5. 安全固件映像的发布和更新
类似于支持从云服务提供商下载可信配置,区块链技术也可以支持物联网设备的可信存档(固件)的过程。物联网设备开发人员也可以实现他们自己的区块链或使用公共区块链。开发人员可以将最新已知的可信映像的哈希用于其设备家族,并将这些哈希加载到区块链中。该方法通过三种方式支持增强物联网设备的安全性:
1. 物联网设备可以通过API进行配置,在重复的基础上下载新的固件映像。因为大多数物联网设备不需要内存中保存或存储数据,所以它们可以在需要时被覆盖。例如,可以通过在供应商的区块链上验证映像哈希来启用每日或每周的映像更新过程。
2. 物联网设备可以使用基于块的映像更新过程来验证供应商提供的所有更新。
3. 物联网设备可以使用上面的方法1或2来验证所有更新,此外还需要设备所有者批准固件的更新(使用安全的方法)
物联网企业应加强在总账中固件的数字答名,提高当前标准软件签名的方法, 而不是在应用更新之前将其发布在其网站上,物联网设备从分类账簿中获得新固件的数字签名,然后使用维护公钥验证它。此维护公钥可以在fabric和硬件级别进行融合(无更改/更新功能)
警告:必须确保制造商维护私钥,以避免损害所有固件。获取私钥的攻击者可以使用看似“有效”的数字签名来提供可用的恶意固件。
基于固件信誉的更新(事物链):
分类帐簿的事务历史交易能力可以聚合新固件的符号,避免被安装恶意软件和反门固件,为社区专家提高固件安全固件的信任力.
当固件信誉在分类帐簿中达到特定的选票级别的分类账簿,物联网设备的所有者/管理员还应该配置物联网的自动更新。这种在区块链服务中对物联网设备的“接受”可能基于设备在分类帐簿中的固件信誉,这将产生以下好处:
1. 避免使用与区块链服务相连接脆弱的设备。
2. 在物联网设备上执行安全更新流程。
3. 在区块链服务中定义最低要求的安全要求。
物联网的区块链安全服务总结
结论
实施物联网解决方案的组织,继续面临着识别安全技术和方法的挑战,确定能够减轻对物联网(IoTs)的独特威胁。区块链技术有望在应对这些挑战中发挥重要作用。利基(Niche)安全厂商将开始提供这些服务,可以立即利用区块链实现提供的完整性和真实性服务。
在本文中,我们强调了在使用区块链技术保护连接设备时需要考虑的特性。然而,由于物联网的硬件限制,我们得出结论:在几十万或更多的物联网设备的背景下,这些设备中有许多不能作为事务节点(生成事务、提供协商一致性等),因此不属于安全区块链。许多设备将受益于安全性。许多设备将受益于区块链服务提供的安全性和其他功能,这些服务通过网络的上游事务节点或专门的中间商提供。这些上游功能可用于保护物联网设备(配置和更新控制、安全固件更新)和通信(物联网发现、可信通信、消息认证/签名)。
我们希望这个文件能够鼓励商业领袖和开发人员拥抱区块链这个机会,来扩展这项技术的能力以确保物联网的安全。
原文链接:https://mp.weixin.qq.com/s/DShAaS_7YSYQle5FzyKGpQ