溫圣軍 韓春曉 杜 琳 袁 剛
(國家市場監督管理總局信息中心 北京 100820)(wenshengjun@samr.gov.cn)
電子郵件作為互聯網最為廣泛的應用之一,因其內容的敏感性及收發協議的明文傳輸特性,在身份認證、報文傳輸及存儲方面存在安全風險,即使采用SSL進行簡單傳輸加密,也存在單向認證、易受中間人攻擊的可能性,導致個人隱私、商業機密甚至國家秘密泄露.針對上述電子郵件的安全問題,目前較好的解決方案有基于公鑰基礎設施(public key infrastructure, PKI)的非對稱密碼體系[1-2]和基于標識的密碼體系[3-4](identity-based cryptography, IBC)2種.基于PKI的安全郵件系統[5-8]被廣泛采用,但存在成本高、管理復雜等缺點.基于IBC的安全郵件系統[9-10]由于減少了繁瑣的證書/公鑰交換及驗證環節,且使用橢圓曲線密碼算法,有效提升了系統效率,但IBC體系設計中存在負責生成私鑰的第三方信任機構(trust authority, TA)或密碼生成中心(key generation center, KGC),用戶私鑰完全依賴其生成,很難避免第三方以授權用戶身份進行惡意活動,存在密鑰托管的固有安全缺陷.本文通過分析當前主流安全郵件系統設計方案的優缺點及解決方法,選取無證書公鑰加密方案[11-12]作為解決密鑰托管問題的一種技術,以普及的智能終端作為令牌/指紋認證系統,實現對用戶的安全認證,結合國密SM3雜湊算法、SM4對稱密碼算法[13]、SM9基于身份標識的公鑰密碼算法,在滿足安全系統設計數據交互真實性、完整性、機密性等安全特性的同時,降低了對第三方信任機構或密碼生成中心的依賴度,增強了郵件系統自身的安全性.
目前,PKI證書體系已成熟應用于安全郵件系統,但由于該體制需要頻繁交互驗證及構建基礎設施,存在使用繁瑣、成本較大、管理復雜等缺陷.IBC密碼體系以用戶標識作為用戶公鑰,減少了PKI體系中對用戶公鑰的管理認證,極大簡化了系統設計,降低了系統復雜性,但該方案由于存在可信第三方TA/KGC,用戶私鑰完全依賴其生成,TA/KGC既能夠合法取得授權從事惡意活動,也面臨一旦被攻破導致系統安全性完全失效的可能,存在著密鑰托管的天然缺陷.
針對IBC的上述問題,解決的主要方式為盡量降低對TA/KGC的信賴度.綜合當前的主要解決方法,可概括為(t,n)門限方案及用戶秘密方式2類.(t,n)門限方案主要采取多個授權機構共同完成密鑰生成的關鍵任務來解決密鑰托管問題,但構建多個授權機構帶來了額外成本.用戶秘密方式目前主要分為基于證書和無證書2種類型,基于證書的解決方案完全克服了密鑰托管缺陷,但顯然是一種類PKI結構,失去了IBC的優勢.基于無證書用戶秘密方式的解決方案,在有效解決IBC密鑰托管問題的同時,保持了IBC體系簡單易用、成本較低的特點,是目前基于IBC體系設計安全郵件系統的一個發展方向,也是本文提出的安全郵件系統設計方案所采取的密鑰托管問題解決方案.
IBC密碼體系的概念最早由以色列密碼學家Shamir(原PKI體系的設計者之一)于1984年提出,其最大特點是將實體標識本身用作實體公鑰,不再依賴證書和證書管理系統,極大簡化了管理密碼系統的復雜性,在國際國內得到了廣泛推廣應用.現階段,IEEE P1363.3的基于標識的密碼技術工作組正在進行相關算法的標準化工作,ISO/IEC已完成2個基于標識的簽名算法標準化.在國內,國家密碼管理局已于2016年正式公布SM9標識密碼算法,該算法采用橢圓曲線上的雙線性對作為基礎數學工具,可使用如郵件地址、手機號等具有唯一性的標識作為用戶公鑰,進行數據加密和身份認證,非常適合電子郵件保護.
為有效解決IBC中的密鑰托管問題,Sattam等人[11]于2003年提出了無證書公鑰密碼學(certificateless public key cryptography, CL-PKC)的概念.在CL-PKC中,用戶的完整私鑰由TA或KGC提供的部分私鑰和用戶定義但TA/KGC不知道的秘密值組合生成.Al-Riyami和Paterson提出的算法(簡稱AL-P)可概括為安裝、用戶秘密值選取、部分私鑰生成、完整私鑰生成、公鑰生成5個部分.設定IG為線性Diffie-Hellman問題參數生成器,k為輸入參數.AL-P算法各部分功能簡要描述如下:
1) 安裝,由KGC執行.
Step1.以k為輸入參數,運行IG,生成(G1,G2,e),其中G1,G2為素數q和e的階群,并滿足G1×G2→G2;
Step2.任意選擇P∈G1;
Step3.隨機選擇主密鑰s∈*q,計算P0=sP;

Step5.KGC公布系統參數(G1,G2,e,n,P,P0,H1,H2),安全保存主密鑰s.
2) 用戶秘密值選取,由用戶執行.
設定IDm為用戶m標識,任意選取xm∈*q作為秘密值,計算Xm=xmP并提交Xm給KGC.
3) 部分私鑰生成,由KGC執行.以Xm和IDm∈{0,1}*為輸入,計算用戶m的部分私鑰Dm.
Step1.Qm=H1(IDm‖Xm);
Step2.Dm=sQm∈G1.
4) 完整私鑰生成,由用戶執行,生成完成私鑰Sm.計算Sm=XmDm=xmsQm∈G1.
5) 公鑰生成,由用戶執行,生成用戶公鑰對Pm.
Step1.計算Xm=xmP,Ym=xmQm;
Step2.形成Pm=(Xm,Ym).
依據前述分析,本文的安全郵件系統除具備郵件系統的常用功能外,應滿足高安全性要求,即在具備郵件傳輸機密性、完整性、真實性的同時,能夠保證避免TA/KGC獲取合法授權進行可能的惡意活動的安全特性.
依據實現功能,安全郵件系統主要分為私鑰生成模塊(KGC)、標識(公鑰)管理模塊、算法模塊、客戶端模塊、其他輔助模塊5部分.如圖1所示,KGC與用戶合作,調用算法模塊產生主密鑰、系統參數及用戶完整私鑰及秘密值公鑰.標識(公鑰)管理平臺對用戶標識進行管理.客戶端模塊在用戶生成完整私鑰后,結合標識(公鑰)管理平臺相關數據,調用算法模塊進行郵件加/解密、簽名/認證、完整性計算等操作,配合輔助模塊完成加密郵件的收發.

圖1 國密安全郵件系統整體設計架構圖
系統中各組成部分的功能具體為:
1) KGC.私鑰服務器,調用AL-P的安裝算法,生成主密鑰s及系統參數(G1,G2,e,n,P,P0,H1,H2),接收用戶秘密值計算后的值Xm,生成部分私鑰Dm.
2) 算法模塊.集成AL-P算法(含安裝、用戶秘密值選取、部分私鑰生成、完整私鑰生成、用戶公鑰生成5個子模塊),國密公鑰算法SM9(簽名/認證),國密對稱密碼算法SM4(數據加解密),國密雜湊密碼算法SM3(完整性驗證).
3) 客戶端.包括郵件系統部署、郵件內容加密存儲,提供基于標準郵件協議的郵件收發,實現郵件收發加解密,調用算法模塊進行真實性、完整性驗證.
4) 用戶.選擇秘密值xm,計算并發送Xm給KGC. KGC生成Dm后,調用算法模塊計算完整私鑰Sm及公鑰Pm.通過標識(公鑰)管理平臺預注冊用戶標識、進行公鑰存儲等.
5) 標識(公鑰)管理平臺.進行標識管理、公鑰存儲發布,支持用戶注冊及自管理.
6) 輔助模塊(除用戶外).智能終端以指紋、人臉認證系統進行用戶認證,在終端安全存儲區(即隱私空間)實現秘密值安全存儲.防病毒、反垃圾、旁路監控功能部件及防火墻作為郵件系統的外圍安全輔助防護措施,統一構建安全郵件系統的安全保護機制.
假設用戶Alice向用戶Bob發送加密郵件,選擇各自郵件地址為用戶標識IDAlice,IDBob,即IDAlice=alice@a.com,IDBob=bob@b.com,郵件內容為T,Alice的定義秘密值為kAlice,Bob的定義秘密值為kBob,具體通信過程如圖2所示:

圖2 國密安全郵件系統通信流程圖
在圖2中,Alice向Bob進行安全郵件通信時,分為預處理、公鑰驗證、加密、簽名及最后的封裝發送5個環節,完成對發送對象的公鑰驗證、明文加密簽名及最后的發送操作.具體的各階段計算過程為:
1) 預處理階段.通信雙方在自域范圍內的標識管理平臺進行預注冊,標識管理平臺收集用戶提供的自身標識ID、公鑰P并進行存儲、發布.
2) 公鑰驗證階段.Alice作為會話發起方,首先在Bob所在域的標識管理平臺獲取Bob的公鑰及標識ID并作公鑰驗證.
3) 報文加密階段.對需要發送的明文T,Alice首先任意選定隨機數r,結合僅有自己擁有的秘密值xAlice及Bob公鑰XBob生成雙方會話密鑰,再生成本次報文加密使用的對稱密碼算法主密鑰K,調用算法模塊進行報文加密后形成密文T′.
4) 簽名階段.主要完成對r的加密及報文T雜湊值T*的簽名,用于接收方對報文的完整性驗證.
5) 封裝發送.依據郵件系統的部署環境,客戶端使用POP(S)/SMTP(S)/IMAP(S)、Web端采用https等郵件傳輸協議,按照相關封裝標準進行格式封裝后發送.
Bob在收到郵件后,經數據提取、公鑰驗證、解密、認證最終完成郵件系統的安全接收.
基于國密SM3雜湊算法、SM4對稱密碼算法及SM9標識密碼算法,結合無證書密鑰生成機制設計的郵件系統,在有效解決密鑰托管缺陷的同時,保證了郵件系統數據交互機密性、完整性、真實性要求.
1) 機密性:以SM4對稱密碼算法保證郵件內容的加密傳輸,每次生成密鑰K后,使用SM9密碼算法中的標識公鑰對密鑰進行再次加密形成K′后,與密文封裝成標準格式(如RFC 5751:Secure/Multipurpose Internet Mail Extensions Version 3.2 Message Specification),接收方使用私鑰解密后可得密鑰K,進而得到明文,無需密鑰交互即可達到一次一密的機密性.
2) 完整性:以SM3雜湊算法生成明文的摘要數據,與密文及加密后的對稱密鑰K′一起進行標準格式封裝,接收方在解密得到明文后,同樣以SM3生成雜湊值,與封裝的原摘要數據進行比對獲證數據完整性.顯然,中間人無法獲取明文便無法偽造雜湊值,即完整性既依賴于SM3算法本身,也依賴SM4對稱加密算法以及SM9簽名算法.
3) 真實性:應用SM9標識密碼算法,發送方使用完整私鑰對加密數據進行簽名,接收方可使用發送方的公鑰對數據的來源真實性進行核驗.偽造真實性的可能性取決于獲取另一個私鑰,使得同一個公鑰能夠進行解密,這對SM9所采用的ECC密碼算法來說是困難的,從而保證了郵件系統數據的真實性.
4) 密鑰托管安全:從系統設計的密鑰生成過程可知,用戶私鑰的生成過程中,由于用戶定義秘密值k的參與,使得TA/KGC無法獲取用戶的完整私鑰,進而無法取得授權身份,有效避免其進行惡意活動,保證了郵件系統的密鑰托管安全.
對比基于PKI/CA及IBC的安全郵件系統解決方案,本文提出的采用無證書密碼學的IBC安全郵件系統解決方案,由于節省了證書管理等環節,在結合KGC完成私鑰生成后,即可脫離TA/KGC完成郵件安全收發,用戶定義的秘密值雖然參與完整私鑰的生成,但第三方無法獲取相關信息,既有效克服了PKI/CA體系成本高、管理復雜的缺點,又防止了密鑰托管方進行惡意行為的可能,在具備經濟易用特點的同時,克服了IBC體系中的密鑰托管固有缺陷,提升了郵件系統的整體安全性,加之系統全部采用國密算法,在黨政機關和大型企事業單位的外網公務電子郵件系統應用方面具有顯著優勢和廣泛應用前景.