引言 密码学是区块链实施中最重要的组成部分之一。然而,每个国家都有自己的国家加密算法,因此,在实施联盟链方案時支持国密算法尤其重要。Hyperledger Fabric在包括中国在内的世界范围内得到广泛使用。为了更好地推进Hyperlegder Fabric项目对不同加密算法实现的支持,降低企业使用其作为区块链解决方案时对于密码套件改造可能的二次开发成本,提高国际化友好性,Fabric国密改造项目应运而生。Hyperledger中国技术工作组决定启动该项目,以社区合作绝对开源的方法为每个人开发通用的解决方案。再次衷心感谢各方努力。接下来,我们來看看这项目的成果。 项目背景和目标 密码是解决网络与信息安全最有效、最可靠、最经济的方式,是维护网络与信息安全的核心技术和基础支撑。 国密算法是国家通用密码算法的简称,是国家密码管理局制定的自主可控的国产算法,包括SM1、SM2、SM3 、SM4、SM7、SM9、祖冲之密码算法(ZUC)等。 密码算法在区块链系统中起着举足轻重的作用,这对于Hyperledger Fabric来说也不例外。Hyperledger Fabric是具有国际影响力的企业级区块链平台,其默认密码算法为国际标准密码算法,但是对世界各国企业而言,区块链项目存在根据行业规范或当地法律法规调整加密算法或实施细节的需要。另外,Fabric的密码套件虽然是可插拔式的,但是密码算法扩展性上还是存在一些限制。为了更好地推进Hyperlegder Fabric项目对不同加密算法实现的支持,降低企业使用其作为区块链解决方案时对于密码套件改造可能的二次开发成本,提高国际化友好性,Fabric国密改造项目应运而生。Fabric国密改造项目由Hyperlegder中国工作组(TWGC)发起执行,旨在构建支持国密算法且密码算法可灵活扩展的Fabric平台,方便世界各国开发者快速接入自定义的密码算法。 接下来,本文会从不同方面来阐述Fabric国密改造项目。 方案设计 Hyperlegder Fabric项目主要包括三个部分:Fabric、Fabric-CA和Fabric SDK。根据改造需求分析,Fabric国密改造方案由三个部分构成:
项目进度 基于上述改造方案,改造项目实施路线分为两个阶段:准备阶段、实施阶段、整理阶段。
2. 实施阶段 好的开始是成功的一半,那么成功的另一半则是脚踏实地的执行。实施阶段是方案落实执行阶段,主要涉及项目管理工作,包括:执行跟踪和测试验收。
3. 整理阶段 整理阶段主要复盘国密改造的整体工作,整理开发文档和迁移兼容指南,为对Fabric国密的开发者用户提供详细准确的参考。 项目特点 国密工作组至今的工作有很多其他开源项目少有的方式和特点。主要体现在国密社区多样化的实现方式、互操作认证以及对于开源的贡献上。 多样化的实现方式 密码学是一个门槛比较高的领域,开源领域支持国密算法及其通讯套件的项目凤毛麟角,而且国密算法的开发者生态是不完整的,能够完善支持国密的密码库和通讯套件的流行的编程语言和框架非常少(目前Java的bouncycastle库已支持国密算法)。 对于国密工作组而言,鉴于国密算法生态如此,在Hyperledger Fabric上进行国密算法改造是非常困难的。为了解决这个问题,国密工作组至今并继续努力实现多语言的国密算法基础库,目前规划有Golang,Java,NodeJS等不同语言的国密算法基础库。 互操作认证 由上述特点引申出一个问题,如何在跨语言的国密算法实现库之间验证其兼容性。 Hyperledger Fabric的项目是多方参与的区块链解决方案,由于国密算法是一套标准,而在实际实施过程中,可能会有不同的实现方式。比如Fabric其本身基于Golang语言,使用Golang实现的国密算法,而应用端使用Java或NodeJS等其他语言实现的国密算法。 为了解决这个问题,国密工作组基于不同语言国密算法实现密钥可以交叉验证的宗旨,创建了fabric-gm-plugins这个工程来确保不同语言之间的国密算法基础库之间可以进行互操作。同时,我们对于各个项目库内部的测试,接口与文档规范也有一定的要求,比如在Golang的实现库中覆盖了有关性能的benchMark测试案例。 社区影响力 随着区块链的推广,国密算法在各个行业的应用也会变得普及,从而保护各行各业的信息安全。项目实施过程中遵守开发规范,不断复盘整理框架结构和项目代码,力争对外形成统一规范,树立标杆形象。为了和业界已有的规范标准相匹配,在实现过程中同时也参考了TWGC对于《金融分布式账本技术安全规范》的解析(beta版本 https://docs.qq.com/doc/DV1VMenFiQXBpeFZK)。此外,国密工作组积极参与开源标准制定,比如:向Fabric社区提交了有关bccsp的改造方案的RFC文档 (https://github.com/hyperledger/fabric-rfcs/pull/34)。 参与国密改造项目你将收获
Fabric国密改造项目是由Hyperledger TWGC发起执行的开源项目,需要对该项目感兴趣的开发者一起协作完成。我们TWGC现已招募到了50+项目志愿者。欢迎企业或个人参与Fabric国密改造项目,为开源社区贡献自己的一份力量。人人为我,我为人人。 联系方式
参考链接 北京大学信息安全实验室 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 java-gm https://github.com/Hyperledger-TWGC/java-gm node-gm https://github.com/Hyperledger-TWGC/node-gm TWGC对于《金融分布式账本技术安全规范》的解析(beta版本) https://docs.qq.com/doc/DV1VMenFiQXBpeFZK 向Fabric社区提交了有关bccsp的改造方案的RFC文档 https://github.com/hyperledger/fabric-rfcs/pull/34 TWGC Github组织, 给国密项目做出代码贡献 https://github.com/Hyperledger-TWGC TWGC在Hyperledger的联系渠道 https://wiki./display/TWGC/Technical+Working+Group+China 参加国密改造周例会 https://github.com/Hyperledger-TWGC/fabric-gm-wiki/wiki/%E6%AF%8F%E5%91%A8%E4%BE%8B%E4%BC%9A%E4%BF%A1%E6%81%AF 鸣谢 David Liu: https://github.com/davidkhala Xiao Hui: https://github.com/xiaohui249 Sam Yuan: https://github.com/SamYuan1990 |
|
来自: 宋志刚k5lpi995 > 《区块链》