Hyperledger Fabric:如何将加密操作委托给 Hashicorp Vault?
Hyperledger Fabric: How to delegate cryptographic operations to Hashicorp Vault?
有没有办法将 Hyperledger Fabric 节点(客户端节点、排序节点和对等节点)执行的加密操作委托给 Hashicorp Vault?
允许对等节点和排序节点在不暴露私钥的情况下签署和背书交易。
Hyperledger Fabric 正式支持 HSM,但我无法找到任何相关文档来通过将 HSM 替换为 Hashicorp Vault 来实现同样的效果。
你不能,至少不是所有的密码操作。
Fabric 节点将签名等加密操作委托给名为 BCCSP(区块链加密服务提供商)的组件。它有两种口味:
- 软件(嵌入节点中,作为代码)
- PKCS11(使用称为 PKCS11 的协议与驱动程序通信,该驱动程序可能在其末端具有 HSM,但可能只是具有用于测试的基于软件的 HSM)
PKCS11 方法:
您可能需要找到某种连接器,将 PKCS11 调用从 Fabric 转换为 vault。理论上,我想可以通过 cloning the repository 实现 softhsm 的 .so
文件并使其与 vault 而不是 HSM 通信。
软件方法:
- 在 Fabric 1.4 中,有一些 initial work 用于基于 Golang 原生插件的 BCCSP 插件,但已被删除。
结构对等体签署两种类型的消息:
- 在对等点之间传递广播和传播的 P2P 消息,例如成员信息和心跳。
- 背书,最终成为交易的一部分。
虽然两个签名操作都使用 BCCSP,但后者通过 another layer which can be altered 使用 Go 插件间接使用它。
所以这意味着你不能让对等点不持有私钥(除非你使用 PKCS11),但你可以有一个私钥供对等点用于 P2P 消息,以及不同的用于背书交易的私钥。
不过这里有 2 个挑战:
- 如果您制作自定义背书插件,则需要匹配的验证插件,以检查交易是否确实由您需要使用的私钥正确背书。
- 您需要记住,如果应用程序配置为使用 service discovery,那么您需要确保它们仍然能够根据对等点知道的证书找到对等点(不是背书插件使用的那些)。
有没有办法将 Hyperledger Fabric 节点(客户端节点、排序节点和对等节点)执行的加密操作委托给 Hashicorp Vault? 允许对等节点和排序节点在不暴露私钥的情况下签署和背书交易。
Hyperledger Fabric 正式支持 HSM,但我无法找到任何相关文档来通过将 HSM 替换为 Hashicorp Vault 来实现同样的效果。
你不能,至少不是所有的密码操作。
Fabric 节点将签名等加密操作委托给名为 BCCSP(区块链加密服务提供商)的组件。它有两种口味:
- 软件(嵌入节点中,作为代码)
- PKCS11(使用称为 PKCS11 的协议与驱动程序通信,该驱动程序可能在其末端具有 HSM,但可能只是具有用于测试的基于软件的 HSM)
PKCS11 方法:
您可能需要找到某种连接器,将 PKCS11 调用从 Fabric 转换为 vault。理论上,我想可以通过 cloning the repository 实现 softhsm 的 .so
文件并使其与 vault 而不是 HSM 通信。
软件方法:
- 在 Fabric 1.4 中,有一些 initial work 用于基于 Golang 原生插件的 BCCSP 插件,但已被删除。
结构对等体签署两种类型的消息:
- 在对等点之间传递广播和传播的 P2P 消息,例如成员信息和心跳。
- 背书,最终成为交易的一部分。
虽然两个签名操作都使用 BCCSP,但后者通过 another layer which can be altered 使用 Go 插件间接使用它。
所以这意味着你不能让对等点不持有私钥(除非你使用 PKCS11),但你可以有一个私钥供对等点用于 P2P 消息,以及不同的用于背书交易的私钥。
不过这里有 2 个挑战:
- 如果您制作自定义背书插件,则需要匹配的验证插件,以检查交易是否确实由您需要使用的私钥正确背书。
- 您需要记住,如果应用程序配置为使用 service discovery,那么您需要确保它们仍然能够根据对等点知道的证书找到对等点(不是背书插件使用的那些)。