区块链面临六大安全问题 安全测试方案研究迫在眉睫
区块链面临六大安全问题 安全测试方案研究迫在眉睫
近年来,区块链技术逐渐成为热门话题,其应用前景受到各国政府、科研机构和企业公司的高度重视与广泛关注。随着技术的发展,区块链应用与项目层出不穷,但其安全问题不容忽视。近年来,区块链安全事件日益增多,引发的后果较为严重,造成的经济损失数以亿计。
区块链技术可分为三个层次
狭义上讲,区块链是一种按照时间顺序将数据区块顺序相连组成链式数据结构,并以密码学方式保证不可篡改和不可伪造的分布式账本。广义上讲,区块链技术是利用块链式数据结构验证与存储数据、利用分布式节点共识算法生成和更新数据、利用密码学方式保证数据传输和访问的安全、利用自动化脚本代码组成的智能合约来编程和操作数据的一种全新分布式基础架构与计算范式。
区块链主要分为公有链、联盟链与私有链。公有链对外公开,用户无需授权即可访问区块链信息,节点可自由出入网络。联盟链仅限于联盟成员参与,区块链上的读写权限、参与记账权限按照联盟规则制定,共识过程由预先选好的节点控制。私有链则仅在私有组织使用,区块链上的读写权限、参与记账权限按私有组织规则制定。
此外,美国区块链科学家梅兰妮·斯万按照应用范围和发展阶段将区块链分为3个层次,分别为区块链1.0、2.0、3.0。
区块链1.0—数字货币:区块链1.0解决货币和支付去中心化问题,典型代表是比特币。
区块链2.0—智能合约:区块链2.0是区块链1.0的发展,支撑智能合约应用,解决市场去中心化问题,将区块链拓展到股票、债券、期货等金融领域,典型代表是以太坊平台。
区块链3.0—区块链应用延伸:区块链3.0涵盖了智能化物联网未来的各种应用场景,支持广义资产、广义交换,支持行业应用,由此构建一个大规模协作社会,其典型代表是EOS项目。但目前业界还没有一个成熟的区块链3.0平台。
随着技术的发展,也有公司率先探索区块链4.0的概念。
区块链4.0—完善生态体系:区块链4.0将区块链作为某个行业的基础设施,形成基于区块链的完善生态体系,从而构建全球价值互联网。但区块链4.0尚未在业界达成一致共识。
区块链安全问题不容忽视
目前区块链技术本身仍存在一些安全风险,应用过程中可能会引发一定的安全问题。近年来,区块链安全事件频发,造成重大经济损失。据统计,自2011年到2018年10月,全球范围内因区块链安全事件造成的损失近36亿美元。可见,区块链安全问题不容忽视。
基于业界已有研究报告,本文将区块链面临的风险与挑战分为六大方面:基础设施安全、密码算法安全、协议安全、实现安全、使用安全和系统安全。
基础设施安全:基础设施主要包括交换机和路由器等网络资源、硬盘和云盘等存储资源以及CPU和GPU等计算资源。面临的问题主要有物理安全风险、网络攻击威胁以及数据丢失和泄露等安全风险。
密码算法安全:区块链使用了大量密码算法以保证安全性。但现有的一些密码算法存在一定缺陷,使用有缺陷的密码算法会大大影响安全性。另外,随着量子技术的发展,使用不能够抵抗量子攻击的密码算法都有较大风险。
协议安全:主要指共识机制、P2P网络等存在的安全隐患,主要面临共识算法漏洞、流量攻击以及恶意节点等威胁。
实现安全:智能合约起步较晚,其风险主要来源于代码实现中的安全漏洞。此外,智能合约运行环境的安全性也是区块链安全的重要环节。
使用安全:主要指使用的智能合约、数字钱包、交易所以及应用软件等存在的安全问题。另外,区块链应用所在服务器上的恶意软件、系统的安全漏洞等都可能成为攻击者攻破区块链应用的脆弱点。
系统安全:上述基础设施、密码算法、协议、实现、使用安全漏洞与黑客攻击结合,可使区块链受到致命打击。社会工程学手段与传统攻击方法结合使区块链变得更加脆弱,有组织的攻击行为将对区块链安全造成极大危害。
区块链安全测试方案研究
各国政府、金融机构以及众多企业等纷纷进行区块链的研究和开发。各种区块链联盟、区块链协会以及各种区块链实验室也纷纷成立。区块链相关测试也愈来愈多。
2017年5月,区块链技术和应用峰会暨中国区块链开发大赛成果发布会在杭州举行,发布首个区块链标准《区块链参考架构》,并公布了参考架构的首次测试结果。同时,贵阳区块链测试中心正式挂牌并开展试运行区块链测试工作。另外,中国信息通信研究院也对太一云的区块链超导交易网络进行了性能与功能测试。2017年9月,可信区块链峰会在北京召开,公布了可信区块链标准和测评结果。2018年6月,可信区块链评测方案讨论会在北京召开,会议确定了可信区块链的测试方法与性能测试规范,并讨论了开源基准测试工作组的任务安排。
区块链测评内容可分为功能测试、性能测试、可靠性测试与安全性测试。已有测试多偏重于功能测试、性能测试与可靠性测试,本文着重讨论安全性测试,建议从以下几方面着手。
共识机制安全测试:主要测试采用的共识机制能否抵御双花攻击(同一数字货币重复使用多次)、重放攻击等常见的攻击手段,以及是否有良好的容错能力。
智能合约安全测试:主要检查智能合约是否存在常见的安全漏洞、是否可信以及是否符合规范和流程。此外,还可进行代码审计工作,在代码层次寻找可能存在的漏洞。
Web与移动客户端应用安全测试:面向终端用户的区块链项目一般都有Web或移动客户端应用程序。可检查其是否存在注入、XSS等常见Web漏洞。还可进行渗透评估测试,发现潜在的安全威胁。
身份认证与鉴别测试:对于联盟链与私有链平台,应测试身份认证与鉴别、成员管理以及审计记录等功能,防止出现越权等漏洞。
此外,还可以对激励机制及其他自有协议进行测试,尽量保证其安全性。
小结
区块链技术可有效解决传统交易模式中数据流造假行为,可被应用到金融、物联网、供应链管理等多个领域,可实现从信息互联网到价值互联网的转变。但区块链安全问题亦不可忽视,本文从技术角度分析区块链技术面临的安全风险,并探索区块链技术安全测试方案,希望为以后区块链安全测试的工作带来一定的参考意义。
相关文章:

区块链面临六大安全问题 安全测试方案研究迫在眉睫
区块链面临六大安全问题 安全测试方案研究迫在眉睫 近年来,区块链技术逐渐成为热门话题,其应用前景受到各国政府、科研机构和企业公司的高度重视与广泛关注。随着技术的发展,区块链应用与项目层出不穷,但其安全问题不容忽视。近年…...

K8S---kubelet TLS 启动引导
一、引导启动初始化过程(Bootstrap Initialization ) 1、kubeadm 生成一个Token,类似07401b.f395accd246ae52d这种格式,或者自己手动生成2、使用kubectl命令行,生成一个Secret,具体详见认证、授权3、kubelet 进程启动 (begin)4、kubelet 看到自己没有对应的 kubeconfig…...

Android系统修改驱动固定USB摄像头节点绑定前后置摄像头
前言 Android系统中usb摄像头节点会因为摄像头所接的usb口不同或者usb设备识别顺序不一样而出现每次开机生成的video节点不一样的问题。由于客户app调用摄像头时,需要固定摄像头的节点。因此需要针对前面的情况做处理。 方式1:通过摄像头名称固定摄像头节点 --- a/kernel…...

RT-Thread 内核移植
内核移植 内核移植就是将RTT内核在不同的芯片架构、不同的板卡上运行起来,能够具备线程管理和调度,内存管理,线程间同步等功能。 移植可分为CPU架构移植和BSP(Board support package,板级支持包)移植两部…...

springboot中entity层、dto层、vo层通俗理解三者的区别
entity:这个类的属性是跟数据库字段一模一样的(驼峰命名),当我们使用MyBatis-Plus的时候经常用得到。 dto:用于后端接收前端返回的数据,一般是post请求,前端会给我们返回一个json对象ÿ…...

TypeScript_队列结构-链表
队列 队列(Queue),它是一种受限的线性表,先进先出(FIFO First In First Out) 受限之处在于它只允许在队列的前端(front)进行删除操作而在队列的后端(rear)进…...

STM32G0 定时器PWM DMA输出驱动WS2812配置 LL库
通过DMA方式输出PWM模拟LED数据信号 优点:不消耗CPU资源 缺点:占用内存较大 STM32CUBEMX配置 定时器配置 定时器通道:TIM3 CH2 分频:0 重装值:79,芯片主频64Mhz,因此PWM输出频率:…...

记录错误:Access denied for user ‘root‘@‘localhost‘ (using password:No) 解决方案
他说我没输入密码,但是我输入了啊??于是,我试了试这儿,password 一改就好了。。。 他原来是是我打的很快,快速生成的。。。。...

python爬虫实战(5)--获取小破站热榜
1. 分析地址 打开小破站热榜首页,查看响应找到如下接口地址 2. 编码 定义请求头 拿到标头 复制粘贴,处理成json 处理请求头代码如下: def format_headers_to_json():f open("data.txt", "r", encoding"utf-8") # 读…...

单目标应用:基于麻雀搜索算法SSA的微电网优化调度MATLAB
一、微网系统运行优化模型 参考文献: [1]李兴莘,张靖,何宇,等.基于改进粒子群算法的微电网多目标优化调度[J].电力科学与工程, 2021, 37(3):7 二、麻雀搜索算法简介 麻雀搜索算法 (Sparrow Search Algorithm, SSA) 是一种新型的群智能优化算法,于2020…...

C# easymodbus
库介绍 EasyModbus是用于 .NET 和 Java 平台上的Modbus TCP/UDP/RTU通讯协议库,支持多种编程语言,如C#、VB.NET、Java、C 与更多C#的变体,如Unity、Mono、.NET Core等等。 EasyModbus的Java版本至少需要Java 7,而C#版本兼容 .NE…...

HikariCP源码修改,使其连接池支持Kerberos认证
HikariCP-4.0.3 修改HikariCP源码,使其连接池支持Kerberos认证 修改后的Hikari源码地址:https://github.com/Raray-chuan/HikariCP-4.0.3 Springboot使用hikari连接池并进行Kerberos认证访问Impala的demo地址:https://github.com/Raray-chuan/springboot-kerberos-hikari-im…...

5分钟看明白rust mod use
rust把mod简单的事没说清,一片混乱,似懂非懂. mod语句查找只有一条规则:先找mod名1.rs,没有就我同名文件夹下的mod名1.rs,如果没有,就同名文件夹下的mod名1/mod.rs,再没有就error. 在mod.rs中,pub mod 文件…...

【Java核心知识】ThreadLocal相关知识
ThreadLocal 什么是ThreadLocal ThreadLoacal类可以为每个线程保存一份独有的变量,该变量对于每个线程都是独占的。实现原理为每个Thread类中包含一个ThreadHashMap,key为变量的对应的ThreadLocal对象,value为变量的值。 在日常使用中&…...

《Python基础教程(第三版)》阅读笔记 1
目录 1 快速上手:基础知识2 列表和元组3 字符串4 字典5 条件、循环及其他6 抽象7 再谈抽象8 异常9 魔法方法、特性和迭代器10 开箱即用 本文参考自《Beginning Python: from novice to professional》,中文版为《Python基础教程(第三版&#…...

坦克400 Hi4-T预售价28.5万元起,越野新能源好理解
8月25日,在以“智享蓉城,驭见未来”为主题的成都国际车展上,坦克品牌越野新能源再启新程,首次以全Hi4-T新能源阵容亮相展台,释放坦克品牌加速布局越野新能源的强烈信号。 Hi4-T架构首款落地车型坦克500 Hi4-T上市至今斩…...

我的Vim学习笔记(不定期更新)
2023年9月3日,周日上午 学到了啥就写啥,不定期更新 目录 字体 文件 标签页 分屏 调用系统命令 字体 设置字体大小 :set guifont字体:h字体大小 例如,:set guifontMonospace:h20 查询当前使用的字体和字体大小 :set guifont? 查看…...

spring boot项目生成容器并运行
一个安静的周末,shigen又睡懒觉了,上次说的拖延症的惩罚来了:早晚各100个健腹轮练习,早上的已经完成了。今天的文章来的有点晚,但是依旧保持质量。 springboot项目生成容器并运行 背景 将springboot项目打包成jar包&…...

Vue之html中特殊符号的展示
Vue之html中特殊符号的展示 在html中使用特殊字符时直接展示会报错,需要使用实体名称或者实体编号才能展示。 最常用的字符实体 显示结果 描述 实体名称 实体编号空格 < 小于号 < &…...

数据结构1 -- leetcode练习
三. 练习 3.1 时间复杂度 用函数 f ( n ) f(n) f(n) 表示算法效率与数据规模的关系,假设每次解决问题需要 1 微秒( 1 0 − 6 10^{-6} 10−6 秒),进行估算: 如果 f ( n ) n 2 f(n) n^2 f(n)n2 那么 1 秒能解决多…...

Java设计模式:四、行为型模式-05:备忘录模式
文章目录 一、定义:备忘录模式二、模拟场景:备忘录模式三、改善代码:备忘录模式3.1 工程结构3.2 备忘录模式模型结构图3.3 备忘录模式定义3.3.1 配置信息类3.3.2 备忘录类3.3.3 记录者类3.3.4 管理员类 3.4 单元测试 四、总结:备忘…...

MongoDB实验——MongoDB配置用户的访问控制
MongoDB 配置用户的访问控制 一、 实验原理 理解admin数据库:安装MongoDB时,会自动创建admin数据库,这是一个特殊数据库,提供了普通数据库没有的功能,例如,有些账户角色赋予用户操作多个数据库的权限&…...

golang逃逸技术分析
“ 申请到栈内存好处:函数返回直接释放,不会引起垃圾回收,对性能没有影响。 申请到堆上面的内存才会引起垃圾回收。 func F() { a : make([]int, 0, 20) b : make([]int, 0, 20000) l : 20 c : make([]int, 0, l)} “ a和b代码一样࿰…...

说说你了解的 Nginx
分析&回答 nginx性能数据 高并发连接: 官方称单节点支持5万并发连接数,实际生产环境能够承受2-3万并发。内存消耗少: 在3万并发连接下,开启10个nginx进程仅消耗150M内存 (15M10150M) 1. 正向、反向代理 所谓“代理”,是指在内网边缘 …...

SpringWeb(SpringMVC)
目录 SpringWeb介绍 搭建 SpringWeb SpringWeb介绍 Spring Web是一个基于 Servlet API 构建的原始 web 框架,用于构建基于MVC模式的Web应用程序。在 web 层框架历经 Strust1,WebWork,Strust2 等诸多产品的历代更选 之后,目前业界普…...

Mysql 语句
数据库管理 SQL语言分类 DDL 数据定义语言,用于创建数据库对象,如库、表、索引等 create 创建 create database/table; 数据库/表 create table 表名 (括号内添加类型和字段);drop 删除 drop database/table; 数据库/表…...

软考高级架构师——6、软件架构设计
像学写文章一样,在学会字、词、句之后,就应上升到段落,就应追求文章的“布局谋 篇”,这就是架构。通俗地讲,软件架构设计就是软件系统的“布局谋篇”。 人们在软件工程实践中,逐步认识到了软件架构的重要性…...

虚拟内存相关笔记
虚拟内存是计算机系统内存管理的一个功能,它允许程序认为它们有比实际物理内存更多的可用内存。它使用硬盘来模拟额外的RAM。当物理内存不足时,操作系统将利用磁盘空间作为虚拟内存来存储数据。这种机制提高了资源的利用率并允许更大、更复杂的应用程序的…...

【linux】定时任务讲解
文章目录 一. 在某时刻只执行一次:at1. 设置定时任务2. 查看和删除定时任务 二. 周期性执行任务:cron1. 启动crond进程2. 编辑定时任务3. 查看和删除4. 用户权限4.1. 黑名单4.2指定用户 三. /etc/crontab的管理 一. 在某时刻只执行一次:at 1…...

安卓10创建文件夹失败
最近在做拍照录像功能,已经有了文件读写权限,却发现在9.0手机上正常使用,但是在安卓12系统上根本没有创建文件夹。经过研究发现,创建名称为“DCIM”的文件夹可以,别的又都不行。而且是getExternalStorageDirectory和ge…...