張澤連,李代平,徐宏寧
(廣東工業(yè)大學 計算機學院,廣東 廣州 510006)
PKI 安全體系在手機智能卡中的應用*
張澤連,李代平,徐宏寧
(廣東工業(yè)大學 計算機學院,廣東 廣州 510006)
介紹PKI系統(tǒng)和智能卡系統(tǒng)的基本原理和安全技術(shù),重點研究PKI安全體系在手機智能卡中的應用。利用存儲在卡中的PKI安全插件,為手機卡和SP應用之間提供身份認證、數(shù)字簽名等服務支持,有效確保了手機智能卡在網(wǎng)絡數(shù)據(jù)傳輸中的安全性、完整性。
PKI;智能卡;SP;數(shù)字證書;數(shù)字簽名
隨著移動技術(shù)的迅速發(fā)展以及手機卡的一卡多應用平臺的建立,人們借助手機這種終端設備可以隨時隨地接入網(wǎng)絡進行交易和數(shù)據(jù)交流,因此用戶的身份認證、傳輸數(shù)據(jù)的保密性、數(shù)據(jù)的完整性及交易的不可抵賴性等變得迫在眉睫。目前對互聯(lián)網(wǎng)的安全研究已形成一套完整的解決方案,即廣泛采取的PKI。而內(nèi)置于手機的智能卡,屬于內(nèi)嵌式CPU,具有獨立的加密計算能力和一定的存儲空間。本文介紹了PKI安全體系在手機智能卡中的應用方式和方法,描述了基于PKI安全體系的證書管理、身份認證、數(shù)字簽名和數(shù)據(jù)加解密。
公共密鑰基礎設施PKI(Public Key Infrastructure)是一種遵循既定標準的密鑰管理平臺,它能夠為所有網(wǎng)絡應用提供加密和數(shù)字簽名等密碼服務以及所必須的密鑰和證書管理體系。在公共密鑰系統(tǒng)中,PKI體系涉及多個實體之間的協(xié)作過程:認證機構(gòu)、注冊機構(gòu)、證書庫、密鑰管理、應用接口和用戶等。主要基于非對稱密碼技術(shù),即公開密鑰密碼技術(shù)。
公鑰體制于1976年由W.Diffie和M.Hellman提出,其最大特點是采用兩個密鑰將加密和解密分開,一個公鑰作為加密密鑰,另一個私鑰為用戶專有。用戶要保障專用密鑰的安全,公開密鑰則可以發(fā)布出去。若以公鑰作為加密密鑰,以用戶私鑰作為解密密鑰,可實現(xiàn)多個用戶加密的信息只能由一個用戶解讀;反之,以用戶專有的私鑰作為加密密鑰,而以公鑰作為解密密鑰,則實現(xiàn)由一個用戶加密的信息,可使多個用戶解讀。前者可用于保密通信,后者可用于數(shù)字簽名。
智能卡(Smart Card)是IC卡,相當于一個微型計算機,具有計算機的基本組成部分:CPU(中央處理器)、ROM(只讀存儲器)、RAM(隨機存儲器)、COS(片內(nèi)操作系統(tǒng))和EEPROM(電可擦除存儲器)。本系統(tǒng)的智能卡是手機卡,具有隨機數(shù)發(fā)生器和加密協(xié)處理器等,可以硬件實現(xiàn)RSA運算;具有DES和 SHA-1等密碼算法,可以在芯片內(nèi)部產(chǎn)生密鑰對,并能在芯片上完成加解密運算。本系統(tǒng)將用戶的私鑰存放在智能卡存儲器中,這樣使用密協(xié)處理器運算執(zhí)行RSA算法,完成加解密工作,用戶對手機智能卡的操作都是通過卡內(nèi)的片上操作系統(tǒng)COS實現(xiàn)的。同時卡片還可以保存用戶的公鑰證書和信任SP證書。本系統(tǒng)采用開發(fā)完成的UIM卡,系統(tǒng)由5個模塊組成,如圖1所示。包括底層驅(qū)動、通信管理模塊、命令處理模塊、文件管理和安全模塊。在此基礎上可以開發(fā)一些上層的應用以及卡上虛擬機、小額支付、電子錢包、超級號簿、PKI應用等功能。

圖1 COS系統(tǒng)結(jié)構(gòu)模型圖
由于不同廠家所生產(chǎn)的底層芯片不同,要求底層的相應驅(qū)動程序也不同,因此所采用的微內(nèi)核結(jié)構(gòu),通過提取不同芯片驅(qū)動相同部分,實際應用時只需要將相應的底層驅(qū)動程序移植,具有良好的可移植性和可擴展性。通信管理模塊負責實現(xiàn)與外部數(shù)據(jù)進行通信,對I/O輸入緩沖區(qū)中接收到的數(shù)據(jù)采取奇偶校驗、累加及分組長度檢驗等手段進行正確性判斷,不進行信息內(nèi)容的判斷,接收經(jīng)過安全管理、命令處理、文件管理處理后的信息,并按照標準APDU指令結(jié)構(gòu)要求打包成完整的數(shù)據(jù)幀,發(fā)送到I/O的輸出緩沖區(qū);安全管理模塊接受通信管理模塊的調(diào)度,并向通信管理模塊返回處理后的數(shù)據(jù)信息;將由通信管理模塊接收到的數(shù)據(jù)進行安全驗證;不做數(shù)據(jù)內(nèi)容的驗證;當安全驗證不通過時,直接向通信管理模塊返回數(shù)據(jù);命令解釋模塊負責接受安全管理模塊的調(diào)度,并向安全管理模塊返回處理后的數(shù)據(jù)信息,即返回與命令相對應的響應代碼,需要作數(shù)據(jù)內(nèi)容上的鑒別,當數(shù)據(jù)內(nèi)容鑒別不通過時,直接向通信模塊返回數(shù)據(jù);文件管理模塊主要接受命令管理模塊的調(diào)度,并執(zhí)行命令,向命令解釋模塊返回數(shù)據(jù)。
PKI安全體系是手機卡安全模塊的重要部分,基于目前越來越普及的手機應用體系上建立的PKI架構(gòu),擔負著確保用戶在使用手機交易時信息安全完整和確認身份的任務。智能卡作為數(shù)字存儲介質(zhì),并且要支持多個數(shù)字證書組,通過運營商提供管理平臺進行統(tǒng)一管理,讓多個SP(由網(wǎng)站提供的短信服務銀行、企業(yè)等)為其應用開展基于PKI體系的身份認證、數(shù)字簽名、簽名認證、數(shù)字加密解密的基礎設施支持。系統(tǒng)結(jié)構(gòu)如圖2所示。初始狀態(tài)下,手機卡內(nèi)置運營商的數(shù)字證書,即在手機和管理平臺間建立信任關(guān)系;然后SP與運營商建立信任關(guān)系,允許使用運營商發(fā)布的手機智能卡開展基于PKI的基礎服務;當終端與SP首次通信時,SP身份則經(jīng)過管理平臺驗證,驗證通過即證明智能卡加載了SP證書并且生成該SP的個人證書/私鑰,建立了與SP的信任關(guān)系;最后在SP與手機卡進行通信時,SP提供身份信息給手機終端進行身份驗證,智能卡驗證通過后,即可進行加密解密、數(shù)字簽名等。

圖2 系統(tǒng)結(jié)構(gòu)圖
管理平臺在本系統(tǒng)中只是運營商提供的一個中間管理模塊,負責接收用戶發(fā)送過來的消息和簽名,分別提取消息和簽名信息,然后從SP數(shù)據(jù)庫查找有關(guān)信息進行身份驗證。當驗證UIM卡和SP為簽署過協(xié)議的合法用戶時,發(fā)出證書加載指令,最后生成消息,并用管理平臺的私鑰對消息進行簽名,將消息發(fā)送給用戶。管理平臺可以管理SP信息及運營商的證書和私鑰。
在整個PKI體系中,證書的關(guān)系是最重要的構(gòu)成要素。因此,在本系統(tǒng)中手機智能卡同樣支持多個SP共享使用,并且是存儲多個數(shù)字證書的介質(zhì)。證書包括SP證書、個人證書以及私鑰,這是用于個人與SP交互的憑證,證書存儲在智能卡的文件管理模塊中(安全存儲區(qū)),而私鑰在卡內(nèi)生成,不能從卡中讀取出來。SP證書是由證書認證中心CA頒發(fā)給SP的數(shù)字證書,其格式都符合x.509證書V3版本格式。私鑰是由SP保存,用來驗證SP身份,SP使用手機智能卡進行加密或者簽名時,必須首先出示其身份信息,而智能卡驗證通過后才能為SP提供加密或者數(shù)字簽名等功能;個人證書/私鑰是指SP或者SP信任的CA頒發(fā)給用戶的證書,用戶在訪問SP前要進行身份認證和交易簽名等功能。
在此系統(tǒng),證書的管理只是限于管理員級別的,管理員可以加載證書、刪除證書、更新證書、查看證書詳細信息,而用戶只能查看證書的內(nèi)容。圖3為證書樣本。當查看證書的詳細信息時,需要輸入用戶口令,口令校驗正確才可以正常查看。當檢測到UIM卡與終端已連接時,會自動將該UIM卡中的所有證書注冊到終端中的證書存儲區(qū)中,這樣手機可以使用用戶證書進行身份驗證。當檢測到有UIM卡拔掉時,會自動將UIM卡中的所有證書從系統(tǒng)的存儲區(qū)中刪除,在導入導出過程中,同樣也需要驗證用戶合法性,這樣可提高安全性。

圖3 數(shù)字證書
加密操作使用接收方的RSA公鑰把消息轉(zhuǎn)化成密文,而解密操作使用接收方對應的RSA私鑰將密文恢復成消息。加密原語在公鑰的控制下從消息代表產(chǎn)生出密文代表,解密原語在對應私鑰的控制下從密文代表中恢復消息代表。為了加強密鑰計算的安全性和數(shù)據(jù)的保密性,在進行運算前需要對原始報文按照一定格式進行編碼,實際運算是對編碼后數(shù)據(jù)的運算。
3.3.1 數(shù)據(jù)加密具體實現(xiàn)步驟
(1)首先將接收方的公鑰和待加密消息進行計算,生成密文,長度也通過計算而得,是一個長度為k的八位組串(k表示和數(shù)模n以八位組為計量單位的長度)。
(2)根據(jù)編碼規(guī)則進行編碼從而形成編碼消息。
(3)將編碼消息經(jīng)過一些轉(zhuǎn)換和對加密原語的處理形成密文。
(4)最后將所得信息密文送給接收方,接收方再進行解密。
3.3.2 數(shù)據(jù)解密具體實現(xiàn)步驟
(1)首先對發(fā)送方所傳來的密文進行長度檢查,如果長度不符則終止運算。
(2)將RSA私鑰和密文代表代入解密原語,經(jīng)過一系列運算得出編碼信息。
(3)根據(jù)一定的規(guī)則分離編碼信息最后得出所發(fā)送的消息,即數(shù)據(jù)解密和數(shù)據(jù)加密過程其實是具有一定運算規(guī)則的一個互逆運算過程。
數(shù)字簽名是建立在公鑰體制基礎上的一種服務,其主要功能是保證信息傳輸?shù)耐暾浴l(fā)送者的身份認證、防止交易中的抵賴發(fā)生。數(shù)字簽名運算利用簽名者的RSA私鑰產(chǎn)生一個簽名,而簽名驗證運算利用簽名者對應的RSA公鑰驗證消息上的簽名,為了驗證用這種方案產(chǎn)生的簽名,驗證者必須擁有消息本身。數(shù)字簽名算法是用戶私鑰解密的操作,驗證數(shù)字簽名是用戶公鑰加密的操作。為了非對稱密鑰計算的安全性和數(shù)字簽名的安全性,在進行運算前需要對原始報文按照一定格式進行編碼,實際運算是對編碼以后數(shù)據(jù)的運算。數(shù)字簽名是加密過程,數(shù)字簽名驗證是解密過程。
3.4.1 數(shù)字簽名生成具體過程步驟
(1)將簽名者的私鑰和待簽名的信息利用RSA算法算出簽名。
(2)對消息進行 EMSA-PKCS1-v1_5(編碼方案)編碼運算產(chǎn)生編碼消息EM。
(3)將編碼消息EM轉(zhuǎn)換成一個整數(shù)消息代表m,再將SP簽名原語作用于簽名者私鑰和整數(shù)消息代表形成簽名代表s。
(4)最后將簽名代表s轉(zhuǎn)換成簽名S,并輸出。
3.4.2 簽名驗證具體實現(xiàn)步驟
(1)檢查由數(shù)字簽名產(chǎn)生的簽名S的長度,長度不符則輸出無效簽名。
(2)再轉(zhuǎn)換成簽名代表s,并將驗證原語作用于RSA公鑰和簽名代表s產(chǎn)生整數(shù)消息代表m。
(3)再將產(chǎn)生的消息代表m轉(zhuǎn)換成編碼消息。EM在對消息M進行EMSA-PKCS1-v1_5編碼運算,產(chǎn)生另外一個編碼消息EM1。
(4)比較編碼消息EM和編碼消息EM1。相同有效,不同則無效。
本文成功對手機智能卡的安全部分進行了延伸,將公鑰基礎設施PKI安全體系應用在手機智能卡上,提高了安全性。該卡片已經(jīng)應用于生產(chǎn),在中國電信3G網(wǎng)絡安全交易中具有重要的作用。
[1]曾自強,鄒俊偉.基于PKI-SIM技術(shù)的網(wǎng)上購物系統(tǒng).中國科技論文在線,http://www.paper.edu.cn.
[2]黃成,汪海航.智能卡在 WPKI中的應用研究[J].計算機技術(shù)與發(fā)展,2007(12):154-160.
[3]段斌.數(shù)字簽名的智能卡實現(xiàn)[J].湘潭大學自然科學學報,2001(3):102-109.
[4]俞剛.智能卡-PKI私鑰的安全載體[J].計算機與數(shù)字工程,2008(11)107-110.
[5]關(guān)振勝.公約基礎設施 PKI及其應用[M].北京:電子工業(yè)出版社,2008.
The application of the PKI security system in smart card
Zhang Zelian,Li Daiping,Xu Hongning
(Faculty of Computer,Guangdong University of Technology,Guangzhou 510006,China)
This article introduced the basic principles and security technology of the public key infrastructure(PKI)system and the smart card system.It focused on the application of the PKI security system in smart card system.The system uses PKI security plug-in stored in SIM card to provide identity authentication,digital signatures and other infrastructure between the smart card and SP applications,which effectively ensure the security and integrity in network data transmission.
PKI;smart card;SP;digital certificate;digital signatures
TP316
A
1674-7720(2011)01-0063-03
廣州市越秀區(qū)自然科技基金資助項目(2008-GX-015)
2010-08-04)
張澤連,女,1986年生,碩士研究生,主要研究方向:智能卡芯片操作系統(tǒng)。
李代平,男,1955年生,教授,碩士生導師,主要研究方向:軟件工程與并行計算。
徐宏寧,男,1984年生,碩士研究生,主要研究方向:智能卡芯片操作系統(tǒng)。