鄧 赟,周道雙,李 宇
(1.中國電子科技集團(tuán)公司第三十研究所,四川 成都 610041;2.成都三零嘉微電子有限公司,四川 成都 610041)
?
基于智能卡的COS安全設(shè)計與實現(xiàn)
鄧赟1,周道雙2,李宇1
(1.中國電子科技集團(tuán)公司第三十研究所,四川 成都 610041;2.成都三零嘉微電子有限公司,四川 成都 610041)
智能卡目前被廣泛應(yīng)用于民用、商用、金融以及軍事領(lǐng)域。首先對傳統(tǒng)智能卡COS設(shè)計方式進(jìn)行調(diào)查、研究,發(fā)現(xiàn)大部分智能卡COS都遵循ISO7816系列國際標(biāo)準(zhǔn)。然后在遵循國際標(biāo)準(zhǔn)的基礎(chǔ)上重點對智能卡的程序區(qū)、數(shù)據(jù)區(qū)資源配置管理進(jìn)行安全性分級設(shè)計,對外信息交互進(jìn)行個性化設(shè)計,重點描述了完成安全性分級設(shè)計、個性化設(shè)計的智能卡如何完成對外信息交互、個性化設(shè)計配置、內(nèi)部調(diào)度的COS軟件設(shè)計及實現(xiàn),最后對提出的安全設(shè)計進(jìn)行了總結(jié),并且對未來的進(jìn)一步完善智能卡COS安全性提出思路。
智能卡;COS;安全存儲;安全傳輸
集存儲、加密、數(shù)據(jù)處理于一體,體積僅信用卡大小的智能卡,由于其使用簡單、便于攜帶、安全性高受到青睞,目前已經(jīng)廣泛應(yīng)用到通信、金融、交通、醫(yī)療等各個行業(yè),使我們的生活更加便捷、高效[1]。
一款成熟的智能卡都由硬件和軟件兩部分組成,智能卡硬件就是一片含CPU的IC芯片,智能卡軟件又稱為智能卡片上操作系統(tǒng)(Chip Operating System,簡稱“COS”)。智能卡之所以智能就是因為智能卡含有微處理器,可以根據(jù)不同應(yīng)用需求開發(fā)不同的COS。大部分COS都遵循ISO7816系列國際標(biāo)準(zhǔn),其核心就是實現(xiàn)對智能卡的內(nèi)部空間的安全管理及控制智能卡與外部數(shù)據(jù)的安全交換[2]。但智能卡的發(fā)展速度很快,而國際標(biāo)準(zhǔn)的制定周期相對比較長一些,因而造成了當(dāng)前的智能卡國際標(biāo)準(zhǔn)還不太完善,同時COS設(shè)計時還需考慮智能卡本身的特點,比如CPU性能、內(nèi)存容量、應(yīng)用范圍等因素,因此許多廠家又各自在國家標(biāo)準(zhǔn)的基礎(chǔ)上又對自己開發(fā)的COS作一些擴(kuò)充[3]。
針對一些安全性要求較高的應(yīng)用環(huán)境,本文在存儲資源管理、傳輸協(xié)議設(shè)計方面對COS作一些擴(kuò)充,以提高智能卡安全性。
IC芯片一般都包含兩部分相對獨立的非易失性存儲資源:程序存儲區(qū)和數(shù)據(jù)存儲區(qū)。COS一般存儲在程序存儲區(qū),而使用智能卡所需的數(shù)據(jù)則存儲在數(shù)據(jù)存儲區(qū)。
智能卡存儲資源結(jié)構(gòu)劃分如圖1所示。
圖1 智能卡存儲資源結(jié)構(gòu)
1.1程序存儲區(qū)資源管理
COS是一個專用系統(tǒng),一種COS一般只能應(yīng)用于某一款特定的IC芯片,大部分廠家為了方便COS移植到不同的硬件平臺上,將COS分為應(yīng)用程序和核心控制程序。應(yīng)用程序?qū)崿F(xiàn)用戶所要的各種功能,如智能卡自檢、用戶身份認(rèn)證、數(shù)據(jù)加解密、銷毀等功能;核心控制程序則實現(xiàn)對IC芯片硬件的控制調(diào)度,包含I/O端口收發(fā)控制、隨機(jī)數(shù)產(chǎn)生器的使用、運(yùn)算協(xié)處理器的使用。為了提高COS安全性,還可以將應(yīng)用程序中的算法部分獨立出來,將應(yīng)用程序細(xì)分為算法應(yīng)用程序和功能實現(xiàn)程序。獨立出來的算法應(yīng)用程序可以單獨實現(xiàn),便于算法重構(gòu)。
綜上所述,程序存儲區(qū)劃分為相互獨立的三個部分,分別存放核心控制程序、算法應(yīng)用程序和功能實現(xiàn)程序,三個部分程序可分別編譯、加載、存儲,制定內(nèi)部接口協(xié)議實現(xiàn)核心控制程序、功能實現(xiàn)程序?qū)λ惴☉?yīng)用程序的調(diào)用;功能實現(xiàn)程序?qū)诵目刂瞥绦虻恼{(diào)用。對三個區(qū)域的訪問權(quán)限也可以單獨配置,防止非法用戶讀取、篡改、反編譯程序。
1.2數(shù)據(jù)存儲區(qū)資源管理
智能卡運(yùn)行所需的數(shù)據(jù)可以直接將數(shù)據(jù)存儲在數(shù)據(jù)存儲區(qū)中的某個地址,也可以將數(shù)據(jù)以數(shù)據(jù)單元的形式存儲在數(shù)據(jù)存儲區(qū)的各個文件中。
直接將數(shù)據(jù)存儲在數(shù)據(jù)存儲區(qū)中的某個地址就好比直接將數(shù)據(jù)丟在抽屜中,雖然數(shù)據(jù)在數(shù)據(jù)存儲區(qū)中,但數(shù)據(jù)存儲雜亂,不利于后期使用,而且智能卡的一個具體應(yīng)用必然要對應(yīng)于一個數(shù)據(jù)單元,因此將獨立的數(shù)據(jù)單元以文件的形式存儲,不同類型的數(shù)據(jù)存放在不同的文件中,方便后期使用,同時為了保證數(shù)據(jù)完整性、提高數(shù)據(jù)存儲安全性還可以對數(shù)據(jù)進(jìn)行完整性校驗后,將數(shù)據(jù)和校驗碼加密后再存儲于文件中。
根據(jù)所處層次不同,文件可以分為三類:主文件MF、專用文件DF和基本文件EF。主文件MF必不可少且只有唯一一個,是文件系統(tǒng)中的根文件,基本文件EF就是實際用了存儲數(shù)據(jù)的最小單元,同樣必不可少。專用文件DF則可以不用設(shè)置[4]。
智能卡的整個通信過程中,重點關(guān)注以下幾個問題:通信協(xié)議T=0或T=1、COS復(fù)位應(yīng)答(ATR)、協(xié)議參數(shù)選擇(PPS)、APDU指令格式及內(nèi)部接口協(xié)議。
在實際使用過程中,智能卡的應(yīng)用可以分為兩個階段:制發(fā)階段和使用階段。制發(fā)階段完成軟件執(zhí)行碼寫入、文件系統(tǒng)建立、初始數(shù)據(jù)寫入,使用階段智能卡執(zhí)行各項功能。兩個過程相對獨立,一般來說制發(fā)階段完成進(jìn)入使用階段后,不會再返回制發(fā)階段,而且建立完整的文件系統(tǒng)、存儲的軟件執(zhí)行碼遭到破壞后,直接導(dǎo)致智能卡不能正常工作。因此在制發(fā)階段和使用階段選用不同的通信速率,設(shè)計不同的ATR、PPS、APDU格式以保護(hù)智能卡在使用階段不能破壞文件系統(tǒng)、軟件執(zhí)行碼。以下在T=0的通信協(xié)議時,詳細(xì)設(shè)計COS傳輸協(xié)議。
2.1COS復(fù)位應(yīng)答(ATR)
在復(fù)位應(yīng)答期間使用的缺省值時鐘速率轉(zhuǎn)換因子F=372和位速率調(diào)節(jié)因子D=1。(F用于修改復(fù)位應(yīng)答之后終端設(shè)備所提供的時鐘頻率。D用于調(diào)整復(fù)位應(yīng)答之后所使用的位持續(xù)時間。)終端設(shè)備根據(jù)復(fù)位應(yīng)答,調(diào)整提供智能卡的參數(shù),以便后續(xù)指令能正確執(zhí)行。
ATR值需符合ISO7816-3的規(guī)定,表1給出了智能卡處于制發(fā)階段和使用階段不同的復(fù)位應(yīng)答。
表1 復(fù)位應(yīng)答
2.2協(xié)議參數(shù)選擇(PPS)
為提高智能卡使用安全,智能卡制發(fā)階段和使用階段采用不同的通信速率,制發(fā)階段采用9600bps通信速率,制發(fā)完成后使用階段通信速率選用外部輸入時鐘的16分頻,因此協(xié)議參數(shù)選擇的主要功能就是升速和降速。只要沒有發(fā)生速率變化,COS就一直保持當(dāng)前速率。
表2給出了終端設(shè)備的低速PPS請求和智能的低速響應(yīng)。
表2 低速PPS請求和響應(yīng)
表3給出了終端設(shè)備的高速PPS請求和智能的高速響應(yīng)。
表3 高速PPS請求和響應(yīng)
2.3APDU指令格式
APDU指令分為制發(fā)階段APDU指令和使用階段APDU指令。制發(fā)階段APDU指令主要完成數(shù)據(jù)存儲區(qū)的文件系統(tǒng)的建立、文件數(shù)據(jù)初始化寫入等操作;使用階段APDU指令完成智能卡的各項功能。
智能卡制發(fā)完成后,制發(fā)階段APDU指令可關(guān)閉,后期使用時智能卡不響應(yīng)制發(fā)階段APDU指令,僅執(zhí)行使用階段APDU指令,因此制發(fā)階段的APDU指令直接采用ISO7816-3規(guī)定執(zhí)行,使用階段的APDU指令則進(jìn)行自定義,提高智能卡在使用階段的安全性。
2.3.1制發(fā)階段APDU指令
制發(fā)階段的APDU指令包括建立文件、刪除主目錄、取隨機(jī)數(shù)、選擇文件、寫密鑰、更新二進(jìn)制文件、結(jié)束制卡。
建立文件:創(chuàng)建卡內(nèi)文件,包括MF、DF、EF,創(chuàng)建時需分配文件空間大小。
刪除主目錄: 刪除所有文件系統(tǒng)及文件數(shù)據(jù)。
取隨機(jī)數(shù): 隨機(jī)數(shù)輸出長度需支持8字節(jié)、16字節(jié)、24字節(jié)、32字節(jié)。
選擇文件:根據(jù)FID(文件標(biāo)識符)進(jìn)行文件選擇,成功執(zhí)行該命令后,后續(xù)命令都將在命令中的FID號指向的DF或EF文件下進(jìn)行處理。
寫密鑰:成功執(zhí)行選擇文件命令之后,在選中的DF或EF文件下寫入COS內(nèi)部需使用的各種密鑰數(shù)據(jù)。
更新二進(jìn)制文件:更新二進(jìn)制文件命令的功能是完成對EF文件的數(shù)據(jù)寫入,支持最大偏移32767字節(jié)。
結(jié)束制卡:結(jié)束個人化的功能是讓智能一直工作在高速使用階段的狀態(tài),關(guān)閉對制發(fā)階段APDU指令的響應(yīng)。表4給出了制發(fā)階段APDU指令格式。
表4 制發(fā)階段APDU指令
注:表格中的數(shù)值均為16進(jìn)制
以上APDU指令返回狀態(tài)碼SW1-SW2為90-00表示成功,其它表示失敗。
MAC是指通過算法對指令中從CLA字段開始到MAC字段之前的所有數(shù)據(jù)計算的校驗值,保證指令的完整性、有效性,實現(xiàn)制發(fā)階段APDU指令安全傳輸。
2.3.2使用階段APDU指令
使用階段的APDU指令實現(xiàn)智能卡的各項應(yīng)用功能,包括自檢、身份認(rèn)證、加密、解密、銷毀、更新文件數(shù)據(jù)等。
1)指令長度是指從指令類別開始到校驗碼結(jié)束的字節(jié)數(shù),用于核心控制程序獲取完整指令。
2)指令類別用于區(qū)分不同的命令和響應(yīng)。
3)校驗碼是從數(shù)據(jù)長度開始到數(shù)據(jù)段結(jié)束按字節(jié)異或的結(jié)果,保證指令完整性。
圖2給出了使用階段APDU指令格式。
圖2 使用階段APDU指令格式
還可以根據(jù)實際使用情況,定義更多的使用階段APDU指令類別。
2.4內(nèi)部接口函數(shù)
核心控制程序為應(yīng)用程序(功能實現(xiàn)程序和算法應(yīng)用程序)提供讀寫文件數(shù)據(jù)的函數(shù),實現(xiàn)應(yīng)用程序?qū)ξ募牟僮?;還提供一些常用的數(shù)據(jù)邏輯運(yùn)算、取隨機(jī)數(shù)等接口函數(shù),提高COS編程效率。同時為了實現(xiàn)核心控制程序、功能實現(xiàn)程序?qū)λ惴ǖ恼{(diào)用,算法應(yīng)用程序需要提供調(diào)用算法的接口函數(shù)。
2.4.1核心控制程序接口函數(shù)
邏輯運(yùn)算函數(shù):邏輯與、邏輯或、邏輯異或、邏輯自異或等。
內(nèi)存操作函數(shù):內(nèi)存拷貝、內(nèi)存比較等。
文件操作函數(shù):選擇文件、讀文件數(shù)據(jù)、寫文件數(shù)據(jù)、銷毀文件等。
掉電保護(hù)函數(shù):寫數(shù)據(jù)掉電保護(hù)等。
取隨機(jī)數(shù)函數(shù)。
銷毀智能卡函數(shù)。
2.4.2算法調(diào)用函數(shù)
MAC計算函數(shù):完成MAC計算。
數(shù)據(jù)加解密函數(shù):完成使用階段加解密運(yùn)算。
文件加解密函數(shù):完成文件存儲加密及調(diào)用解密。
安全智能卡COS根據(jù)智能卡應(yīng)用環(huán)境的不同采用不同的通信速率;將智能卡程序存儲區(qū)劃分為核心控制程序、算法應(yīng)用程序和功能實現(xiàn)程序三個部分,提供內(nèi)部接口實現(xiàn)對核心控制程序、算法程序的調(diào)用;將數(shù)據(jù)單元以文件的形式加密存儲于數(shù)據(jù)存儲區(qū)中。這些都是從軟件設(shè)計方面,為提高智能卡安全提供了一種易于實現(xiàn)的解決方案,但并不能從根本上解決智能卡的安全問題。為了進(jìn)一步提高智能卡安全性,選用強(qiáng)度較高算法將是提高智能卡安全的另一個重要手段,但這就需要智能卡硬件算法引擎的支持。因此未來的智能卡COS安全性設(shè)計也許將不再停留在軟件設(shè)計階段,硬件設(shè)計階段就需要為后續(xù)軟件實現(xiàn)提供強(qiáng)大的非對稱算法引擎取代對稱算法算法引擎[5],為有更高安全性需求的領(lǐng)域提供更安全、更完善的智能卡解決方案。
[1]潘宇,鄧赟,許克智等.基于智能卡COS平臺的應(yīng)用開發(fā)技術(shù)[J].通信技術(shù),2013,46(03):104-106.PAN Yun, DENG Yun, XU Ke-zhi, et al. Application Development Techology based on Smart-Card COS Platform[J].Communications Techology,2013.46(03):104-106.
[2]韋小剛,黃益彬,楊維永.一種基于ISO/IEC 7816的COS的設(shè)計與實現(xiàn)[J].計算機(jī)技術(shù)與發(fā)展,2012,22(03):230-232.
WEI Xiao-gang, HUANG Bin-yi, YANG Wei-yong. Design and Implementation of COS based on ISO/IEC 7816[J]. Computer Technology and Development. 2012,22(03):230-232.
[3]李國俊,董晶晶,周瑾.智能卡COS安全性測試研究[J].計算機(jī)技術(shù)與發(fā)展,2014,24(02):164-167,171.
LI Guo-jun,Dong Jing-jing, ZHOU Jin. Research on Security Test of Smart Card COS[J]. Computer Technology and Development. 2014, 24(02):164-167,171.
[4]李星藝,欒達(dá),陳章龍.IC卡的操作系統(tǒng)-COS[J].計算機(jī)工程,1998,24(01):27-29,36.
LI Xing-yi,LUAN Da, CHEN Zhang-long. IC Card Operation System-COS[J].Computer Engineering,1998,24(01):27-29,36.
[5]肖娟,伍娟.一種實現(xiàn)COS數(shù)據(jù)安全的SM2算法[J].武漢工業(yè)學(xué)院學(xué)報,2013,32(02):65-69.
XIAO Juan,WU Juan. A SM2 Algorithm Realizing COS Data Secutity[J]. Journal of Wuhan Polytechnic University,2013,32(02):65-69.
鄧赟(1983—),女,碩士學(xué)位,工程師,主要研究方向為信息安全與通信保密、嵌入式系統(tǒng)設(shè)計,嵌入式軟件開發(fā);
周道雙(1976—),男,碩士,工程師,主要研究方向為信息安全嵌入式軟件開發(fā);
李宇(1982—),男,碩士,工程師,主要研究方向為信息安全與通信保密、嵌入式系統(tǒng)設(shè)計。
Security Design and Implementation of COS based on Smart Card
DENG Yun1, ZHOU Dao-shuang2, LI Yu1
(1.No.30 Institute of CETC,Chengdu Sichuan 610041,China;2.Chengdu 30JAVEE Microelectronics,Inc.,Chengdu Sichuan 610041,China)
Smart cards are widely used in civil, commercial, financial and military fields. Firstly, the traditional designs of smart card COS are investigated and studied, and the results indicate that most of them usually follow the international standards of ISO7816 series. Then, based on these international standards, security grading design is done on resource allocation management of smart-card program area and data area,individualized design on external information interaction.This paper describes in detail how the smart-card with the implementation of security grading design and individualized design completes COS software design and external information interaction, personalized configuration design,including COS software design and implementation of internal dispatch. Finally, the proposed security design is summarized and the idea for further perfecting smart-card COS security also presented.
smart card; COS; secure storage; secure transmission
10.3969/j.issn.1002-0802.2016.03.019
2015-10-11;
2016-02-02Received date:2015-10-11;Revised date:2016-02-02
TP309
A
1002-0802(2016)03-0352-04