上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

区块链项目的安全落地.pdf

编号:92540 PDF 46页 1.60MB 下载积分:VIP专享
下载报告请您先登录!

区块链项目的安全落地.pdf

1、目录区块链对数据安全的积极影响从安全3要素看区块链工信部白皮书区块链2.0技术架构和对应的安全层次TOP 8 安全控制智能合约的安全身份管理POSITIVE IMPACT OF BLOCKCHAIN FOR DATA AND TRANSACTION SECURITY(区块链对数据和事物安全的积极影响)Hash of Public KeySignedConsensus ChainedReplicated从安全3要素看区块链:Confidentiality(保密性)Hash of Public KeyHyperLedger Transaction Certificate(full Confiden

2、tiality of the user identity)Encryption of Data using Zero knowledge(零知识)Zcash using zk-SNARK for bitcoin like transaction Hawk using zk-SNARK for smart contractData invisibility(不可见)via State Channel Lightning network for Bitcoin Raiden Network for EtheriumFungibility(同等性)of zcashHomomorphic encryp

3、tion(同态加密)从安全3要素看区块链:Integrity(完整性)SignedChained ReplicatedOpen Source从安全3要素看区块链:Availability(可用性)Each Transaction(or Data)is replicated(availability)But what about the latency?工信部白皮书区块链2.0技术架构和对应的安全层次Application Level Security(OWASP TOP 10);Formal Verification,EVM vulnerability,IAMMaintain the secu

4、rity of public and/or community BlockchainGovernanceFault TolerancePerformanceP2P network encryptionClient to Node Communication EncryptionDefense against DDOSData EncryptionDigital Signature Key Management(key rotation,key escrow,key recovery)HSMTop 8 安全控制智能合约安全检查区块链与身份管理系统应用层源代码安全检查节点的安全加固数据加密(链上和

5、链下,国密算法)数据传输的加密DDOSKey Management智能合约的安全智能合约本身可以存储几千万甚至几个亿美金的资产。智能合约在链上面的部署是通过共识的,一旦部署成功就不能修改。公有链上的智能合约对大家都是公开的,一般没有传统的加密,审计和访问控制。目前智能合约的开发还在初级阶段,编程模式和传统的DevSecOps需要进行有效的改造来适应智能合约的安全需求避免外部调用/mapping(address=uint)private userBalances;function withdrawBalance()public uint amountToWithdraw=userBalances

6、msg.sender;if(!(msg.sender.call.value(amountToWithdraw)()throw;/此时,调用方的代码已经被执行,并且可以再次调用 withdrawBalanceuserBalancesmsg.sender=0;一定要调用外部函数怎么办?mapping(address=uint)private userBalances;function withdrawBalance()public uint amountToWithdraw=userBalancesmsg.sender;userBalancesmsg.sender=0;/用户的余额已经 被设置为

7、0,所以未来的调用不会转走任何资金if(!(msg.sender.call.value(amountToWithdraw)()throw;/代码失败要尽快(Fail Fast)/不安全的代码contract BadFailEarly uint constant DEFAULT_SALARY=50000;mapping(string=uint)nameToSalary;function getSalary(string name)constant returns(uint)if(bytes(name).length!=0&nameToSalaryname!=0)returnnameToSalar

8、yname;else return DEFAULT_SALARY;/不安全的代码 代码失败要尽快(Fail Fast)/安全的代码contract GoodFailEarly mapping(string=uint)nameToSalary;function getSalary(string name)constant returns(uint)if(bytes(name).length=0)throw;/名字为空,throwif(nameToSalaryname=0)throw;/找不到名字所对应的工资,throwreturn nameToSalaryname;自动淘汰modifier is

9、Active()if(block.number SOME_BLOCK_NUMBER)throw;function deposit()publicisActive()/some codefunction withdraw()public/some code紧急停止contract Stoppable address public curator;bool public stopped;modifier stopInEmergency if(!stopped)_ modifieronlyInEmergency if(stopped)_ function Stoppable(address _cur

10、ator)if(_curator=0)throw;curator=_curator;function emergencyStop()external if(msg.sender!=curator)throw;stopped=true;智能合约的安全开发过程建议简化智能合约,牺牲一部分图灵完备性换取安全性严格执行智能合约代码审查强化对智能合约程序员的安全培训尽量使用安全的样本DevSecOps传统身份管理与访问控制系统的问题传统身份管理与访问控制系统的问题问题的描述身份碎片化一个人的在线身份是碎片化的。例如微信,淘宝,滴滴,等等都会有我们的身份。实际上,我们都不清楚这些中心化的公司掌握了我们哪一

11、些信息,他们是怎么用我们的信息进行变现。但是对黑客而言,身份是在每一家中心化的公司的数据库里面,一旦攻击成功就可以获得很多甚至所有用户数据。所以在互联网历史上有很多黑客成功偷取大量用户的例子。用户对身份没有控制权利由于我们不清楚中心化的公司掌握了我们哪一些信息,我们对我们的身份属性没有控制,也没有办法保护我们的隐私。口令的痛苦我们有太多的口令需要记住,我们也经常忘记口令。口令是传统身份管理系统最大的痛点。没有人喜欢口令,但是我们不得不用它。身份证明是一个手工和昂贵的过程如果我们需要在银行开立账户,我们需要携带身份证,我们需要去银行分行。我们需要提供其他信息。银行需要验证你的标识。可能需要时间。

12、作为KYC的一部分(知道您的客户),身份证明是一个非常昂贵的过程。成本每年都在增加。一些银行可以为KYC支付5亿美元以上。https:/ Directory Schema。一旦定义,很难扩展或修改。身份属性的每个变化都需要重新启动应用程序。22家身份链公司High Level Network Architecture身份拥有者身份消费者KYC 请求中国银行KYC API联通中国移动华为其他身份提供者身份链ILP链上和链下身份中介单链或者多链的身份管理生态系统Overall Layered ArchitectureIdentity and PolicyAPI and Admin LayerIde

13、ntity and Policy LayerAccess Control Policy Admin APIIdentity Life Cycle APIIdentity Smart ContractAccess Control Policy Smart Contract身份链的数据模型Key Idea:Smart Contract on BlockchainHave states APIs(public and private API)Given RAM and CPU resource for the API to executeNeeds strong security or formal

14、 verification before store it on blockchainMay need some capability of updating/deleting a smart contract.(right to forgotten)Is the key for Blockchain Identity implementation.Blockchain Identity Eco-SystemIdentity Oracle:perform identity proofing,identity attribute attestation.Identity Provider:the

15、 Blockchain with Identity Smart ContractIdentity Consumer:users and/or systems who need identity to perform a task.Owner of the Identity:The actual person or entity who owns the identity(using Private Key to prove ownership).Identity Smart ContractThe attribute of the identity can be attested and in

16、serted by Identity Oracle under Owners request and approval.The attribute can be encryptedOnly the owner of identity can decide which Identity Consumer has access to which Identity attribute.Identity Life Cycle APICRUD of identity and Attributes Can support Rest APIEncrypt/Decrypt Attributes.Access

17、Control Policy Smart Contract Group Smart Contact Role Smart Contract Resource Smart Contract(similar to ARN in AWS).Managed Access Policy Smart Contract(examples)Read/Write Access to Identity Attributes via HTTPS and Oauth Customized Smart ContractAccess Control Policy Admin API CRUD of Access Cont

18、rol Policy CRUD of Resource Tags Attach/Detach Policy to User/Group/Role API Can support Rest API Example:create a policy:grant access to Bank of China to access my Drivers license number.身份链的几个应用场景Use Case 1:Sequence Diagram for User Access to Website with Blockchain IdentityKen Huang-NameIDWallet-

19、Private Key6:granted access with OpenID tokenWebsite with OpenID5:Yes,and got OpenID token1:Login with kenhuang atusing Secure Token Service4:do you have the private KeyFor kenHuang,Secure Token Service(NameID)2:Redirect to NameID3:check if kenhuang exist?Kenhuang=Blockchain Ledger with Identity Sma

20、rt Contract and APIm1Use case 2:Create a human identity by Identity OracleIdentity Oracle(can be a government organization)1:I am Bill Gates,here is myDriver license.I need an identity on the blockchainBill Gatess Identity ContractAccess Control GatewaySmart ContractIdentity Oracle Smart Contract3:C

21、heck if this Oracle can create Identity(assumed the oracle Authenticated previously)4:Create Bill Gates and send Bill his private Key,only record the hash of Bills private key2:I verified billCan I create Bill?m1Use case 3:Identity Oracle attest an attribute for identityIdentity Oracle(can be a gove

22、rnment organization)1:I am Bill Gates,I was CEO of Microsoft.Can you attest it and record it on the blockchainBill Gatess Identity ContractAccess Control GatewaySmart ContractIdentity Oracle Smart Contract3:Check if this Oracle can attest attributes(assumed the oracle Authenticated previously)4:Bill

23、 Gatess identity is updated to state that he was CEO Of Microsoft2:I need updateBill and attest that He was CEO of M.S.总结区块链的5个安全属性区块链的5个安全层次和8个Top安全控制智能合约的安全区块链与身份管理系统华为BaaS云服务总体架构华为BaaS特色功能介绍技术点内容华为BaaS特点区块链类型私有链、联盟链与私有链、联盟链对应的共识算法和安全策略共识算法联盟链:优化PBFT算法,目前2000+TPS(50节点以内)私有链:Raft/Paxos算法,3万+TPSPBFT

24、结合华为云消息队列,未来1万+TPS(100节点以内)管控方式混合管控支持多云BaaS集中管理、监控安全方案三级证书+KMS除通信证书和身份证书外,增强管理证书,并与KMS结合部署方案支持私网部署、公网部署、混合部署支持区块链本地地址表,可以混合部署硬件加速高性能哈希、加密、压缩技术使用FusionSphere硬件资源加速智能合约安全执行环境、负载分担FusionSphere安全容器执行智能合约,多容器负载分担智能合约链外处理链上链下原子操作华为专利技术BaaS公有云场景-高可靠,多租户基于云体系的高可靠、安全的BaaS云服务:基于云原生CloudNative架构,跨AZ/DC高可用基于云平台

25、的安全体系,包括DDoS防攻击、漏洞扫描、WAF基于KMS云服务的秘钥管理基于VPC支持多租户区块链:区块链位于租户的VPC内,实现与租户的数据库、大数据、WEB应用的无缝结合账本数据库可插拔,可使用云数据库(Redis等)解决数据安全、数据单向增长问题Fabric专属VM实例支撑高性能网络、硬件加速、云主机安全 ELBBaaS ServerREST APIUI Console DDS KMS IAMAdminUsersAppsInvokeQueryManageDeployWeb ClientDevelopersContractsFabric CAEIPBaaS AgentFabric Pee

26、rEIPBaaS AgentFabric OrdererEIPBaaS AgentBaaS物理部署方案X省分行数据中心X2区块链节点X省区块链节点X省区块链节点华为公有云 VPCX省区块链节点X省政务云/房管局机房私网环境部署专线/MPLS VPN私网:192.168.1.X私网:192.168.2.X私网:192.168.3.X专线/IPsec VPN 所有区块链节点位于私网内 区块链操作及节点交互位于私网内 仅基金管理平台需要公网地址 网络安全性高X省基金管理平台X省移动端APPX省政务门户网站SDK公网FIP 66.143.82.1Y省分行数据中心Y省区块链节点Y省区块链节点华为公有云

27、VPCY省区块链节点Y省政务云/房管局机房公网环境部署Y省基金管理平台Y省移动端APPY省政务门户网站公网IPSDK公网IP公网IP 所有区块链节点需要从公网可访问 区块链操作及节点交互位于公网 可以通过EIP或NAT方式实现 需要考虑网络、端口的安全性混合环境部署:BaaS支持区块链本地地址表,不同的节点可以使用内网地址、公网地址访问指定区块链节点BaaS:混合云管理&多级秘钥保护证书类型是否可导出颁发方用途管理证书否华为BaaSBaaS管理本地、远程区块链节点验证管理权限并加密通信证书否华为BaaS区块链节点间gRPC通信是验证联盟链节点并加密身份证书是华为BaaS操作区块链智能合约的用户

28、权限,从BaaS平台颁发并由基金管理平台持有FusionSpere/公有云FusionSpereVMFabricFusionSpereDockerFabricVMFabricBlockChainBaaS主服务BaaS管理员稻香湖数据中心X数据中心华为公有云Y省基金管理平台X省移动端APPX省政务门户网站SDK华为BaaS使用的证书秘钥 多个华为云的BaaS可组成混合管理集群 可以通过主BaaS实现多个云区块链的统一管理,包括节点加入/删除;智能合约加载/升级、部署/监控 可以通过从BaaS实现本地区块链节点的部署/监控系统的安全性:访问权限通过华为BaaS,控制身份证书和智能合约的关系管理身份

29、证书可以调用的的智能合约身份证书可以从BaaS导出,用于对应的平台智能合约权限区块链X省区块链Channel2Channel1维修基金智能合约1用户交易1用户交易2智能合约2基金交易1基金交易2智能合约3维修交易1维修交易2基金管理平台建行平台用户智能合约通过华为BaaS,控制身份证书和交易账本的访问权限以Channel为粒度,可以读取账本历史交易身份证书可以从BaaS导出,用于对应的平台账本权限区块链X省区块链Channel2Channel1维修基金智能合约1用户交易账本智能合约2基金交易账本智能合约3维修交易账本审计平台大数据分析用户账本权限智能合约的生命周期ChainCode开发Chai

30、nCode测试ChainCode部署ChainCode实例化ChainCode升级需求云服务功能ChainCode开发华为软件开发云Eclipse IDE整合DevCloud:项目管理(ProjectMan)DevCloud:配置管理(CodeHub)DevCloud:代码检查(CodeCheck)DevCloud:编译构建(CodeCI)ChainCode测试华为软件开发云DevCloud:测试管理(TestMan)ChainCode部署华为软件开发云华为BaaS云服务DevCloud:部署服务(DeployMan)BaaS:部署ChainCode到PeerChainCode实例化华为Baa

31、S云服务BaaS:初始化ChainCode及初始节点ChainCode升级华为BaaS云服务BaaS:确保使用最新版本ChainCode智能合约:支撑多种业务策略区块链X省区块链Channel2Channel1A市智能合约基金交易1基金交易2B市智能合约基金交易1基金交易2A市用户或基金管理平台B市用户或基金管理平台用户智能合约不同城市由于策略不同,可以使用不同智能合约不同智能合约可以设定访问的权限适用于多平台、多用户场景区块链X省区块链Channel2Channel1智能合约A市投票交易B市投票交易X省基金管理平台用户智能合约不同城市的策略,可以通过不同的合约交易来实现不同的交易也可以设定访

32、问的权限适用于统一平台场景举例:A市要求业主投票70%以上才能使用住房公共维修基金B市规则更为细致,特殊情况下,如顶层漏雨等维修,只需要相关顶层业主同意即可智能合约:支撑多种签署策略区块链节点 X省住建厅的数据中心中有两个区块链节点 两个区块链节点中有一个签署,智能合约即可生效 两个节点起到备份作用Y省分行数据中心Y省区块链节点住建部数据中心X省分行数据中心Y省区块链节点Y省政务云Y省基金管理平台SDKX省区块链节点X省基金管理平台SDKX省区块链节点X省政务云住建部区块链节点Endorse节点Endorse节点Endorse节点X2X2X2 住建部数据中心中有两个区块链节点,Y省住建厅的数据

33、中心中有两个区块链节点 Y省住建厅数据中心两个区块链节点中有一个签署,并且住建部数据中心的两个区块链节点中有一个签署,智能合约即可生效 两个节点起到备份作用举例:X省智能合约的执行结果,仅需要X省住建厅签署即可生效Y省智能合约的执行结果,需要Y省住建厅和国家住建部签署才能生效智能合约:通过合约执行链间操作举例:X省支取住房公积金,需要查询支取人的信用状况,有信用问题则不予支取X省基金管理平台信用记录区块链提供身份证书,允许查询信用记录公积金区块链的支取交易,使用证书查询信用记录,根据结果进行后续逻辑处理信用记录区块链Channel2Channel1智能合约信用记录查询交易信用异常交易公积金区块

34、链Channel2Channel1智能合约支取交易缴存交易区块链的监控运维监控环境信息CPU、内存、硬盘、网络节点信息节点访问量、访问时耗、节点健康状态节点日志业务信息业务访问量、成功率、耗时分布交易欺诈、账本篡改短信、邮件、电话通知告警设置告警根据监控信息设置阈值告警区块链的监控告警区块链节点故障处理节点内数据一致性检测Fabric:周期性BlockChain和State DataBase一致性校验节点间数据一致性检测Fabric:依据共识算法,周期性跨节点BlockChain数据一致性检测节点故障恢复(节点动态加入)Fabric:启动节点的数据一致性恢复,并加入共识算法DAO(Decent

35、ralized Autonomous Organization)分布式自治组织Attack 的简单剖析 The basic idea is this:the DAO smart contract has a recursion program which does not terminate correctly.The caller of the program can call the recursion program again without withdrawing the either.As such,the hacker was able to accumulate the tot

36、al either to be withdrawn until a large sum($50 millions in virtual currency)by recursively calling the program.The problem can be mitigated if Recursive program is checked before deployed Formal verification.Bitfinex 安全问题的简单剖析的简单剖析Bitfinex user has their own set of keys created on the platform,usin

37、g a 2-of-3 key arrangement whereby Bitfinexheld two of the keys(including one offline)and BitGo used the third to co-sign transactions.Bitfinex keys got stolen by hacker.BitGo trusted withdraw request from Bitfinex and signed the request.$65 millions got stolen.The security breach could have been mitigated if Bitfinex use HSM for storage of private keys.BitGo limit the withdraw amount.谢谢

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(区块链项目的安全落地.pdf)为本站 (云闲) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部