区块链安全风险研究
- 格式:pdf
- 大小:1.88 MB
- 文档页数:5
1专家视点 电信工程技术与标准化
2017年11月 第 11 期(第30卷 总第242期)月刊2017年 第11期 区块链安全风险研究 张滨 (中国移动通信集团信息安全管理与运行中心,北京 100053)摘 要 当前,区块链正在全球范围内兴起,加速应用到证券市场、支付系统、票据与供应链金融、客户征信与反欺诈、数字资产管理等领域,但作为一项新兴技术,其安全风险也不容忽视。本文从区块链的安全特性出发,分析了区块链技术发展过程中面临的挑战和安全风险,提出了针对风险应该采取的应对措施,并给出了区块链行业发展的推进建议。关键词 区块链;安全风险;应对措施中图分类号 TN918 文献标识码 A 文章编号 1008-5599(2017)11-0001-05
收稿日期:2017-10-121 引言2009年,中本聪在比特币论坛上首次提出了区块链张 滨 毕业于清华大学无线电系。高级工程师。现任中国移动通信集团公司信息安全管理与运行中心总经理,曾担任江西省移动通信局副局长,中国移动通信集团公司计划部、管理信息系统部副总经理,国务院国有资产监督管理委员会信息中心副主任。长期从事通信网规划建设、信息化推进、信息安全管理工作,参与了中央企业信息化政策措施研究,组织了中国移动ERP项目的实施,在通信、互联网、信息化和信息安全领域有较深入的研究。的概念,并用其解决了电子货币中双重支付的问题。作为分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,区块链技术在几年内迅速引起了各行各业的关注,并衍生出了一系列在供应链管理、数字资产交易、物联网、智能制造等多个领域的应用尝试。麦肯锡在研究报告中指出,区块链技术是继蒸汽机、电力、信息和互联网科技之后,目前最有潜力触发第五轮颠覆性革命浪潮的核心技术。如果说蒸汽机释放了人们的生产力,电力解决了人们基本的生活需求,互联网彻底改变了信息传递的方式,那么区块链作为构造信任的机器,将可能彻底改变整个人类社会价值传递的方式。区块链可与云计算、大数据、移动互联网等新一代信息技术进行融合并产生新的应用模式。作为一项新兴技术,区块链技术具有去信任、防篡改、可追溯等安全优势,但是其安全风险也非常突出。区块链技术在给现有应用模式带来巨大冲击的同时,也引入了一些安全问题。开展区块链安全问题研究,能够及早发现区块链应用过程中存在的安全风险,提前采取2 2017年11月 第 11 期(第30卷 总第242期)月刊2017年 第11期电信工程技术与标准化 专家视点应对措施,防范于未然。另外,国内外相关管理部门对区块链应用也加大了关注和引导力度。深入研究区块链底层技术及在应用中存在的安全风险,探讨可行的安全管理措施,可以进一步提升区块链安全能力,保障区块链产业健康发展和持续创新。本文将从区块链安全特性出发,分析区块链在算法安全、协议安全、数据安全、使用安全和系统安全等多方面的问题,提出应对措施,指出区块链技术发展中面临的一系列问题,并给出区块链行业推进建议。2 风险分析2.1 算法安全风险从算法安全性来看,目前区块链的算法是相对安全的。但随着密码学技术发展和未来量子计算机等新技术的应用,目前广泛应用的非对称加密算法将面临潜在的破解风险。区块链的数据安全性是基于非对称加密算法,而当前常用的密钥长度1024位的RSA非对称加密算法通过量子计算在几秒内即可破译。算法被破解则私钥拥有者所拥有的数字资产可能会被窃取。另外,如果用于账户身份信息保护的加密算法被破解,则会造成个人用户信息安全问题,尤其是当侵犯个人用户信息犯罪与电信网络诈骗、敲诈勒索、绑架等犯罪呈合流态势,会给个人生命财产安全以及社会稳定带来严重危害。2.2 协议安全风险区块链的协议安全风险主要包括分叉和算力攻击等风险。分叉是指原本一条区块链拆分成两条或多条区块链。分叉产生的原因是区块链中的节点运行了不同版本的底层协议,导致共识机制的不一致性,即有些区块,部分节点认为是合乎规则的,同意接入区块链,而有些节点认为是不符合规则的,拒绝承认。区块链社区为了解决区块链上的安全问题或其他错误,进行区块链协议升级就会造成分叉。分叉可能会影响整个区块链系统的一致性,违背区块链的防篡改性,使区块链不再值得信任。区块链的部分共识机制(如PoW)决定了拥有大量算力的攻击者有可能对整个网络形成全面控制。如果这种情况出现,多数人的合法权益将无法得到保障,对整个区块链系统将造成毁灭性的打击。基于PoW共识过程的区块链主要面临的是51%攻击问题,即节点通过掌握全网超过51%的算力,就具有篡改和伪造区块链数据的能力。2.3 数据安全风险区块链系统内各节点并非完全匿名,而是通过类似电子邮件地址的地址标识 (例如比特币公钥地址) 来实现数据传输。虽然地址标识并未直接与真实世界的人物身份相关联,但区块链数据是完全公开透明的,随着各类反匿名身份甄别技术和大数据技术的发展,通过数据整合分析可能实现部分重点目标的定位和识别;另外,在区块链公有链中,每一个参与者都能够获得完整的数据备份,所有交易数据都是公开和透明的,如果私人信息等容易被获取,可能会出现诈骗,最重要的是它可能违反隐私和数据保护法规;对于带有访问控制模块的区块链系统,区块链上数据访问控制机制的设计缺陷、实现的漏洞等,都可能导致链上数据被未授权实体获得。2.4 使用安全风险区块链机制中使用了密码技术,密码技术中密钥的存储、传输等安全风险在区块链中同样存在。另外,传统中心化的信息系统如果账户密钥丢失,可以通过账户系统重新绑定一个新的私钥即可,区块链中私钥由每个用户自己生成和保管,没有第三方的参与,没有私钥补发与管理机制,所以私钥一旦丢失即无法找回,用户便无法对账户的资产做任何操作,私钥被盗将直接导致资产被盗。2.5 系统安全风险区块链技术中大量应用了各种密码学技术,属于算法高度密集工程,在实现过程中出现错误是很难避免的。另外,区块链技术未采用硬件加密措施,允许节点在区块中附加自定义信息,且区块链中历史信息不可更改。3专家视点 电信工程技术与标准化
2017年11月 第 11 期(第30卷 总第242期)月刊2017年 第11期若自定义信息中包含病毒或木马,将会自动传播到全网进行恶意攻击。而区块链软件多数与资产、货币交易相关,一旦出现漏洞,可能会导致财产损失的严重风险。2016年10月国家互联网应急中心发布的《开源软件源代码安全漏洞分析报告——区块链专题》中表明,主流区块链开源软件检测出很多高危漏洞,可能会导致系统运行异常、崩溃,也可能实现越权访问,窃取隐私信息等。同时,智能合约广泛流行,但智能合约语言自身或合约设计都可能存在漏洞。以以太坊为例,目前已知存在交易顺序依赖、时间戳依赖、误操作异常、可重入攻击等漏洞,在调用执行合约时漏洞被利用,导致合约行为不可信,可能会造成相关方的财产损失,而智能合约部署后难以更新的特点也让漏洞的影响更持久。公有链允许节点自由进出网络,并且区块链的网络层没有登记用户身份。对于风险和安全性要求高的行业,未登记身份的节点自由进出网络给系统安全带来很多不可控性。区块链系统中,节点通过P2P连接相互交换区块链的状态信息。攻击者可能针对某个目标节点发起日食攻击,即通过垄断该节点所有的进出连接,将其与网络中其它节点隔离开,再进一步操纵该节点对区块链的视图,如果成功,就可以控制受害人看到的区块。3 应对措施3.1 算法安全对于区块链算法安全问题,需要考虑综合运用密码学技术,比如构建区块链系统时采用安全强度更高的哈希函数可增加被攻击难度,同时尽早设计适合区块链系统的抗量子攻击算法。针对私钥生成问题,需要制定密钥生成标准化方法,对密钥质量进行合格性检验,通过制定统一标准,提高密钥生成质量。同时,积极进行密码算法的国产化改造。3.2 协议安全针对区块链协议安全问题,主动分叉是去中心化的分布式系统升级的主要挑战,软分叉方案可有效防止区块链的分叉,通过区块链系统协议功能设计优化,避免硬分叉发生机会,利用软分叉允许缓和升级的特点降低社区分裂风险。对于区块链51%攻击问题,可通过将记账权限制在有限可控的节点的方式进行安全管控,特别是在联盟链中,可设置少数管理员节点对参与者授权等进行控制,从而解决依靠算力优势进行记账权争夺和算力攻击问题。3.3 数据安全在区块链数据安全方面,由于区块链是一个公开的链式账本,其中存储的数据向网络中所有用户都是公开透明的。为防止数据泄露,区块链上的敏感数据应进行加密存储,并且采用安全的访问控制机制,防止未授权用户访问。在存储、传输相应数据时,应该使用哈希函数、同态加密、数字签名等技术保护数据。保护区块链数据安全的前提是密码算法的安全。在设计应用时,应该选择安全性更高的密码算法;应用投入使用后还要及时替换掉不再安全的密码算法。3.4 使用安全关于区块链使用安全问题,在区块链中,用户的资金安全完全依赖于私钥的安全,无论是私钥泄漏还是丢失,都将给用户带来财产损失。为了保护用户的账户与资金安全,应该对私钥文件进行加密存储。同时,应该使用“秘密共享协议”等方法安全地备份私钥文件。区块链网络应设计私钥找回机制以解决私钥丢失问题。正常情况下私钥由用户拥有控制,但在风险发生时,可通过线下实名的方式或国家权威机构参与的方式找回密钥。比如通过门限算法将秘钥进行分拆并独立保存在多家权威机构。3.5 系统安全针对区块链系统安全问题,例如智能合约漏洞风险,在区块链中设计验证脚本或智能合约时,应预防死循环导致的DoS 攻击。可在设计脚本语言时禁止使用循环指令,也可限制程序创建人按照程序执行步数支付费用,并设置费用限额。其次,做好充分的容错机制,结合运4 2017年11月 第 11 期(第30卷 总第242期)月刊2017年 第11期电信工程技术与标准化 专家视点行环境隔离等机制,确保代码在有限时间内按预期执行。对于网络层访问安全问题,应结合业务需求,分析是否有必要使用公有链,并登记网络中节点的身份。对于联盟链和私有链,建议采用专线接入区块链网络。此外,还应采用VPN专网、防火墙、物理隔离等技术对节点的物理网络和主机进行保护。4 区块链面临的其它问题区块链在发展过程中还面临一些其它问题。作为一项诞生仅仅几年的新技术,区块链在自身的技术成熟度、稳定性和标准化方面都还有很长的路,目前的大多数区块链框架都是诞生不久,尚未开发完成,或者仅仅是实验室级别产品,存在很多潜在的漏洞,达不到生产环境的要求。不同的框架之间缺乏标准,难以互通。受限于区块链自身的特征,其在应用过程中会涉及到对传统应用场景的改造,过程中也容易引入新的技术或者法律风险。区块链应用面临技术模式与社会习惯的冲突,这对于区块链的普及提出了巨大的挑战。区块链性能也是制约其应用的重要因素。首先是区块膨胀问题,区块链要求系统内每个节点保存一份数据备份,这对于日益增长的海量数据存储来说是极为困难的。其次是交易效率问题,在金融支付领域、防伪溯源领域、数据存证领域等等,均存在高并发访问计算的需求,有的甚至要求达到几万笔/秒的速率,而区块链技术在并发处理上还存在瓶颈。另外,区块链上的所有数据虽然都可以开放,但是点对点的交易模式、某些场景下的加密保护和非结构化的数据结构,导致其可能面临缺乏精确的入口来搜寻和使用这些数据的问题。另外,缺乏明确的监管机制是当前区块链发展过程中面临的重大问题。区块链技术点对点、去中介化,使得整个路径难以监管。区块链应用具有的跨国性质使得区块链的监管变成了一个全球性的问题,如果各国之间不能协同合作,监管将会变得十分复杂。从区块链发展历程来看,区块链技术被用于诈骗、洗钱等场景却无法进行有效的控制,这也是政府机构、监管部门对区块链技术采取较为谨慎态度的原因。区块链缺乏监管会导致用户对区块链应用缺乏信心,而区块链在改变业务模式的同时,也给监管带来了新的课题和难度。5 推进建议5.1 建立法律规则规范区块链的应用包括信息的采集、整理、共享、运营等一系列内容,可能与现行的部分法律存在冲突,个人隐私的保护也将面临新的挑战。区块链在技术层面虽然是分布式的,但是在法律规则层面上更应该加强法律约束和规范统一。应探索符合我国区块链应用和产业发展的法律规则,对区块链在各个行业中的应用方式、场景等进行法律上的规范,对区块链主体法律责任和义务进行明确,对个人隐私保护制定法律依据。5.2 建立技术规则和标准体系区块链在各行业应用上依然存在技术瓶颈,特别是在共识机制、加密算法和智能合约等核心基础技术领域。建议制定技术规范对区块链的新技术、新应用的安全风险进行安全性、可靠性验证,制定符合各行业的区块链技术标准化方案,特别是防范技术垄断风险和技术性操作风险的发生。5.3 加强技术研究和难点攻关加强技术研究和难点攻关投入,针对区块链技术性能瓶颈及数据检索等问题,研究隔离验证、闪电网络、非机构化数据精确检索等新型技术,逐步提升区块链性能,提高区块链数据检索、处理的速度,从而促进区块链在各领域的应用。5.4 开展主体、平台、业务监管主体监管,也就是对区块链的运营主体的监管。建议建立区块链国家统一管理平台,对从事区块链应用和产业行业的主体进行项目申报、注册、登记和审核等监督。对项目立项做详尽的背景调查,对项目进展进行定期审查备案。