安全问题成短板,联盟链发展背后的安全如何保障?
区块链技术近年来快速发展,技术应用已延伸到数字金融、物联网、智能制造、供应链管理、数字资产交易等多个领域。
作为核心技术自主创新的重要突破口, 安全问题被视为当前制约行业健康发展的一大短板 ,区块链安全事件屡屡发生,甚至成为黑客攻击的“重灾区”。公链的安全问题对于公链发展的影响已经不言而喻,而联盟链的安全问题也不容忽视,今天我们主要来跟大家探讨下联盟链的安全问题。
PART1 什么是联盟链?
联盟链是由多个机构共同参与管理的区块链,每个组织或机构管理一个或多个节点,其数据只允许系统内不同的机构进行读写和发送。 联盟链的各个节点通常有与之对应的实体机构组织,通过授权后才能加入与退出网络。各机构组织组成利益相关的联盟,共同维护区块链的健康运转。
国内常见的联盟链有 :蚂蚁链、BSN联盟链、腾讯至信链、百度超级链、京东智臻链、新版链、天河链、趣链、网易星球区块链、长安链等。
联盟链优缺点
优势
1)更高的处理效率
联盟链的信任环境允许少数节点参与生态的治理,商业决策的处理能力较高。
2)可扩展性更高
联盟链可以根据复杂的商业环境进行技术迭代。联盟链在落地时,考虑更多的是如何将过去的数据孤岛打通,同时让联盟中流通的数据是可信的,不用像过去一样做频繁的校验。
3)智能合约应用场景更多
基本上可以实现中心化机构所有的业务逻辑,且具交易最终性。
4)可控性较强
公有链是一旦区块链形成,就不可篡改,而联盟链,只要所有机构中的大部分达成共识,即可将区块数据进行更改。
5)具有更大的隐私性
不同于公有链,联盟链的数据不会默认公开,只限于联盟里的机构及其用户才有权限进行访问,隐私性更强。
缺点
1)容易被恶意用户攻击
由于联盟链半中心化结构的原因,它很容易被恶意玩家所攻击。在有限的节点内,可以假定多个参与者会出现合谋的可能性。
2)缺少行业统一标准
因为缺少行业统一标准,在解决方案上免不了会有各种障碍,但是目前整个生态距离联盟链的统一框架还是很遥远。
联盟链的典型应用场景
联盟链技术可以用来优化大多数传统信息化系统的业务流程,特别适用于没有强力中心、多方协作、风险可控的业务场景。联盟链的共享账本机制可以极大降低该类场景下的对账成本、提高数据获取效率、增加容错能力、巩固信任基础、以及避免恶意造假。
随着区块链技术的不断发展,越来越多的机构与企业开始加大对区块链的研究与应用。相比公链而言,联盟链具有更好的落地性,受到了许多企业与政府的支持。
目前, 联盟链的典型应用场景有:商品溯源、公益慈善、供应链金融、电子政务、互助保险、物联网等 ,另外在数字版权、数字身份、教育、医疗、能源、文化娱乐及民生等垂直产业和领域也都有联盟链的身影。
PART2 联盟链有哪些安全问题?
联盟链中存在的 安全问题主要包括网络安全、主机安全、链平台安全和智能合约安全。
网络安全 :联盟链也易遭受到传统的网络安全威胁,包括网络钓鱼攻击、DNS劫持攻击、DDos攻击、IP欺骗、会话劫持、域名劫持等。
主机安全 :主机安全主要包括服务器基础策略配置、防火墙配置策略、权限管控、第三方模块安全、应用服务安全、端口安全、数据库服务安全等。
下面重点给大家介绍下链平台安全和智能合约安全问题。
联盟链链平台安全问题
联盟链链平台安全问题包括: 交易安全、共识安全、账户安全、合规性、RPC安全、端点安全、P2P安全等 。
联盟链的安全事故大多发生在其算法和底层设计本身,但依然有黑客出于商业目的进行攻击。 黑客攻击联盟链的手法包括:内部威胁、DNS攻击、MSP攻击、51%的攻击等。
以MSP攻击为例:MSP是Fabric联盟链中的成员服务提供商(Membership Service Provider)的简称,是一个提供抽象化成员操作框架的组件,MSP将颁发与校验证书,以及用户认证背后的所有密码学机制与协议都抽象了出来。一个MSP可以自己定义身份,以及身份的管理(身份验证)与认证(生成与验证签名)规则。
针对MSP的攻击,一般来说,可能存在如下几个方面:
(1)内部威胁
a)如果某个内部人员持有了可以管理MSP的证书,他将可以对Fabric网络进行配置,比如添加或撤销访问权限,向CRL添加身份(本质上是列入黑名单的身份);
b)如果有传感器等物联网设备接入联盟链,其可能传播虚假信息到链上,并且因为传感器自身可能不支持完善的安全防护,可能导致进一步的攻击。
(2)私钥泄露
节点或者传感器的证书文件一般存储在本地,可能导致私钥泄漏,进而导致女巫攻击、云中间人攻击(Man-in-the-Cloud attack)等。
(3)DNS攻击
当创建新参与者的身份并将其添加到MSP时,在任何情况下都可能发生DNS攻击。向区块链成员创建证书的过程在许多地方都可能发生攻击,例如中间人攻击,缓存中毒,DDOS。
(4)CA攻击
数字证书和身份对于MSP的运行至关重要。Hyperledger Fabric允许用户选择如何运行证书颁发机构并生成加密材料。选项包括Fabric CA,由Hyperledger Fabric,Cryptogen的贡献者构建的过程,以及自己的/第三方CA。
这些CA本身的实现都有其自身的缺陷。Cryptogen在一个集中的位置生成所有私钥,然后由用户将其充分安全地复制到适当的主机和容器中。通过在一个地方提供所有私钥,这有助于私钥泄露攻击。除了实现方面的弱点之外,MSP的整体以及因此区块链的成员资格都在CA上运行,并且具有信任证书有效的能力,并且证书所有者就是他们所说的身份。
对知名第三方CA的攻击如果成功执行,则可能会损害MSP的安全性,从而导致伪造的身份。
联盟链智能合约安全问题
为了提升效率,支持更加友好的设计,各联盟链在智能合约上出现了不同的发展方向。联盟链智能合约相较于常规公链在规范性、和安全性都有一定的提升,但在以下几个方面仍可能存在安全风险:
01 代码语言安全性问题
一种是继续沿用主流公链编程语言,并在其基础上改进(如:BCOS使用的solidity),另一种则是以通用编程语言为基础,指定对应的智能合约模块(如:fabric的Go/Java/Node.js),不管使用什么语言对智能合约进行编程,都存在其对应的语言以及相关合约标准的安全性问题。
02 合约执行带来的安全问题
整型溢出 :不管使用的何种虚拟机执行合约,各类整数类型都存在对应的存储宽度,当试图保存超过该范围的数据时,有符号数就会发生整数溢出。
堆栈溢出 :当定义方法参数和局部变量过多,字节过大,可能使程序出现错误。
拒绝服务攻击 :主要涉及到的是执行合约需要消耗资源的联盟链,因资源耗尽而无法完成对应的交易。
03 系统机制导致的合约安全问题
这里主要是指多链架构的联盟链:
合约变量的生成如果依赖于不确定因素(如:本节点时间戳)或者某个未在账本中持久化的变量,那么可能会因为各节点该变量的读写集不一样,导致交易验证不通过。
全局变量不会保存在数据库中,而是存储于单个节点。因此,如果此类节点发生故障或重启时,可能会导致该全局变量值不再与其他节点保持一致,影响节点交易。因此,从数据库读取、写入或从合约返回的数据不应依赖于全局状态变量。
在多链结构下进行外部链的合约调用时,可能仅会得到被调用链码函数的返回结果,而不会在外部通道进行任何形式的交易提交。
合约访问外部资源时,可能会暴露合约未预期的安全隐患,影响链码业务逻辑。
04 业务安全问题
联盟链的智能合约是为了完成某项业务需求执行某项业务,因此在业务逻辑和业务实现上仍是可能存在安全风险的,如:函数权限失配、输入参数不合理、异常处理不到位。
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
Justin Sun suspected to have purchased $160m in Ethereum
Justin Sun suspected to have purchased $160m in Ethereum