雙界面智能卡操作系統的設計與測試
文章出處:http://psychicreadingswithdeb.com 作者: 人氣: 發(fā)表時(shí)間:2011年12月11日
摘要:本文提出了雙界面智能卡操作系統的設計方案以及測試方案。設計方案主要闡述了COS功能模塊的劃分,以及各個(gè)模塊的功能和實(shí)現
方法。測試方案包括測試中軟硬件環(huán)境的選擇,以及測試腳本需要覆蓋的內容。目前已將開(kāi)發(fā)成果應用于實(shí)際中。
1. 引 言
智能卡(smart card又稱(chēng)集成電路卡)將一個(gè)集成電路芯片鑲嵌于塑料基片中,封裝成卡的形式,其外形與覆蓋磁條的磁卡相似。
筆者在利用北京市嵌入式系統重點(diǎn)實(shí)驗室生產(chǎn)的智能卡進(jìn)行符合中國人民銀行金融卡規范的BES COS開(kāi)發(fā)過(guò)程中,針對該款芯片的硬件特性進(jìn)行了COS的設計與實(shí)現,并根據規范設計了測試用例,完成了測試。
2. 智能卡硬件概述
BES1332EF是一款基于8051的雙界面智能卡芯片。非接觸式接口支持ISO 14443 TYPE A協(xié)議,接觸式接口支持ISO/IEC7816 T=0協(xié)議。有8K的ROM,32K的EFLASH,1K的RAM,硬件隨機數發(fā)生器,CRC模塊以及DES模塊。
3. 智能卡操作系統
智能卡操作系統是一個(gè)專(zhuān)用系統,和傳統意義上的操作系統有很大的差別,它更類(lèi)似于一個(gè)監控程序。COS主要包含通信、命令解釋、文件系統以及安全四個(gè)模塊。
3.1通信模塊
傳輸管理器負責智能卡和接口設備之間的數據通信,接收過(guò)程中要處理對輸入數據的緩沖,響應過(guò)程控制數據的發(fā)送。通信使用的協(xié)議是ISO7816-3 所規定的T=0 的異步半雙工字符傳輸協(xié)議。來(lái)源一卡通世界。當接口設備給卡上電之后,首先由卡發(fā)送一個(gè)復位應答信息(ATR)給接口設備,然后接口設備發(fā)送命令頭來(lái)啟動(dòng)命令處理過(guò)程。傳輸管理器在正確地接收到命令后交給下一個(gè)功能模塊進(jìn)行處理,昀后還要把該命令的執行結果返回給接口設備。
3.2命令解釋模塊
命令解釋器對外部輸入的每條命令做語(yǔ)法分析,分析和檢查命令參數是否正確,然后根據命令參數的含義執行相應的功能模塊。如果發(fā)現參數有錯,將從該模塊直接返回錯誤信息。
3.3文件系統
主控文件(Master File , MF)。主控文件是整個(gè)文件系統的根(可看做根目錄),每張卡有且只有一個(gè)主控文件。專(zhuān)用文件(Dedicated File,DF)。在MF下針對不同的應用建立起來(lái)的一種文件,是位于MF之下的含有EF的一種文件結構(可看做文件目錄),它存儲了某個(gè)應用的全部數據以及與應用操作相關(guān)的安全數據?;疚募?Elementary File,EF)?;疚募鎯α烁鞣N應用的數據和管理信息,它存在于 MF和DF下。
3.4安全模塊
安全模塊主要分成兩個(gè)部分。第一部分就是用于數據加密、校驗等的基礎功能模塊。包括隨機數產(chǎn)生、3DES加密、MAC計算模塊、 CRC計算模塊等。第二部分是文件的權限控制模塊。在BES COS中, MF、DF和EF的文件頭中保存著(zhù)一個(gè)權限范圍,而系統在某一時(shí)刻都有著(zhù)當前的權限值,如果權限值在權限范圍中,則可以進(jìn)行相應操作,否則,則需要外部認證等手段改變系統當前的權限值。
4. 智能卡的測試
4.1測試環(huán)境
智能卡的測試主要分兩個(gè)部分,一是硬件測試,二是軟件測試。從硬件測試的層面來(lái)說(shuō),選取一個(gè)功能強的專(zhuān)用于測試讀卡器是十分必要的。比如在IC卡的7816通信接口還沒(méi)有完全實(shí)現的時(shí)候,通過(guò)普通的讀卡器對卡片進(jìn)行操作,返回值在讀卡器這邊是無(wú)法看到的,因為大多數讀卡器屏蔽了不符合7816的TPDU規定的數據,而如果每次都用示波器觀(guān)察硬件信號的話(huà),效率又比較低。所以應該盡量選擇可以看到底層交互數據的讀卡器。
從軟件測試的層面來(lái)說(shuō),選取一個(gè)對上層提供了友好的接口的讀卡器也是十分必要的。例如我在開(kāi)發(fā)BES COS時(shí)使用的讀卡器 Collis,提供了與其配套的腳本開(kāi)發(fā)環(huán)境Collis Conclusion,可以方便的設置讀卡器的電壓,頻率,等待超時(shí)時(shí)間等。還提供了設定期望返回值的功能。
4.2測試腳本
測試腳本主要分為功能正確情況測試,功能異常情況測試,參數測試,安全機制測試以及應用流程測試。
功能正確情況測試是指在輸入的參數都合法,執行的條件都具備,所執行的命令應該可以正常執行的情況下,檢查所測命令是否能夠正確執行涉及的功能步驟。功能異常情況測試是指在輸入的參數都合法,但執行的條件不具備,檢測COS是否都返回了相應的錯誤代碼。參數測試是指,固定所測命令參數P1、P2、Lc和數據與正確且不變的情況下,利用窮舉法便利每一個(gè)錯誤的CLA作為輸入參數,測試COS是否都能正確響應錯誤代碼,其他的參數測試同理。安全機制測試是指在操作一個(gè)基本文件時(shí),該文件可能有一個(gè)或者多個(gè)安全控制機制。應用流程測試,是指將命令組合起來(lái)成為一個(gè)應用流程,檢測整個(gè)流程是否都能正確執行,檢測基本命令之間是否會(huì )有影響。
5. 結束語(yǔ)
目前COS已經(jīng)通過(guò)了第三方的測試,目前正在準備上金融卡檢測中心的測試平臺。COS開(kāi)發(fā)中昀大的困難就是調試不便,直到后來(lái)在芯片中加入了OCI,才可實(shí)現單步調試以及存儲單元值的查看。COS的開(kāi)發(fā)語(yǔ)言C/匯編也比較低級,影響了開(kāi)發(fā)的效率以及易維護性。相信隨著(zhù)IC卡成本的降低,支持java語(yǔ)言的java卡會(huì )更加的普及。
參考文獻:
[1] 王愛(ài)英,智能卡技術(shù),北京:清華大學(xué)出版社,2010.
[2] 中華人民共和國金融行業(yè)標準 JR/T 0025.1 2005.
【稿件聲明】:如需轉載,必須注明來(lái)源和作者,保留文中圖片和內容的完整性,違者將依法追究。