Fabric系列 - 国密改造

这篇具有很好参考价值的文章主要介绍了Fabric系列 - 国密改造。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Hyperledger Fabric 国密改造项目介绍

有关bccsp的改造方案的RFC文档

Fabric国密改造项目由Hyperlegder中国工作组(TWGC)发起执行,旨在构建支持国密算法且密码算法可灵活扩展的Fabric平台,方便世界各国开发者快速接入自定义的密码算法。

根据改造需求分析,Fabric国密改造方案由三个部分构成:

  • 国密算法基础库收集与改造

    构建完善可用的国密算法基础库是Fabric国密改造的首要事项。本次改造涉及的国密算法包括:SM2、SM3和SM4。另外,TLS协议也需要进行对应的国密改造。

    • 北京大学信息安全实验室 GMSSL 系列 (https://github.com/Hyperledger-TWGC/pku-gm)
    • 中国网安 CCS-GM 系列 (https://github.com/Hyperledger-TWGC/ccs-gm)
    • 苏州同济区块链研究院 (tjfoc-gm https://github.com/Hyperledger-TWGC/tjfoc-gm)
  • Fabric本体改造

    Fabric本体改造包括:Fabirc改造和Fabric-CA改造,主要是重构Fabric密码套件接入方式,以便开发者灵活接入自定义的密码算法。完成对Fabric的国密算法接入改造,主要涉及国密算法的Golang实现以及改造出符合国密标准的TLS通信加密组件。

  • Fabric SDK改造

    Fabric SDK改造包括:Fabric客户端SDK改造,这部分涉及的语言分别是Golang、NodeJS和Java。当Fabric的国密改造完成时,对应的客户端程序中部分涉及加密学的部分也需要进行国密改造以适配Fabric网络的国密PKI体系。

    • java-gm (https://github.com/Hyperledger-TWGC/java-gm)
    • node-gm (https://github.com/Hyperledger-TWGC/node-gm)

BCCSP

我们现在在 Hyperledger-TWGC github 组织下拥有 3 个中国加密库流。
其中一些还提供了成功的、经过企业验证的 bccsp 实现。
但是随着我们深入了解结构源,我们注意到仅实现 bccsp 并不能满足中国国家加密规范的所有要求。
bccsp之外还有一些cypro库的使用,比如通讯协议,X509格式转换。

Fabric 核心与 x509 标准非常非常紧密地结合在一起:

所有通信都假设 TLS 使用 x509 并且没有可插拔算法(不过,可以分叉 TLS 库并制作您自己的版本)。

Fabric 身份验证基础结构使用 BCCSP MSP,它也很大程度上基于 x509,并没有以任何方式将其抽象出来。

彻底检查整个代码库以抽象出 x509 将需要大量工作,如果我们这样做,它将使向后移植更改和错误修复变得痛苦,因为代码库会分歧太多。

国密改造目标

  • 采用规范的非入侵式的改造设计,希望国密改造能够与Fabric升级持续兼容;
  • 开发支持多语言且完善的国密库和通讯套件;
  • 实现Fabric-SDK多语言的国密改造;

MSP

目前,Hyperledger Fabric支持FABRIC类型和IDEMIX类型两种MSP组件,默认采用基于BCCSP组件构建的FABRIC类型MSP组件

  • localMspType: bccsp # MSP类型, 目前支持bccsp或idemix
  • BCCSP类型: Fabric默认类型
  • IDEMIX类型: Fabric 1.3中还增加了IDEMIX类型的MSP组件,采用了零知识证明的方法以提供身份验证与隐私保护功能(http://eprint.iacr.org/2016/663.pdf),这使得在不披露被验证者身份信息的情况下,向验证方证明自己的合法身份并完成交易,具有不可链接性(linkability),即无法从单个身份执行的多个交易中分析出是由同一个身份实体提交的,以实现真正意义上的匿名隐私保护特性,同时,提供Fabric CA(1.3以上版本,适用于生产环境)与idemixgen工具(适用于开发环境)作为发行者(Issuer)创建配置文件,为用户提供凭证(credential)。

Other

common.InitCrypto()函数首先调用SetBCCSPKeystorePath()函数,获取Viper组件配置中BCCSP组件密钥存储文件的路径(peer.BCCSP.SW.FileKeyStore.KeyStore配置项),转换为绝对路径后设置该配置项

调用creator.Verify()方法获取哈希方法及消息摘要(哈希值),通过所属MSP组件的BCCSP加密安全组件调用id.msp.bccsp.Verify()方法,验证消息签名的真实性。

然后,调用creator.Validate()→bccspmsp.validateIdentity()方法,验证该证书的有效性(7.2.1节),即是否满足证书符合X.509标准、证书不属于CRL、证书组织单元OU字段与MSP组织单元有交集等要求。

然后,执行identity.SatisfiesPrincipal(signedByID)→bccspmsp.SatisfiesPrincipal()方法,验证该签名身份实体信息identity是否满足指定签名策略的Principal结构对象要求。

defaultBCCSP对象的Setup()方法基于参数解析出MSP组件配置对象(FabricMSP-Config类型),将其作为参数传递给内部构建方法(即bccspmsp.setupV1()方法)执行调用,并依次调用msp.preSetupV1()方法和msp.postSetupV1()方法初始化本地MSP组件,

(10)bccsp节点bccsp节点包含了加密算法相关的配置,在bccsp节点中可以选择相关的加密算法以及相关加密算法的证书文件。bccsp节点的配置信息如下所示:文章来源地址https://www.toymoban.com/news/detail-516411.html


往期精彩回顾:
区块链知识系列
密码学系列
零知识证明系列
共识系列
公链调研系列
BTC系列
以太坊系列
EOS系列
Filecoin系列
联盟链系列
Fabric系列
智能合约系列
Token系列

到了这里,关于Fabric系列 - 国密改造的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 区块链基础之密码学及安全技术

    1.2 密码学及安全技术 1.2.1 密码学知识 1.2.1.1 Hash函数 Hash(哈希) 哈希函数是一类数学函数,可以在有限合理的时间内,将任意长度的消息压缩为 固定长度的输出值,并且是不可逆的。其输出值称为哈希值,也称为散列值。 哈希算法的应用: 消息认证:确保收到的消息和发送

    2024年02月11日
    浏览(41)
  • 区块链技术与应用 - 学习笔记2【密码学基础】

    大家好,我是比特桃。 本系列笔记只专注于探讨研究区块链技术原理,不做其他违反相关规定的讨论。 区块链技术已被纳入国家十四五规划,在“加快数字发展 建设数字中国”篇章中,区块链被列为“十四五”七大数字经济重点产业之一,迎来创新发展新机遇。 经科技部批

    2024年02月10日
    浏览(39)
  • 区块链密码学:基础知识、应用与未来发展

    区块链技术,作为一种分布式、去中心化的数据管理方式,密码学在其安全性和可靠性方面发挥着至关重要的作用。本文将详细介绍区块链密码学的基础知识、应用以及未来发展趋势。 区块链密码学是区块链技术的核心组成部分,用于确保交易的安全性、隐私性和可验证性。

    2024年02月05日
    浏览(43)
  • 【区块链学习笔记01】BTC-密码学原理-哈希函数

    区块链中最基础的密码学原理就是哈希算法,以下为哈希函数的简单介绍: 哈希函数是一种只只能加密但是不能解密的算法,哈希函数可以将任意长度的信息转化为固定长度的字符串。类似“8b46ec792e943de34605981980751a3c1e008218f77eeb27e474b594f7685019”这样。 当输入相同的值时,得到

    2024年02月03日
    浏览(41)
  • 区块链学习笔记(一)——比特币概念以及密码学相关的知识

    自己做一些让自己读得懂的笔记 1.Bitcoin History In 2008, a person under the pseudonym Satoshi Nakamoto published a paper Bitcoin: A Peer-to-Peer Electronic Cash System . Bitcoin software was released in January 2009 and the mining of the Bitcoin cryptocurrentcy officially started. The genesis block included the “The Times” headline: “ Chan

    2024年02月15日
    浏览(43)
  • 【网络与信息安全学报】区块链密码学隐私保护技术综述——CCF T2

    区块链密码学隐私保护技术综述 Survey on blockchain privacy protection techniques in cryptography Abstract 近年来,数据隐私问题日益明显,如何在区块链中实现有效的隐私保护是研究热点。针对区块链在隐私保护上的研究现状与发展态势,阐述了区块链在交易地址、预言机以及智能合约上

    2024年02月03日
    浏览(60)
  • 密码学系列4-选择密文安全,同态加密安全性

    本章将介绍Cramer-Shoup加密方案,并证明其安全性。最后讨论了同态加密方案的安全性证明 一、Cramer-Shoup加密 密钥生成 1.定义群 G G G ,群的阶为 q q q ,选取群的生成元

    2024年04月26日
    浏览(32)
  • 比特币/以太坊/加密货币/网络/区块链/钱包助记词:密码学的角度上,24个单词比12个单词更安全吗

    我们从密码学角度来聊聊助记词。 随着区块链钱包的发展和分层确定性(HD)钱包技术的普及,越来越多的用户开始熟悉了一个叫“助记词”的概念,很多人都已经习惯了从一开始使用一个钱包的时候,就先抄好单词认真保管,并且他们对于助记词的重要性也有了很深刻的理

    2024年02月12日
    浏览(65)
  • 【11.10】现代密码学1——密码学发展史:密码学概述、安全服务、香农理论、现代密码学

    参考:密码学发展简史 骆婷老师的《现代密码学(32H)》课程,笔记+查找的资料补充 期末为闭卷考试的形式 密码学早在公元前400多年就已经产生,人类使用密码的历史几乎与使用文字的时间一样长,密码学的发展大致可以分为 3 个阶段: 1949年之前的古典密码学阶段; 1949 年

    2024年02月04日
    浏览(48)
  • 【密码学】高级密码学-2

    🍬第⑤部分由L3H_CoLin编写,有一些修改。🍬 Song, Dawn Xiaoding, David Wagner, and Adrian Perrig. “Practical techniques for searches on encrypted data.” Proceeding 2000 IEEE Symposium on Security and Privacy. SP 2000. IEEE, 2000. 数据的安全外包存储 利用密码算法加密明文数据,使得云平台无法获得额外信息 解决

    2024年02月16日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包