深度探索区块链/基于数字证书的成员管理服务
Posted kaixinyufeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度探索区块链/基于数字证书的成员管理服务相关的知识,希望对你有一定的参考价值。
基于数字证书的成员管理服务
hyperledger Fabric 1.0基于PKI体系,生成数字证书以标识用户的身份。每个身份和成员管理服务提供商(Membership Service Provider,MSP)的编号进行关联。
一。实现成员管理的MSP
MSP(Membership Service Provider):成员管理服务提供商,是Hyperledger Fabric1.0中引入的一个组件。目的:抽象化各成员之间的控制结构关系。
MSP将证书颁发,用户认证,后台的加密机制和协议都进行了抽象。
每个MSP可以定义自己的规则,包括:身份认证,签名生成和认证。
每个Hyperledger Fabric 1.0区块链网络可引入一个/多个MSP来进行网络管理。这样即将成员本身和成员之间的操作、规则、流程都模块化了。
1。MSP成员验证
//MSP成员身份及身份标识符定义 type identity struct{ id *IdentityIdentifier //身份标识符 cert *509.Certificate //x.509证书 pk bccsp.key //公钥 msp *bccspmsp //所属的MSP } type IdentityIdentifier struct{ Mspid string //MSP标识 Id String //身份编号 }
说明:
成员身份是基于标准的X.509证书的
得用PKI体系给每个成员颁发数字证书,结合所属的MSP进行身份认证和权限控制。
根CA证书(root Certificate)是自签名的证书,用根CA证书的私钥签名生成的证书还可以签发新的证书,形成一个树型结构。
中间CA证书(Intermediate Certificate)是由其他CA证书签发的,也可利用自己的私钥签发新的证书。
签发证书是一个信任背书的过程,从根CA证书到最终用户证书形成一个证书信任链。
在PKI体中,可利用CRL/OCSP管理证书有效性。
超级账本中,MSP利用PKI的部份特性来管理证书的有效性。
(1)MSP标识的检查:
身份证书都是和MSP绑定的,必须有相同的MSP标识才能验证证书的有效性。
peer节点的Gossip通信和部分系统链码的调用都要求调用者身份和本地MSP标识相同。背书请求在通道管理策略验证的时候也会检查MSP成员是否有写入权限。
(2)证书路径检查:
除MSP标识检查,还会对证书签名有效性检查,主要是:
证书路径检查、校验根CA证书、中间CA证书是否有效,是否有从身份证书到可信根CA证书的有效路径。
注:在证书验证时并不校验证书的有效期,会强制设置当前时间为证书起始时间的下一秒,这确保有效期验证通过。
MSP目录下的cacerts和intermediatecerts子目录签发的证书都是有效的,证书校验的时候需要检查是否有到可信根证书的有效路径。
(3)CRL的检查
最后检查证书是否被吊销,现仅支持CRL不支持OCSP。
CRL会包含在本地MSP的crls子目录下,是由CA证书签发的包含被吊销证书序列号的证书文件。
在通道的MSP配置中,也会包含CRL列表。在更新通道配置时可发布吊销的证书。
2。MSP目录结构
(1)MSP的配置说明
在每一个Peer节点的排序服务节点上设置MSP目录后,Peer节点和排序服务节点就有了签名证书。在通道节点之间传输数据时,要验证节点的签名。
为了能够标识MSP,每个MSP需要指定一个名称,如org1,org2等。
在通道的MSP成员规则中可以用MSP名称来代表一个联盟(Consortium)、组织(Organization)或部门(Organization Division)
若在创世区块中检测到两个MSP用同一个MSP名称,则排序服务节点将启动失效。
MSP默认实现是基于X.509证书格式的,根据RFC5280文档内容,给一些MSP配置参考。
节点需要进行如下配置才能使用MSP进行签名/验签
【1】。用于节点签名的签名密钥(目前只支持ECDSA密钥)
【2】。通过MSP验证是有效的X.509证书将作为节点证书
MSP有效身份需要满足条件:
【1】身份证书符合X.509证书标准,且有到根CA证书/中间CA证书可验证的证书路径
【2】身份证书不在吊销列表中
【3】在X.509证书的OU字段至少包含一个在MSP中配置的部门
和普通X.509证书不同的是:MSP身份证书是没有有效期的,除非被添加到证书吊销列表中。
(2)生成MSP证书
(3)配置节点的MSP证书
3。MSP配置最佳实践
二。颁发数字证书的Fabric CA
可选的Fabric CA服务,这是官方提供数字证书管理的一个默认实现。
1。概述
2。Fabric CA服务端的安装部署
【1】。基于mysql的数据存储
【2】。基于PostgreSQL的数据存储
【3】。基于LDAP的数据存储
3。Fabric CA服务端的操作使用
以上是关于深度探索区块链/基于数字证书的成员管理服务的主要内容,如果未能解决你的问题,请参考以下文章