Hyperledger Fabric 安全基础:身份系统 PKIs
什么是身份系统
区块链网络中的角色包括对等节点(peer),订购着,客户端应用程序,管理员等等。这些参与者的身份都封装在X.509数字证书中。这些身份信息真的非常重要,因为他们决定了在网络中参与者具体的权限。 Hyperledger Fabric 在身份中使用 principal 属性来决定他们的相关权限。principal 就像用户 ID 或组 ID 一样,但又更灵活一点,因为他们可以包含更多的参与者身份属性。当我们提到 principal 的时候,其实也就是讲到了系统里参与者身份属性的权限。这些属性通常是参与者的组织单位,组织单元,角色或参与者的特定身份。
更重要的,一个身份必须要是可验证的(也就是说得是真实的身份),因此,身份授权必须来自于最受信赖的系统了。Hyperledger Fabric 中的会员服务提供者( membership service provider 下文简称MSP)干的就是这个活儿。进一步来说,MSP 代表着组织中决定成员规则的组件,就这样,它管理着组织中成员有效的身份。Fabric 中默认的 MSP 实现使用 X.509 证书作为身份,并采用传统的公钥基础结构(PKI)分层模型。
一个简单的场景来描述身份系统
假设你去超市买些杂货,在结账时你注意到商家只支持银联付款。如果你使用支付宝付款,那将不被接受,尽管你的支付宝里有钱并且实名认证过了。
所以,有一个有效的支付方式(如支付宝)并不够,它必须要被商家所接受!PKI 和 MSP 在一起就代表着这种场景,PKI 提供了一系列的身份(银联、万事达、微信、支付宝等等),MSP 决定哪些才是参与网络组织的成员(那种支付能被接受)。
PKI 证书颁发机构和 MSP 提供了相似功能的结合。PKI 就像一个名片提供者 — 它颁发许多不同类型的可验证身份。另一方面,MSP 就像商店接受的银行卡提供商列表 — 决定了商店支付网络中哪些参与者(支付方式)是被信任的。MSP 将可验证身份转变为区块链网络的成员。
什么是 PKIs
公钥基础设施(PKI)是一组提供网络安全通信的互联网技术。是 PKI 才有了 HTTPS 中的S - 如果您在Web浏览器上阅读本文档,则可能已经使用了 PKI 来确保它来自可靠源。
*公钥基础设施(PKI)的要素。PKI 由证书颁发机构组成,证书颁发机构向各方(例如,服务的用户,服务提供商)颁发数字证书,然后使用这些证书在他们与其环境交换的消息中对自己进行身份验证。CA 的证书废弃列表(CRL)包含着各种无效证书。证书被废弃的原因可能有多种,例如,与证书关联的私人密码资料已被暴露。
区块链网络不仅仅是一个通信网络,它依赖于 PKI 标准来确保各个网络参与者之间的安全通信,并确保发布在区块链上的消息得到正确的验证。因此,了解 PKI 的基础知识以及 MSP 将会非常重要。
PKI有四个关键要素:
- 数字证书
- 公匙跟私钥
- 证书颁发机构
- 废弃证书列表