如何使用户在超账结构中进行任何交易之前上载私钥文件?

时间:2019-06-13 12:07:47

标签: hyperledger-fabric hyperledger ca

我了解到Hyperledger将用户的私钥存储在名为keystore的目录中。我不希望我的网络存储它,而是用户应在进行任何交易之前上载此文件。 怎么做。

2 个答案:

答案 0 :(得分:1)

我没有完整的代码可提供给您,也没有时间编写。但是,您可以按照以下流程进行操作:

  • 前端:允许用户上传文件(示例(假设您正在构建Web应用程序):http://reusableforms.com/d/o3/html5-contact-form-with-file-upload
  • 后端:从请求中检索文件。
  • 后端:从这些文件创建用户上下文
  • 后端:建立/发送交易
  • FABRIC:处理交易
  • 后端:如果交易有效,请删除有关用户的所有信息(尤其是私钥)
  • BACK END:将响应发送回FRONT END

我不知道您的情况如何,但是:

  • 我认为让用户管理自己的密钥是一种风险,因为他可能会丢失它,或者有人可能会“破解”用户设备来获取它。
  • 让私钥在网络上移动可能是一个安全问题,有人可以拦截它。

但是正如我所说,我不知道您的情况。如果您在封闭的网络中,则可能传输PK不会有问题。如果您的客户端应用程序为用户管理密钥,也可以,但是如果用户错误地删除了密钥怎么办?还是设备坏了怎么办?

答案 1 :(得分:0)

我认为keystore文件夹可以完成什么以及您想在这里完成什么有误解。

在MSP的上下文中,keystore文件夹确​​实存储私钥。它存储由MSP表示的身份的私钥。但是,这对于运行MSP的节点是非常独特的。

在对等方上,密钥库将存储对等方的证书和对等方身份的密钥。它不会存储任何其他身份的密钥,因为该节点并不意味着要充当该身份(请记住,私有所有权=能够充当该身份)。它还将存储打算充当该对等方管理员的身份的证书(而非私钥)。

通过允许用户上传私钥,您到底想做什么?如果您试图允许用户向网络标识自己,那么提供密钥不是解决方案。如果还有其他问题,请尝试编辑您的帖子以更清楚地说明您的用例,以便我们提供帮助。