《区块链技术原理与实践版课件第6章密码学与安全技术.pptx》由会员分享,可在线阅读,更多相关《区块链技术原理与实践版课件第6章密码学与安全技术.pptx(73页珍藏版)》请在三一办公上搜索。
1、,密码学与安全技术,区块链的信息安全风险与技术,密码学与安全技术区块链的信息安全风险与技术,目录,CONTENTS,目录CONTENTS01安全技术概述02数据层安全04共识层,知识目标理解信息安全问题产生的原因和重要性;理解盲签名、环签名和零知识证明;掌握区块链各层次面临的风险与安全技术措施;了解比特币、以太坊、超级账本等主流区块链系统的信息安全保障机制。技能目标理解区块链的信息安全保障技术机制,能够为不同的区块链应用场景选择和构建安全保障措施。学习重点数据层、网络层、合约层、应用层的信息风险与主要防护技术手段;盲签名、环签名和零知识证明。学习难点哈希算法、哈希指针、默克尔树等数据结构、数据
2、保护算法等,知识目标学习目标Learning Objective,0,引导部分,网络与信息安全形势日趋严峻,0引导部分网络与信息安全形势日趋严峻,The DAO事件,区块链征途上的一场暴风雨,The DAO是一个基于以太坊区块链平台的大型众筹项目。2016年6月,the DAO遭受黑客攻击,其利用智能合约中有一个splitDAO函数漏洞在三个小时内,将300多万以太币(市值近6千万美元)的资产转走。,The DAO事件,区块链征途上的一场暴风雨The DAO是,网络和信息安全的四个问题,1.信息为什么具有重要价值?信息作为一种资源,使其对于人类社会的发展具有重要价值。2.谁在干扰和破坏信息安全
3、?信息安全的实质就是要保护信息资源免受各种威胁的干扰和破坏。3.信息安全问题是如何发生的?外有威胁,内有漏洞。4.如何来保障信息的安全?信息安全的三性CIA:保密性,完整性,可用性。,网络和信息安全的四个问题1.信息为什么具有重要价值?信息作为,1,安全技术概述,1安全技术概述,区块链系统面临的各种信息安全威胁,区块链系统,拒绝服务,粉尘攻击,黑客渗透,隐私泄露,操作系统漏洞,共识缺陷,数据篡改,智能合约漏洞,数据篡改,配置错误,供电中断,身份伪造,区块链系统作为重要的信息基础设施,其所受的威胁比比皆是,区块链系统面临的各种信息安全威胁 区块链系统拒绝服务粉尘攻击,区块链的体系结构,公有链,联
4、盟链,私有链,不同的场景、不同的风险,不存在解决所有信息安全问题“银弹”!需要从多个层面、采取多种技术来保障区块链系统的安全。,区块链的体系结构公有链联盟链私有链不同的场景、不同的风险,不,区块链技术安全通用规范,国家和行业制定了相关技术规范来规范、指导和保障区块链系统的安全。,区块链技术安全通用规范国家和行业制定了相关技术规范来规范、指,2,数据层安全,2数据层安全,数据层安全,数据层安全数据层安全数据层信息安全数据层交易隐私安全数据层隐,数据层信息安全保障,密码技术是数据层信息安全保障的重要手段。区块链是对密码学的一次整合运用。哈希算法、椭圆曲线算法、哈希指针,加解密双方之间的攻防战成为很
5、多电影的主题,数据层信息安全保障密码技术是数据层信息安全保障的重要手段。加,哈希算法,Hash,哈希函数,可以将任意长度的数据M,映射成为一个长度固定的值H(M),该值即为哈希值h,记作:h=H(M)哈希算法有很多种,比特币采用了SHA-256的哈希算法,其输出结果是固定的256位比特。如果用16进制数字表示的话,则是64位在线哈希计算工具:http:/,正向快速,逆向困难,输入敏感,抗碰撞,长度固定,易压缩,哈希算法Hash,哈希函数,可以将任意长度的数据M,映射成为,哈希算法示例,实用价值:对长数据进行压缩、摘要(Message Digest,指纹、DNA)对一批长短不一的数据,可以用它们
6、的哈希值作为统一编号,SHA256(Hello)=185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969SHA256 =7e4b1d3e0d7f59da0d4e70ef803697f28e2afbab228bcbbcd0a6fa3ed32384db,张无忌左手抓着圆音,右手提着禅杖,一跃而起,双足分点圆心、圆业手中禅杖,只听得嘿嘿两声,圆心和圆业同时仰天摔倒。幸好两僧武功均颇不凡,临危不乱,双手运力急挺,那两条数十斤重的镀金镔铁禅杖才没反弹过来,打到自己身上。众人惊呼声中,但见张无忌抓着圆音高大的身躯微一转折,轻飘飘的落
7、地。六大派中有七八个人叫了出来: “武当派的梯云纵!”,哈希算法示例实用价值:SHA256(Hello)张无忌左手抓,哈希指针,哈希指针是一种数据结构,确切地说,是一个指向数据存储位置的指针,同时也是位置数据的哈希值。跟普通的指针相比,哈希指针不但可以告诉你存储的位置,并且还可以验证数据没有被篡改过。,哈希指针哈希指针是一种数据结构,确切地说,是一个指向数据存储,哈希树,哈希树也称为默克尔树是一种二叉树数据结构,包含了一组节点,它们的含有基础信息的树根有大量的叶子节点,一组中间节点,每一 个节点都是它的 2 个子节点的哈希,然后,最终的一个根节点,也是由它的 2 个子节点的哈希形 成,代表着这
8、树的“顶端”。默克尔树的目的是允许在一个区块中的数据能够被零散的传递: 一个节点只能从一个源来下载一个区块的头信息,树的一小部分关联着另一个源 ,并且任然可以保证所有的数据均正确。,哈希树哈希树也称为默克尔树是一种二叉树数据结构,包含了一组节,非对称加解密,加密算法,解密算法,明文,密文,原始明文,加密密钥,解密密钥,非对称加密算法需要两个密钥:公开秘钥(简称公钥)和私有密钥(简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。加密秘钥 解密秘钥主要算法有RSA、ECC(椭圆曲线加密算法)等。,非对称加解密加密算法解密算法明文密文原始明文加密解密非对称加,基于EC
9、C的签名算法ECDSA在区块链中广泛应用。如:比特币等,1,在性能上,ECDSA签名操作比RSA更好。,2,提供相同密码强度时,ECC的模长更短。,3,椭圆曲线算法ECC,基于椭圆曲线离散数据对数问题的密码学,基于ECC的签名算法ECDSA在区块链中广泛应用。如:比特币,数据层安全,数据层安全数据层安全数据层信息安全数据层交易隐私安全数据层隐,数据层交易隐私安全保障,与传统银行的“身份公开、交易隐藏”方式相比,比特币采用了“身份隐匿,交易公开”模式。盲签名、环签名、零知识证明、混币、数据分区的隐私保护技术。,数据层交易隐私安全保障与传统银行的“身份公开、交易隐藏”方式,比特币的隐私模型,比特币
10、地址,比特币交易记录,交易对手地址,银行账户,交易记录,身份信息,可信第三方,交易对手,KYC,比特币的隐私模型比特币地址比特币交易记录交易对手地址银行账户,交易隐私保护技术方案,混币,数据分区,盲签名,环签名,零知识证明,交易隐私保护技术方案混币数据分区盲签名环签名零知识证明,当数据所有者和签名者不同时,可以保护数据的隐私。将明文数据经过盲化交给签名者签名,数据去盲后的内容等于签名者对明文数据签名的内容。,盲签名,当数据所有者和签名者不同时,可以保护数据的隐私。将明文数据经,实现签名者匿名。利用一批公钥签名,验证者只能判断改签名来自这批公钥。用户加入一个环,当需要签署数据时,用自己的私钥和任
11、意多个环成员的公钥为消息生成签名。验签者根据环签名和消息,验证签名是否是环中成员所签。如果有效就接收,如果无效就丢弃。,环签名,实现签名者匿名。利用一批公钥签名,验证者只能判断改签名来自这,证明者能在不向验证者提供任何有用信息的情况下,使验证着相信某个论断是正确的。阿里巴巴被强盗抓住,为了保命,他需要向强盗证明自己拥有打开石门的密码,同时又不能把密码告诉强盗。他想出一个解决办法,先让强盗离开自己一箭之地,距离足够远让强盗无法听到口令,足够近让阿里巴巴无法在强盗的弓箭下逃生。阿里巴巴就在这个距离下向强盗展示了石门的打开和关闭。,零知识证明,证明者能在不向验证者提供任何有用信息的情况下,使验证着相
12、信某,实现交易匿名。通过打乱交易发起方和接收方的强关联性,使攻击者无法追踪到资金流向。其原理是分离交易中的输入和输出地址,提高加密货币的隐私性和匿名性,使其更难追踪加密货币的用途以及它属于谁。,混币,实现交易匿名。通过打乱交易发起方和接收方的强关联性,使攻击者,对交易按照分区实施存储和访问隔离,达到保护隐私的目的。通过各应用业务间建立防火墙,区块分区存储、建立多分链模型,各分链密文存储,严格把控区块访问权限,建立密钥管理体系,保证分链之间相互隔离,互不干扰。,数据分区,对交易按照分区实施存储和访问隔离,达到保护隐私的目的。通过各,数据层安全,数据层安全数据层安全数据层信息安全数据层交易隐私安全
13、数据层隐,数据层隐私安全保障,传统隐私安全保障技术:数据脱敏匿名算法差分隐私新型隐私安全保障技术:同态加密算法,数据层隐私安全保障传统隐私安全保障技术:,数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。在涉及重要及敏感数据情况时,在不违反系统规则条件下,对真实数据进行改造并提供测试使用,如身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏。,数据脱敏,脱敏后的病人信息,原始的病人信息,脱敏措施,数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏,匿名算法是指根据具体情况有条件发布数据,或者数据的部分属性内容。匿名算法既能做到在数据发布环境下用
14、户隐私信息不被泄露,又能保证数据的真实性。,匿名算法,原始的员工收入信息,匿名化处理,匿名化后发布的信息,匿名算法是指根据具体情况有条件发布数据,或者数据的部分属性内,差分隐私是指通过对原始数据进行转换或者对统计结果添加噪音来实现隐私保护。在数据库查询结果中加入干扰噪音使攻击者无法找到特定项。APPLE公司使用差分隐私技术来分析用户群体的行为模式,但是对每个用户个体的数据却无法解析。,差分隐私,差分隐私是指通过对原始数据进行转换或者对统计结果添加噪音来实,同态加密是一个密码学概念,说的是明文加密后得到密文,然后在密文上进行一系列操作,再对最终得到的密文进行解密操作,所得到的结果和对明文本身直接
15、进行计算得到的结果一致。,同态加密,同态加密是一个密码学概念,说的是明文加密后得到密文,然后在密,3,网络层安全,3网络层安全,网络层安全,网络层安全网络层安全安全传输安全访问控制P2P网络安全,安全传输机制,TCP/IP协议在早期设计时,并没有考虑安全性,网络中大多采用了明文传输。目前主要的传输安全保障机制:SSL、TLS、IPSEC,实现对传输内容的加密保护。,通过wireshark对网络数据进行侦听和截获,SSL的典型应用HTTPS协议传输,安全传输机制TCP/IP协议在早期设计时,并没有考虑安全性,,SSL与TLS工作过程,SSL与TLS工作过程,网络层安全,网络层安全网络层安全安全传
16、输安全访问控制P2P网络安全,安全访问控制,对于公有链平台,任何节点都可自由加入区块链网络,不需要访问控制机制。对于联盟链和私有链平台,节点必须经过授权才能接入网络。目前主要的安全访问控制机制:PKI和CA中心。,安全访问控制对于公有链平台,任何节点都可自由加入区块链网络,,PKI公钥基础设施及CA的工作机制,用户生成公钥和私钥对。用户向注册机构提交公钥证书申请。注册机构检测申请的有效性。注册机构向CA机构申请证书。CA机构向用户颁发带有CA签名的用户公钥证书。用户使用证书对合同进行数字签名,然后一并交付商铺。商铺首先验证用户证书的有效性商铺向校验机构申请校验用户证书。校验机构向商铺反馈用户证
17、书的有效性。如果证书有效,商铺用此证书来校验合同上数字签名的有效性。如果证书和数字签名均有效,则此合同是真实有效的。CA机构向校验机构发布吊销无效证书的列表清单。,PKI公钥基础设施及CA的工作机制1234568971110,超级账本Fabric的PKI体系,超级账本Fabric的PKI体系,网络层安全,网络层安全网络层安全安全传输安全访问控制P2P网络安全,Dos和DDos攻击,采取传统的DDos防范措施以缓解影响。如:流量清洗等。区块链的去中心化和节点容错机制具有一定的防御能力。,Dos和DDos攻击采取传统的DDos防范措施以缓解影响。如,取名自电影Sybil,女主人公一个人表现出16种
18、不同的分裂人格。,1,“女巫攻击”的发起者模仿多种身份进行攻击,破坏区块链系统的冗余策略。,2,身份认证机制,如信任代理。,3,女巫攻击,取名自电影Sybil,女主人公一个人表现出16种不同的分,所谓“粉尘”是指很小额的交易。,1,“粉尘交易攻击”的发起者故意制造出大量“粉尘”交易提交到区块链网络中,造成系统无法及时处理相关信息。,2,设置最低交易手续费、提高交易手续费。,3,粉尘交易攻击,所谓“粉尘”是指很小额的交易。1“粉尘交易攻击”的发起者故意,P2P网络下的防范思路,增加攻击难度,如加强身份验证和访问授权,增攻击成本,提供或动态调整每次交易费用,P2P网络下的防范思路增加攻击难度如加强
19、身份验证和访问授权增,4,共识层安全,4共识层安全,共识机制的局限性,分布式系统的核心问题是“一致性问题”既“共识问题”。FLP不可能原理。一个在网络可靠的前提下,任意节点失效,一个或者多个的最小化异步模型系统中,不可能存在一个解决一致性问题的确定性算法。因此现有的共识机制都存在一定的局限性,没有完美的共识机制。CAP理论指出一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。共识算法的设计与选择时要根据情况作出舍取。,共识机制的局限性分布式系统的核心问题是“一致性问题”既“共识
20、,CAP理论,CA: 优先保证一致性和可用性,牺牲容错性。 这也意味着放弃系统的扩展性,系统不再是分布式的,有违设计的初衷。CP: 优先保证一致性和分区容错性,牺牲可用性。在数据一致性要求比较高的场合, 是比较常见的做法,一旦发生网络故障或者消息丢失,就会牺牲用户体验,等恢复之后用户才逐渐能访问。AP : 优先保证可用性和分区容错性,牺牲了一致性。淘宝购物、12306购票等场景均是如此。,CAP理论CA: 优先保证一致性和可用性,牺牲容错性。 这也,共识机制,共识机制算法容错类型说明一致性主副本、2PC、3PC提交宕机,热播HBO美剧硅谷第五季剧中开展虚拟货币业务的Pied Piper公司遭遇
21、了51%攻击,其对手们通过攻击获得虚拟货币区块链网络的算力控制权,挟持公司区块链网络直到获得共计51%的算力,其后果是“删除其所有的用户、开发人员的应用,使其虚拟币网络崩溃”。,51%攻击,热播HBO美剧硅谷第五季剧中开展虚拟货币业务的Pied,5,合约层安全,5合约层安全,合约层安全,合约层是在区块链基础功能之上,通过二次开发或编程来提供扩展性功能。这种额外的扩展能力也为区块链安全带来了额外的挑战。,合约层安全合约层是在区块链基础功能之上,通过二次开发或编程来,合约层的主要安全风险,智能合约本质就是一段计算机程序代码,其同样也存在着传统计算机程序中的安全隐患:代码层面漏洞:合约语言的语法问题
22、;整数算数运算溢出;时间戳依赖性等调用层面漏洞:信息(秘钥)泄露;越权访问;拒绝服务;函数误用等逻辑层面漏洞:合约设计上的逻辑错误。,合约层的主要安全风险智能合约本质就是一段计算机程序代码,其同,比特币的合约层安全,采用了一种简单的、基于堆栈的、从左到右的脚本语言。脚本功能严格受限,只有交易;没有循环;不保存数据;封闭运行;没有调用接口。没有针对脚本的运行环境进行隔离。降低了复杂性和不确定性。能够避免无限循环等逻辑炸弹安全性攻击。,比特币的合约层安全采用了一种简单的、基于堆栈的、从左到右的脚,以太坊的合约层安全,支持多种图灵完备的高级脚本语言。允许开发者开发任意应用,实现任意智能合约。脚本编译
23、为EVM字节码,在高度简化、隔离受限的以太坊虚拟机环境中运行。智能合约图灵完备性带来的安全挑战巨大。引入多种安全技术,实现了相对安全的运行环境,设计了Gas机制来有效防范无限循环攻击。针对合约脚本的安全问题,引入人工审计、标准化工作规范、强类型编程语言和形式化验证等多种安全措施。,以太坊的合约层安全支持多种图灵完备的高级脚本语言。,超级账本的合约层安全,支持多种图灵完备的高级脚本语言。如:golang , java允许开发者开发和实现任意智能合约。采用Docker容器作为安全隔离的运行环境。小型许可型区块链,安全问题较小。每个合约提交者需要经过身份认证和互相了解。支持三种不同访问权限的智能合约
24、:公开合约,保密合约和访问控制合约。,超级账本的合约层安全支持多种图灵完备的高级脚本语言。如:go,智能合约中常见漏洞和缺陷,代码层面漏洞:语言语法问题、整数算数溢出、时间戳依赖性等。调用层面漏洞:信息(密钥)泄露、越权访问、拒绝服务、函数误用等逻辑层面漏洞:合约设计时的逻辑漏洞。,function withdraw(uint256 _amount) public require(balancesmsg.sender = _amount); balancesmsg.sender -= _amount; etherLeft -= _amount; msg.sender.send(_amount)
25、; /没有判断返回值,可能造成转账失败,但账号余额被扣等情况一段存在逻辑错误的智能合约代码,智能合约中常见漏洞和缺陷代码层面漏洞:语言语法问题、整数算数,6,应用层安全,6应用层安全,应用层安全,在区块链中的应用层是直接面向用户的,涉及大量的用户信息、账号余额、交易数据等多种敏感信息,安全性尤其重要。在区块链中,私钥是用户操作数字资产的唯一凭证,私钥保护是重中之重。用户通过“数字钱包”来保护和管理私钥,其安全可靠性是应用层安全保障的重点。,应用层安全在区块链中的应用层是直接面向用户的,涉及大量的用户,私钥的安全性,在数字货币世界中,私钥就是身份,就是数字资产的钥匙,要确保私钥的安全,就要做好备
26、份,实现防盗、防丢,分散风险的效果。,以太坊中的私钥的形态:1.私钥:一份随机生成的256位二进制数字。18e14a7b6a307f426a94f8114701e7c8e774e7f9a47e2c2035db29a2063217252.密钥库(Keystore)和口令:私钥公钥已加密方式保存在JSON文件中 crypto : cipher : aes-128-ctr, cipherparams : iv : 83dbcc02d8ccb40e466191a123791e0e .3.助记码:随机生成1224个单词,按一定算法生成确定性钱包。,私钥的安全性在数字货币世界中,私钥就是身份,就是数字资产
27、的钥,数字钱包的分类,按私钥生成方式:伪随机生成器钱包(PRNG)、真随机生成器钱包(TRNG)。按存储方式:冷钱包(离线)、热钱包(在线)。按存储介质:PC钱包、手机钱包、纸钱包、在线钱包、专有硬件钱包等。按区块同步:重钱包、轻钱包、在线钱包。按功能特性:分层确定性钱包、多重签名钱包、智能钱包等。,数字钱包的分类按私钥生成方式:伪随机生成器钱包(PRNG)、,冷钱包和热钱包,冷钱包:无论是否对私钥进行了加密,私钥存储的位置都不能被网络所访问。安全性最好。易用性差。电脑冷钱包、手机冷钱包、纸钱包、专用硬件钱包热钱包:私钥存储的位置能够被网络所访问的地方。需要防范木马、病毒、黑客入侵、钓鱼邮件的
28、安全风险。易用性好。电脑热钱包、手机热钱包、在线钱包,冷钱包和热钱包冷钱包:无论是否对私钥进行了加密,私钥存储的位,重钱包、轻钱包和在线钱包,重钱包:具备区块链节点的完整功能,需要同步全量的区块链数据才能使用。易用性最差,安全性最好。数据完整,安全威胁少。轻钱包:只需支持区块链系统全节点的部分功能。易用性和安全性居中。数据不完整,很难严格完成交易验证,易遭受女巫攻击等。在线钱包:比轻钱包更“轻”的钱包。用户通过在线网站,不需要安装客户端,即可使用所有钱包的功能。易用性最好,安全性最差,用户私钥托管在中心化网站,其一旦遭受黑客攻击,将导致用户数字资产被转移。,重钱包、轻钱包和在线钱包重钱包:具备
29、区块链节点的完整功能,需,其他功能性钱包,分层确定性钱包:首先用一个随机数生成主私钥,然后基于主私钥生成若干个子私钥。备份更容易,私钥连线存放更安全,权限可控制,具备记账功能。多重签名钱包:支持多方私钥签名才能使用钱包。实现可双(多)因子认证,大幅提高了黑客的攻击难度。智能钱包:将可编程智能合约延伸到数字资产上,通过合约来约束各种交易和支付条件。,其他功能性钱包分层确定性钱包:首先用一个随机数生成主私钥,然,7,总结,7总结,总结,总结层级安全技术需求点公有链联盟链私有链数据层数据验证(有效,课堂提问,选择题(单选)1. 比特币区块中的交易Merkle树根值是使用_计算的。A.上一个块的哈希
30、B.交易哈希 C.没有 D.交易的次数2. 在以太坊中,为了得到唯一的公钥,对私钥应用哪种算法?A.SHA 256 B.Keccak C.ECC D.RSA3. 比特币的通用多重签名功能是什么?A Pay-to-owner hash (P2OH)B MD5 hashC Pay-to-miner hash (P2MH)D Pay to Script hash (P2SH)判断题:4.256位ECC密钥对的强度相当于大约3072位RSA密钥对。因此,ECC比RSA方法具有更强的加密能力。对还是错?,课堂提问选择题(单选),8,参考资料,8参考资料,参考资料,利用数据匿名化(Data Anonymi
31、zation) 技术增强云的信息安全区块链安全问题:研究现状与展望区块链安全分析报告 - 区块链安全网- 白帽汇安全研究院Ethereum Smart Contract Security Best PracticesSolidity Smart Contract Security Best PracticesIs Bitcoin Safe? | 3 Reasons Bitcoin is (Mostly) Secure | AVGHow secure is blockchain really? | MIT Technology ReviewWhat Makes a Blockchain Secure? | Binance Academy,参考资料利用数据匿名化(Data Anonymization,9,课后习题,9课后习题,简答题:信息风险和事件发生的原因是什么?区块链网络层的面临安全风险与安全技术措施有哪些?,选择题:数据层隐私安全保障的技术措施有哪几种?A.数据脱敏 B.匿名算法 C.差分隐私 D.同态加密算法2. 51%攻击一种针对()的攻击方法。A.数据层 B.应用层 C.合约层 D.共识层,课后习题简答题:应用题:在实验环境中的区块链节点上配置安全访,
链接地址:https://www.31ppt.com/p-1314467.html