鄧 赟,周道雙,李 宇
(1.中國電子科技集團公司第三十研究所,四川 成都 610041;2.成都三零嘉微電子有限公司,四川 成都 610041)
?
基于智能卡的COS安全設計與實現
鄧赟1,周道雙2,李宇1
(1.中國電子科技集團公司第三十研究所,四川 成都 610041;2.成都三零嘉微電子有限公司,四川 成都 610041)
智能卡目前被廣泛應用于民用、商用、金融以及軍事領域。首先對傳統智能卡COS設計方式進行調查、研究,發現大部分智能卡COS都遵循ISO7816系列國際標準。然后在遵循國際標準的基礎上重點對智能卡的程序區、數據區資源配置管理進行安全性分級設計,對外信息交互進行個性化設計,重點描述了完成安全性分級設計、個性化設計的智能卡如何完成對外信息交互、個性化設計配置、內部調度的COS軟件設計及實現,最后對提出的安全設計進行了總結,并且對未來的進一步完善智能卡COS安全性提出思路。
智能卡;COS;安全存儲;安全傳輸
集存儲、加密、數據處理于一體,體積僅信用卡大小的智能卡,由于其使用簡單、便于攜帶、安全性高受到青睞,目前已經廣泛應用到通信、金融、交通、醫療等各個行業,使我們的生活更加便捷、高效[1]。
一款成熟的智能卡都由硬件和軟件兩部分組成,智能卡硬件就是一片含CPU的IC芯片,智能卡軟件又稱為智能卡片上操作系統(Chip Operating System,簡稱“COS”)。智能卡之所以智能就是因為智能卡含有微處理器,可以根據不同應用需求開發不同的COS。大部分COS都遵循ISO7816系列國際標準,其核心就是實現對智能卡的內部空間的安全管理及控制智能卡與外部數據的安全交換[2]。但智能卡的發展速度很快,而國際標準的制定周期相對比較長一些,因而造成了當前的智能卡國際標準還不太完善,同時COS設計時還需考慮智能卡本身的特點,比如CPU性能、內存容量、應用范圍等因素,因此許多廠家又各自在國家標準的基礎上又對自己開發的COS作一些擴充[3]。
針對一些安全性要求較高的應用環境,本文在存儲資源管理、傳輸協議設計方面對COS作一些擴充,以提高智能卡安全性。
IC芯片一般都包含兩部分相對獨立的非易失性存儲資源:程序存儲區和數據存儲區。COS一般存儲在程序存儲區,而使用智能卡所需的數據則存儲在數據存儲區。
智能卡存儲資源結構劃分如圖1所示。

圖1 智能卡存儲資源結構
1.1程序存儲區資源管理
COS是一個專用系統,一種COS一般只能應用于某一款特定的IC芯片,大部分廠家為了方便COS移植到不同的硬件平臺上,將COS分為應用程序和核心控制程序。應用程序實現用戶所要的各種功能,如智能卡自檢、用戶身份認證、數據加解密、銷毀等功能;核心控制程序則實現對IC芯片硬件的控制調度,包含I/O端口收發控制、隨機數產生器的使用、運算協處理器的使用。為了提高COS安全性,還可以將應用程序中的算法部分獨立出來,將應用程序細分為算法應用程序和功能實現程序。獨立出來的算法應用程序可以單獨實現,便于算法重構。
綜上所述,程序存儲區劃分為相互獨立的三個部分,分別存放核心控制程序、算法應用程序和功能實現程序,三個部分程序可分別編譯、加載、存儲,制定內部接口協議實現核心控制程序、功能實現程序對算法應用程序的調用;功能實現程序對核心控制程序的調用。對三個區域的訪問權限也可以單獨配置,防止非法用戶讀取、篡改、反編譯程序。
1.2數據存儲區資源管理
智能卡運行所需的數據可以直接將數據存儲在數據存儲區中的某個地址,也可以將數據以數據單元的形式存儲在數據存儲區的各個文件中。
直接將數據存儲在數據存儲區中的某個地址就好比直接將數據丟在抽屜中,雖然數據在數據存儲區中,但數據存儲雜亂,不利于后期使用,而且智能卡的一個具體應用必然要對應于一個數據單元,因此將獨立的數據單元以文件的形式存儲,不同類型的數據存放在不同的文件中,方便后期使用,同時為了保證數據完整性、提高數據存儲安全性還可以對數據進行完整性校驗后,將數據和校驗碼加密后再存儲于文件中。
根據所處層次不同,文件可以分為三類:主文件MF、專用文件DF和基本文件EF。主文件MF必不可少且只有唯一一個,是文件系統中的根文件,基本文件EF就是實際用了存儲數據的最小單元,同樣必不可少。專用文件DF則可以不用設置[4]。
智能卡的整個通信過程中,重點關注以下幾個問題:通信協議T=0或T=1、COS復位應答(ATR)、協議參數選擇(PPS)、APDU指令格式及內部接口協議。
在實際使用過程中,智能卡的應用可以分為兩個階段:制發階段和使用階段。制發階段完成軟件執行碼寫入、文件系統建立、初始數據寫入,使用階段智能卡執行各項功能。兩個過程相對獨立,一般來說制發階段完成進入使用階段后,不會再返回制發階段,而且建立完整的文件系統、存儲的軟件執行碼遭到破壞后,直接導致智能卡不能正常工作。因此在制發階段和使用階段選用不同的通信速率,設計不同的ATR、PPS、APDU格式以保護智能卡在使用階段不能破壞文件系統、軟件執行碼。以下在T=0的通信協議時,詳細設計COS傳輸協議。
2.1COS復位應答(ATR)
在復位應答期間使用的缺省值時鐘速率轉換因子F=372和位速率調節因子D=1。(F用于修改復位應答之后終端設備所提供的時鐘頻率。D用于調整復位應答之后所使用的位持續時間。)終端設備根據復位應答,調整提供智能卡的參數,以便后續指令能正確執行。
ATR值需符合ISO7816-3的規定,表1給出了智能卡處于制發階段和使用階段不同的復位應答。

表1 復位應答
2.2協議參數選擇(PPS)
為提高智能卡使用安全,智能卡制發階段和使用階段采用不同的通信速率,制發階段采用9600bps通信速率,制發完成后使用階段通信速率選用外部輸入時鐘的16分頻,因此協議參數選擇的主要功能就是升速和降速。只要沒有發生速率變化,COS就一直保持當前速率。
表2給出了終端設備的低速PPS請求和智能的低速響應。

表2 低速PPS請求和響應
表3給出了終端設備的高速PPS請求和智能的高速響應。

表3 高速PPS請求和響應
2.3APDU指令格式
APDU指令分為制發階段APDU指令和使用階段APDU指令。制發階段APDU指令主要完成數據存儲區的文件系統的建立、文件數據初始化寫入等操作;使用階段APDU指令完成智能卡的各項功能。
智能卡制發完成后,制發階段APDU指令可關閉,后期使用時智能卡不響應制發階段APDU指令,僅執行使用階段APDU指令,因此制發階段的APDU指令直接采用ISO7816-3規定執行,使用階段的APDU指令則進行自定義,提高智能卡在使用階段的安全性。
2.3.1制發階段APDU指令
制發階段的APDU指令包括建立文件、刪除主目錄、取隨機數、選擇文件、寫密鑰、更新二進制文件、結束制卡。
建立文件:創建卡內文件,包括MF、DF、EF,創建時需分配文件空間大小。
刪除主目錄: 刪除所有文件系統及文件數據。
取隨機數: 隨機數輸出長度需支持8字節、16字節、24字節、32字節。
選擇文件:根據FID(文件標識符)進行文件選擇,成功執行該命令后,后續命令都將在命令中的FID號指向的DF或EF文件下進行處理。
寫密鑰:成功執行選擇文件命令之后,在選中的DF或EF文件下寫入COS內部需使用的各種密鑰數據。
更新二進制文件:更新二進制文件命令的功能是完成對EF文件的數據寫入,支持最大偏移32767字節。
結束制卡:結束個人化的功能是讓智能一直工作在高速使用階段的狀態,關閉對制發階段APDU指令的響應。表4給出了制發階段APDU指令格式。

表4 制發階段APDU指令
注:表格中的數值均為16進制
以上APDU指令返回狀態碼SW1-SW2為90-00表示成功,其它表示失敗。
MAC是指通過算法對指令中從CLA字段開始到MAC字段之前的所有數據計算的校驗值,保證指令的完整性、有效性,實現制發階段APDU指令安全傳輸。
2.3.2使用階段APDU指令
使用階段的APDU指令實現智能卡的各項應用功能,包括自檢、身份認證、加密、解密、銷毀、更新文件數據等。
1)指令長度是指從指令類別開始到校驗碼結束的字節數,用于核心控制程序獲取完整指令。
2)指令類別用于區分不同的命令和響應。
3)校驗碼是從數據長度開始到數據段結束按字節異或的結果,保證指令完整性。
圖2給出了使用階段APDU指令格式。

圖2 使用階段APDU指令格式
還可以根據實際使用情況,定義更多的使用階段APDU指令類別。
2.4內部接口函數
核心控制程序為應用程序(功能實現程序和算法應用程序)提供讀寫文件數據的函數,實現應用程序對文件的操作;還提供一些常用的數據邏輯運算、取隨機數等接口函數,提高COS編程效率。同時為了實現核心控制程序、功能實現程序對算法的調用,算法應用程序需要提供調用算法的接口函數。
2.4.1核心控制程序接口函數
邏輯運算函數:邏輯與、邏輯或、邏輯異或、邏輯自異或等。
內存操作函數:內存拷貝、內存比較等。
文件操作函數:選擇文件、讀文件數據、寫文件數據、銷毀文件等。
掉電保護函數:寫數據掉電保護等。
取隨機數函數。
銷毀智能卡函數。
2.4.2算法調用函數
MAC計算函數:完成MAC計算。
數據加解密函數:完成使用階段加解密運算。
文件加解密函數:完成文件存儲加密及調用解密。
安全智能卡COS根據智能卡應用環境的不同采用不同的通信速率;將智能卡程序存儲區劃分為核心控制程序、算法應用程序和功能實現程序三個部分,提供內部接口實現對核心控制程序、算法程序的調用;將數據單元以文件的形式加密存儲于數據存儲區中。這些都是從軟件設計方面,為提高智能卡安全提供了一種易于實現的解決方案,但并不能從根本上解決智能卡的安全問題。為了進一步提高智能卡安全性,選用強度較高算法將是提高智能卡安全的另一個重要手段,但這就需要智能卡硬件算法引擎的支持。因此未來的智能卡COS安全性設計也許將不再停留在軟件設計階段,硬件設計階段就需要為后續軟件實現提供強大的非對稱算法引擎取代對稱算法算法引擎[5],為有更高安全性需求的領域提供更安全、更完善的智能卡解決方案。
[1]潘宇,鄧赟,許克智等.基于智能卡COS平臺的應用開發技術[J].通信技術,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的設計與實現[J].計算機技術與發展,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].計算機技術與發展,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]李星藝,欒達,陳章龍.IC卡的操作系統-COS[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]肖娟,伍娟.一種實現COS數據安全的SM2算法[J].武漢工業學院學報,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—),女,碩士學位,工程師,主要研究方向為信息安全與通信保密、嵌入式系統設計,嵌入式軟件開發;
周道雙(1976—),男,碩士,工程師,主要研究方向為信息安全嵌入式軟件開發;
李宇(1982—),男,碩士,工程師,主要研究方向為信息安全與通信保密、嵌入式系統設計。
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