区块链中的安全问题研究
2017-10-30刘德
刘德
摘要:区块链作为新兴技術受到越来越广泛的关注,本文首先介绍了区块链的技术原理,然后从区块链的安全特性,区块链面临的安全挑战,区块链安全体系建设3个角度进行了安全层面的全面分析,最后提出了基于区块链身份保护,数据保护,可信计算环境构建的区块链增强网络空间安全的思考。为区块链产业的研究人员在进行开发的时候,提供一个安全层面的参考。
关键词:区块链;安全问题;安全增强
中图分类号:TP311.13;TP309 文献标识码:A 文章编号:1007-9416(2017)08-0199-02
区块链[1]是从比特币中抽象出的底层技术,是一种传统技术在互联网时代下的新的应用,这其中包括分布式数据存储技术、P2P技术、共识机制和密码学。随着各种区块链研究联盟的创建,相关研究得到了越来越多的资金和人员支持,区块链被寄予厚望。目前,区块链的应用已经延伸到了数字交易、物联网、资产管理等多个领域。但是安全事件的发生,使区块链技术在安全层面面临了诸多的挑战。本文从区块链的技术原理入手,分析了区块链面临的安全威胁,并提出了基于区块链技术提升网络空间安全的思考。
1 区块链技术原理
1.1 基本原理
区块链是一种去中心化的、可信的分布式数据系统[2]。从狭义上说,区块链本质上是一种分布式的账本。它是一种通过将数据区块按照时间的顺序进行组合的链状数据存储结构,并通过密码体制保证数据的不可伪造、不可篡改。而从广义上说,区块链是一种全新的分布式架构和计算模式。它利用区块和链的数据结构进行数据存储,利用共识算法保证各节点间数据的同步,利用密码学体制保证数据的存储安全和传输安全,利用自动化的脚本建立智能合约,实现自动处理自动判断。
1.2 基础架构模型
按照层次对区块链的基础架构进行介绍,如图1所示。
(1)数据层:数据层包含现实区块链所使用的底层数据结构,其中包括:1)数据区块。在区块链中,数据是被永久存储的,而存储这些记录的数据结构就是区块。区块的头用于和其他区块进行连接,块身用于记录数据。2)链式结构。区块是按照时间顺序依次生成并存储的,将区块以链的方式串接在一起,就组成了区块链的存储结构。3)时间戳。时间戳被广泛用于网络系统和密码系统,用于对每个数据的独立性进行标记,以对抗伪造和重放。4)哈希函数。哈希函数用于对数据生成定长的散列值,作为对数据的标记。5)Merkel树。梅克尔树,实现数据存在性和完整性的快速归纳和校验。6)公钥密码。公钥密码是密码学在区块链中的核心应用,通过公私密钥进行加密和认证。(2)网络层:网络层是基础网络结构,核心是P2P网络,传播机制和验证机制。(3)共识层:共识层是区块链各个节点之间达成共识,其中主要包括工作量证明机制PoW,权益证明机制PoS和授权股份证明机制DPoS,各个机制的原理不再展开。(4)激励层:激励层是用于保证各个节点之间,在共识机制之下,实现工作和收益最大化满足的一层。主要包括发行机制和分配机制。(5)合约层:合约层是运行在各个计算节点之上,能够自动化执行的各种算法脚本和代码。其中最主要的部分是智能合约,能够根据当前的状态对区块链的行为进行判断和调整。(6)应用层:应用层根据区块链的应用场景而异。包括电子伙伴,资产管理和物联网。
2 区块链安全分析
2.1 区块链安全特性[3,4]
(1)写入数据的安全性。对于写入区块链的数据而言,在共识机制的制约之下,当全网大部分的节点或者是核心的节点认可这个记录时,这个数据的合法性和真实性才得以确保,记录才允许被永久写入区块链当中。(2)读取数据的安全性。由于区块链中的数据是加密存储的,只有拥有用户私钥的节点才可以解密区块中的核心数据,进而获取区块内容。此外,区块链的共识机制是复杂的,能够确保大部分的用户能够看到一个相同的账本。(3)分布式拒绝服务(DDOS)攻击抵抗。区块链的区中心化架构相比于传统的网络架构,其节点分散、无固定中心且具备冗余的特性,针对区块链的DDOS攻击将会更难展开。攻击者对某个节点攻击时,即便这个节点失效,也不会影响整个区块链系统。
2.2 区块链面临的安全挑战
目前区块链面临了诸多方面的安全挑战,主要包含以下几个方面:
(1)密码算法安全性。目前区块链基于的算法主要是公钥算法和哈希算法,其安全性来源于数学难度,相对是安全的。但是随着高性能计算和量子计算的发展和商业化,目前所有的加密算法均存在被破解的可能性,这也是区块链面临的一个威胁。(2)协议安全性。区块链中,如果一个节点能够掌控全网51%的计算能力,就可以伪造或者篡改区块链的数据。在目前典型的电子货币的应用场景中,这是得不偿失。但是随着区块链应用范围的拓宽,攻击者为了达到某个目的,有可能实施这样的攻击。(3)使用安全性。区块链有着无法篡改,不可伪造,计算不可逆的特点,但是必须是在私钥安全的前提之下。但是目前针对密钥的攻击层出不穷,一旦用户使用不当,造成私钥丢失,就会给区块链系统带来危险。(4)系统安全性。在区块链的编码中,不可避免会存在很多的安全漏洞,针对这些漏洞展开的攻击层出不穷,这对区块链的应用和推广带来的很大的影响。
2.3 区块链安全体系构建
针对现有区块链技术安全特点和安全威胁,需要围绕一下几个方面构建更加安全的区块链系统,保证区块链在未来大范围部署后的安全性。
(1)物理安全。区块链终究是运行在网络和主机上的,传统的安全防护方法能够有效增强网络和主机安全,如VPN、防护墙、入侵检测和物理隔离。(2)数据安全。区块链各个节点之间的数据应该是加密传输的,并对发送到区块链中的数据实施严格的访问权限控制,以规避不必要的数据泄露。(3)应用安全。应用的安全需要保证认证、授权、交易规则等方面的安全,任何参与到区块链计算中的用户和计算节点都应该是被监控的。(4)密钥安全。私钥安全是区块链放伪造的核心,要建立合理的安全机制对密钥进行保管。当密钥泄露时,应当对密钥进行及时的修改。endprint
3 基于区块链技术提升网络空间安全
基于区块链去中心化、匿名性、开放性和不可篡改性这些特点,区块链能够在身份保护、数据保护和构建可信计算环境以方面发挥重要的作用。
3.1 身份保护
传统的基于PKI的公钥体制的部署通常依赖于一个中心化的可信第三方CA,统一生成、分发和销毁公私密钥对。CA的中心化决定了其成为黑客攻击的重要目标,一旦攻击成功,黑客能够掌握用户的私钥,进而实施中间人攻击。
基于区块链增强身份保护有两个思路:
(1)保留中心,采用区块链存储和颁发证书。通过将数据源去中心化,为用户提供了验证证书来源真实可靠得手段。同时,在区块链中进行签名验证的时候,能够减少对密钥中心的访问次数,优化了网络登录的效率。(2)取消密钥中心,将个人信息和哈希值联系在一起,网络中的设备进行通信的时候,设备以点对点的方式直接进行互动和验证,不需要第三方的介入。这对于目前移动终端的大规模普及和物联网安全的发展有着重要的意义。
3.2 数据保护
在数据保护的过程中,通常用私钥对文件进行签名,验证方可以根据对应的公钥进行验证。但是如果证明私钥没有被修改是一件困难的事情,因为私钥本身是保密的。用区块链存储文件的签名信息,充分利用了区块链透明分布的特点,单个节点都无法对数据进行篡改和伪造,这就保证了数据的完整性和安全性。
3.3 可信计算环境构建
目前,在可信网络的实现中,仅仅是解决了边界安全的问题,而对于网络连接后的安全状态缺乏一个有效的保障机制。区块链去中心化的特点恰好可以解决这个问题。处于同一个网络中的计算节点,在网络运行过程中难以对其他节点的安全状态进行实时判断和跟踪,而区块链技术可以将每一个平台的安全状态信息实施更新到整个的安全账本中。当计算节点发现某个节点的审计信息出现异常的时候,就可以判断其处于危险状态,而进行一定的处理。
4 总结与展望
区块链的研究正在起步,而区块链又面临的诸多安全问题。本文对这些安全问题进行了分析,并提出了基于区块链增强网络空间安全的几点思考,为区块链产业的研究人员在进行开发的时候,提供一个安全层面的参考。
参考文献
[1]姜奇平.区块链与货币哲学的发展[J].互联网周刊,2016,(11):70-71.
[2]袁勇,王飛跃.区块链技术发展现状与展望[J].Acta Automatica Sinica,2016,42(4):481-494.
[3]赵赫,李晓风,占礼葵,等.基于区块链技术的采样机器人数据保护方法[J].华中科技大学学报自然科学版,2015,(S1):216-219.
[4]廉蔺,朱启超,赵炤.区块链技术及其潜在的军事价值[J].国防科技,2016,37(2):30-34.
[5]张焕国,赵波.可信计算[M].武汉大学出版社,2011:23-25.
[6]叶纯青.区块链与保护数字身份安全[J].金融科技时代,2016,(12).
[7]慈林林,杨明华.可信网络连接与可信云计算[M].科学出版社,2016:217-220.
[8]Vic Mankotia.区块链技术:安全数字化的下一阶段[J].软件和集成电路,2016,(9).
[9]顾彦.区块链+大数据:给数据“加戳”、“加密”[J].中国战略新兴产业,2016,(19).
[10]谢辉,王健.区块链技术及其应用研究[J].信息网络安全,2016,(9).endprint