張澤連,李代平,徐宏寧
(廣東工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,廣東 廣州 510006)
PKI 安全體系在手機(jī)智能卡中的應(yīng)用*
張澤連,李代平,徐宏寧
(廣東工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,廣東 廣州 510006)
介紹PKI系統(tǒng)和智能卡系統(tǒng)的基本原理和安全技術(shù),重點(diǎn)研究PKI安全體系在手機(jī)智能卡中的應(yīng)用。利用存儲在卡中的PKI安全插件,為手機(jī)卡和SP應(yīng)用之間提供身份認(rèn)證、數(shù)字簽名等服務(wù)支持,有效確保了手機(jī)智能卡在網(wǎng)絡(luò)數(shù)據(jù)傳輸中的安全性、完整性。
PKI;智能卡;SP;數(shù)字證書;數(shù)字簽名
隨著移動技術(shù)的迅速發(fā)展以及手機(jī)卡的一卡多應(yīng)用平臺的建立,人們借助手機(jī)這種終端設(shè)備可以隨時(shí)隨地接入網(wǎng)絡(luò)進(jìn)行交易和數(shù)據(jù)交流,因此用戶的身份認(rèn)證、傳輸數(shù)據(jù)的保密性、數(shù)據(jù)的完整性及交易的不可抵賴性等變得迫在眉睫。目前對互聯(lián)網(wǎng)的安全研究已形成一套完整的解決方案,即廣泛采取的PKI。而內(nèi)置于手機(jī)的智能卡,屬于內(nèi)嵌式CPU,具有獨(dú)立的加密計(jì)算能力和一定的存儲空間。本文介紹了PKI安全體系在手機(jī)智能卡中的應(yīng)用方式和方法,描述了基于PKI安全體系的證書管理、身份認(rèn)證、數(shù)字簽名和數(shù)據(jù)加解密。
公共密鑰基礎(chǔ)設(shè)施PKI(Public Key Infrastructure)是一種遵循既定標(biāo)準(zhǔn)的密鑰管理平臺,它能夠?yàn)樗芯W(wǎng)絡(luò)應(yīng)用提供加密和數(shù)字簽名等密碼服務(wù)以及所必須的密鑰和證書管理體系。在公共密鑰系統(tǒng)中,PKI體系涉及多個(gè)實(shí)體之間的協(xié)作過程:認(rèn)證機(jī)構(gòu)、注冊機(jī)構(gòu)、證書庫、密鑰管理、應(yīng)用接口和用戶等。主要基于非對稱密碼技術(shù),即公開密鑰密碼技術(shù)。
公鑰體制于1976年由W.Diffie和M.Hellman提出,其最大特點(diǎn)是采用兩個(gè)密鑰將加密和解密分開,一個(gè)公鑰作為加密密鑰,另一個(gè)私鑰為用戶專有。用戶要保障專用密鑰的安全,公開密鑰則可以發(fā)布出去。若以公鑰作為加密密鑰,以用戶私鑰作為解密密鑰,可實(shí)現(xiàn)多個(gè)用戶加密的信息只能由一個(gè)用戶解讀;反之,以用戶專有的私鑰作為加密密鑰,而以公鑰作為解密密鑰,則實(shí)現(xiàn)由一個(gè)用戶加密的信息,可使多個(gè)用戶解讀。前者可用于保密通信,后者可用于數(shù)字簽名。
智能卡(Smart Card)是IC卡,相當(dāng)于一個(gè)微型計(jì)算機(jī),具有計(jì)算機(jī)的基本組成部分:CPU(中央處理器)、ROM(只讀存儲器)、RAM(隨機(jī)存儲器)、COS(片內(nèi)操作系統(tǒng))和EEPROM(電可擦除存儲器)。本系統(tǒng)的智能卡是手機(jī)卡,具有隨機(jī)數(shù)發(fā)生器和加密協(xié)處理器等,可以硬件實(shí)現(xiàn)RSA運(yùn)算;具有DES和 SHA-1等密碼算法,可以在芯片內(nèi)部產(chǎn)生密鑰對,并能在芯片上完成加解密運(yùn)算。本系統(tǒng)將用戶的私鑰存放在智能卡存儲器中,這樣使用密協(xié)處理器運(yùn)算執(zhí)行RSA算法,完成加解密工作,用戶對手機(jī)智能卡的操作都是通過卡內(nèi)的片上操作系統(tǒng)COS實(shí)現(xiàn)的。同時(shí)卡片還可以保存用戶的公鑰證書和信任SP證書。本系統(tǒng)采用開發(fā)完成的UIM卡,系統(tǒng)由5個(gè)模塊組成,如圖1所示。包括底層驅(qū)動、通信管理模塊、命令處理模塊、文件管理和安全模塊。在此基礎(chǔ)上可以開發(fā)一些上層的應(yīng)用以及卡上虛擬機(jī)、小額支付、電子錢包、超級號簿、PKI應(yīng)用等功能。
圖1 COS系統(tǒng)結(jié)構(gòu)模型圖
由于不同廠家所生產(chǎn)的底層芯片不同,要求底層的相應(yīng)驅(qū)動程序也不同,因此所采用的微內(nèi)核結(jié)構(gòu),通過提取不同芯片驅(qū)動相同部分,實(shí)際應(yīng)用時(shí)只需要將相應(yīng)的底層驅(qū)動程序移植,具有良好的可移植性和可擴(kuò)展性。通信管理模塊負(fù)責(zé)實(shí)現(xiàn)與外部數(shù)據(jù)進(jìn)行通信,對I/O輸入緩沖區(qū)中接收到的數(shù)據(jù)采取奇偶校驗(yàn)、累加及分組長度檢驗(yàn)等手段進(jìn)行正確性判斷,不進(jìn)行信息內(nèi)容的判斷,接收經(jīng)過安全管理、命令處理、文件管理處理后的信息,并按照標(biāo)準(zhǔn)APDU指令結(jié)構(gòu)要求打包成完整的數(shù)據(jù)幀,發(fā)送到I/O的輸出緩沖區(qū);安全管理模塊接受通信管理模塊的調(diào)度,并向通信管理模塊返回處理后的數(shù)據(jù)信息;將由通信管理模塊接收到的數(shù)據(jù)進(jìn)行安全驗(yàn)證;不做數(shù)據(jù)內(nèi)容的驗(yàn)證;當(dāng)安全驗(yàn)證不通過時(shí),直接向通信管理模塊返回?cái)?shù)據(jù);命令解釋模塊負(fù)責(zé)接受安全管理模塊的調(diào)度,并向安全管理模塊返回處理后的數(shù)據(jù)信息,即返回與命令相對應(yīng)的響應(yīng)代碼,需要作數(shù)據(jù)內(nèi)容上的鑒別,當(dāng)數(shù)據(jù)內(nèi)容鑒別不通過時(shí),直接向通信模塊返回?cái)?shù)據(jù);文件管理模塊主要接受命令管理模塊的調(diào)度,并執(zhí)行命令,向命令解釋模塊返回?cái)?shù)據(jù)。
PKI安全體系是手機(jī)卡安全模塊的重要部分,基于目前越來越普及的手機(jī)應(yīng)用體系上建立的PKI架構(gòu),擔(dān)負(fù)著確保用戶在使用手機(jī)交易時(shí)信息安全完整和確認(rèn)身份的任務(wù)。智能卡作為數(shù)字存儲介質(zhì),并且要支持多個(gè)數(shù)字證書組,通過運(yùn)營商提供管理平臺進(jìn)行統(tǒng)一管理,讓多個(gè)SP(由網(wǎng)站提供的短信服務(wù)銀行、企業(yè)等)為其應(yīng)用開展基于PKI體系的身份認(rèn)證、數(shù)字簽名、簽名認(rèn)證、數(shù)字加密解密的基礎(chǔ)設(shè)施支持。系統(tǒng)結(jié)構(gòu)如圖2所示。初始狀態(tài)下,手機(jī)卡內(nèi)置運(yùn)營商的數(shù)字證書,即在手機(jī)和管理平臺間建立信任關(guān)系;然后SP與運(yùn)營商建立信任關(guān)系,允許使用運(yùn)營商發(fā)布的手機(jī)智能卡開展基于PKI的基礎(chǔ)服務(wù);當(dāng)終端與SP首次通信時(shí),SP身份則經(jīng)過管理平臺驗(yàn)證,驗(yàn)證通過即證明智能卡加載了SP證書并且生成該SP的個(gè)人證書/私鑰,建立了與SP的信任關(guān)系;最后在SP與手機(jī)卡進(jìn)行通信時(shí),SP提供身份信息給手機(jī)終端進(jìn)行身份驗(yàn)證,智能卡驗(yàn)證通過后,即可進(jìn)行加密解密、數(shù)字簽名等。
圖2 系統(tǒng)結(jié)構(gòu)圖
管理平臺在本系統(tǒng)中只是運(yùn)營商提供的一個(gè)中間管理模塊,負(fù)責(zé)接收用戶發(fā)送過來的消息和簽名,分別提取消息和簽名信息,然后從SP數(shù)據(jù)庫查找有關(guān)信息進(jìn)行身份驗(yàn)證。當(dāng)驗(yàn)證UIM卡和SP為簽署過協(xié)議的合法用戶時(shí),發(fā)出證書加載指令,最后生成消息,并用管理平臺的私鑰對消息進(jìn)行簽名,將消息發(fā)送給用戶。管理平臺可以管理SP信息及運(yùn)營商的證書和私鑰。
在整個(gè)PKI體系中,證書的關(guān)系是最重要的構(gòu)成要素。因此,在本系統(tǒng)中手機(jī)智能卡同樣支持多個(gè)SP共享使用,并且是存儲多個(gè)數(shù)字證書的介質(zhì)。證書包括SP證書、個(gè)人證書以及私鑰,這是用于個(gè)人與SP交互的憑證,證書存儲在智能卡的文件管理模塊中(安全存儲區(qū)),而私鑰在卡內(nèi)生成,不能從卡中讀取出來。SP證書是由證書認(rèn)證中心CA頒發(fā)給SP的數(shù)字證書,其格式都符合x.509證書V3版本格式。私鑰是由SP保存,用來驗(yàn)證SP身份,SP使用手機(jī)智能卡進(jìn)行加密或者簽名時(shí),必須首先出示其身份信息,而智能卡驗(yàn)證通過后才能為SP提供加密或者數(shù)字簽名等功能;個(gè)人證書/私鑰是指SP或者SP信任的CA頒發(fā)給用戶的證書,用戶在訪問SP前要進(jìn)行身份認(rèn)證和交易簽名等功能。
在此系統(tǒng),證書的管理只是限于管理員級別的,管理員可以加載證書、刪除證書、更新證書、查看證書詳細(xì)信息,而用戶只能查看證書的內(nèi)容。圖3為證書樣本。當(dāng)查看證書的詳細(xì)信息時(shí),需要輸入用戶口令,口令校驗(yàn)正確才可以正常查看。當(dāng)檢測到UIM卡與終端已連接時(shí),會自動將該UIM卡中的所有證書注冊到終端中的證書存儲區(qū)中,這樣手機(jī)可以使用用戶證書進(jìn)行身份驗(yàn)證。當(dāng)檢測到有UIM卡拔掉時(shí),會自動將UIM卡中的所有證書從系統(tǒng)的存儲區(qū)中刪除,在導(dǎo)入導(dǎo)出過程中,同樣也需要驗(yàn)證用戶合法性,這樣可提高安全性。
圖3 數(shù)字證書
加密操作使用接收方的RSA公鑰把消息轉(zhuǎn)化成密文,而解密操作使用接收方對應(yīng)的RSA私鑰將密文恢復(fù)成消息。加密原語在公鑰的控制下從消息代表產(chǎn)生出密文代表,解密原語在對應(yīng)私鑰的控制下從密文代表中恢復(fù)消息代表。為了加強(qiáng)密鑰計(jì)算的安全性和數(shù)據(jù)的保密性,在進(jìn)行運(yùn)算前需要對原始報(bào)文按照一定格式進(jìn)行編碼,實(shí)際運(yùn)算是對編碼后數(shù)據(jù)的運(yùn)算。
3.3.1 數(shù)據(jù)加密具體實(shí)現(xiàn)步驟
(1)首先將接收方的公鑰和待加密消息進(jìn)行計(jì)算,生成密文,長度也通過計(jì)算而得,是一個(gè)長度為k的八位組串(k表示和數(shù)模n以八位組為計(jì)量單位的長度)。
(2)根據(jù)編碼規(guī)則進(jìn)行編碼從而形成編碼消息。
(3)將編碼消息經(jīng)過一些轉(zhuǎn)換和對加密原語的處理形成密文。
(4)最后將所得信息密文送給接收方,接收方再進(jìn)行解密。
3.3.2 數(shù)據(jù)解密具體實(shí)現(xiàn)步驟
(1)首先對發(fā)送方所傳來的密文進(jìn)行長度檢查,如果長度不符則終止運(yùn)算。
(2)將RSA私鑰和密文代表代入解密原語,經(jīng)過一系列運(yùn)算得出編碼信息。
(3)根據(jù)一定的規(guī)則分離編碼信息最后得出所發(fā)送的消息,即數(shù)據(jù)解密和數(shù)據(jù)加密過程其實(shí)是具有一定運(yùn)算規(guī)則的一個(gè)互逆運(yùn)算過程。
數(shù)字簽名是建立在公鑰體制基礎(chǔ)上的一種服務(wù),其主要功能是保證信息傳輸?shù)耐暾浴l(fā)送者的身份認(rèn)證、防止交易中的抵賴發(fā)生。數(shù)字簽名運(yùn)算利用簽名者的RSA私鑰產(chǎn)生一個(gè)簽名,而簽名驗(yàn)證運(yùn)算利用簽名者對應(yīng)的RSA公鑰驗(yàn)證消息上的簽名,為了驗(yàn)證用這種方案產(chǎn)生的簽名,驗(yàn)證者必須擁有消息本身。數(shù)字簽名算法是用戶私鑰解密的操作,驗(yàn)證數(shù)字簽名是用戶公鑰加密的操作。為了非對稱密鑰計(jì)算的安全性和數(shù)字簽名的安全性,在進(jìn)行運(yùn)算前需要對原始報(bào)文按照一定格式進(jìn)行編碼,實(shí)際運(yùn)算是對編碼以后數(shù)據(jù)的運(yùn)算。數(shù)字簽名是加密過程,數(shù)字簽名驗(yàn)證是解密過程。
3.4.1 數(shù)字簽名生成具體過程步驟
(1)將簽名者的私鑰和待簽名的信息利用RSA算法算出簽名。
(2)對消息進(jìn)行 EMSA-PKCS1-v1_5(編碼方案)編碼運(yùn)算產(chǎn)生編碼消息EM。
(3)將編碼消息EM轉(zhuǎn)換成一個(gè)整數(shù)消息代表m,再將SP簽名原語作用于簽名者私鑰和整數(shù)消息代表形成簽名代表s。
(4)最后將簽名代表s轉(zhuǎn)換成簽名S,并輸出。
3.4.2 簽名驗(yàn)證具體實(shí)現(xiàn)步驟
(1)檢查由數(shù)字簽名產(chǎn)生的簽名S的長度,長度不符則輸出無效簽名。
(2)再轉(zhuǎn)換成簽名代表s,并將驗(yàn)證原語作用于RSA公鑰和簽名代表s產(chǎn)生整數(shù)消息代表m。
(3)再將產(chǎn)生的消息代表m轉(zhuǎn)換成編碼消息。EM在對消息M進(jìn)行EMSA-PKCS1-v1_5編碼運(yùn)算,產(chǎn)生另外一個(gè)編碼消息EM1。
(4)比較編碼消息EM和編碼消息EM1。相同有效,不同則無效。
本文成功對手機(jī)智能卡的安全部分進(jìn)行了延伸,將公鑰基礎(chǔ)設(shè)施PKI安全體系應(yīng)用在手機(jī)智能卡上,提高了安全性。該卡片已經(jīng)應(yīng)用于生產(chǎn),在中國電信3G網(wǎng)絡(luò)安全交易中具有重要的作用。
[1]曾自強(qiáng),鄒俊偉.基于PKI-SIM技術(shù)的網(wǎng)上購物系統(tǒng).中國科技論文在線,http://www.paper.edu.cn.
[2]黃成,汪海航.智能卡在 WPKI中的應(yīng)用研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007(12):154-160.
[3]段斌.數(shù)字簽名的智能卡實(shí)現(xiàn)[J].湘潭大學(xué)自然科學(xué)學(xué)報(bào),2001(3):102-109.
[4]俞剛.智能卡-PKI私鑰的安全載體[J].計(jì)算機(jī)與數(shù)字工程,2008(11)107-110.
[5]關(guān)振勝.公約基礎(chǔ)設(shè)施 PKI及其應(yīng)用[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ū)自然科技基金資助項(xiàng)目(2008-GX-015)
2010-08-04)
張澤連,女,1986年生,碩士研究生,主要研究方向:智能卡芯片操作系統(tǒng)。
李代平,男,1955年生,教授,碩士生導(dǎo)師,主要研究方向:軟件工程與并行計(jì)算。
徐宏寧,男,1984年生,碩士研究生,主要研究方向:智能卡芯片操作系統(tǒng)。