Page 276 - 《软件学报》2021年第5期
P. 276
1500 Journal of Software 软件学报 Vol.32, No.5, May 2021
2.3 防御策略与方法
数据层攻击的共性在于攻击者均以区块链数据为攻击目标,其特性则在于攻击者攻击目的和攻击原理的
不同:数据隐私窃取攻击旨在帮助攻击者获得区块链数据中蕴含的用户隐私,从攻击原理上又可划分为基于密
码学工具安全隐患的攻击和基于交易关联分析的攻击;而恶意数据攻击则是攻击者根据区块链的技术弱点或
特性生成恶意数据并上链,从而达到妨碍区块链系统正常运行的攻击目的.
从隐私保护的角度来看,尽管当前区块链技术体系中使用的密码学工具都被认为是安全的,只要能在开发
过程中确保使用无后门的密码算法,即可保证区块链网络的安全性.但从长远来看,现有密码学工具的安全性势
必受到以量子计算为代表的新一代计算技术的冲击,只有在适当的时间节点替换更安全、更高效的密码学工
具,才能保证区块链的稳健性和安全性.一方面,尽管区块链使用的 SHA-256 等哈希算法目前是相对安全的,但
被攻破只是时间问题,所以必须加快推进安全哈希算法的研究进展,设计具备强抗碰撞性的哈希算法,以保证区
块链技术的不可篡改性;另一方面,区块链数据的安全性主要依靠密码算法的安全性,而当前常用的密钥长度为
1 024 位的 RSA 加密算法,在量子攻击下只需几秒即可完成破译,所以必须加快以抗量子密码算法为核心的抗
量子区块链技术体系的预研进程,保证区块链技术在后量子时代的安全性和可用性.
此外,虽然当前几乎所有的区块链技术都支持匿名交易,用户的交易地址通常由用户自行创建保存,且与真
实身份无关,部分区块链系统尝试利用零知识证明等技术(如 Zcash [48] )来保护交易过程中用户的身份隐私,然
而,交易数据关联性分析、用户行为习惯分析等技术仍然可以在一定程度上帮助攻击者获取用户的身份隐私和
交易隐私.为此,用户节点可以考虑采用以下 3 种防御策略.
(1) 数据混淆:对交易内容的数据进行混淆,降低攻击者获取目标信息的成功率,增加攻击难度.
(2) 数据加密:将交易中的特定信息加密,减少攻击者可获取的信息量,降低其用户身份画像的准确性.
(3) 隐蔽传输:通过隐蔽信道传输对隐私要求较高的交易数据,阻止攻击者获取相关信息.
从区块链数据的角度来看,攻击者之所以可以进行交易延展性攻击,是因为当前大多数挖矿程序采用
OpenSSL 开源软件库校验用户签名,而 OpenSSL 兼容多种编码格式,部分编码方案的实现存在一定的问题.例
如:在 OpenSSL 实现的椭圆曲线数字签名算法(ECDSA)中,签名(r,s)和签名(r,−s(mod n))都是有效的.因此,只要
签名数据没有产生太大的变化,都能够被认为是有效签名.Wuille 等人 [49] 提出了一种叫做隔离见证(segregated
witness)的方法,通过将区块签名信息单独存放,使得区块头的交易哈希值完全由交易信息决定,在交易内容没
有发生变化的情况下,即使签名信息被改变,交易哈希也不会发生变化.此时,攻击者只有掌握了私钥,才能改变
交易的哈希值.同时,当遇到无法确认的交易时,矿工应该立即停止交易验证,并根据区块链上的交易报错信息,
查看是否在短时间内已经发起了这样的交易,再做进一步处理.
此外,攻击者实施恶意信息攻击则是因为区块链网络中不存在可以审查上链数据的独立节点,简单增加内
容监管节点的方式势必会弱化区块链网络的去中心化特性,不具备可行性.所以可以尝试以下方法和策略.
(1) 从区块链通用模型设计入手,通过设计特定的区块结构来限制可存储数据的格式,在一定程度上限制
特定格式病毒、文件等数据上链,缓解恶意数据给区块链网络带来的威胁.
(2) 设计相应的激励和奖惩机制,结合智能合约等技术,鼓励矿工验证待上链数据的合理性和合法性,对
上传恶意数据的节点进行惩罚,限制其链上交易行为.
(3) 利用机器学习 [50] 等技术对待上链数据进行过滤,可以在一定程度上阻止恶意数据被写入区块链.
3 区块链网络层攻击
网络层是区块链技术体系中最基础的技术架构,封装了区块链系统的组网方式、消息传播协议和数据验证
机制等要素,使区块链具备了去中心化、不可篡改的技术特性.本节将对 P2P 网络中存在的安全威胁进行剖析.
3.1 针对P2P网络的攻击
P2P 网络主要涉及用户客户端和对等网络结构,攻击者可能针对这两个方面展开如下攻击.