Fabric权限管理和策略

权限管理是区块链网络十分重要的功能,负责控制某个身份在某个场景下是否允许采取某个操作(如读写某个资源)。

超级账本 Fabric 项目通过策略(Policy)来灵活指定各场景下的操作权限。

策略应用场景
具体来看,常见的策略场景包括如下表所示。其中,大部分都与系统配置链码相关,可以在通道配置中进行指定;部分为代码中的规定。

对于存储在通道配置中的策略,可以利用 configtx.yaml 指定,在生成新建通道交易时初始化到通道配置内。

操作场景    策略检查    相关实现文件
调用 Broadcast() 接口向 Orderer 发送交易信息    Orderer 会检查是否满足通道的 Writers 策略    orderer/multichain/chainsupport.go
调用 Deliver() 接口从 Orderer 获取区块结构    Orderer 会检查是否满足通道的 Readers 策略    orderer/common/deliver/deliver.go
新建应用通道    Orderer 会检查是否申请者满足系统通道的 Writers 策略    orderer/multichain/chainsupport.go
修改通道配置    Orderer 会检查所有的修改项需满足对应的 modPolicy 策略,默认为 Admins    common/configtx/update.go
Peer 加入应用通道    配置管理系统链码(CSCC)会检查申请者是否为某个 MSP 的管理员身份    core/scc/cscc/configure.go
Peer 获取所加入通道列表    配置管理系统链码(CSCC)会检查申请者是否为某个 MSP 的成员身份    core/scc/cscc/configure.go
获取某应用通道的区块    配置管理系统链码会检查是否满足应用通道的 Readers 策略    core/scc/cscc/configure.go
安装链码    链码生命周期管理系统链码(LSCC)会检查安装提案中签名者是否为本地 MSP 的 Admin 身份    core/scc/lscc/lscc.go
实例化部署链码    链码生命周期管理系统链码(LSCC)默认会检查提案者是否是通道内成员    core/scc/lscc/lscc.go 和 core/committer/txvalidator/v20/plugindispatcher/dispatcher.go
调用链码    背书节点在背书过程中会检查链码是否满足应用通道的 Writers 策略和 Readers 策略;确认节点也会检查交易是否满足背书策略    core/endorser/endorser.go 和 core/scc/lscc/lscc.go
Peer 通过 Gossip 协议获取到区块    对区块进行校验,检查需要满足 BlockValidation 策略    peer/gossip/mcs.go
监听事件    Peer 会检查是否满足应用通道的 Readers 策略    core/peer/deliverevents.go
注:Readers、Writers、Admins、管理员、成员等都代表了一组事先定义的身份。

身份证书
实现权限管理的基础是身份证书机制。

通过基于 PKI 的成员身份管理,Fabric 网络可以对接入的节点和用户的各种能力进行限制。

Fabric 设计中考虑了三种类型的证书:登记证书(Enrollment Certificate)、交易证书(Transaction Certificate),以及保障通信链路安全的 TLS 证书。证书的默认签名算法为 ECDSA,Hash 算法为 SHA-256。

登记证书(ECert):颁发给提供了注册凭证的用户或节点等实体,代表网络中身份。一般长期有效。
交易证书(TCert):颁发给用户,控制每个交易的权限,不同交易可以不同,实现匿名性。短期有效。
通信证书(TLSCert):控制对网络层的接入访问,可以对远端实体身份进行校验,防止窃听。
目前,在实现上,主要通过 ECert 来对实体身份进行检验,通过检查签名来实现权限管理。TCert 功能暂未实现,用户可以使用 idemix 机制来实现部分匿名性。

身份集合
基于证书机制,Fabric 设计了身份集合(MSP Principal)来灵活标记一组拥有特定身份的个体,如下图所示。

 </

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值