通过在密码学套件接口、账本SDK、客户端各层面的国密改造,云信E-BaaS平台完成了自主化升级,值得祝贺。任何时候,安全合规都是金融分布式账本技术的基石,一直以来,云信E-BaaS也将自主可控、安全可靠作为首要目标,自主化改造的完成就是一次凤凰的涅槃。期望该平台不忘初心,继续在加密、共识等核心领域打造光大的自主能力,在集团的各类产融协同场景落地中,助力企业乘风破浪。
——光大科技有限公司总经理助理 向小佳
2020年7月10日,光大科技区块链团队自主研发的云信E-BaaS平台国密算法支持顺利上线发布。至此,平台完全符合金融分布式账本安全合规性要求,为集团在区块链金融领域的发展奠定了坚实基础。
技术背景
2020年2月,中国人民银行发布了金融分布式账本技术安全规范,规定了基于区块链的金融分布式账本技术的密码学合规性要求,对于证书、签名、加密、解密等技术都做了明确要求,而以Hyperledger Fabric为代表的联盟链项目只支持RSA、ECDSA、SHA256等国际密码学算法,并不符合上述安全规范。因此,联盟链项目如果想发力国内的金融领域应用场景,是否支持国家密码学算法成为了准入门槛。
技术解密
为了保障商用密码的安全性,国家密码局自研了国产密码学算法。其中,SM2、SM3、SM4分别对应非对称加密算法、Hash算法和对称加密算法。
Fabric中对于安全隐私的保障是通过上述三种密码学算法实现的,其中尤以非对称加密算法使用最为广泛,因此本次国密改造项目把对SM2的支持作为工作的切入点。
SM2算法是ECC椭圆曲线的一种,但在签名/验签、加密/解密,密钥交换方面比ECDSA、RSA、ECDH等国际密码学算法更为安全。ECC是一种基于离散对数问题的非对称(或公钥)加密法,可以用对椭圆曲线上的点进行加法或乘法运算来表达。
曲线参数
p = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFF
a = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFC
b = 28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7 F39789F5 15AB8F92 DDBCBD41 4D940E93
n = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF 7203DF6B 21C6052B 53BBF409 39D54123
Gx = 32C4AE2C 1F198119 5F990446 6A39C994 8FE30BBF F2660BE1 715A4589 334C74C7
Gy = BC3736A2 F4F6779C 59BDCEE3 6B692153 D0A9877C C62A4740 02DF32E5 2139F0A0
整体过程
EBaaS平台的国密算法支持是从以下三方面展开的:
-
Fabric层面增加对国密算法的支持
该部分添加对于国家密码局通用密码算法SM2、SM3、SM4的工程化支持。首先,通过实现fabric中的密码学套件接口BCCSP, 在不改动golang底层的crypto库的前提下,实现对国密算法插件化支持;其次,改造fabric中所有引用x509和tls的相关代码。最终可通过配置文件选项在运行时动态切换密码学算法。
如下图,BCCSP通过MSP给相关核心功能和SDK提供加密算法相关的服务,本次改造不仅添加了对Software Bccsp的支持,同时也对PKCS11进行了国密算法改造,针对未来金融场景在硬件层面的国密支持提供了可能性。
-
增加对Fabric-SDK-GO的国密算法支持
云信E-BaaS控制台是通过该SDK来和Fabric进行调用交互,同时SDK还对Fabric CA进行了引用,因此该部分也添加了对国密算法的支持。
-
增加客户端的国密算法支持
平台为保证秘钥的安全,公私钥以及证书都是在客户端生成的,服务器不保留用户的私钥,另外一些通道创建、组织邀请等也需要客户端进行签名审批。项目对客户端也进行了全量的国密改造,所有涉及到密码学的流程都统一用国密算法。
后续规划
现阶段已经将EBaaS平台所有涉及密码学算法的场景都默认使用了国密算法,并且支持多种共识算法,如solo、raft。未来,EBaaS平台将持续对国密算法进行优化,使其更灵活,加解密和签名验签的性能更高,全方位保证金融场景安全性和高性能。
扫描二维码
关注我们
作者:张立勇
原创文章,作者:EBCloud,如若转载,请注明出处:https://www.sudun.com/ask/32570.html