区块链安全技术的研究与应用
2020-12-31汪晓睿张学超
◆汪晓睿 张学超
(1.91977 部队 北京 100841;2.中央军委政法委 北京 100120)
随着区块链技术的兴起,区块链的安全问题集中爆发,发生的安全事件多集中出现于加密资产相关领域,给用户造成了较大的经济损失,其安全问题日益受到行业关注。
1 区块链存在的安全问题
1.1 hash 算法问题
区块链采用的是sha256计算,但是这种计算方式以及社会上算力的提升也是一个潜在的问题。其独特之处在于区块链会有很多区块,如果一个区块被修改,所有的区块必须进行修改。如果出现被恶意篡改,或者其他所有的区块没有被修改的话,此区块就脱离了区块链。这也是链的特征。
1.2 非对称加密安全问题
数字货币采用了非对称加密方式,数据和记录必须有数字签名,比对策加密更加安全可靠,但仍存在许多问题,非对称加密需要使用两个密钥进行加密与解密,也叫作公钥和私钥。特别是在密钥颁发的过程中容易发生安全问题。
例如设备拿着公钥通过非对称性算法对私钥(Private Key)进行加密,然后将加密后的数据包发给入网的设备,入网设备通过公钥和非对称算法把该数据包解密出来得到私钥,此后所有数据交互都使用私钥(Private Key)进行加密。
漏洞:由于公钥是全世界公开的,而非对称性算法AES也是全世界一致的,如果交换密钥的过程中被他人捕获该数据包,就可以解密出私钥,从而对用户产生安全问题。
1.3 网络层:节点传播与验证机制风险
(1)P2P网络风险:区块链信息传播采用P2P的模式,节点之间的信息传播,会将包含自身IP地址的信息发送给相邻节点。由于节点安全性参差不齐,较差的节点容易受到攻击,目前可进行攻击的方式有:日食攻击、窃听攻击、BGP 劫持攻击、节点客户端漏洞、拒绝服务(DDoS)攻击等。例如:2018年3月以太坊网络爆出的“日食攻击”。
(2)广播机制风险:节点与节点之间相互链接,某节点将信息广播给其他节点,这些节点确认信息后再向更多的节点进行广播。在广播机制中常见的攻击方式有双花攻击及交易延展性攻击。双花攻击即同一笔加密资产被多次花费,当商家接受0 确认交易付款时或者通过51%算力攻击时这种情况较容易发生。交易延展性攻击也被称为可锻性,即同一个东西,本质没有变化。
(3)验证机制风险:验证机制更新过程易出现验证绕过,一旦出现问题将导致数据混乱,而且会涉及到分叉问题,需要确保机制的严谨性。
1.4 节点常见安全问题
傀儡网络是指恶意软件开发者或运营者通过感染受害者的系统和设备在对方不知情的情况下进行加密资产挖矿行为。
黑客主要通过在例如网页、游戏辅助程序、系统后台中安装木马程序的方式侵占用户的算力与电力,并用于采矿以谋求非法收益。美国哈佛大学与国家基金会的超级计算机在此前均受到过类似的攻击方式,国内也常常发生例如网页被篡改或者应用程序被植入采矿木马的相关事件。
在当下采矿需要大量的计算能力的前提下,单一设备的算力已经无法满足采矿所需要的算力。于是攻击者扩大了攻击目标设备的范畴,尤其是易受到攻击的物联网设备成为了主要目标,这也形成更大规模的傀儡网络采矿,目前主要的感染对象包括摄像机、路由器、监控摄像头、打印服务器、游戏机等。常见的攻击方式有:跨站脚本、Microsoft中远程执行代码的漏洞利用等。
1.5 软件漏洞
包括单点登陆漏洞、oAuth协议漏洞等,各国都有法律要求银行或其他金融机构实施信息安全措施。但是,由于区块链领域还处于起步阶段,目前缺少适用于加密资产的此类规范。因此,许多交易平台在缺乏安全规范约束的条件下,存在大量漏洞并非偶然。
2 区块链安全技术的应用
区块链安全最根本的保障是共识机制,当前的区块链技术中已经出现了多种共识算法机制,最常见的有PoW、PoS、DPos。但这些共识机制是否能实现并保障真正的安全,需要更严格的证明和时间的考验。公有链目前最成熟的共识机制是工作量证明机制,就是比特币为代表的PoW,缺点是需要出块时间不均匀、挖矿费多。Pos,权益证明机制,优点是挖矿费低,安全性还没普遍认可。还有其他的共识机制,很多新的共识也在陆续推出。nervos的共识机制,也是花了很多心思,做为核心优势在推出共识自动机。具体方法:
(1)目前现有的共识机制均不是完美无缺的,需探求设计更安全性能更快的共识机制。
(2)智能合约开发前需要对当下已经出现过的漏洞进行防范。
(3)发布智能合约之前需要充分进行安全测试。
(4)关注相关情报,专业人员及时进行代码优化。
(5)定期进行代码审计,包括但不限于:交易安全审查、访问控制审查等。
(6)异常操作监控,监控已部署合约异常行为,降低损失。
3 提升机密性和数据完整性
尽管区块链最初创建时是没有特定的访问控制机制的,有些区块链实现如今却在解决数据机密性和访问控制问题。在用户信息安全性得不到保障的大背景下,用户的数据很容易被篡改,甚至伪造。如何确保数据的安全性和正确性无疑是一个巨大的挑战。区块链数据的完全加密特质确保了这些数据不会被非授权方染指,仍具有流动性。(1)与时俱进,关注技术安全方面的最新进展。在量子计算快速发展的情况下,加密系统只有不断研发更新才可防范黑客攻击。(2)接受专业的代码审计,了解相关安全编码规范。大多数区块链项目为了增加可信度和透明性,对其项目代码进行开源管理,然而这样也使得项目更易受到攻击,接受专业的代码审计及注重安全编码可以有效规避潜在的风险。
4 保护隐私消息
Obsidian 这样的初创公司正用区块链保护网络安全,如聊天工具和社交网站的数据。Obsidian 使用区块链来保护用户的源数据。因为源数据是账本中随机分发,不存在单一的收集点,所以不会被黑。
(1)定期使用最新补丁更新设备有助于防止攻击者利用系统漏洞。
(2)禁用路由器中不必要的组件,也可重新配置路由器例如更改子网地址、使用随机IP地址、强制执行SSL 等。
同时,美国国防部高级研究计划局(DARPA)正在尝试利用区块链创建外来攻击无法渗透的安全消息服务。随着区块链植根于经验证的安全通信,隐私消息安全领域将会愈加成熟。
5 提升甚至替代PKI
公钥基础设施(PKI)是保护电子邮件、消息应用、网站和其他通信形式的公钥加密体制。但是,PKI 普遍依靠第三方证书颁发机构来颁发、撤销和存储密钥对,这就给网络罪犯留下了窥探加密通信和假冒身份的机会。而在区块链上发布密钥则在理论上可杜绝虚假密钥传播,并可令应用具备验证通信对象身份的功能。
6 更安全的DNS
DNS 之类互联网关键服务可被黑客利用来制造大规模掉线和攻击公司企业,因此使用区块链方法的可信DNS 基础设施,将能大幅增强该互联网核心信任基础设施。
7 结束语
区块链安全技术的应用目前还很不完善,从技术复杂度和系统数量到其实现,区块链都不能保证100%安全。交易速率上的限制,还有关于信息是否应保存在区块链中的争论,都是该技术在安全应用方面的顾虑。