区块链基础与网络安全

区块链基础与网络安全

    • 区块链定义
    • 什么是比特币
        • 比特币信任来源
        • 比特币原理
        • 比特币->区块链
    • 区块链核心技术
        • 区块链的特征
        • 区块链核心技术
    • 区块链攻击对象
        • 1. 数据层
        • 2.网络层
        • 3.激励层
        • 4.共识层
        • 5.合约层
        • 6.业务层
    • 区块链安全解决方案
        • 1.区块链底层安全
        • 2.区块链业务安全
        • 3. 交易平台安全
        • 4. 矿池与矿机安全
        • 5. 用户安全
        • 5. 安全企业责任
    • 区块链与网络安全结合的未来前景
    • 区块链总结与展望

区块链定义

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链( Blockchain),它本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。

什么是比特币

区块链起源于比特币,它基于P2P网络技术、加密技术、时间戳技术、区块链技术等电子现金系统的构架理念,区块链是比特币的技术底层。

比特币发明者是中本聪(国人来就明),手动滑稽一下哈,2008年,金融危机大背景下,比特币出现,被定义为一个点对点的电子现金系统。2009年,创世区块诞生,比特币总量为2100w个。

比特币信任来源

  1. 无通货膨胀 —共2100万
  2. 没有假钞 —共识
  3. 流通性好 —跨境交易

比特币原理

  1. 如何校验账本
    Hash函数–摘要
    a.无法逆向
    b.独一无二的Hash(前一个区块参与到后一个区块中,任何一个变动都会导致hash不一样)
  2. 账户交易过程
    a.交易记录进行摘要
    b.私钥与摘要进行签名(一重函数)
    c.签名与地址验证(第二重函数)
    d.查询余额
    e.根据余额判断能否完成交易
    f.完成交易后就广播
    注:私钥可以唯一鉴别一个人,也是证明你是你的唯一方式
    私钥两次hash加上函数–实现不可由公钥逆向到私钥
  3. 共识机制
    所有记账节点之间达成共识,去认定一个记录的有效性-最长链原则
  4. 为啥要记账(挖矿)
    a. 记账有奖励,比特币奖励
    b.1段时间内只有一个人可以记账成功
    c.计算力争夺(POW),竟争记账权
    d.其他节点复制记账结果

比特币->区块链

账本一页一页就是区块,前一页参与后一页的hash算法(区块头中有父区块hash),形成链条

区块链核心技术

区块链的特征

1.去中心化
区块链技术不依赖额外的第三方管理机构或硬件设施,没有中心管制,去中心化是区块链最突出最本质的特征
2.开放性
区块链技术基础是开源的,除了交易各方的私有信息被加密外,区块链的数据对所有人开放。
3.独立性
区块链系统不依赖其他第三方,所有节点能够在系统内
自动安全地验证、交换数据,不需要任何人为干预。
4.匿名性
除非有法律规范要求,单从技术上来讲,各区块节点的身份信息不需要公开或验证,信息传递可匿名进行。

区块链核心技术

1.分布式账本
分布式账本指的是交易记账由分布在不同地方的多个节点共同完成
2.智能合约
智能合约是基于不可篡改的数据,自动化的执行些预先定义好的
规则,通俗来说,相当于强制执行的脚本。智能合约用的是solidity语言进行编写的。
3.非对称加密
账户身份信息是高度加密的,只有在数据拥有者授权的情况下才能访问
4.共识机制
共识机制就是所有记账节点之间怎么达成共识,去认定一个记录的有效性。

区块链攻击对象

本小结内容来自白帽汇安全研究院
就目前区块链的特征,进行如下分层:应用服务层、中间协议层和基础网络。并基于以下层面出发,针对每层中各个“攻击面”去分析已发生或者可能发生的安全风险。
一般来说,区块链系统由数据层、网络层、共识层、激励层、合约层和业务服务层组成。

数据层封装了底层数据块区以及相关的数据加密和时间戳等技术;
网络层则包括分布式组网机制、数据传播机制和数据验证机制等;
共识层主要封装网络节点和各类共识算法;
激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;
合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;
业务层则封装了区块链的各种应用场景和案例。

1. 数据层

区块数据
简要:
区块数据是分布在多个节点上的链式结构数据,节点与节点之间的“互动”将记录在区块中,然后在各个节点之间同步完整的区块数据,每个节点都有自己的一份区块数据
攻击方式:
a.恶意信息攻击
在区块链中写入恶意信息,例如病毒特征码、政治敏感话题等。借助区块链数据不可删除的特性,信息被写入区块链后很难删除。若区块链中出现恶意信息,将会遭到杀毒软件、政治敏感等多方面的问题。
b.资源滥用攻击
依赖现有的计算机存储技术,区块数据若发生爆炸式增长,可能导致节点无法容纳又或者使区块链运转缓慢,从而使稳定运行的节点越来越少,节点越少,则越趋于中心化,引发区块链危机。

签名与加密方式
简要:
密码学是保证区块链的安全性和不可篡改性的关键,而且区块链技术大量依赖了密码学的研究成果,为区块链的信息完整性、认证性和不可抵赖性提供了关键保障。
攻击方式:
a.穷举攻击
此类攻击方式主要作用于散列函数中,且几乎所有散列函数或多或少都受此攻击方式影响,而且其影响程度与函数本身无关,而是与生成的hash长度有关,主要是一个概率论的问题,其中最典型的的方式是基于生日悖论的“生日攻击”。
b.碰撞攻击
通过寻找算法的弱点,瓦解它的强抗碰撞性这一特性,使得散列函数原本要在相当长一段时间才能寻找到两个值不同hash相同的值的特性被弱化,攻击者能在较短的时间能寻找到值不同但hash相同的两个值。
c.量子攻击
此种攻击方式作用于大部分密码学算法。目前所有的加密算法以及摘要算法,其安全强度取决于它被穷举的时间复杂度,这使得依赖现有的计算机的计算能力,针对比较强的加密算法要对它进行暴力破解是非常难的,但是量子计算机拥有传统计算机无可比拟的算力,使得时间复杂度大大降低,于是,其安全强度便可能被瓦解,此问题是比特币社区中一直在讨论的问题。
d.后门攻击,比如算法中安置的后门
e.长度扩展攻击

2.网络层

P2P网络
简要:
去中心化的公链网络节点可能是普通家庭PC,可能是云服务器等等,其安全性必然是参差不齐的,其中必有安全性较差的节点,对其进行攻击将直接威胁节点的安全。
攻击方式:
a.日食攻击
日食攻击是其他节点实施的网络层面攻击,其攻击手段是囤积和霸占受害者的点对点连接间隙,将该节点保留在一个隔离的网络中。这种类型的攻击旨在阻止最新的区块链信息进入到日食节点,从而隔离节点。
b.窃听攻击
攻击者可以使用这种攻击来让区块链中的用户标识与ip关联起来,在某些情况下甚至可以追溯到用户的家庭地址。
c.节点客户端漏洞
攻击者在内网或者外网利用各种手段譬如漏洞扫描,0day漏洞利用等技术,对节点客户端进行攻击,此类攻击主要针对客户端自身软件可能存在安全漏洞进行利用,获取节点的控制权限。
d.拒绝服务攻击
通过大流量,或者漏洞的方式攻击P2P网络中的节点,使网络中部分节点网络瘫痪,节点瘫痪意味着链中总算力受损,使得其更容易遭受51%攻击,而目前进行拒绝服务攻击成本也较低,大量的攻击工具平台能轻易在黑市购买用于攻击。
e.延迟攻击
攻击者可以利用BGP劫持来延迟目标的区块更新,而且不被发现。因为它是基于中间人修改目标请求区块的数据来做到的:在目标请求获取最新区块的时候,将它的这一请求修改为获取旧区块的请求,使得目标获得较旧的块。

广播机制
简要:
在区块链中,节点是与节点互相连接的。当某节点接入到区块链网络后,单个节点会与其他节点建立连接。此时该节点就具备了广播信息的资格,在将信息传播给其他节点后,其他节点会验证此信息是否为有效的信息,确认无误后再继续向其他节点广播。
攻击方式:
a.双重支出攻击

  • 种族攻击
    欺诈者直接向商家发送支付给商家的交易,并发送冲突的交易,将代币投入自己到网络的其余部分。第二个冲突的交易很可能会被开采出来,并被区块链节点认为是真的,于是付款交易作废。
  • 51%攻击
    如果攻击者控制全网算力的一半以上,则前面提到的替代历史攻击有100%的概率成功,由于攻击者可以比网络的其他部分更快地生成块,所以他可以坚持自己的私有分支,直到它比诚实节点网络建立的分支更长,它将代替主链。
  • 芬尼攻击
    假设攻击者偶尔产生数据块。在他生成的每个区块中,他包括从他控制的地址A到地址B的转移。为了欺骗你,当他生成一个块时,他不会广播它。相反,他打开您的商店网页,并使用地址A向您的地址C付款。您可能会花费几秒钟的时间寻找双重花费,然后转让商品。接着他广播他之前的区块,他的交易将优先于你的交易,于是付款交易作废。
  • 替代历史攻击
    攻击者向商家提交支付的交易,同时私下挖掘其中包含欺诈性双重支出交易的分支。等待n次确认后,商家发送产品。如果攻击者此时碰巧找到n个以上的区块,他就会释放他的分支并重新获得他的硬币。
  • Vector76攻击
    被称为单一确认攻击,是种族攻击和芬尼攻击的组合

b.交易延展性攻击
延展性攻击者侦听P2P网络中的交易,利用交易签名算法的特征修改原交易中的input 签名, 生成拥有一样input和output的新交易,然后广播到网络中形成双花,这样原来的交易就可能有一定的概率不能被确认,在虚拟货币交易的情况下,它可以被用来进行二次存款或双重提现。

验证机制
简要:
区块链的运行为了维持其数据的有效性与真实性,必须要有相应的验证机制来限制节点必须将真实信息写入区块中。
攻击方式:
a.验证绕过
验证机制的代码是区块链应用的核心之一,一旦出现问题将直接导致区块链的数据混乱,而且核心代码的修改与升级都涉及到区块链分叉的问题,所以验证机制的严谨性就显得尤为重要。

3.激励层

激励层目的是提供一定的激励措施鼓励节点参与区块链的安全验证工作。区块链的安全性依赖于众多节点的参与。例如比特币区块链的安全性是基于众多节点参与工作量证明带来的巨大的计算量,使得攻击者无法提供更高的计算量。
节点的验证过程通常需要耗费的计算资源和电能。为了鼓励节点参与,区块链通常会采用虚拟货币的形式奖励参与者,目前比特币、莱特币、以太币都是这种机制的产物。
当奖励不符合市场预期,节点们的工作成本小于和接近于收益的时候,他们往往会选择不再为这个区块链工作,从而很容易导致中心化问题。

  1. 比特币区块链上的被全部开采完毕
  2. 矿工奖励骤降,大量矿工下链
  3. 攻击者以较低成本发动51%攻击

4.共识层

共识机制赋予了区块链技术灵魂,使它与其他的P2P技术差异化。
目前常用的共识机制有PoW(工作量证明机制)、PoS(权益证明机制)、DPoS(股份授权证明机制),然而他们都不是完美的,都有各自的优点与缺点。
区块链基础与网络安全_第1张图片a.短距离攻击
此类攻击比较典型的是“贿赂攻击”,此攻击主要影响PoS共识机制,贿赂攻击流程如下:
  1) 攻击者购买某个商品或服务。
  2) 商户开始等待网络确认这笔交易。
  3) 此时,攻击者开始在网络中首次宣称,对目前相对最长的不包含这次交易的主链进行奖励。
  4) 当主链足够长时,攻击者开始放出更大的奖励,奖励那些在包含此次交易的链条中挖矿的矿工。
  5) 六次确认达成后,放弃奖励。
  6) 货物到手,同时放弃攻击者选中的链条。
  因此,只要此次贿赂攻击的成本小于货物或者服务费用,此次攻击就是成功的。相比之下,PoW 机制中贿赂攻击就需要贿赂大多数矿工,因此成本极高,难以实现。

b.长距离攻击
此类攻击比较典型的是“51%”攻击。
c.女巫攻击
攻击者通过创建大量的假名标识来破坏对等网络的信誉系统,使用它们获得不成比例的大的影响。
默认情况下,通常假定每个不同的标识对应于不同的本地实体。实际上,许多身份可以对应于相同的本地实体。
对手可以向对等网络呈现多个身份,以便出现并充当多个不同的节点。因此,对手可能能够获得对网络的不成比例的控制水平,例如通过影响投票结果。
d.币龄累计攻击
e.预计算攻击

5.合约层

智能合约
简要:
智能合约本质上是一份代码程序,难免会有因为考虑不周的导致出现漏洞的情况,所以在发布一份智能合约之前,进行大量的模糊测试与白盒审计是必不可少的。
攻击方式:
a.可重入攻击
当智能合约A调用智能合约B时,智能合约B可以在被调用的函数中写入“使智能合约A调用智能合约B”的代码,这样就造成了可重入攻击。
b.调用深度攻击
调用深度攻击可以让合约调用失败,即使这个调用在逻辑上不存在任何问题,但是在虚拟机层面以及不被允许了,因为调用深度达到了虚拟机中的阈值,超过阈值不再往下执行。
c.交易顺序依赖攻击
此时若攻击者更改奖励额度的交易给的交易费比较高,验证节点会先执行这笔交易,最终会导致答题人最后得到的奖励额度是调低的额度。而攻击者以一个较低的成本就买到了正确答案。
d.拒绝服务攻击
通过大流量,或者漏洞的方式攻击P2P网络中的节点,使网络中部分节点网络瘫痪,节点瘫痪意味着链中总算力受损,使得其更容易遭受51%攻击,而目前进行拒绝服务攻击成本也较低,大量的攻击工具平台能轻易在黑市购买用于攻击。
e.时间戳依赖攻击
如果智能合约在敏感操作中依赖时间戳,可能会导致执行结果被预测。
f.误操作异常攻击
g.整数溢出攻击

合约虚拟机
简要:
区块链已经具备在链上繁衍出多种应用的功能,而实现这种功能的基础就是合约虚拟机(用于运行各种智能合约的平台),此技术的出现极大的提高了区块链的可扩展性,是区块链2.0的重要标志。
若虚拟机存在漏洞或相关限制机制不完善,很可能运行来自攻击者的恶意的智能合约。
攻击方式:
a.逃逸漏洞
虚拟机在运行字节码的时候会提供一个沙盒环境,一般用户只能在沙盒的限制中执行相应的代码,此类型漏洞会使得攻击者退出沙盒环境,执行其他本不能执行的代码。
b.逻辑漏洞
虚拟机在发现数据或代码不符合规范时,可能会对数据做一些“容错处理”,这就导致可能会出现一些逻辑问题,最典型的是“以太坊短地址攻击”。
c.堆栈溢出漏洞
攻击者可通过编写恶意代码让虚拟机去解析执行,最终导致栈的深度超过虚拟机允许的最大深度,或不断占用系统内存导致内存溢出。
d.资源滥用漏洞
攻击者可以在虚拟机上部署一份恶意代码,消耗系统的网络资源、存储资源、计算资源、内存资源。
在以太坊中采用的是gas机制,攻击者想要在以太坊虚拟机上做更多操作,需要付出经济代价。
e.延迟攻击
攻击者可以利用BGP劫持来延迟目标的区块更新,而且不被发现。因为它是基于中间人修改目标请求区块的数据来做到的:在目标请求获取最新区块的时候,将它的这一请求修改为获取旧区块的请求,使得目标获得较旧的块。

6.业务层

交易平台

  • 针对交易平台的安全风险主要为拒绝服务攻击;

  • 针对交易平台账户体系的撞库攻击、穷举攻击、单点登陆漏洞(攻击者可以通过CSRF、XSS等手段来窃取用户登陆的ticket,从而导致用户账号被窃取。)、oAuth协议漏洞等

  • 针对交易平台支付体系的支付漏洞(修改支付价格、修改购买数量、越权支付等问题)

  • 交易平台业务逻辑的逻辑漏洞(越权漏洞、验证码漏洞、认证漏洞、条件竞争漏洞)

    首次代币发行(ICO)
    简要:
    ICO是类似于IPO的一种区块链项目融资方式,用于项目的起步资金,与IPO不同的是:ICO是一种以币换币的融资行为,一般以比特币或以太坊换取该项目代币。
    攻击方式:
    a.篡改攻击
    攻击场景:黑客通过域名劫持、web漏洞、或社会工程学等等之类的攻击手段来篡改项目官网上的收款地址,此之后项目募集到的资金便落到了黑客的手中。
    b.钓鱼攻击
    攻击者利用社会工程学等手段来冒充官方,使用户向攻击者的钱包地址中转账。
    矿工

  • 针对矿机系统的传统攻击(0day漏洞攻击、渗透攻击、弱口令攻击)以及奖励接收地址篡改攻击

  • 针对矿池的算力伪造攻击(针对算法漏洞)、扣块攻击、自私采矿攻击以及中心化问题(算力过于集中问题)

普通用户

  • 针对普通用户的挖矿傀儡(黑客在被入侵主机上部署挖矿程序)
  • 针对钱包的钓鱼攻击、私钥窃取、钱包软硬件漏洞攻击、在线钱包账号窃取等攻击

交易所

  • 针对交易所账户的钓鱼攻击、中间人劫持攻击、木马劫持攻击
  • 针对交易所API的关键Key&Token窃取(私有API一般都涉及到用户的一些敏感操作,例如:买入、卖出等操作。所以,API key一旦泄露,很可能会使自己的账户蒙受经济损失。)

区块链安全解决方案

本小结内容来自白帽汇安全研究院

1.区块链底层安全

数据层

主要从数据存储与加密算法两个方面来进行安全改进。
  信息存储方面,建议对用户输入的数据(如备注信息)等内容进行过滤检查机制,防止被恶意利用或滥用。另外一方面,加密算法和签名机制出于安全上的考虑,不要轻易自写加密算法,建议使用成熟且可靠的加密算法。防止遭遇到算法漏洞的攻击和安全风险。

网络层
针对网络层的安全防御主要从P2P网络安全、网络验证机制两个方面来提升安全性。

  • 在网络的传输过程中,使用可靠的加密算法进行传输,防止恶意攻击者对节点网络进行流量窃取或劫持。如开启Jsonrpc的节点强制使用https传输,而不是HTTP协议进行传输。
  • 加强网络数据中传输的有效性、合理性、安全性进行验证,防止出现整型溢出等情况导致出现的数据错误
  • 节点网络安全性加强。重要操作和信息客户端节点做必要的验证。

2.区块链业务安全

对于业务层的安全,主要依靠区块链安全企业开发相应安全产品或进行安全技术支撑,与区块链发起者建立合作等,从而避免或减少业务层上的攻击事件发生。

3. 交易平台安全

交易平台主要提供在线交易,形式主要为网站和App的形式。针对交易平台的安全性主要更加偏传统的安全防护。对于交易平台的安全性提高则主要由交易平台和安全企业或交易平台自建的网络安全部门。

4. 矿池与矿机安全

矿池平台安全

● 在建设之初就设计网络安全架构,并随着发展不断调整
● 网络安全隔离策略,仅对需要对外开放服务的端口进行开放
● 选择使用具备高防护能力的IDC厂商,提高攻击者发起DDOS攻击的成本
● 建立安全预警机制,加强先于黑客发现安全威胁的能力
● 安全应急响应机制,出现安全问题第一时间进行处理
● 定期的安全测试、安全检查
● 对矿池平台企业内部的安全管理
● 数据加密存储,防止数据被窃取后被滥用或使用户钱包或隐私信息被泄露而遭受损失情况
● 建立安全制度管理
● 提高交易平台企业内部人员的安全意识。建议定期对员工进行安全培训
● 与安全企业建立合作关系或建立SRC(安全应急响应中心)
矿机安全
● 矿机生产商应对矿机系统经过模糊测试和代码审计,确保系统安全性
● 矿机生产商生产的系统要求矿工必须修改默认账户,提高安全性
● 矿工应选择没有漏洞的矿机系统,避免自己使用的矿机被入侵,以免被攻击者恶意利用
● 矿工应设置安全复杂的密码

5. 用户安全

● 矿机生产商应对矿机系统经过模糊测试和代码审计,确保系统安全性
● 矿机生产商生产的系统要求矿工必须修改默认账户,提高安全性
● 矿工应选择没有漏洞的矿机系统,避免自己使用的矿机被入侵,以免被攻击者恶意利用
● 矿工应设置安全复杂的密码

5. 安全企业责任

网络安全企业可以贯穿区块链生态产业,从区块链底层到业务层,再到交易平台,以及矿池、矿工。目前,安全还处再初级发展阶段,安全企业则应该主动发现更多的安全问题,帮
助区块链厂商、交易平台、矿池平台、矿工系统提高安全。为区块链产业生态安全做出巨大贡献。
除此之外,还应该建立区块链威胁情报,及时发现安全问题,及时做出响应

区块链与网络安全结合的未来前景

应用前景一:“区块链+软件供应链”安全体系
1.针对开发者的攻击。攻击者通过各种手段,将后门或木马植入软件供应链的上游,开发者使用这些带有恶意代码的软件后,新开发出来的软件也会带有后门或木马。(针对目前开源软件的现状来看)
2.针对软件分发渠道的攻击
打造“区块链+软件供应链”生态,攻击前-同步协调,多方维护;攻击后,进行溯源,确认影响范围等

应用前景二物联网安全与区块链
物联网成长和扩张过程中生产的数据所面临的危险,比如智能家居、可穿戴设备,区块链可以保护这些数据(可靠通信、信息完整、抵抗DDOS、利用身份验证保护边缘设备等

其他应用前景
区块链与PK结合提高安全性、代替HTP的DNS分布式解决方案、隐私保护、崩溃恢复等

区块链总结与展望

安全问题越来越趋向于用户、平台层面,区块链的安全问题已经延伸到了传统的网络安全、基础设施、移动信息安全等问题,区块链本身、使用者以及衍生的东西都需要我们的重点关注。

区块链技术和其安全性问题仍会持续很长一段时间,主要原因
其一:全新的解决方案会进一步加快区块链的安全重建,创新技术和服务得到认可,进一步增强产业活力
提升技术价值
其二:随着生产生活逐渐向数字化,网联化和智能化转型,许多全新的变革性技术(如区块链)所打造的安全
生态体系和技术将成为大势所趋;
其三,由新技术衍生的产品安全技术服务范畴更加宽泛,将会催生更加繁荣的安全服务市场。

区块链新兴技术和产业的有机融合,必将在未来产生不可估量的价值。

[1]: http://safe.it168.com/a2018/0523/3204/000003204741.shtml 白帽汇安全研究院
[2]:崔宝江,宋绪言.区块链在软件供应链管理中的应用探索[J].保密科学技术,2019(05):41-44.

你可能感兴趣的:(区块链,区块链,信息安全,比特币)