Hyperledger Fabric:如何将密码操作委托给Hashicorp Vault?

问题描述

是否可以将Hyperledger Fabric节点(客户端节点,订购者节点和对等节点)执行的加密操作委托给Hashicorp Vault? 允许对等方和订购者节点在不暴露其私钥的情况下签署和认可交易。

Hyperledger Fabric正式支持HSM,但是我无法找到任何相关文档来将HSM替换为Hashicorp Vault。

解决方法

您不能,至少不是所有密码操作。

结构节点将加密操作(例如签名)委托给称为BCCSP(区块链密码服务提供者)的组件。它有两种口味:

  • 软件(作为代码嵌入在节点中)
  • PKCS11(使用称为PKCS11的协议与可能在其末尾具有HSM的驱动程序进行通信,但可能仅具有用于测试的基于软件的HSM)

PKCS11方法:

您可能需要找到某种连接器,以将PKCS11调用从Fabric转换为Vault。从理论上讲,我猜可能可以通过cloning the repository实现一个{hsm的softhsm文件,并使其与Vault而不是HSM进行通信。

软件方法:

  • 在Fabric 1.4中,有一些initial work的BCCSP插件基于Golang的本机插件,但已被删除。

织物对等体对两种消息进行签名:

    在成员之间传递和传播的
  1. P2P消息,例如成员资格信息和心跳。
  2. 背书,作为交易的一部分结束。

虽然两种签名操作都使用BCCSP,但后者使用Go插件通过another layer which can be altered间接使用了BCCSP。

因此,这意味着您不能使对等方不拥有私钥(除非您使用PKCS11),但是您可能能够为该对等方使用一个私钥来用于P2P消息,而可以使用另一个私钥用于认可交易。

这里有两个挑战:

  1. 如果您制作自定义背书插件,则需要一个匹配的验证插件,以检查交易是否确实已由您需要使用的私钥正确背书。
  2. 您需要牢记,如果将应用程序配置为使用service discovery,则需要确保它们仍然能够根据对等端知道的证书来查找对等端(不是背书插件使用的标签。)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...