Hyperledger Fabric 1.0 中的账本加密

Ledger encryption in Hyperledger Fabric 1.0

我正在分析各种攻击媒介,包括恶意方成功尝试接管 Fabric 节点之一,从而拥有世界状态和区块链分类帐的本地副本。

是否有允许我在 Hyperledger Fabric 1.0 中加密账本状态和区块链的本机(可配置)选项?

否则,哪些最佳实践可以帮助我保护区块链数据不被许可网络外的未授权方读取?

这是一个很好的问题。

默认情况下,在当前版本(HLF 1.0.4)中,数据不会被加密。我已经使用 this git repo 提供的代码片段对此进行了检查。

在使用 HLF cli 容器调用一些测试事务后,我通过读取所有世界状态 key/values(它是常规的 levelDB)做了一些简单的测试。结果所有值都被写入解密。

幸运的是,HLF 开发人员完成了他们的工作,数据加密将在 HLF 1.1 中可用。根据可用的发行说明 here:

FAB-830 Encryption library for chaincode Encrypt your data using the new chaincode encryption library.

因此您可以等待 HLF 1.1 的正式发布 - 或者,使用当前版本的 HLF 1.0.4,您可以将已经加密的数据传递给链代码,但副作用是您的 Invoke 函数将不会能够添加任何自定义逻辑(除非您还传递了解码它所需的密钥)。

确保数据不会在您频道的许可组织子组之外读取的第二种方法,数据分区也是一种选择:

查票FAB-1151

此功能的早期预览版在 1.1-preview 和最新的 master 中可用,您所要做的就是构建最新的 Hyperledger fabric 版本,并打开实验功能:

make clean-all peer-docker tools-docker orderer-docker EXPERIMENTAL=true

希望对您有所帮助。