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

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

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

圖3 數字證書
加密操作使用接收方的RSA公鑰把消息轉化成密文,而解密操作使用接收方對應的RSA私鑰將密文恢復成消息。加密原語在公鑰的控制下從消息代表產生出密文代表,解密原語在對應私鑰的控制下從密文代表中恢復消息代表。為了加強密鑰計算的安全性和數據的保密性,在進行運算前需要對原始報文按照一定格式進行編碼,實際運算是對編碼后數據的運算。
3.3.1 數據加密具體實現步驟
(1)首先將接收方的公鑰和待加密消息進行計算,生成密文,長度也通過計算而得,是一個長度為k的八位組串(k表示和數模n以八位組為計量單位的長度)。
(2)根據編碼規則進行編碼從而形成編碼消息。
(3)將編碼消息經過一些轉換和對加密原語的處理形成密文。
(4)最后將所得信息密文送給接收方,接收方再進行解密。
3.3.2 數據解密具體實現步驟
(1)首先對發送方所傳來的密文進行長度檢查,如果長度不符則終止運算。
(2)將RSA私鑰和密文代表代入解密原語,經過一系列運算得出編碼信息。
(3)根據一定的規則分離編碼信息最后得出所發送的消息,即數據解密和數據加密過程其實是具有一定運算規則的一個互逆運算過程。
數字簽名是建立在公鑰體制基礎上的一種服務,其主要功能是保證信息傳輸的完整性、發送者的身份認證、防止交易中的抵賴發生。數字簽名運算利用簽名者的RSA私鑰產生一個簽名,而簽名驗證運算利用簽名者對應的RSA公鑰驗證消息上的簽名,為了驗證用這種方案產生的簽名,驗證者必須擁有消息本身。數字簽名算法是用戶私鑰解密的操作,驗證數字簽名是用戶公鑰加密的操作。為了非對稱密鑰計算的安全性和數字簽名的安全性,在進行運算前需要對原始報文按照一定格式進行編碼,實際運算是對編碼以后數據的運算。數字簽名是加密過程,數字簽名驗證是解密過程。
3.4.1 數字簽名生成具體過程步驟
(1)將簽名者的私鑰和待簽名的信息利用RSA算法算出簽名。
(2)對消息進行 EMSA-PKCS1-v1_5(編碼方案)編碼運算產生編碼消息EM。
(3)將編碼消息EM轉換成一個整數消息代表m,再將SP簽名原語作用于簽名者私鑰和整數消息代表形成簽名代表s。
(4)最后將簽名代表s轉換成簽名S,并輸出。
3.4.2 簽名驗證具體實現步驟
(1)檢查由數字簽名產生的簽名S的長度,長度不符則輸出無效簽名。
(2)再轉換成簽名代表s,并將驗證原語作用于RSA公鑰和簽名代表s產生整數消息代表m。
(3)再將產生的消息代表m轉換成編碼消息。EM在對消息M進行EMSA-PKCS1-v1_5編碼運算,產生另外一個編碼消息EM1。
(4)比較編碼消息EM和編碼消息EM1。相同有效,不同則無效。
本文成功對手機智能卡的安全部分進行了延伸,將公鑰基礎設施PKI安全體系應用在手機智能卡上,提高了安全性。該卡片已經應用于生產,在中國電信3G網絡安全交易中具有重要的作用。
[1]曾自強,鄒俊偉.基于PKI-SIM技術的網上購物系統.中國科技論文在線,http://www.paper.edu.cn.
[2]黃成,汪海航.智能卡在 WPKI中的應用研究[J].計算機技術與發展,2007(12):154-160.
[3]段斌.數字簽名的智能卡實現[J].湘潭大學自然科學學報,2001(3):102-109.
[4]俞剛.智能卡-PKI私鑰的安全載體[J].計算機與數字工程,2008(11)107-110.
[5]關振勝.公約基礎設施 PKI及其應用[M].北京:電子工業出版社,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
廣州市越秀區自然科技基金資助項目(2008-GX-015)
2010-08-04)
張澤連,女,1986年生,碩士研究生,主要研究方向:智能卡芯片操作系統。
李代平,男,1955年生,教授,碩士生導師,主要研究方向:軟件工程與并行計算。
徐宏寧,男,1984年生,碩士研究生,主要研究方向:智能卡芯片操作系統。