区块链安全和传统安全有什么不同

vigor2323 vigor2323     2023-03-15     287

关键词:

说起传统安全,很多朋友都比较熟悉,基本而言,就是针对漏洞(管理、技术、人性)的攻击,和针对攻击的防护。

但说起区块链安全,很多人就不太了解了。有人说区块链本身是安全的,传统攻击根本奈何不了它;但也经常看到区块链里的安全事件,似乎一点也不少。

那到底和传统安全有什么区别呢?

本文就是讲一讲这个。

1. 总体而言

区块链在设计上大量采用密码学技术,在业务层、通信层、数据层均使用了加密、签名、Hash等技术,再加上区块链的去中心化设计,使得区块链所承载业务的保密性、完整性、可用性,达到了史无前例的高度。

但从本质上讲,区块链仍然是一个软件系统,软件可能存在的安全问题,区块链一样有。

即便区块链在底层无懈可击,其上层运行的各种Dapp、Web3应用仍可能漏洞百出。

这就好比,地基做得再安全,也不能保障其上的建筑没有安全问题。

本文的结构:

1、安全主要看什么?

2、传统安全的问题主要在哪里?

3、区块链,解决了什么安全问题?没有解决什么?

2. 安全主要看什么?

其实,安全说来说去,就三个东西,至今没有超越:

保密性、完整性、可用性。

这三性简称CIA(三个英文单词的首字母缩写)。

即便有其他的说法,也都不在一个层次上,比如认证性、可控性、可审计性、防抵赖性等等,这些都是CIA的附属或延伸,都是为CIA服务的。

如何深刻理解CIA?

熟悉UNIX的同学会比较容易理解一些,在UNIX的思维里,一切都是文件,而文件的安全,最终落实到读、写、执行(rwx)上。用户对某个文件的访问权限,就是是否可读、是否可写、是否可执行。这大体就对应了保密性、完整性、可用性。

保密性,就是不想让别人知道的就不让别人知道。

实现的思路无外这么几种:

1、不记录,不留任何书面记录,只留在脑海里,且不露声色。

2、锁起来,不管是物理性还是技术性的锁,实现对访问者的访问控制,被授权者才能访问。

3、藏起来,只让授权者知道在哪里,其他人不知道在哪里,隐写术也可以归到此类中。

4、加密,使用编码(code)或者密码(cipher)的方式,有密码本或者密钥才能访问。

完整性的概念不太好理解,最简单的理解就是,如果没有授权,对一个东西的任何部分都不能添加、减少、更改,如果非授权地做了这些,就破坏了完整性。

此外,完整性还有一个比较直观的含义:一致性。也即系统数据和真实世界一致,正如完整性的英文integrity本身有“诚实”含义一样,数据被篡改就肯定破坏了一致性。

可用性相对比较好理解,系统瘫了、慢了,数据不可用了,都是可用性出了问题。凡是系统提供的服务给人“用不成”、“没法用”、“不起作用”、“不好使”的感觉,那就是可用性出问题了。

信息系统,要保障的就是这三点。

而通常用来保障CIA的做法,就是认证、授权、访问控制、校验、加密、检测、备份、多活等等。当然,这些工作往往没有做好,会有各种各样的漏洞,一方面,发现了赶紧补上,另一方面,从源头做起,尽量减少漏洞的发生。

传统安全的主体差不多就是这些。

3. 传统安全的问题在哪里?

如果你已经是安全圈的老手,可以跳过这一节。

安全漏洞有很多种,本文不会一一列举,只是简单举一些例子,让大家看看大致情况。

从最高层面上讲,漏洞的共同特点是:攻击者的行为,使得软硬件的行为,超出了系统设计者的预期,产生了负面的效果。

例1:SQL注入

所谓SQL注入,就是在页面输入栏中或者在URL等处,黑客没有按照程序员预期的内容输入正常数据,而是在夹杂了SQL关键字,程序在处理输入数据时,用到了SQL,并把输入内容作为SQL语句的参数。这样,SQL语句可能就会执行黑客巧妙插入的SQL内容,使得黑客可以执行程序员预期外的数据库操作。

程序员应该多检查一下的,绝不能允许输入中含有这类攻击尝试,但大多数程序员并没有安全知识,即便有一点,也未必能做好,黑客就还有可能绕过。

黑客破坏了什么安全性质?黑客写入了系统预期外的数据,破坏了系统的完整性。黑客如果通过SQL语句还拖了库,就进一步破坏了系统的保密性。

程序什么地方没有做好?访问控制,就不该让什么数据都进来的。

例2: 缓冲区溢出漏洞

缓冲区是内存中存放数据的地方,通常都会有一个预设的大小。在将用户输入的数据放到内存中时,如果不做好检查,就可能超出内存预先设定的空间,发生缓冲区溢出。由于程序的运行代码也在内存中,如果黑客设计得足够精巧,就可以通过溢出覆盖掉原先的代码,使计算机最终执行了黑客的代码。

这和SQL注入有异曲同工之妙,黑客利用输入数据的机会,写入了可执行代码,而受害主机居然执行了它!

后来,为了抑制此类攻击,CPU厂商提供了DEP(Data execution protect)功能,在内存页标志了是否可执行,操作系统如果利用这个功能,就能在很大程度上防范此类攻击。此外,操作系统推出ASLR技术,通过对堆、栈、共享库映射等线性区布局的随机化,增加攻击者预测目的地址的难度。不过,使用这两项技术不代表攻击者就无法绕过。

黑客肆意乱写内存区,一样是破坏了系统的完整性。

程序则没有做好访问控制。

例3:文件上传漏洞

比如一个网站给了用户上传jpg照片的入口,由于未做检查,黑客成功上传了JSP文件,然后黑客找到该上传文件的URL,就可以执行他写好的脚本,这个脚本完全可以是一个木马。

和前面一样,由于检查不严,让黑客钻了空子,写了设计者预期外的文件,运行了设计者预期外的程序。

程序的访问控制没有做好。

例4: 中间人劫持漏洞

劫持有很多种,比如TCP劫持、HTTP劫持、DNS劫持、证书劫持、密钥协商劫持等等。

共同的特点是,A以为自己是在和B交互,B以为自己在和A交互,但实际上,他们都是和中间的C在交互。A和B的所有内容都经过了C,C看得见A和B通信的内容,C还可以修改A、B间通信的内容。

这至少破坏了A和B通信的保密性,如果C还修改了数据,就破坏了完整性。

程序的认证没有做好。

例5: 口令暴力破解

如果用户口令比较弱,黑客尝试多次后,可能破解出口令并进入系统。

这种事,有人可能认为责任在用户,但一般而言,现代的应用系统都会对用户所设口令的强度进行强制要求。

因为黑客一旦得手,系统的完整性会遭到破坏(系统接受黑客就表明一致性失效),并可能造成进一步的破坏,比如黑客进入后看到了不该看的东西,保密性被破坏。

系统的认证没有做好。

例6: 越权漏洞

在某个网站里,用户A和B都是普通用户,按道理只能操作自己的个人信息,A如果通过某种黑客手法,可以操作B的个人信息,这就是平行越权;如果A是普通用户,B是管理员,A如果能通过某种黑客方法,执行B才能做的操作,这就是垂直越权。

越权漏洞通常是权限校验逻辑不够严谨导致的。

程序的权限管理没有做好。

例7: 高峰期网站瘫掉

明星在网站官宣新闻,导致大量群众涌入围观,以至于该网站瘫掉或者响应很慢。

这是典型的系统可用性出现问题。

系统什么没有做好?可扩展性没有做好。

例8: 自然灾害导致系统数据丢失

2015年,谷歌位于比利时的数据中心由于遭遇了4次闪电袭击,导致磁盘受损,虽然谷歌对这些磁盘进行了紧急修复,但部分数据仍然永久丢失了。谷歌特别强调,丢失的数据非常非常少,只占该数据中心的0.000001%。即便如此,一些谷歌用户永远失去自己的部分个人数据。

这典型地破坏了数据的可用性。

系统的容灾备份没有做好。

4. 区块链解决了什么安全问题?

区块链和传统系统的最大区别就是两点:一是使用了大量的密码技术,二是使用了去中心化的结构。

前者使得保密性和完整性大为增强,后者使得可用性大为增强。

先说一下密码技术使用带来的好处。

在早期的WEB世界里,比如在IP协议里,在HTTP中,在FTP、TELNET中,都不太使用密码学技术。因为当时互联网处于早期,主要目的是互联互通,而且主要在高校和科研机构之间使用,并没有太多精力和心思去考虑恶意攻击。程序员在这些方面总是心思纯净的,总以为别人都是可以信任的,总认为没有人“那么无聊”。

后来他们才发现,现实世界充满了攻击、破坏、仿冒和入侵,程序员们不得不引入各种安全技术,密码学也被因此被引入,SSL、SSH、HTTPS、IPSec这些新一代的网络协议纷纷出现。

但这些大都处于传输层,主要是给传输数据加密的,并没有上升到业务层面或用户层面,最终用户并不能感受到密码学的好处。什么是用户层面的加密?举个例子:office文档的口令加密、winrar加密、truecrypt全盘加密、网银中的U盾等等。

而区块链在设计的一开始,就内置了的加密算法,这使得:

1、区块通过hash链接起来,从第一个区块,直到最后一个区块,所有区块是否正确,都可以很容易地验证,这保证了所有区块数据的完整性。

2、伪造区块的hash并不容易,只有符合特定难度的hash,才会被认可,伪造这样的hash,需要付出大量的计算,和挖矿相匹敌的算力。

3、每个用户有一个私钥,用私钥对应的公钥生成一个可以公开的地址。攻击者无法通过暴力破解的方法获得私钥。

4、由于用户体系是建立在公钥体制之上的,对用户的认证、用户的签名,对称密钥的建立(如果需要)都变得极为容易和便利。

5、区块中的每个交易,都要提供签名才能完成。攻击者没有私钥,无法签名,无法伪造交易;同时,有了签名,用户无法抵赖自己发出过的交易。

可以看到,区块链对hash和公钥体制的内置采用,直接提供了密码学级别的完整性、保密性。

而密码学技术,经过近一个世纪的发展,已经建立起相当坚实的基础,现代密码学的一些公开算法提供着全球顶尖级别的安全保障。这些算法中的佼佼者,目前没有任何国家力量可以破解(即便有一些后门传说,都还仅限于传说之中,没有明确的证据表明传说属实)。

然后看看去中心化的好处:

1、多一个节点,多一个备份。

以比特币为例,全球接近10000个节点提供服务,导致比特币系统自诞生以来,一直稳定地运行,任何人都未能让它停摆。因为即便有8000个节点同时失效,还有2000个在工作。事实上,即便全网只有几个节点工作,这个网络就仍然可以运转。

2、部分变节,仍可工作。

系统的稳健性并不建立在某个操作系统或某种数据库的安全之上,而是建立在其独特的区块式数据结构之上,部分节点即便失陷,即便故意作恶,也不影响大局。具体能容忍多少个失陷变节,要看具体的共识算法。

3、不依赖于某人或机构

只要你愿意,下载一份软件(代码都是开源的),你就可以加入比特币或以太坊或任何一个公链,你不用征求任何人意见,也不会因为任何人的失踪和退出而担心这个软件的前途,你只是根据你的判断、你的兴趣和你的利益运行它,也就是说,没有单人、单机构可以控制它。

去中心化,大大增强了可用性。

5. 区块链无法解决什么安全问题?

从最基本的逻辑讲,区块链只是大大提升了安全性,但并不能确保没有问题。

我们已经在区块链安全经典案例“922亿个比特币”和“The DAO被盗”中看到:

比特币因为程序员未能注意到整数溢出的问题,闹了大笑话,说好的总量2100万个比特币,居然在某个交易中出现了1845亿个比特币!

构建在以太坊之上的The DAO,由于开发者对重入攻击一无所知,导致用户众筹而来的300多万以太币被人盗走,落得尴尬收场。

这至少告诉我们两点:

1、作为区块链本身,虽然在设计上使用了大量密码学算法,但如果设计或编码不慎,就可能会有大漏洞。

2、即便区块链本身经过千锤百炼,提供了让人完全放心的安全,其上的智能合约也不能保证安全。

因为智能合约代码中的逻辑,如果和需求、设计、编码的预期不符,就会出问题。

这和传统安全没有任何不同。

此外,还有一点非常关键:

3、区块链所使用的密码学技术,可能本身也有漏洞。

毕竟,密码学也是人搞出来的。

只要是人做出来的东西,就总会有漏洞。

文|卫剑钒

泛圈科技yottachain区块链云存储比传统云更加强有力的保障数据安全

...该减少对人类的依赖。终于,行业迎来了救星,Yottachain区块链存储的出现,为行业提供了新的和改进的方法。YottaChain存储公链拥有全球唯一加密去重--“TruPrivacy”的区块链专利技术,毫无疑问将吸引大批技术极客和开发者... 查看详情

《筱静观察》第三季第6期丨区块链安全及其应用

题记:中国发展区块链有三个方向,一是区块链产业发展,二是实体经济融合,三是区块链安全保障。作为去中心化系统,区块链有许多天生的优势,但区块链系统始终需要网络运行的系统,因此传统... 查看详情

为何以高安全号称的区块链依然事故频发?

区块链技术自诞生以来,就一直宣称和传统互联网相比有很高的安全性,但事实上,在区块链发展的这十余年中,它的安全事故也同样在不断发生。从理论和区块链的具体构架来看,它确实有着更高的安全性... 查看详情

j9数字货币论:区块链解决了什么安全问题?

什么是区块链?区块链是一个全民参与,去中心化的记账方式。信息存在一个靠谱的数据库里。每一次信息的改动,人人都知道。区块链能解决什么问题?区块链主要解决信任问题。就像第三方裁判,这个裁... 查看详情

2023年区块链面试宝典整理版

2023年区块链面试宝典整理版(一)1.什么是区块链技术?它有哪些特点和优缺点?2.什么是共识机制?常见的共识机制有哪些?3.什么是智能合约?它有哪些应用场景?4.什么是去中心化应用?它的设计原则是什么?5.什么是哈希... 查看详情

关于今年以来区块链中的安全事件分析

区块链中的安全性相较于传统互联网安全高了很多,但高安全性也并不意味着绝对安全,再加上由于技术的缺陷和搭建时可能存在的漏洞,这让区块链中也时常会发生很多安全事件。区块链由于将数字内容转化为数字... 查看详情

区块链快速入门——区块链密码学与安全相关技术(代码片段)

区块链快速入门(六)——区块链密码学与安全相关技术一、区块链密码安全技术简介区块链和分布式账本中大量使用了密码学和安全技术的最新成果,特别是身份认证和隐私保护相关技术。区块链使用了包括Hash算法与摘要、... 查看详情

农产品区块链溯源平台建设解决方案,健全食品安全体系

...的创举。源中瑞致力于运用互联网、大数据、人工智能、区块链等新技术来解决传统农业存在的如食品安全、溯源、信息不对称等问题。看yonghu名传统的农产品溯源系统的实现依赖于中心化存储,数据不透明,易被篡改.而现有的区... 查看详情

区块链安全钱包设计实现

1.方案概述设计并实现一款基于国密算法的区块链安全钱包,首先使用国密算法完成基于国密算法的区块链的设计和实现,然后完成工作在此区块链上的区块链安全钱包。基于国密算法SM2、SM3和SM4实现区块链安全钱包最主要的功... 查看详情

区块链游戏和吃鸡王者荣耀等相比到底有什么优势?

现如今游戏市场上各式各样的区块链游戏,各家公司纷纷的发布自家的区块链游戏产品,许多传统游戏玩家也纷纷将目光投进区块链游戏行业上。让传统游戏厂商不得不感叹2019年将是区块链游戏风暴的到来。    我认为一... 查看详情

成都链安ceo杨霞:打通区块链生态安全信息屏障,守护区块链生态安全

区块链安全标准研究,包括系统级区块链安全体系,是从数据安全、共识安全、隐私保护、智能合约安全和内容安全等方面推动区块链安全标准化,为区块链开发、运营、管理和使用等提供指导。从2019年政府将区块... 查看详情

区块链投票系统概述

...投票的安全性电子投票的安全性电子投票做了些啥?区块链能给电子投票带来什么?我们的选择验证示例遗留问题前言最近接到项目要做区块链投票系统,集中调研了下相关的知识,做这里做下简要的记录。区块... 查看详情

中国黑客教父:目前投资区块链三大风险

  作为区块链社区的活跃成员,近日,国内知名黑客安全组织,东方联盟创始人郭盛华表示:我注意到目前正在构建的许多应用程序(使用区块链技术)可能更适合使用传统分布式架构。虽然肯定有实例要求区块链的好处,但... 查看详情

农产品区块链溯源平台建设解决方案,健全食品安全体系

...的创举。源中瑞致力于运用互联网、大数据、人工智能、区块链等新技术来解决传统农业存在的如食品安全、溯源、信息不对称等问题。看yonghu名传统的农产品溯源系统的实现依赖于中心化存储,数据不透明,易被篡改.而现有的区... 查看详情

genesis公链加速区块链行业发展

区块链提供了分布式、去中心化、透明、可溯源和不可篡改的交易记录体系结构。与传统数据库相比,区块链技术有较高的交易准确性和安全系数,以及不需要第三方中介即可进行更加高效的金融活动。当然尽管区块链... 查看详情

什么是区块链技术?区块链到底是什么?什么叫区块链?

狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用... 查看详情

区块链技术的自我见解

通过这一段时间的区块链技术的研究,我深深的了解到区块链在当代经济的重要性。区块链技术在传统的加密算法基础上融入了分布式的理念。分布式系统中最重要的是一致性问题,区块链技术的身份识别和信息加密,为分布式... 查看详情

区块链交易所开发,区块链系统开发公司

对于整个区块链行业乃至于软件开发行业来说,系统开发的稳定和安全比任何事情都重要,因为这就是根本。这就更别提我们的区块链交易所开发了。区块链交易所作为区块链行业的先锋,一直是处于行业的前线。因此它的安全... 查看详情