我正在分析各种攻击媒介,包括恶意方成功接管一个Fabric对等体,从而拥有世界状态和区块链分类账的本地副本 .
是否有本机(可配置)选项允许我在Hyperledger Fabric 1.0中加密分类帐状态和区块链?
否则,什么是最佳做法可以帮助我保护区块链数据被许可网络外的未授权方读取?
这是一个很好的问题 .
默认情况下,在当前版本(HLF 1.0.4)中,数据不会被加密 . 我已使用this git repo提供的代码段检查了这一点 .
在使用HLF cli容器调用一些测试事务后,我只是通过读取所有World State键/值(它是常规levelDB)进行了一些简单的测试 . 结果所有值都已写入解密 .
幸运的是,HLF开发人员完成了他们的工作,数据加密将在HLF 1.1中提供 . 根据可用的发行说明here:
FAB-830链码加密库使用新的链码加密库加密数据 .
因此,您可以等待正式发布HLF 1.1 - 或者,使用当前版本的HLF 1.0.4,您可以将已加密的数据传递给链代码,但副作用是您的Invoke函数将无法添加任何自定义逻辑(除非你也传递解码所需的密钥) .
确保数据不会在您的 Channels 的权限组织子组之外读取的第二种方法,数据分区也是一种选择:
检查机票FAB-1151
1.1功能预览中提供了此功能的早期预览,您需要做的就是构建最新的Hyperledger结构版本,并打开实验功能:
make clean-all peer-docker tools-docker orderer-docker EXPERIMENTAL=true
希望这可以帮助 .
2 回答
这是一个很好的问题 .
默认情况下,在当前版本(HLF 1.0.4)中,数据不会被加密 . 我已使用this git repo提供的代码段检查了这一点 .
在使用HLF cli容器调用一些测试事务后,我只是通过读取所有World State键/值(它是常规levelDB)进行了一些简单的测试 . 结果所有值都已写入解密 .
幸运的是,HLF开发人员完成了他们的工作,数据加密将在HLF 1.1中提供 . 根据可用的发行说明here:
因此,您可以等待正式发布HLF 1.1 - 或者,使用当前版本的HLF 1.0.4,您可以将已加密的数据传递给链代码,但副作用是您的Invoke函数将无法添加任何自定义逻辑(除非你也传递解码所需的密钥) .
确保数据不会在您的 Channels 的权限组织子组之外读取的第二种方法,数据分区也是一种选择:
检查机票FAB-1151
1.1功能预览中提供了此功能的早期预览,您需要做的就是构建最新的Hyperledger结构版本,并打开实验功能:
希望这可以帮助 .