郁建
【摘 要】該文首先介紹了國內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