APP下载

CA系统支持国密SM2算法改造研究

2013-06-25郁建

中国信息化·学术版 2013年3期

郁建

【摘 要】该文首先介绍了国内SM2算法升级背景情况,接着介绍了升级SM2算法方法与思路,重点阐述了构建SM2算法的CA系统架构设计,提出了应用系统如何使用SM2算法,并对现有CA系统改造支持SM2算法的系统关键技术进行了分析,最后总结对ECC算法的实际推广应用起到了促进作用。

【关键词】SM2算法,RSA算法、KM系统、CA系统

【中图分类号】[TN918] 【文献标识码】A 【文章编号】1672-5158(2013)03-0167-01

1 引言

随着全球范围内密码技术的发展和计算能力的提升,现有的基于RSA1024的密码体系已不能满足当前和今后应用的安全需求。根据世界著名研究机构的报告,1024 bits RSA密钥只应使用至2010年,2048 bits RSA密钥只应使用至2030年、3072 bits RSA密钥可使用至2030年之后,从长远来看,RSA公钥密码算法将被淘汰已是大势所趋。为此国家对于电子认证领域技术的标准化、规范化,也不断提出新的要求。国家密码管理局为满足电子认证服务系统等应用需求,公开发布了SM2椭圆曲线公钥密码算法,并于2010年12月发布了SM2椭圆曲线公钥密码算法,并要求为对现有基于RSA算法的电子认证系统、密钥管理系统、应用系统进行升级改造[2][3]。

为实现CA系统升级后支持SM2国密算法这一最主要要求,同时又能保证CA数字证书服务提供的连续性,本文研究通过建设新的同时支持RSA与SM2算法的CA系统,来实现原有业务的平滑过渡,同时满足SM2国密算法支持的政策要求。

椭圆曲线密码学(Elliptic curve cryptography,简称ECC)是基于椭圆曲线数学的一种公钥密码的方法是我国自主知识产权的SM2椭圆曲线密码算法即是ECC算法的一种。我国已经制定了具有自主知识产权的ECC国家标准算法(即SM2算法)。ECC算法比RSA算法在安全性和加解密速率方面具有显著的优势,160位ECC算法的安全性与1024位RSA的算法相当,而210位ECC算法的安全性则与2048位RSA的算法相当[4]。

2 研究思路

升级改造的方法是在现有的仅支持RSA公钥密码算法的PKI系统上进行改造,改造后的系统支持SM2、1024位RSA、2048位RSA算法。改造升级过程中,赢充分利用现有的资源,如现有的机房环境、网络设备,以及现有的安全管理制度、安全运行人员等[3][5]。

改造的支持双算法的CA系统包含CA系统、KMC系统、RA系统、OCSP系统及新的同时支持RSA、SM2两种算法的加密机。改造的双算法CA系统与原CA系统共用同一套目录服务系统实现数字证书与黑名单发布。改造完成后,原有CA系统的RSA证书数据都可以迁移到新的CA系统中,在确认数据使用正常后,可废除原老版本CA系统,由改造后的双算法CA系统独立承担为用户提供数字证书服务。

3 基于SM2系统架构研究

SM2系统的证书权威系统(CA系统)分为根CA、下级CA两部分,根CA为离线系统,用于签发自签名CA及管理下级CA。下级CA 采用在线服务方式,可以为一个或多个RA同时提供证书服务。CA系统的密钥对从硬件加密机获取,证书签名操作在加密机内完成,存放于加密机的密钥对不可导出,从而保证最高级别的系统安全。CA系统采用J2EE架构,使用C/S模式进行系统管理,提供CA证书签发、CA证书更新、CA证书吊销、CA策略管理、证书模板管理、CRL策略管理、RA管理等功能。使用TCP协议提供证书对外服务,可以支持证书签发、证书更新、证书恢复、证书吊销等证书功能。CA系统和RA系统间使用安全通讯协议保证证书服务的安全,安全通讯协议采用国家密码管理局批准使用的对称算法。由于CA系统可以同时为多个RA提供服务,CA系统支持RA接入管理功能,CA系统通过RA部署码的方式为RA系统的接入提供授权。CA系统通过支持多个加密机配置的方式来实现多种密钥的证书服务,可以对管理根、RSA、SM2、安全通讯协议模块分别配置加密机[6],SM2系统的非对称密钥管理系统(KM系统)采用在线服务的方式为一个或者多个CA中心同时提供密钥服务,通过专线保证相互之间的信息传输安全。

SM2系统的整体架构设计图如下所示:

4 基于SM2应用系统改造方法

SM2算法升级改造的过程中,需对如何应用SM2公钥密码算法进行了认真研究,主要从几个方面入手,具体如下:

1)开发了基于国密接口的数字证书客户端签名控件。

2)修改签名验证服务软件,使之能够同时支持SM2算法以及多个PKI系统。

3)逐步对数字证书用户进行算法迁移。

4)支持SM2算法的认证中间件。

5)对应用接口不变。

5 关键技术

(一)基于SM2算法的SM2密钥签名及验签技术

1、SM2签名控件

目前常用的WEB页面签名组件是capicom控件,但capicom控件不支持SM2密钥,因此需要开发新的基于SM2密钥的签名组件。SM2签名组件使用ActiveX技术开发,通过PKCS#11接口和SM2密钥介质交互,签名数据采用PKCS#7格式,和capicom控件保持一致。系统根据密钥介质的类型可以自动调用capicom控件或SM2签名控件进行业务签名,保证RSA、SM2两类证书的良好兼容。

2、SM2签名验签

和RSA密钥或NIST推荐曲线SM2密钥不同,由于基于SM2算法的SM2密钥没有公开曲线的G点,所以无法使用软算法进行数字签名验证运算,必须在硬件加密机里进行。此次本系统可专门为SM2加密设备开发一套密钥对外服务系统,通过对外服务系统为RA、CA、KM提供基于SM2算法的签名验证。

(二)基于SM2密钥的TLS技术

基于SSL协议的HTTPS通常用于保护WEB应用的数据安全,但当前浏览器使用的HTTPS只能支持RSA密钥证书(有些浏览器支持SM2密钥证书,但不支持国标曲线SM2证书),因此需要对SSL协议进行改造,使其支持国标SM2算法SM2证书,即SM2TLS协议。基于SM2TLS协议的安全套件包括服务端、客户端二部分,采用C/S架构,客户端浏览器以透明代理的方式通过SM2TLS客户端和服务端进行安全通讯[5]。

6 结论

在现有CA认证系统基础上,研究重新建设一套支持RSA与SM2双算法的CA系统,在平滑接管原有证书业务的同时,实现满足国密局对SM2算法支持的规范性要求。提供了支持SM2算法的标准应用控件API,根据业务需要,可同时支持RSA算法和SM2算法,实现对用户透明的SM2算法升级。ECC算法,提高了原有的加密速率,增强了系统安全级别[3],研究的方法对ECC算法的实际推广应用起到了促进作用。对基于密码产业的应用研发起到了良好的指导作用。

参考文献:

[1]孙跃刚. 椭圆曲线密码体制中若干问题的研究[D]. 吉林大学2009.

[2]李学俊. 基于椭圆曲线离散对数问题的公钥密码及其算法研究[D].

[3]王邦礼.IPsec隧道终点发现技术研究.信息安全与通信保密,2010(4

[4]秦工 邹丽.ECC安全性能分析[J].开发研究与设计技术.2007:474-477