摘 要:研究了CA的通信結構,安全通信機制,加密原理以及主要算法,采用高效可靠的橢圓曲線算法,設計了一種基于第三方認證中心(CA)的移動終端電子郵件系統,保證了郵件的安全。
關鍵詞:移動終端;電子郵件;加密算法;安全協議;認證中心
中圖分類號:TP393.08 文獻標志碼:A 文章編號:1001-3695(2008)08-2430-04
Research and design of secure mobile e-mail system based on CA
CHEN Liang-chen,SUN Gong-xing,YAN Xiao-fei,WU Huan
(Computing Center, Institute of High Energy Physics, Chinese Academy of Sciences, Beijing 100049, China)
Abstract:This paper studied the communications structure of CA, secure communications mechanism, encryption principle and several main algorithm, using a highly efficient and reliable elliptic curve algorithm, and then presented a design of a mobile terminal security e-mail system based on CA,and ensured the security of the e-mail.
Key words:mobile terminal; e-mail; encrypt arithmetic; security protocol; certificate authority(CA)
隨著網絡技術和通信產業的不斷發展,移動終端已經由原來單一的通話功能向話音、數據、圖像綜合的方向演變,功能越來越完善。電子郵件是人們聯系溝通的重要手段,已成為移動終端必備的重要功能之一。在享受手機等終端收發電子郵件所帶來的便利之余,郵件的安全問題也越來越受到使用者重視。當前人們使用的大多數移動電子郵件系統,沒有采取任何措施來保證郵件在網絡中安全傳送,郵件內容都是以明文形式在網絡中傳遞,也沒有任何內容完整性驗證的機制,攻擊者可在郵件傳輸中截獲數據。解決電子郵件安全問題主要是采用CA認證技術,郵件的完整性、保密性和抗抵賴性均需要CA認證系統的支持。
為了保證郵件的安全發送與接收,必須有雙方共同信任的中間機構,即認證中心(CA)來協調。CA認證中心為每個使用公開密鑰的用戶發放一個數字證書,作用是證明用戶合法擁有證書中列出的公開密鑰。CA采用國際通用的密鑰管理體制和靈活的管理手段,提供密鑰的保管、分發及銷毀;郵件客戶程序除了通用的收發郵件功能外,還能完成對郵件的加密和簽名,更重要的是為郵件的發送和接收提供了雙向不可抵賴性機制。1 CA安全認證1.1 CA認證原理
數字安全證書采用公鑰體制,即利用一對互相匹配的密鑰進行加密或解密。每個用戶自己設定一個特定的僅為本人所知的私有密鑰(私鑰),用其進行解密和簽名;同時設定一個公共密鑰(公鑰)并由本人公開,為一組用戶所共享,用于加密和驗證簽名。當發送一份保密文件時,發送方使用接收方的公鑰對數據加密,而接收方則使用自己的私鑰解密,這樣信息就可以安全無誤地到達目的地了。通過數字的手段保證加密過程是一個不可逆過程,即只有用私有密鑰才能解密。用戶也可以采用自己的私鑰對信息加以處理。由于密鑰僅為本人所有,這樣就產生了別人無法生成的文件,即形成了數字簽名。采用數字簽名能夠確認兩點:保證信息是由簽名者自己簽名發送的,簽名者不能否認或難以否認;保證信息自簽發到收到為止未曾作過任何修改,簽發的文件是真實文件。1.2 CA的通信結構
CA認證系統通信由客戶端和服務器端兩部分組成。在CA認證系統服務器端添加部分組件,總體基于C/S (client /server,客戶/服務器)結構模式。CA通信結構如圖1所示。
客戶端的實現形式可以是ActiveX或applet控件,或者是專用硬件或軟件;服務器端的實現形式可以是服務程序,或者是專用硬件或軟件,加上安全套接層協議完善的數據保護機制,共同組建通道以實現安全通信。1.3 CA的系統架構
CA架構包括PKI結構、高強度抗攻擊的公開加/解密算法、數字簽名技術、身份認證技術、運行安全管理技術、可靠的信任責任體系等。
通過應用基于PKI/PMI平臺的智能化信任與授權技術來構建可信網絡環境,采用數字證書的方式來實現網絡用戶的認證與授權。主要思想是給用戶頒發數字證書(包括用戶個人信息,如序列號、IP地址、MAC地址等信息),在一實體一證的基礎上,由數字證書的惟一性準確地標志用戶身份。由接入認證交換機端口的可控性和后臺的認證管理功能,將證書與端口建立靈活的對應關系,并由此決定用戶是否可以接入校園網;同時對接入用戶提供流量、時長、時段等管理。CA的系統設計架構如圖2所示。
系統包含PKI安全策略、軟/硬件系統、注冊機構(RA)、權威認證機構(CA)、數字證書庫、密鑰備份及恢復系統、證書撤銷系統、應用接口(API)等組成部分。其中,CA是系統的核心,用于簽發和撤銷證書以及密鑰的產生、備份和恢復;RA可以作為CA的一部分,也可以獨立,其功能包括個人身份(證書申請)信息審核、申請信息和證書信息管理、CRI 管理和證書發布及下載等;證書數據庫建立申請表和證書表,用于存儲及管理用戶申請和用戶證書信息及其狀態,并提供一定的查詢功能,還用于其他系統在LedCA基礎上進一步開發,如屬性認證系統等;密鑰備份、恢復系統和證書撤銷系統可以嵌入CA中,通過控制IDAP證書庫管理庫中證書文件和密鑰文件;軟/硬件系統主要考慮該認證系統在不同操作系統平臺上的兼容性;證書策略(CP)定義為一系列規則,它們對具有共同認證需求的用戶證書的適用性進行了描述。針對不同層次的認證需求,證書政策定義該安全級別上的頒發策略和認證適用范圍。
2 CA主要算法
CA認證安全機制的核心是加密算法。這些算法包括AES、RSA、DSS、Diffie-Hellman、Elliptic Curve、IDEA、3DES、SHA-1、MD5和ECC橢圓曲線算法等。其中,最具有代表性的三種算法是AES、RSA和ECC橢圓曲線算法。2.1 RSA算法
RSA是當前最著名、應用最廣泛的公鑰系統。RSA算法原理:令n=pq, p≠q都是素數,(n)= (p-1) ×(q-1)是n的Euler數;根據Euler定理推論,對任意0≤m≤n,mk(p-1)(q-1)+1≡ m mod n。選擇e、d,滿足ed=k(n)+1, 即ed≡1 mod (n)(d≡e-1 mod (n)。
公鑰: KU={e,n};私鑰: KR={d,n}。
若M為信息:
加密C = M^e mod n
解密M = C^d mod n
Fermat定理: p素數,a是整數且不能被p整除,則ap-1≡ 1 mod p。Euler數(n)定義為小于n且與n互素的正整數個數。
Fermat定理推論: 若n=pq,p≠q都是素數,k是任意整數,則對任意0≤m≤n , mk(p-1)(q-1)+1 ≡ m mod n。
RSA算法的安全性在于對于一個大數n,沒有有效的方法能夠將其分解,從而在已知n、d的情況下無法獲得e;同樣在已知n、e的情況下無法求得d。所以如果所取n太小,根本不能保障安全性。當前小于1 024位的n已經被證明是不安全的,使用中不要使用小于1 024位的RSA,最好使用2 048位的。一般情況下,可以通過RSAKit、RSATool之類的工具獲得足夠大的n 及d、e。
RSA簡潔幽雅,但計算速度比較慢,通常加密中并不是直接使用RSA 來對所有的信息進行加密。最常見的情況是隨機產生一個對稱加密的密鑰;然后使用對稱加密算法對信息加密;之后用RSA對剛才的加密密鑰進行加密。2.2 ECC橢圓曲線算法
ECC密鑰算法是利用橢圓曲線y2=x3+ax+b的性質產生的一種公開密鑰算法,是一種相對比較新的技術,已經逐漸被人們廣泛應用。利用ECC橢圓曲線進行加密通信的過程:
a)用戶A選定一條橢圓曲線Ep(a,b),并取橢圓曲線上一點,作為基點G;
b)用戶A選擇一個私有密鑰k,并生成公開密鑰K = kG;
c)用戶A將Ep(a,b)和點K,G傳給用戶B;
d)用戶B接到信息后,將待傳輸的明文編碼到Ep(a,b)上一點M,并產生一個隨機整數r(r e)用戶B計算點C1=M+rK,C2=rG; f)用戶B將C1、C2傳給用戶A; g)用戶A接到信息后,計算C1-kC2,結果就是點M。因為 C1-kC2=M+rK-k(rG)=M+rK-r(kG)=M,再對點M進行解碼就可以得到明文。 在這個加密通信中,如果有一個偷窺者H,他只能看到Ep(a,b)、K、G、C1、C2,而通過K、G求k或通過C2、G求r都是相對困難的。H無法得到A、B間傳送的明文信息。橢圓曲線密碼示意圖如圖3所示。 ECC算法的優點如下: a)安全性能更高。ECC和其他幾種公鑰系統相比,其抗攻擊性具有絕對的優勢。 b)計算量小和處理速度快。ECC遠比RSA、DSA快得多。 c)存儲空間占用小。這對于加密算法在資源受限環境上(如智能卡等)的應用具有特別重要的意義。 d)帶寬要求低,使ECC在無線網絡領域具有廣泛的應用前景。 ECC的這些特點使它在某些領域(如PDA、手機、智能卡)的應用將取代RSA,并成為通用的公鑰加密算法。2.3 AES算法 先進加密標準(advanced encryption standard ,AES)是一個單鑰加密系統。本系統采用該算法實現對明文的加密,以提高加密速度。 AES是分組密鑰,算法輸入128位數據,密鑰長度128位。用Nr表示對一個數據分組加密的輪數。每一輪都需要一個與輸入分組具有相同長度的擴展密鑰Expandedkey(i)的參與。由于外部輸入的加密密鑰K長度有限,在算法中要用一個密鑰擴展程序(Keyexpansion)將外部密鑰K擴展成更長的字符串,以生成各輪的加密和解密密鑰。 總之,AES密碼是一個非對稱密碼體制,它的解密要比加密復雜和費時。AES的加密和解密流程如圖4所示。 3 基于CA的郵件系統設計 電子郵件傳輸的安全標準是讓收件者收到正確的內容,同時保證非法人員無法截取信件內容。目前,安全的電子郵件協議針對三項安全協議要素加以考慮和設計,包括加密算法、郵件內容格式、身份認證機制。3.1 郵件系統框架 整個安全電子郵件系統的總體框圖如圖5所示。安全電子郵件系統能提供以下服務: a) 保密/加密—保證只有希望的接收方能夠閱讀信息; b) 信息完整性—保證發出的信息與接收到的完全一樣; c) 認證—保證信息的發起者不是冒名頂替的,他同信息完整性一起可防止偽造; d) 不可否認性—證實發送者確實發送了信息,而不管他是否承認; e)不可抵賴性—證明接收者確實已收到郵件(閱讀過),而不管他是否承認。 要實現郵件的不可否認性和不可抵賴性必須需要第三方的仲裁,因此在一個真正的安全電子郵件系統中,CA是必不可少的。3.2 郵件客戶端構架 本移動電子郵件系統客戶端是基于移動BREW 平臺開發。郵件客戶端按照功能分為四個主要模塊進行設計:a)UI模塊,負責對編輯界面、閱讀界面、設置界面、郵箱界面以及用戶的操作響應與交互。b)郵件管理模塊,負責對郵件的操作控制,包括讀取、存儲郵件,以及收件箱、發件箱、已發箱、草稿箱和用戶文件夾的管理。c)賬戶管理模塊,完成對用戶賬戶的設置,包括與郵件管理和收發郵件邏輯模塊的交互。d)收發控制模塊,負責將調用協議部分提供的服務,根據上層調用的功能需要,組織邏輯流程,與郵件服務器進行交互。郵件系統客戶端基本功能結構如圖6所示。 由于BREW平臺的應用是采用事件處理機制來實現,每個應用都是一個事件循環處理機,應用只能通過BREW提供的接口訪問相關的資源。將e-mail組件的所有模塊都放在應用層實現,包括UI、郵箱管理及邏輯、協議控制部分,即e-mail作為BREW平臺上的一個applet運行,這樣便于數據共享和數據間通信。 3.3 郵件客戶端流程 郵件客戶端是用戶直接使用的界面,要求具有良好的交互性和使用性。郵件客戶端設計主要可分為三個方面: a)郵件客戶端程序,主要實現SMTP、POP3和IMAP4 協議,完成一般的郵件收發任務和本地郵件管理任務。b)實現CA提供的數字簽名、報文機密性、報文壓縮以及報文轉換安全性服務。其中數字簽名和報文機密性兩項服務可以省略。c)用戶私鑰的存取,實現用戶私鑰的安全存放。其中郵件客戶端程序是整個郵件客戶端的載體,除了能實現郵件的收發等功能外,還要求能導入用戶密鑰,獲取數字簽名等。郵件客戶端實現程序流程如圖7所示。 在通常基于CA的認證協議中,CA權限過大,它實際上可以偷看任何人的加密郵件,因為用戶的公/私密鑰對是由它產生的。在筆者設計的安全電子郵件系統中,為克服上述問題,提出了一種新的密鑰管理機制。該機制可由用戶自己產生密鑰對,然后上傳公鑰,在用戶最初登錄CA成為其合法用戶時,其公/私鑰對是由CA產生的;用戶可通過郵件客戶端程序自己產生公/私鑰對,向CA上傳公鑰。這樣私鑰就只有用戶自己知道。即使CA也無法讀取用戶的加密郵件,從而既吸收了傳統CA的優點又擯棄了其不足,使安全電子郵件系統更安全。3.4 ECC加/解密實現 下面是使用ECC橢圓曲線算法加密明文字符串的程序。其中mp_digit只用28 bit,一個單元最多可存放三個半字節。實現將明文的二進制比特串轉換成mp_int數a的函數,主要循環部分說明如下: // chlong為要存入的字符數組長 for ( j=0;j // 以七個字符為單元循環,把七個字符放入mp_int的兩個單元中 { j+=7;//每次跳七個字符 *++temp=(mp_digit)(ch[i-1] & 255 ) // temp跳過前一個單元,存入后一單元 *temp<<= ( mp_digit )CHAR_BIT; //存入高8位并向左移8位,以便放下一字符 *temp=(mp_digit)(ch[i-2] & 255);//存入字符 *temp <<=(mp_digit)CHAR_BIT; //左移8位 *temp=(mp_digit)(ch[i-3] & 255 ); //存入字符 *temp<<=( mp_digit )4; //左移4位,以便放入下一個字符的高4位 *temp=(mp_digit)((ch[i-4] & 255)>>4); //存放被切分字符的高4位,temp跳回前一個單元 //存入第一單元 *temp=(mp_digit)(ch[i-4] & yy ); // 存放被切分字符的低4位 yy=(mp_digit)15 *temp<<=( mp_digit )CHAR_BIT; // 向左移8位,以便放入下一個字符 *temp = ( mp_digit )( ch[i-5] & 255 );//存入字符 *temp<<=( mp_digit )CHAR_BIT;//左移8位 *temp=(mp_digit)(ch[i-6] & 255 );//存入字符 *temp<<=(mp_digit)CHAR_BIT;//左移8位 *temp++=(mp_digit)( ch[i-7] & 255 ); // 存放被切分字符的低4位,temp跳到后一個單元 temp++;/* 再向后跳一單元,這樣和下次的++temp實現每次循環跳兩個單元*/ } 明文恢復時,采用與上面相反的過程將mp_int數轉換成明文的二進制字符串。 文件的加/解密處理都是根據有限域大小分段進行的。加密時無論明文文件的表現形式和內容如何,都將其組成成分看做是二進制數字文件。 4 結束語 CA認證系統通過應用基于PKI/PMI平臺的智能化信任與授權技術來保證文件在網絡中的安全傳送。在本文安全電子郵件系統中,由于采用了更可靠高強度加密算法,大大提高了郵件加密的可靠性和速度,使其具有更廣泛的實用性和更可靠的安全性。 電子郵件的安全標準和各種安全核心算法還在不斷演變,新的安全協議在不斷充實,更高加密強度的算法已經陸續應用到實際中,信息安全的矛與盾也在相互交織中不斷得到提高。電子郵件的安全在這個過程中將得到更好的發展和充實。 參考文獻: [1] 陳良臣,廖碧成,林碧英,等. 基于OpenPGP的安全郵件系統的研究與設計[J]. 計算機應用研究,2007,24(3): 157-159,168. [2]周建國,魏洪波,晏蒲柳,等.一種新的基于CA的安全電子郵件系統的研究與實現[J] .武漢大學學報:理學版,2002,48(5):635-639. [3]蘆東昕,賀連軍,黃鳳崗,等.基于BREW平臺支持IMAP4的智能手機郵件客戶端的設計與實現[J] .計算機應用,2006,26(9): 2247-2249. [4]曲傳久,陳榕,趙岳松.基于構件的智能手機郵件系統的設計與實現[J] .計算機工程與應用,2005,41(26): 104-107. [5]陳建奇,張玉清,李學農,等.安全電子郵件的研究與實現[J] .計算機工程,2002,28(6):121-122. [6]BLUM R,開放源碼郵件系統安全[M] .杜鵬,譯.北京: 人民郵電出版社,2002:253-324. [7]周建國,晏蒲柳,李凱.實現雙向認證的安全電子郵件系統的研究[J].計算機應用研究,2004,21(12):121-122. [8] 陳良臣, 林碧英, 張朔.嵌入式組件在終端上的研究與設計[J] .計算機技術與發展,2006,12(11):166-169. [9]LINN J. Privacy enhancement for Internet electronic mail,part I:message encryption and authentication procedure [EB/OL]. (2001).http://www.rfc-editor.org/RFC1421. [10]YANG Qin.The transmission ofnetwork information based on fingermark [D].Wuhan:School of Electronic Information,Wuhan University,2000. [11]YANG Yi-xian.The security of network information[M]. Beijing:Beijing Post and Telecommunication University Press,1999. [12]WEI Hong-bo,ZHOU Jian-guo,LIANG Yi.Security e-mail protocols [J].Modern Science Technology of Telecommunication,2002,3:24-25. 注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文