基于等保2.0标准——区块链安全扩展要求探讨

embedded/2024/9/24 3:23:39/

在数字经济时代,区块链作为新技术,能够推进经济社会规则体系重构,在经济金融、司法审判、食品追溯、商业贸易、公共信用等领域已有广泛应用。但在规划、建设、运维区块链的同时,也需要全面评估与防范区块链应用带来的安全隐患。

当前,全社会都面临着数字化转型的挑战,区块链技术正越来越多地应用于经济领域、城市治理、社会民生方面,与实体经济深度融合,推动数字经济模式创新;与民生领域相结合,为百姓提供更便捷、更智能的服务。
随着区块链进入“可编程社会”时代,其应用场景变得越来越丰富。尽管区块链的防篡改、分布式存储、去中心化等特点为其发展提供了大量创新空间,但区块链技术本身仍存在一些内在的安全风险。

技术架构:主流区块链技术架构体系有三层模型(协议层、扩展层和应用层)和六层模型(数据层、网络层、共识层、激励层、合约层和应用层)之说,各种模型在内容上并无太大差异,仅有分类集合的区别。

数据层:数据层作为区块链技术架构的最底层,主要实现两个功能:数据存储、账户和交易的实现与安全。数据存储主要基于Merkle树,节点将一段时间内接收到的交易数据封装到数据区块中,并连接至主区块链上。此外,区块链中还会使用Key-Value数据库来保存一些区块索引等信息,以加快交易速度,常见的有levelDB、LightDB、CouchDB等。账户交易则基于哈希函数、非对称加密技术、数字签名和随机数等多种密码学算法和技术,保证了交易的安全性。

网络层:网络层封装了区块链系统的组网方式、消息传播协议和数据验证机制等要素。区块链中的节点采用P2P网络来组织参与数据验证和记账的节点,网络中的每个节点地位对等且相互连通,每个节点均承担网络路由、区块数据验证、区块数据传播、节点发现等功能。生成区块的节点将区块广播到全网其他所有的节点来加以验证。

共识层和合约层:共识机制是为了保证分布式场景下信息的准确性与一致性而设计。共识机制的设计主要由环境、业务与性能需求决定,常见的共识机制有PoW(Proof of work,工作证明)、PoS(Proof of Stake,股权证明)、DPoS(Delegated Proof of Stake,委任权益证明)、PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错算法)等。区块链的合约层主要封装了区块链系统运行所需的脚本代码、算法以及智能合约。智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议,具有高时效、低成本、高准确、透明化、可追溯等特质。

应用层:区块链系统具有的分布式、高冗余、数据不可篡改、智能合约等特性,使区块链技术的应用不再局限于数字货币领域,而是拓展至金融和社会领域,如贸易金融、供应链溯源、商业积分、电子发票、物流运输等。

风险分析

区块链技术存在一些内在安全风险,结合已知区块链安全事件,得出区块链各个层面主要面临的分析结果。
数据层主要风险包括:算法强度过低、算法的错误实现、使用弱随机数、不可信时间戳、数据泄露、密钥泄露等。具体而言,即算法安全性过低,具有已知安全漏洞,破译成本较低;实现的密码算法存在缺陷,导致数据加密不可靠等;随机数存在弱随机、可猜测等问题,破坏安全机制;在基于时间戳的可靠系统中,未正确使用时间戳或时间戳的生成不可信;链上数据无安全保护,导致存储在区块的数据泄露;密钥管理不当,导致密钥泄露。
网络层主要风险包括:恶意节点攻击、DDoS网络攻击、节点失效、数据传输泄露等。如恶意节点通过仿冒、利用漏洞等方式开展攻击,或联合其他节点发起攻击;遭受DDoS攻击,导致节点资源消耗过大、运行不稳定;由于业务压力过大或运行错误等原因导致节点失效;节点之间的数据同步和通信数据遭截获导致数据传输泄露。
共识和合约层主要风险包括:协议漏洞利用、恶意操纵节点、代码逻辑漏洞、编码缺陷、不受信任的外部调用、不安全的合约运行环境等。其中,协议漏洞利用指针对共识机制漏洞的算力攻击、分叉攻击、女巫攻击等,影响整个区块链系统的一致性;恶意操纵节点,单一节点具有多个身份标识,通过控制系统的大部分节点来削弱冗余备份的作用;共识和智能合约代码业务存在逻辑漏洞,导致运行出现异常;智能合约代码不规范,存在重入、溢出等漏洞;调用不受信任的外部合约,导致区块链出现安全风险和错误;合约运行载体存在安全漏洞,或其运行机制不完善,存在恶意消耗资源、拒绝服务等漏洞,从而影响区块链整体安全。 应用层:应用层面临的主要风险与传统应用类似,包括身份鉴别、访问控制、安全审计等方面的风险。

基本要求

根据《网络安全等级保护基本要求》控制层面、控制点、控制项的框架,给出针对区块链关键技术的安全要求,主要包括以下内容:
数据层:主要涉及安全方案设计、测试验收、个人数据保护、密码管理方面的安全要求,具体包括:采用满足国家商用密码相关规定的密码技术和服务,如国密算法SM2、SM3、SM4等;正确实现非对称加密算法,用于信息加密、数字签名和登录认证等场景;对密码算法进行安全性测试;使用随机数时,应符合《GB/T0005-2012随机性检测规范》相关要求;使用可信时间戳,标识数据产生时间和保证数据不被篡改、伪造;链上仅保存业务必需的个人信息;禁止未授权访问和使用链上保存的个人信息;具备明确的密钥管理方案。
网络层:主要涉及网络架构、集中管控、通信传输方面的安全要求,具体包括:采用可信认证机制对接入网络的节点进行可信验证,保证接入网络的节点真实性;保证网络各部分带宽、节点的业务处理能力满足业务高峰期需求;对节点进行监视,包括CPU、硬盘、内存、网络等资源的使用情况;采用密码技术保证数据传输保密性、完整性和真实性;在通信前基于密码技术对通信双方进行验证或认证;具备检测和防范恶意节点的机制,能够检测出网络中的恶意节点,并进行针对性处理。
共识和合约层:主要涉及安全方案设计、测试验收、自行软件开发方面的安全要求,具体包括:使用设计合理、安全的共识机制,并能够有效防范常见的共识攻击;确保多个节点参与共识确认,防止任何独立节点的恶意操作;在合约发布前,采用规则验证、语义验证、形式化验证等手段,对其安全性进行验证;智能合约应设置正确的操作逻辑,避免逻辑缺陷带来安全问题;制定代码编写安全规范,要求开发人员参照规范编写代码;提供对已知攻击的解决方案,包括竞态、重入、交易顺序依赖等;对与区块链系统外部数据进行交互的智能合约,外部数据的影响范围仅限于智能合约范围内, 不应影响区块链系统的整体运行;严格限制外部合约的调用,防止不受信任的外部合约引发风险和错误;提供有效方案防止智能合约被恶意滥用,如提供运行载体如虚拟机等,保证智能合约运行环境对外隔离。
应用层:主要涉及安全计算环境方面的安全要求,建议参考《安全通用要求》中对安全计算环境的要求。


http://www.ppmy.cn/embedded/115874.html

相关文章

C语言编译四大阶段

目录 一、引言 二、预处理阶段 三、编译阶段 四、汇编阶段 五、链接阶段 六、总结 本文将详细介绍C语言编译的四个阶段,包括预处理、编译、汇编和链接。通过学习这些阶段,读者可以更好地理解C语言程序的编译过程,提高编程效率。 一、引…

【AI创作组】MATLAB基础语法总结

MATLAB基础语法介绍 1. MATLAB数据类型 MATLAB是一种高性能的数学计算语言,提供了丰富的数据类型和变量定义规则,使得用户可以灵活地进行数学计算和数据操作。了解和掌握这些基础知识对于高效使用MATLAB至关重要。 以下是MATLAB中常见的数据类型: 1.1 数值类型 数值类型…

计算机网络各层有哪些协议?

计算机网络的各层协议知识总结 一、物理层 没有涉及到比较重要的协议,但是有一个比较重要的技术----非对称数字用户线(ADSL) 二、数据链路层 1、点对点协议(PPP----point to point protocol,用户计算机与ISP进行通信…

浮动静态路由

浮动静态路由 首先我们知道静态路由的默认优先级是60&#xff0c;然后手动添加一条静态路由优先级为80的路由作为备份路由。当主路由失效的备份路由就会启动。 一、拓扑图 二、基本配置 1.R1: <Huawei>system-view [Huawei]sysname R1 [R1]interface GigabitEthernet…

《独孤九剑》游戏源码(客户端+服务端+数据库+游戏全套源码)大小2.38G

《独孤九剑》游戏源码&#xff08;客户端服务端数据库游戏全套源码&#xff09;大小2.38G ​ 下载地址&#xff1a; 通过网盘分享的文件&#xff1a;【源码】《独孤九剑》游戏源码&#xff08;客户端服务端数据库游戏全套源码&#xff09;大小2.38G 链接: https://pan.baidu.co…

2025秋招内推|招联金融

【投递方式】 直接扫下方二维码&#xff0c;使用内推码: igcefb 【招聘岗位】 深圳&#xff0c;武汉&#xff1a; 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策划 产品运营 客户体验管理 风险管理 资产管理 【校招流程】 简历投递&#xff1a;9月…

使用Addressables+SpriteAtlas打包产生冗余

1&#xff09;使用AddressablesSpriteAtlas打包产生冗余 2&#xff09;使用SBP打AssetBundle脚本引用丢失 3&#xff09;Unity构建后处理&#xff08;IPostprocessBuildWithReport等接口&#xff09;抛出异常后&#xff0c;构建不会停止 4&#xff09;Unity 2022.3.0版本使用Oc…

PyQGIS开发 2 Qt开发入门

PyQGIS Qt开发入门 1 使用 Qt Designer QGIS在安装后已经配套了Qt Designer&#xff0c;可以在开始菜单 -> QGIS -> Qt Designer for QGIS点击运行程序&#xff0c;或者在QGIS安装目录/bin/qgis-designer.bat(或qgis-ltr-designer.bat)点击运行。 选择Main Window模板…