新聞中心

EEPW首頁 > 測試測量 > 設計應用 > 雙界面智能卡操作系統(tǒng)的設計與測試

雙界面智能卡操作系統(tǒng)的設計與測試

作者: 時間:2012-03-13 來源:網(wǎng)絡 收藏

1. 引 言

本文引用地址:http://2s4d.com/article/194323.htm

(smart card又稱集成電路卡)將一個集成電路芯片鑲嵌于塑料基片中,封裝成卡的形式,其外形與覆蓋磁條的磁卡相似。

筆者在利用北京市嵌入式系統(tǒng)重點實驗室生產(chǎn)的進行符合中國人民銀行金融卡規(guī)范的BES COS開發(fā)過程中,針對該款芯片的硬件特性進行了COS的設計與實現(xiàn),并根據(jù)規(guī)范設計了用例,完成了。

2. 硬件概述

BES1332EF是一款基于8051的雙界面智能卡芯片。非接觸式接口支持ISO 14443 TYPE A協(xié)議,接觸式接口支持ISO/IEC7816 T=0協(xié)議。有8K的ROM,32K的EFLASH,1K的RAM,硬件隨機數(shù)發(fā)生器,CRC模塊以及DES模塊。

3. 智能卡

智能卡是一個專用系統(tǒng),和傳統(tǒng)意義上的有很大的差別,它更類似于一個監(jiān)控程序。COS主要包含通信、命令解釋、文件系統(tǒng)以及安全四個模塊。

3.1通信模塊

傳輸管理器負責智能卡和接口設備之間的數(shù)據(jù)通信,接收過程中要處理對輸入數(shù)據(jù)的緩沖,響應過程控制數(shù)據(jù)的發(fā)送。通信使用的協(xié)議是ISO7816-3 所規(guī)定的T=0 的異步半雙工字符傳輸協(xié)議。當接口設備給卡上電之后,首先由卡發(fā)送一個復位應答信息(ATR)給接口設備,然后接口設備發(fā)送命令頭來啟動命令處理過程。傳輸管理器在正確地接收到命令后交給下一個功能模塊進行處理,昀后還要把該命令的執(zhí)行結(jié)果返回給接口設備。

3.2命令解釋模塊

命令解釋器對外部輸入的每條命令做語法分析,分析和檢查命令參數(shù)是否正確,然后根據(jù)命令參數(shù)的含義執(zhí)行相應的功能模塊。如果發(fā)現(xiàn)參數(shù)有錯,將從該模塊直接返回錯誤信息。

3.3文件系統(tǒng)

主控文件(Master File , MF)。主控文件是整個文件系統(tǒng)的根(可看做根目錄),每張卡有且只有一個主控文件。專用文件(Dedicated File,DF)。在MF下針對不同的應用建立起來的一種文件,是位于MF之下的含有EF的一種文件結(jié)構(gòu)(可看做文件目錄),它存儲了某個應用的全部數(shù)據(jù)以及與應用操作相關的安全數(shù)據(jù)。基本文件(Elementary File,EF)?;疚募鎯α烁鞣N應用的數(shù)據(jù)和管理信息,它存在于 MF和DF下。

3.4安全模塊

安全模塊主要分成兩個部分。第一部分就是用于數(shù)據(jù)加密、校驗等的基礎功能模塊。包括隨機數(shù)產(chǎn)生、3DES加密、MAC計算模塊、 CRC計算模塊等。第二部分是文件的權(quán)限控制模塊。在BES COS中, MF、DF和EF的文件頭中保存著一個權(quán)限范圍,而系統(tǒng)在某一時刻都有著當前的權(quán)限值,如果權(quán)限值在權(quán)限范圍中,則可以進行相應操作,否則,則需要外部認證等手段改變系統(tǒng)當前的權(quán)限值。

4. 智能卡的

4.1測試環(huán)境

智能卡的測試主要分兩個部分,一是硬件測試,二是軟件測試。從硬件測試的層面來說,選取一個功能強的專用于測試讀卡器是十分必要的。比如在IC卡的7816通信接口還沒有完全實現(xiàn)的時候,通過普通的讀卡器對卡片進行操作,返回值在讀卡器這邊是無法看到的,因為大多數(shù)讀卡器屏蔽了不符合7816的TPDU規(guī)定的數(shù)據(jù),而如果每次都用示波器觀察硬件信號的話,效率又比較低。所以應該盡量選擇可以看到底層交互數(shù)據(jù)的讀卡器。

從軟件測試的層面來說,選取一個對上層提供了友好的接口的讀卡器也是十分必要的。例如我在開發(fā)BES COS時使用的讀卡器 Collis,提供了與其配套的腳本開發(fā)環(huán)境Collis Conclusion,可以方便的設置讀卡器的電壓,頻率,等待超時時間等。還提供了設定期望返回值的功能。

4.2測試腳本

測試腳本主要分為功能正確情況測試,功能異常情況測試,參數(shù)測試,安全機制測試以及應用流程測試。

功能正確情況測試是指在輸入的參數(shù)都合法,執(zhí)行的條件都具備,所執(zhí)行的命令應該可以正常執(zhí)行的情況下,檢查所測命令是否能夠正確執(zhí)行涉及的功能步驟。功能異常情況測試是指在輸入的參數(shù)都合法,但執(zhí)行的條件不具備,檢測COS是否都返回了相應的錯誤代碼。參數(shù)測試是指,固定所測命令參數(shù)P1、P2、Lc和數(shù)據(jù)與正確且不變的情況下,利用窮舉法便利每一個錯誤的CLA作為輸入?yún)?shù),測試COS是否都能正確響應錯誤代碼,其他的參數(shù)測試同理。安全機制測試是指在操作一個基本文件時,該文件可能有一個或者多個安全控制機制。應用流程測試,是指將命令組合起來成為一個應用流程,檢測整個流程是否都能正確執(zhí)行,檢測基本命令之間是否會有影響。

5. 結(jié)束語

目前COS已經(jīng)通過了第三方的測試,目前正在準備上金融卡檢測中心的測試平臺。COS開發(fā)中昀大的困難就是調(diào)試不便,直到后來在芯片中加入了OCI,才可實現(xiàn)單步調(diào)試以及存儲單元值的查看。COS的開發(fā)語言C/匯編也比較低級,影響了開發(fā)的效率以及易維護性。相信隨著IC卡成本的降低,支持java語言的java卡會更加的普及。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關推薦

技術(shù)專區(qū)

關閉