最后一节我们来讨论区块链与网络安全之间的关系,我们从两个方面着手建立分析框架:一方面我们分析区块链技术在信息安全方面的应用,另外一方面我们分析区块链技术自身安全性的问题。正如前文所说,区块链有可能从提高数据完整性、更安全的数字身份认证等方面改善物联网设备的安全,从而提升其安全性。事实上,区块链可能会发挥保密性、完整性和可用性的“CIA三原则”作用,从而提高应变能力,加密、审计和透明度。正如英国爱丁堡内皮尔大学计算机学院教授比尔.布坎南所说:“区块链填补了我们在安全性、可靠性方面的不足…通过区块链方法,我们可以正确地验证和签署我们的交易。”接下来我们讨论具体在网络安全领域的应用场景和案例。
区块链技术在网络安全领域的主要场景和案例可以分为以下四种主要场景:
(1)通过数字身份认证保护边缘设备,随着IT技术焦点转移到所谓的具有数据和连接性的“智能”边缘设备,安全性也随之提高。毕竟,网络的扩展可能对于IT效率、生产力和功耗(即对云计算和数据中心资源有利)而言是有利的,但这更广泛的业务来说是一个安全挑战。许多公司正在寻求利用区块链来保护物联网和工业物联网(IoT)设备的方法,因为该技术能够加强认证,改善数据归属和流量,并有助于记录管理。很显然,这里是和物联网领域的应用直接相关的。
例如创业公司Xage安全公司在2017年下半年推出 “防篡改”区块链技术平台通过设备网络大规模分发私人数据和身份验证的服务。此外,该公司表示支持任何沟通,可以在不规则连接的边缘设备中工作,并确保各种不同的工业系统。该公司表示,已经与ABB无线公司合作开展需要分布式安全的电力和自动化项目,以及与戴尔合作为戴尔IoT网关及其EdgeX平台上的能源行业提供安全服务。同时,作为另一个现实世界的例子,英国马恩岛政府采取了不同的路线。它正在测试区块链技术,看它是否可以防止物联网设备的妥协(将唯一身份签名到物理项目以确认真实性)。这些改进也正在嵌入芯片组层面。Startup Filament最近宣布推出一款旨在使工业物联网设备能够使用多种区块链技术的新型芯片。Blocklet芯片背后的理念是让物联网传感器数据直接编码到区块链中,目标是“ 为分散交互和交换提供安全的基础 ”。
(2)通过区块链技术改进数据的隐私性和完整性。作为一种数据结构,区块链网络中的数据进行了完全加密,可以确保这些数据在运输过程中不会被未授权的用户访问。例如,IBM为Watson IoT平台提供了一个选项,用于管理整合到蓝色巨人云服务中的私有区块链分类账中的物联网数据。爱立信的区块链数据完整性服务为在GE的Predix PaaS平台中工作的应用程序开发人员提供完全可审计,合规和值得信赖的数据。 像Obsidian这样的创业公司正在使用区块链来保护在聊天,短信应用和社交媒体中交换的私人信息。与WhatsApp和iMessage采用的端到端加密不同,Obsidian的Messenger使用区块链来保护用户的元数据。用户不必使用电子邮件或任何其他身份验证方法来使用信使。元数据随机分布在整个分类账中,因此不能用于收集在一个单一的点,从而可能会受到损害。
(3)取代公钥基础设施(PKI),在电子邮件、消息应用和其他形式的通信服务中提供更安全的基础设施。目前主要的PKI都依赖于集中的第三方证书颁发机构(CA)来颁发,撤销和存储密钥对,这些密钥对可能会危及加密通信并欺骗身份。而是在区块链上发布密钥,理论上将消除错误密钥传播的风险,并使应用程序能够验证与之通信的人的身份。例如爱沙尼亚已经推行很久的数字国家计划,其中一项服务就是使用区块链创建无钥匙签名基础设施(KSI)来取代PKI。正如布坎南说:“目前我们依靠PKI来建立我们的信任基础设施,但这往往是有缺陷的,尤其是在网络犯罪分子现在正在建立他们自己的数字证书的时候。通过区块链方法,我们可以使用公民生成的身份来签署交易。”
(4)通过区块链技术来提高对网络安全攻击的防御性,使用区块链方法的更可信的DNS基础架构将大大地帮助互联网的核心信任基础设施,比如IPFS(InterPlanetary File System)就是这个领域的典型应用。所谓IPFS就是一个旨在创建持久且分布式存储和共享文件的网络传输协议。它是一种内容可寻址的对等超媒体分发协议,在IPFS网络中的节点将构成一个分布式文件系统。业界普遍认为下一代互联网的特质应该是分布式可信任的网络,而IPFS提供了一个非常好的解决方案。正如其官网所说,“IPFS是分布式Web,是点对点的超媒体协议,以构建更快、更安全、更开放的网络。IPFS旨在取代HTTP,为我们构建一个更好的web”
然后我们来讨论区块链技术自身所引发的安全问题,主要体现在三个方面:加密算法非安全性、协议的安全性和系统安全性。而这些安全问题会发生在区块链技术的几个主要架构中:存储层、协议层、扩展层和应用层中。
所谓加密算法安全性指的是基于区块链的公钥算法和哈希算法的安全性。比如比特币的算法是SHA256,通过数学算法的复杂度提升来推动其安全性,不过任何一种加密算法都存在着被破解的可能性,因此需要在底层算法尤其是区块链数学相关的领域进行深入研究。所谓协议安全性指的是区块链所依托的协议层的安全问题,以比特币为例,如果能够控制超过全网51%的算力就有能力推翻原有的既定协议,这对大多数的虚拟货币类型来说都存在风险。所谓系统安全性就是指区块链的智能合约在创建和编写过程的安全漏洞,这些漏洞很容易成为恶意网络攻击的对象。
按照区块链技术架构的不同层次来说,区块链技术的安全风险可以分为以下四个类别:
(1) 存储层的安全风险:区块链存储层的功能通常是结合分布式数据库、文件系统等多种存储形式,存储上层应用运行过程中产生的所有交互数据。其主要存在的安全风险由基础设施安全风险、网络攻击威胁以及数据丢失和泄露等,这些问题会影响区块链数据文件的可靠性、完整性以及存储数据的安全性。
除此之外,在存储层中随着时间的推移,区块数据可能会爆炸式增长(节点之间恶意频繁交互),也可能会呈线性增长,这主要取决于此区块链应用的设计,依赖现有的计算机存储技术,区块数据若发生爆炸式增长,可能导致节点无法容纳又或者使区块链运转缓慢,从而使稳定运行的节点越来越少,节点越少,则越趋于中心化,引发区块链危机。 不过目前主流的区块链应用譬如BTC、ETH等,都完好的解决了此问题,比特币的解决方法为固定区块大小为1M,防止区块过度膨胀,区块链大小呈线性增长。但是此解决方案并不优雅,限制区块大小的同时也给比特币带来了交易时间长的诟病,目前比特币的一笔交易需要确认数小时。
(2) 协议层安全风险:区块链技术的协议层主要是结合共识机制、P2P网络、非对称加密机制等,用于实现区块链用户网络的构建和安全机制的形成。协议层的安全风险主要由区块链技术核心机制中存在的安全缺陷引发,包括来自协议漏洞、流量攻击以及恶意节点的威胁。
在区块链中,P2P网络依赖附近的节点来进行信息传输必须要互相暴露对方的IP,若网络中存在一个攻击者,就很容易给其他节点带来安全威胁,中心化的网络不会太过担心此问题的原因是组织的网络中心的安全性都是极高的,即使暴露也不会有太大问题。而去中心化的公链网络节点可能是普通家庭PC,可能是云服务器等等,其安全性必然是参差不齐的,其中必有安全性较差的节点,对其进行攻击将直接威胁节点的安全。
除此之外,区块链技术的广播机制和验证机制也存在着一定的安全风险。在区块链中,节点是与节点互相连接的。当某节点接入到区块链网络后,单个节点会与其他节点建立连接。此时该节点就具备了广播信息的资格,在将信息传播给其他节点后,其他节点会验证此信息是否为有效的信息,确认无误后再继续向其他节点广播。这个机制天然的存在着双花问题,也就是如果攻击者控制全网算力的一半以上,则前面提到的替代历史攻击有100%的概率成功。由于攻击者可以比网络的其他部分更快地生成块,所以他可以坚持自己的私有分支,直到它比诚实节点网络建立的分支更长,它将代替主链。
区块链的运行为了维持其数据的有效性与真实性,必须要有相应的验证机制来限制节点必须将真实信息写入区块中。验证机制的代码是区块链应用的核心之一,一旦出现问题将直接导致区块链的数据混乱,而且核心代码的修改与升级都涉及到区块链分叉的问题,所以验证机制的严谨性就显得尤为重要。必须要结合验证机制代码的语言特性来进行大量的白盒审计或是模糊测试,来保证验证机制的不可绕过。
(3) 扩展层安全风险:目前扩展层所实现的主要就是智能合约的功能,由于智能合约的起步应用交完,相关的程序开发中的安全问题尚未得到解决,因此会造成代码实现中的很多安全漏洞。虽然智能合约的基本要求是合约处理逻辑的正确性和完备性,但是由于开发者能力的不足以及私人利益导致的安全问题仍然很明显,譬如在以太坊上多次发生的智能合约的程序漏洞导致的数亿美金的众筹资金被劫持的问题。
随着区块链技术的不断升级,区块链已经具备在链上繁衍出多种应用的功能,而实现这种功能的基础就是合约虚拟机(用于运行各种智能合约的平台),此技术的出现极大的提高了区块链的可扩展性,是区块链2.0的重要标志。 合约虚拟机运行在区块链的各个节点上,接受并部署来自节点的智能合约代码,若虚拟机存在漏洞或相关限制机制不完善,很可能运行来自攻击者的恶意的智能合约。这些供给方式包括可重入攻击、调用深度攻击、时间戳供给等方式。我们需要理解的是智能合约本质上是一份代码程序,难免会有因为考虑不周的导致出现漏洞的情况,所以在发布一份智能合约之前,进行大量的模糊测试与白盒审计是必不可少的。
(4) 应用层安全风险:区块链的应用层主要用于面向用户提供服务,涉及了不同行业领域的应用场景和用户交互。应用层的业务类别多样且交互频繁,所以很多传统安全问题都在这一层之中集中,成为了攻击装实施攻击和突破区块链系统的首选目标。应用层安全风险涉及了私钥管理安全、账户窃取、应用软件漏洞、DDos攻击、环境漏洞等多种安全问题。
由于区块链平台对于网络带宽的存在高需求,所以一旦发生DDoS攻击,对于平台和整个行业来说是非常严重的。若交易平台被DDoS攻击,不但交易平台蒙受损失,区块链货币的交易量也将大大减少,间接影响区块链货币的涨跌,在相关统计的安全事件中,以及调查的相关案例显示目前只要是交易平台上线都遭受到DDOS攻击过。
我们从上面的分析可以看到,区块链技术架构本身是存在着安全风险的,且其去中心化、自治化和匿名性等特点也对现有网络和数据安全监管带来了新的挑战。本质上来说,区块链的安全性是由P2P网络加上密码学所保障的,因此它的优势在于基本不存在单点故障所带来的系统性的影响,不过我们也需要注意到区块链技术本身由于发展尚在早期,存在着各种各样的安全挑战,并不是使用了区块链技术就一定保障系统的安全性。
我们可以看到随着技术的发展,区块链安全问题越来越趋向于用户、平台层面,也就是说区块链的安全问题已经延伸到了传统的网络安全、基础设施、移动信息安全等问题。所以在谈及区块链安全的时候,不应该仅仅局限于区块链本身,它的使用者以及衍生的东西都需要我们的重点关注。因此,随着区块链技术在各个领域上的应用,我们应该正视相应的风险,加强对区块链应用领域的正确引导,推动和强化区块链安全产品和服务市场的发展,鼓励自主可控的区块链平台和应用开发,打造更加符合市场需求和拥有自主产权的区块链技术生态。