学习笔记:Corda 核心概念之 Identity

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/li_jiachuan/article/details/78577353

Identity

可以按照两种分类方式进行划分

按照代表的对象类型,可以分为 Legal Identities 和 Service Identities:

  • Legal Identities 代表的是网络中参与 transaction 的一个节点组织/参与者
  • Service Identities 代表的网络中提供 Transaction 所需相关服务的参与方,比如 notary 或者 oracle
按照 Identity 是否公开,可以分为 Well Know Identities 和 Confidential Identities:
  • Well Know Identities(众人皆知的) 是指在 network map 中公开的 identities,网络中的所有人都知道
  • Confidential Identities(保密的) 是基于 needs-to-know 的原则共享的 identities
是否为 Well Know 还是 Confidential 是基于节点的 X.509 证书以及相对应的连接到一个受信的根证书(trusted root certificate)是否是公开的。
  • Well Know Identities 的 X.509 证书(certificate)发布在了 network map service 中, 任何人都可以访问。显然这对于那些对参与者的身份要求保密的情况下并不适用。
  • Confidential Identities 仅发布到 transaction 中涉及到的参与方。相关的公钥(public key)可能会暴露给第三方(比如 notary service)。对于名字以及 X.509 证书的分发是有限制的。

Identity Name

Corda 中的 identity name 是遵循 X.500 格式的,包含了 Corda 一些特殊的限制。这个名字中必须要包含最少支持 X.509 证书的相关信息,和一下的属性:
  • organization(O),必须
  • state(ST)
  • locality(L),必须
  • country(C),必须
  • organization-unit(OU)
  • common name(CN) - 仅用于 service identities

Certificates

节点可以通过使用 X.509 证书来确认一个公钥(public key)的所有者身份信息。

当第一次运行节点的时候,会产生一个密钥对(公钥+私钥)然后会向网络中的 Dorman service 提交一个证书签名申请(Certificate Signing Request, CSR)。Doorman service 会进行所需的身份确认操作,然后会给节点发行一个新的证书,那么该节点以后就可以将这个证书作为自己的证书授权(Certificate Authority, CA)。基于这个最初的 CA 证书,节点会自动生成并签署两个新的证书,一个 TLS 证书和一个 签名证书(signing certificate),一次作为节点的 well know identitiy。最终节点会创建一个节点信息记录,这个记录中会包含它的访问地址和 well know identity,然后把它注册到 network map service。

当节点生成签名证书之后,它就可以创建 well known 和 confidential identities 了。然后节点可以选择将哪个证书发布给 network map service,将哪个证书想要保存为私有证书,不被所有人知道。

自己简单画了一个节点证书生成的流程图

猜你喜欢

转载自blog.csdn.net/li_jiachuan/article/details/78577353