区块链开发

区块链安全问题与应对措施

作者:admin 2019-04-20 我要评论

区块链各细分领域蓬勃发展,从硬件制造、基础设施到底层技术开发、平台建设,再到安全防护、行业应用,以及媒...

区块链各细分领域蓬勃发展,从硬件制造、基础设施到底层技术开发、平台建设,再到安全防护、行业应用,以及媒体社区等区块链行业服务机构,已经初步形成了一个完整的产业生态链。
 
区块链安全
 
区块链安全问题与应对措施
 
(1)底层代码的安全性
区块链项目(尤其是公有链)的一个特点是开源。通过开放源代码,来提高项目的可信性,也使更多的人可以参与进来。但源代码的开放也使得攻击者对于区块链系统的攻击变得更加容易。2016年10月,国家互联网应急中心发布《开源软件源代码安全漏洞分析报告——区块链专题》,针对区块链领域的知名开源软件,结合漏洞扫描工具和人工审计的方式,在代码层面发现高危安全漏洞746个,中危漏洞3497个,数量较多的高危漏洞有不安全的随机数、不安全的JNI、空指针解引用等。2018年3月,慢雾安全团队披露了一起由于以太坊生态缺陷导致的亿级数字资产盗窃事件。攻击者利用以太坊节点Geth/ParityRPCAPI鉴权缺陷,恶意调用eth_sendTransaction盗取数字资产,持续时间长达两年。应对措施主要有两方面:一是使用专业的代码审计服务,二是了解安全编码规范,防患于未然。
 
(2)密码算法的安全性
以比特币为例,每个区块都对应一个散列值,采用SHA256算法计算得到。在现阶段,该算法依旧满足散列函数的三个特性,单向性、弱无碰撞性和强无碰撞性,是安全的。由于SHA1和MD5已经被密码学者找到碰撞,所以,不应选取这两个算法作为区块链中的散列算法。比特币中的交易采用了椭圆曲线数字签名算法ECDSA,确保了交易的完整性。比特币中的椭圆曲线采用的是Koblitz曲线(secp256k1)而非美国国家标准与技术研究院(NIST)推荐的secp256r1。虽然当前并无证据,但有分析认为secp256r1有可能是被NIST选取的带后门的椭圆曲线,而比特币在无形中避开了这一风险。
随着量子计算机的发展,越来越多的研究人员开始关注能够抵抗量子攻击的密码算法,如基于格的密码算法等。椭圆曲线密码并不能抵抗量子攻击,当对于密码的量子攻击在未来成为现实时,所有不能够抵抗量子攻击的密码算法都存在较大风险,需要被替换。不过,在比特币中,比特币地址是对公钥进行散列并使用base58编码后的结果,如果比特币资金存放在一个没有支出过的地址里,这意味着公钥尚未公开,则它们在量子计算机面前是安全的。
 
(3)共识机制的安全性
当前的共识机制有工作量证明(ProofofWork,PoW)、权益证明(ProofofStake,PoS)、授权权益证明(DelegatedProofofStake,DPoS)、实用拜占庭容错(PracticalByzantineFaultTolerance,PBFT)等。PoW面临51%攻击问题。由于PoW依赖于算力,当攻击者具备算力优势时,找到新的区块的概率将会大于其他节点,这时其具备了撤销已经发生的交易的能力。需要说明的是,即便在这种情况下,攻击者也只能修改自己的交易而不能修改其他用户的交易(攻击者没有其他用户的私钥)。在PoS中,攻击者在持有超过51%的Token量时才能够攻击成功,这相对于PoW中的51%算力来说,更加困难。在PBFT中,恶意节点小于总节点的1/3时系统是安全的。
总的来说,任何共识机制都有其成立的条件,作为攻击者,还需要考虑的是,一旦攻击成功,将会造成该系统的价值归零,这时攻击者除了破坏之外,并没有得到其他有价值的回报。对于区块链项目的设计者而言,应该了解清楚各个共识机制的优劣,从而选择出合适的共识机制或者根据场景需要,设计新的共识机制。
 
(4)智能合约的安全性
智能合约具备运行成本低、人为干预风险小等优势,但如果智能合约的设计存在问题,将有可能带来较大的损失。2016年6月,以太坊最大众筹项目TheDAO被攻击,黑客获得超过350万个以太币,后来导致以太坊分叉为ETH和ETC。2017年11月7日Parity多重签名合约漏洞导致93万个以太币永久丢失。
应对措施主要有两方面:一是对智能合约进行安全审计,二是遵循智能合约安全开发原则[12]。智能合约的安全开发原则有:对可能的错误有所准备,确保代码能够正确的处理出现的bug和漏洞;谨慎发布智能合约,做好功能测试与安全测试,充分考虑边界;保持智能合约的简洁;关注区块链威胁情报,并及时检查更新;清楚区块链的特性,如谨慎调用外部合约等。
 
(5)数字钱包的安全性
数字钱包主要存在三方面的安全隐患:第一,设计缺陷。2014年底,某签报因一个严重的随机数问题(R值重复)造成用户丢失数百枚数字资产。第二,数字钱包中包含恶意代码。2017年,有网友使用某投资微信群推荐的钱包软件,导致数字资产丢失[13]。第三,电脑、手机丢失或损坏导致的丢失资产。应对措施主要有四个方面:一是确保私钥的随机性;二是在软件安装前进行散列值校验,确保数字钱包软件没有被篡改过;三是使用冷钱包;四是对私钥进行备份。
 
针对目前区块链安全存在的底层代码、密码算法、共识机制、智能合约、数字钱包等安全问题,该领域也出现了一些提供安全服务的公司,它们主要通过技术手段、代码审计帮助客户解决各种区块链安全问题。例如,墨者安全对区块链智能合约进行形式化验证,开发了面向区块链智能合约安全性和功能正确性验证平台墨者链。目前,墨者链平台已支持主流区块链平台(如以太坊、EOS等)智能合约的形式化验证,并且已与国内10多家区块链行业的知名企业建立了合作关系。采用了多种形式化验证方法,具有验证效率高、自动化程度高、人工参与度低、易于使用、支持多个合约开发语言、可支持大容量区块链底层平台的形式化验证等优点,极大提高了智能合约的安全性与可靠性。产品通过对合约代码进行严格的安全验证,杜绝逻辑漏洞,确保合约安全,在满足实际应用效率需求的同时,达到有效控制漏洞风险的目的。

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 供应链融资频爆雷 支付宝用区

    供应链融资频爆雷 支付宝用区

  • 找人做区块链开发需要注意哪

    找人做区块链开发需要注意哪

  • 开发区块链应用有哪些用途

    开发区块链应用有哪些用途

  • 开发区块链安卓应用程序必备

    开发区块链安卓应用程序必备