◆于 泉 郭 澍 翟耀超
(国家应用软件产品质量监督检验中心(北京软件产品质量检测检验中心) 北京 100083)
区块链是比特币的底层技术,目前区块链技术架构在此基础上有了很多版本分支,尽管不同的区块链技术在具体实现上各有不同,但在整体架构上却存在很多共同的特点。目前已提出的大多数数字货币系统都是去中心化的,它允许节点自行记录数据、发行货币。本文从底层的技术分析,主要针对数据层、通信层、共识与合约层、应用层安全展开介绍。数据层主要面向区块链自身的数据格式,数据层主要关注的是数据的不可篡改性,一般需要保存的数据如交易数据、状态数据等;网络层主要负责各个节点间的数据通信,区块链网络中没有中心服务器,参与系统的每个节点都有义务验证交易和区块的合法性、参与交易和区块的存储转发,也同时具有丢弃其认为不合法的交易和区块;共识与合约层顾名思义,在节点互不信任的网络中,使节点达成一致的充分必要条件是每个节点出于自身利益最大化考虑,都会自发、诚实地遵守协议预设的规则,判断每一笔交易的真实性并将判断为真的记录记入区块链中;合约层体现在当满足合约条件时,即自动启动智能合约,一方面减少了人工干涉,一方面保证了发行者无法违约,进而保证了节点的可信,共识与合约层属于区块链技术中的核心特性,相辅相成;应用层主要是指区块链的各类应用场景,为用户提供各种服务和应用,将底层区块链技术与实际应用场景相结合。
从整体风格来看,等保1.0侧重的是对于自身防护的要求,而随着当前网络安全形势的变化,尤其是《网络安全法》的发布实施,等保2.0标准结合《网络安全法》中对于持续监测、威胁情报、应急响应等方面提出了相对具体的要求。
等保2.0确立了可信计算技术的重要地位,可信计算技术为主动防御提供了新的思路,也在等保2.0中被重点提及。可信计算保护数据隐私性的属性,使其变为区块链技术生态中的重要一环。而区块链技术的核心机理包括共识机制和智能合约,共识即具有权限的节点之间对区块中存储的内容信息达成的一致性和有效性协议,共识机制具有一定的容错、防止篡改和抵赖的能力。
在网络安全等级保护中,数据加密技术是实现数据机密性的保护措施,密码学相关的技术如哈希算法、加解密算法、签名算法、零知识证明等是区块链安全最底层的根基,整个区块链的安全体系都建立于密码学的困难问题之上。
为了保证数据的可信度,时间戳服务也是常用的技术手段。因为时间戳通过将现实时间标记上去,可以证明数据生成的时间,进而可以表明不同区块生成的先后顺序。这种时间戳的设计,使得更改一条记录的困难程度按时间的指数倍增加,越老的记录越难更改,区块链运行时间越久,篡改难度越高。
区块链就是P2P的网络架构,通过密码学来保证数据的安全,通过共识算法来保证数据的一致性。从等保2.0的安全通信网络和安全区域边界角度分析,网络层面临的主要安全风险是区块链节点组网、数据传输、存储时的数据保密性以及数据完整性,比如数据传输过程中是否被篡改、数据存储是数据是否完整、未发生丢失情况;以及遭受DDoS攻击,导致节点资源消耗过大、运行不稳定等。
共识机制是区块链得以成功的基础,如果因网络攻击使得网络节点不能取得共识,或共识机制的健壮性出现问题,那么区块链将变得不再安全。目前常用的 PoW、PoS、DPoS 以及 PBFT等共识机制,在使用过程中都存在一定的安全风险。
共识和合约层面临的安全风险主要就是受到恶意攻击,常见的攻击比如“51%”攻击、DDoS攻击以及针对共识和智能合约逻辑漏洞实施的攻击等;共识和智能合约存在逻辑漏洞,导致业务逻辑出现异常;智能合约存在编码缺陷,导致代码重入、短地址攻击、整数溢出、依赖时间戳等缺陷等。
由于区块链采取不同于传统信息系统的信息传递机制和共识机制,网络上任何一个区块链节点都可以获得链上的所有信息,包括用户地址、详细交易信息等隐私信息,这为区块链带来了严重的隐私保护难题。
应用层面临的主要安全风险体现在两个方面:首先是交易服务器的未授权访问,一旦获取了服务器的权限,那么攻击者即可轻易地获取密钥信息以及敏感信息;其次就是DDOS攻击,据统计分析,区块链技术发展面临的DDOS问题也相对十分严峻。
在分析每层所面临的主要风险后,在网络安全等级保护方面提出针对性的安全措施,用于抵抗、降低、转移安全风险,除了技术层面的安全风险,还有一部分风险来自管理。安全管理风险一般涉及安全管理制度、安全运维管理等方面,具体的要求与网络安全等级保护并无实质性区别,建议参照相关等保2.0标准采取应对措施。
数据层面,应采取加密措施对有关业务敏感的信息进行保护;提供备份恢复功能,区块数据可以进行备份和恢复;使用较为安全的哈希算法,如国密算法SM3、SHA256等;使用强伪随机数,保证其随机性和不可预测性,防止随机数被破解;使用非对称加密算法,用于信息加密、数字签名和登录认证等场景,如国密算法 SM2等,在设计应用时,应该选择安全性更高的密码算法,应用投入使用后还要及时替换掉不再安全的密码算法。
网络层面,应能够根据共识算法容忍节点失效、承受节点攻击和欺骗;节点能够承受一定业务压力,并对资源进行监控;使用安全的通信协议;使用哈希函数、同态加密、数字签名等技术保证数据传输的保密性、完整性和可靠性等。
共识与合约层面,设计使用合理和安全的共识机制,提供节点容错功能,合约源代码符合安全编码规范,设置正确的操作逻辑,严格限制外部合约的调用等。
在网络安全等级保护中,采用安全性较高的身份鉴别方式,提升访问控制措施,同时加强对重要操作的安全审计机制,保证用户鉴别信息所在的存储空间的安全性,无论这些信息是存放在硬盘上还是内存中;提供数据变换技术,如数据加密、敏感数据脱敏等手段将敏感数据进行变换等。
区块链是一项具有远大前景的技术,用来实现可信的价值传递,当前已经被应用在金融交易清算、公证、数字产权保护和物流溯源等领域。在等保2.0时代,区块链是目前技术发展的趋势,无论从法律标准还是实际应用场景来说,都还有广阔的发展空间,未来监管机构在检查的时候需升级现有的技术手段,应对分领域的技术检查,为人工智能、区块链、物联网、云计算等新技术的应用保驾护航。