docker – 如何从hyperledger中的hfc-key-store中的真实fabric-
我想首先正确解释我的理解,如果我是对的,请告诉我真相,如果我弄错了,请告诉我,我错了.我的解释是关于hyperledger网络和节点sdk如何协同工作以及节点sdk如何连接到超级网络. 开始吧.当我启动hyperledger网络时,它所做的是在端口7054上创建fabric-ca-server docker镜像和容器.在该端口上,它注册了一个用户“admin with the password:”adminpwd“.这意味着还有证书制作对于这个用户.现在假设我想从节点sdk创建一个新用户.我想我需要做的是为管理员提供证书,以便我可以签署我的请求,网络知道我是管理员和部分网络.代码的作用是第一次写入getUserContext(“admin”),如果找不到,那么它会尝试使用用户名和密码(admin和adminpwd)注册.我的理解是getUserContext转到hfc-key -store文件夹并尝试查找admin的证书.如果找不到它,会发生注册然后发生createUser函数,它将从fabric-ca-server docker映像派生的证书放入hfc-key-store,这样当管理员再次尝试注册时,它不必转到fabric-ca-server docker 图片.我到目前为止对吗?我现在就问我的问题. 问题: >我了解到,在尝试注册时,它无法从fabric-ca-server docker镜像获取管理员的原始证书,因为如果它被盗,整个网络都会被搞砸.所以它所做的是从原始的那个获得某种公共/私人和证书与我可以进行其他操作.问题是:如果有人偷了我的hfc-key-store文件夹,其中有管理员证书.他可以在没有注册的情况下进行操作,因为getUserContext(“admin”)将返回true并且它会让它做任何事情.如果有人偷了那个文件夹怎么办?这不危险吗? 最佳答案
那里似乎有很多问题.让我一步一步解释.如果出现问题或不清楚,请发表意见.
Fabric被设计为Consortium区块链系统,广泛用于企业业务场景.在Fabric业务网络中,每个组织通常包含至少一个对等体,并且可选择一个对等体. 想想这样的商业场景.有几家公司希望一起做生意.但是,他们不够相互信任.所以他们决定用Fabric来解决他们的痛点.假设该网络包含3个公司(组织),每个公司(组织)有一个同行和一个ca. 现在业务网络已经设置好了. 首先,让我解释一下入学的概念. >每个组织的ca都有一个bootstrap用户,这来自用户名和密码,通常样本会使用admin / adminpw.在ca服务器设置期间,此引导用户正在写入CA的数据库.设置后,引导用户已注册.但没有注册. 我们可以使用bootstrap用户在此组织中注册和注册新用户.这就是我们将财团区块链系统称为许可区块链系统的原因. 其次,让我解释一下sdk KVS(键值存储)的概念. 我们已经从上面的步骤获得了用户的privateKey和证书.那么我们如何坚持这些数据呢?有几种选择,将其存储在应用层数据库,一些硬件加密钱包,一些基于云的HSM等. Fabric-sdk提供了一个KVS来做到这一点.这是一个可选选项,您可以选择是否使用它.坦率地说,我不建议在生产系统中使用它.如果你只想尝试某些东西或测试一些东西,这很好,因为它非常简单. 默认情况下,fabirc-sdk-node将使用文件系统KVS.它将凭据存储在磁盘中,这就是你提到的hfc-key-store文件夹. 那么如果KVS被盗会怎么样? 所有注册都被盗了.所有证书和私人钥匙都被盗了.攻击者可以使用这些证书和privateKeys使用这些证书中的标识访问区块链系统.这是一场灾难. createUser()用于什么? 而不是将这些注册存储在文件系统中.将其存储在Application层数据库中的更好选择.每次我们想要访问区块链系统时,我们都可以先从db查询并获取证书和privateKey.然后使用createUser()接口创建新的User实例.此用户实例用作访问区块链系统的标识. 最后,让我解释一下Fabric中的事务流程 我们没有有效的用户证书和privateKey.我们如何向Fabric网络发送交易? fabric-peer如何验证交易并知道我是谁? >每个事务都包含用户的身份.如果要通过userA提交事务,则应在进一步支持调用之前调用setUserContext(userA). 从事务流程中,我们了解到必须使用用户的证书发送事务并使用用户的私钥进行签名.这就是我们在fabirc-sdk设计setUserContext()接口的原因. 加密工具 此工具用于在系统设置时生成私钥/公钥对以及相应的证书.之后,我们需要一个动态的添加/删除身份机制.而解决方案是Fabric-ca.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |