什么是身份?
区块链网络中的不同参与者包括同伴,订购者,客户端应用程序,管理员等。这些参与者中的每一个 – 网络内部或外部能够使用服务的活动元素 – 都具有封装在X.509数字证书中的数字身份。这些身份确实很重要,因为它们确定了对资源的确切权限以及对参与者在区块链网络中拥有的信息的访问权限。
此外,数字身份还具有Fabric用于确定权限的一些其他属性,并且它为身份和关联属性的并集提供了特殊名称 – 主体。Principal就像userIDs或groupIDs,但更灵活一点,因为它们可以包含actor的身份的各种属性,例如actor的组织,组织单位,角色甚至是actor的特定身份。当我们谈论主体时,它们是决定其权限的属性。
要使身份可以验证,它必须来自可信任的权威机构。一成员的服务提供商 (MSP)是这是如何实现的面料。更具体地说,MSP是定义管理该组织的有效身份的规则的组件。Fabric中的默认MSP实现使用X.509证书作为身份,采用传统的公钥基础结构(PKI)分层模型(稍后将详细介绍PKI)。
一个简单的场景来解释身份的使用
想象一下,你去超市购买一些杂货。在结账时,您会看到一个标志,表示只接受Visa,Mastercard和AMEX卡。如果您尝试使用其他卡付款 – 我们称之为“ImagineCard” – 无论该卡是否真实且您的帐户中有足够的资金都无关紧要。它不会被接受。
拥有有效的信用卡是不够的 – 它也必须被商店接受!PKI和MSP以相同的方式协同工作 – PKI提供身份列表,MSP说哪些是参与网络的给定组织的成员。
PKI证书颁发机构和MSP提供了类似的功能组合。PKI就像一个卡提供商 – 它分配了许多不同类型的可验证身份。另一方面,MSP类似于商店接受的卡提供商列表,确定哪些身份是商店支付网络的可信成员(参与者)。MSP将可验证的身份转变为区块链网络的成员。
让我们更详细地深入研究这些概念。
什么是PKI?
公钥基础结构(PKI)是一组互联网技术,可在网络中提供安全通信。这是PKI是放小号在HTTPS -如果你正在阅读的网页浏览器这个文档,你可能会使用PKI来确保它来自一个验证源。
公钥基础结构(PKI)的元素。PKI由向各方(例如,服务的用户,服务提供商)发布数字证书的证书颁发机构组成,然后他们使用它们在与其环境交换的消息中对自己进行身份验证。CA的证书吊销列表(CRL)构成不再有效的证书的参考。证书的撤销可能由于多种原因而发生。例如,证书可能被撤销,因为与证书相关联的加密私有材料已被公开。
虽然区块链网络不仅仅是一个通信网络,但它依赖于PKI标准来确保各个网络参与者之间的安全通信,并确保在区块链上发布的消息得到适当的认证。因此,了解PKI的基础知识以及为什么MSP如此重要是非常重要的。
PKI有四个关键要素:
- 数字证书
- 公钥和私钥
- 证书颁发机构
- 证书撤销列表
数字证书
数字证书是包含与证书持有者有关的一组属性的文档。最常见的证书类型是符合X.509标准的证书,它允许在其结构中编码一方的识别细节。
例如,玛丽·莫里斯米切尔汽车的制造部在密歇根州底特律可能有一个带有数字证书SUBJECT
的属性C=US
,ST=Michigan
,L=Detroit
,,,。玛丽的证书类似于她的政府身份证 – 它提供了玛丽的信息,她可以用来证明关于她的重要事实。X.509证书中还有许多其他属性,但现在让我们专注于这些。O=Mitchell Cars
OU=Manufacturing
CN=Mary Morris /UID=123456
描述一个名为Mary Morris的派对的数字证书。Mary是SUBJECT
证书的副本,突出显示的SUBJECT
文本显示了关于Mary的重要事实。如您所见,证书还包含更多信息。最重要的是,Mary的公钥是在她的证书中分发的,而她的私人签名密钥则不是。此签名密钥必须保密。
重要的是,玛丽的所有属性都可以使用称为密码学(字面意思,“ 秘密写作 ”)的数学技术进行记录,这样篡改将使证书无效。只要对方信任证书颁发者(称为证书颁发机构(CA)),密码学就允许Mary将证书提交给其他人以证明其身份。只要CA安全地保存某些加密信息(意味着它自己的私人签名密钥),任何阅读证书的人都可以确定有关Mary的信息没有被篡改 – 它将始终具有Mary Morris的特定属性。将Mary的X.509证书视为无法改变的数字身份证。
身份验证,公钥和私钥
身份验证和消息完整性是安全通信中的重要概念。身份验证要求确保交换消息的各方创建特定消息的身份。对于具有“完整性”的消息意味着在其传输期间不能被修改。例如,您可能希望确保与真正的玛丽莫里斯而不是模仿者进行沟通。或者,如果Mary向您发送了一条消息,您可能希望确保其在传输过程中没有被其他任何人篡改过。
传统的身份验证机制依赖于数字签名,顾名思义,它允许一方对其消息进行数字签名。数字签名还可以保证签名消息的完整性。
从技术上讲,数字签名机制要求每一方保存两个加密连接的密钥:广泛可用的公钥和充当认证锚的私钥,以及用于在消息上产生数字签名的私钥 。数字签名消息的接收者可以通过检查附加签名在预期发送者的公钥下是否有效来验证接收消息的来源和完整性。
私钥和相应公钥之间的唯一关系是使安全通信成为可能的加密魔法。密钥之间的唯一数学关系使得私钥可以用于在仅对应的公钥可以匹配的消息上产生签名,并且仅在相同的消息上。
在上面的示例中,Mary使用她的私钥对邮件进行签名。任何使用她的公钥查看签名消息的人都可以验证签名。
证书撤销列表
证书撤销列表(CRL)很容易理解 – 它只是CA知道由于某种原因而被撤销的证书的引用列表。如果您回想一下商店场景,CRL就像被盗信用卡列表一样。
当第三方想要验证另一方的身份时,它首先检查颁发CA的CRL以确保证书尚未被撤销。验证者不必检查CRL,但如果不是,则他们冒着接受受损身份的风险。
使用CRL检查证书是否仍然有效。如果模仿者试图将受损的数字证书传递给验证方,则可以首先检查颁发CA的CRL,以确保其未列为不再有效。
请注意,被撤销的证书与证书过期非常不同。撤销的证书尚未过期 – 按其他措施,它们是完全有效的证书。