风险提示:防范以虚拟货币/区块链名义进行的非法集资风险。 ——银保监会等五部门

去中心化储存UDFS的入网认证流程

白话区块链 2019-07-26 00:10:05
微信分享

扫码分享

UDFS的网络作为Ulord生态的存储层,为了保证整个网络的健壮和安全性,要求所有加入的节点都得通过认证。入网认证流程图如下:

作者:UDFS / 来源:Ulord社区

 UDFS入网认证流程图

  UDFS节点入网认证流程

  入网流程说明:

  1)用户A使用钱包按照要求向指定地址转入一笔资金,获得txid、voutid。

  2)CA证书颁发过程:用户A这时候可以开始部署UDFS的节点服务程序,并提供voutid、txid、secret三个关键信息到UDFS节点程序中。节点A初次尝试连接网络中的节点时,首先会向UCenter进行证书申请:

  a)使用txid、voutid、secret向UCenter服务申请证书

  b)UCenter服务会验证txid、voutid的有效性

  c)UCenter将voutid、txid、secret产生的公钥(public key)、证书的有效期(period)以及UCenter本次签名的所使用的私钥版本号(licversion)进行hash运算

  d)UCenter对hash运算的结果用自己的私钥进行加密产生证书(license)

  e)UCenter将license、licversion、period反馈给节点A

  f)A保存好收到的license、licversion、period

  3)节点A验证period,确保自己的证书还在有效期内。否则重新进入流程2,重新进行申请。

  4)节点A向UDFS网络的引导节点B发起连接请求,一旦连接上之后便进入连接流程。这里要注意的是,为了进一步加强UDFS网络的安全性,这里做了双向认证。即虽然B已经在UDFS网络中了,但是A在连接B的时候,A和B都要互相去验证对方的身份。这里为描述方便,只简述单项认证的过程:

  a)B收到A连接上的消息后,立刻给A反馈一个随机hashB。随后等待A发来认证信息。

  b)A用自己的secret对hashB进行签名得到SignedHashB,发送txid、voutid、license、licversion、period、public key、SignedHashB给B。

  c)B首先校验period字段是否已经过期,如果过期则直接拒绝认证。

  d)B开始对A发来的license进行校验:根据liversion获取UCenter本次解密需要用到的公钥UCenterPublicKey,然后B用A提供的txid、voutid、licversion、public key、period进行hash运算,最后B使用ecdsa算法对hash、license、UCenterPublicKey三者进行认证,如果license合法,则证明license有效,同时也通过这种方式确认了public key。

  e)B对hashB、public key、SignedHashB进行校验,如果认证通过,则证明A的证书和其拥有的secret是同一个人的。

  f)至此,已经可以确认A是合法的了。这里要说明一下为什么需要B先发送hashB过去。目的是为了避免有人拿到了A的证书,但是没有A的secret,这时候为了冒充A,每次连接时都发送相同的SignedHashB来做认证。因此由B每次发送随机的HashB就可以避免这种情况。

  5)双向认证在上述说明的基础上,增加了A一旦连接上B,立即发送hashA给B,然后B对hashA做签名之后发送认证信息给A,让A来对B做认证的过程。只要任何一方认证不通过,都不允许加入。

UDFS   Ulord

白话区块链

区块链世界入口第一站,人人都能看懂的区块链;24 小时热点实时追踪。