智能卡是一種智能型的IC 卡,,又稱CPU卡或微處理器卡、智慧卡,。智能卡芯片具有微型計(jì)算機(jī)軟硬件配置,,如:CPU、RAM,、ROM,、EEPROM,、COS操作系統(tǒng),同時(shí)還具有用于信息安全保護(hù)的加密器,、隨機(jī)數(shù)發(fā)生器及物理攻擊自毀電路,。
智能卡芯片內(nèi)的物理資源由儲(chǔ)存在ROM內(nèi)的芯片操作系統(tǒng)(COS)來(lái)進(jìn)行統(tǒng)一管理和調(diào)度,,我們可以根據(jù)具體的應(yīng)用要求設(shè)計(jì)卡片的應(yīng)用規(guī)則和規(guī)范,,建立卡片的安全系統(tǒng),并通過(guò)芯片操作系統(tǒng)實(shí)現(xiàn)智能卡的具體應(yīng)用功能,。因而,,智能卡具有靈活性較強(qiáng)的、開(kāi)放式的應(yīng)用設(shè)計(jì)平臺(tái),。
1 智能卡操作系統(tǒng)(COS)簡(jiǎn)述
COS的全稱是Card Operation System(片內(nèi)操作系統(tǒng)),,它一般是緊緊圍繞著它所服務(wù)的智能卡的特點(diǎn)而開(kāi)發(fā)的,因此不可避免地受到了智能卡內(nèi)微處理器芯片的性能及內(nèi)存容量的影響,。首先,,COS是一個(gè)專用系統(tǒng)而不是通用系統(tǒng)。即:一種COS 一般都只能應(yīng)用于特定的某種(或者是某些)智能卡,,不同卡內(nèi)的COS 一般是不相同的,。其次,與那些常見(jiàn)的微機(jī)上的操作系統(tǒng)相比較而言,,COS 在本質(zhì)上更加接近于監(jiān)控程序,,而不是一個(gè)通常所謂的真正意義上的操作系統(tǒng)。
總體而言,,智能卡芯片操作系統(tǒng)包括4大功能:卡片與外界通訊管理,;信息存儲(chǔ)文件管理;信息使用安全管理,;命令解釋執(zhí)行管理,。
在智能卡應(yīng)用程序的具體實(shí)施步驟中,最重要的一步就是定義數(shù)據(jù)存儲(chǔ)的文件體系結(jié)構(gòu),。一旦定義了文件體系結(jié)構(gòu),,無(wú)論是用戶數(shù)據(jù)還是智能卡的管理數(shù)據(jù),都可以通過(guò)文件這樣一個(gè)封裝形式得到極好的保護(hù),,同時(shí),,文件系統(tǒng)也是COS系統(tǒng)設(shè)計(jì)中最為靈活的一個(gè)方面。因此,,無(wú)論從系統(tǒng)設(shè)計(jì)的工作量還是設(shè)計(jì)的復(fù)雜程度而言,,文件系統(tǒng)的設(shè)計(jì)是COS系統(tǒng)設(shè)計(jì)中的重點(diǎn)。下面我們就一個(gè)實(shí)例重點(diǎn)對(duì)COS 中的文件系統(tǒng)設(shè)計(jì)進(jìn)行闡述,。
2 智能卡文件系統(tǒng)
所謂文件,,是指關(guān)于數(shù)據(jù)單元或卡中記錄的有組織的集合,。COS 通過(guò)給每種應(yīng)用建立一個(gè)對(duì)應(yīng)文件的方法來(lái)實(shí)現(xiàn)它對(duì)各個(gè)應(yīng)用的存儲(chǔ)及管理。因此,,COS的應(yīng)用文件中存儲(chǔ)的都是與應(yīng)用程序有關(guān)的各種數(shù)據(jù)或記錄,。此外,對(duì)某些智能卡的COS,,可能還包含有對(duì)應(yīng)用文件進(jìn)行控制的應(yīng)用控制文件,。
COS 的文件按照其所處的邏輯層次如圖1所示可以分為A 類DAE:主文件(Master File)、專用文件(Dedicated File)以及基本文件(Elementer File),。其中,,主文件對(duì)任何COS 都是必不可少的,它是包含有文件控制信息及可分配存儲(chǔ)區(qū)的唯一文件,,其作用相當(dāng)于是COS文件系統(tǒng)的根文件,,處于COS文件系統(tǒng)的最高層?;疚募彩潜夭豢缮俚囊粋€(gè)部分,,它是實(shí)際用來(lái)存儲(chǔ)備應(yīng)用的數(shù)據(jù)單元或記錄的文件,處于文件系統(tǒng)的最底層,。專用文件是可選的,,它存儲(chǔ)的主要是文件的控制信息、文件的位置,、大小等數(shù)據(jù)信息,。
對(duì)于文件而言,無(wú)疑它的存儲(chǔ)分配往往是最重要的,。文件的物理組織涉及一個(gè)文件在存儲(chǔ)設(shè)備上是如何放置的,。它和文件的存取方法有密切關(guān)系,另外也取決于存儲(chǔ)設(shè)備的物理特性,。從邏輯上講,,所有的文件必須是連續(xù)的,這是為了方便尋址,,這就要求文件要以鏈的形式存在,。對(duì)于IC卡的COS系統(tǒng)而言,文件鏈應(yīng)該包括3個(gè)部分的內(nèi)容:MF的入口定位,;DF和子文件之間的檢索,;同一層次文件間的檢索。
實(shí)現(xiàn)上述功能的方法有很多,。但就一般而言,,考慮文件的存儲(chǔ)分配一般考慮的是以下3個(gè)問(wèn)題:創(chuàng)建文件時(shí),是否一次性為該文件分配所需的最大的空間,;分配文件的空間是采用單位的大??;文件分區(qū)表(FAT)的形式。
目前常用的文件分配方法包括連續(xù)分配,、鏈接分配和索引分配( 種,,不同的操作系統(tǒng)往往采用其中的一種。
3 智能卡文件系統(tǒng)實(shí)例
結(jié)合具體應(yīng)用,,根據(jù)應(yīng)用環(huán)境,,對(duì)COS的文件系統(tǒng)進(jìn)行設(shè)計(jì),以滿足項(xiàng)目本身的應(yīng)用要求,。該系統(tǒng)采用的COS芯片支持32字節(jié)的頁(yè)寫方式,,因此在該文件系統(tǒng)中,,分配文件的空間單位采用32字節(jié)以方便文件的讀寫,。
3.1 EEPROM 的空間組織結(jié)構(gòu)劃分
A:分配64個(gè)字節(jié)的空間。
B:文件地址映射表為2k~64字節(jié),。
C:數(shù)據(jù)區(qū)為30k,。
3.2 DISKHEAD的結(jié)構(gòu)信息
DISKHEAD部分共有64個(gè)字節(jié),是EEPROM起始部分的前兩頁(yè)(每頁(yè)32字節(jié)),,記錄了EEPROM的基本使用情況,,其中有部分預(yù)留字節(jié)以待以后作功能擴(kuò)充,另外根目錄區(qū)信息使用39個(gè)字節(jié)記錄了根目錄文件的文件信息,,將根目錄文件信息放在DISKHEAD部分主要是出于擴(kuò)展的考慮,,如圖2 所示。
3.3文件地址映射表
文件地址映射表用于保存文件各個(gè)部分的地址信息,。使用總共(2k~64)個(gè)字節(jié),,對(duì)數(shù)據(jù)區(qū)的30k字節(jié)的EEPROM進(jìn)行尋址。具體方法如圖3所示,,闡述如下:在每一次將文件寫入EEPROM之前,,比如說(shuō)寫在數(shù)據(jù)區(qū)的第A號(hào),首先在第A頁(yè)數(shù)據(jù)區(qū)在文件地址映射表中的兩個(gè)字節(jié)的標(biāo)志字節(jié)處寫入FF,,而后再寫入數(shù)據(jù),。數(shù)據(jù)寫入完畢后,如果文件還未結(jié)束,,那么就搜索空閑空間(在文件分配表中查找為00的項(xiàng),,通過(guò)地址映射得到地址信息),然后把該地址信息寫入文件上一頁(yè)在文件地址映射表的所在位置,。
3.4數(shù)據(jù)區(qū)
數(shù)據(jù)區(qū)保存的是各個(gè)文件的具體數(shù)據(jù),,文件的概念外延為包括目錄文件在內(nèi)的數(shù)據(jù)集合體。文件間的區(qū)分是通過(guò)文件標(biāo)識(shí)符(FID)來(lái)進(jìn)行的,,不同文件間的聯(lián)接是如圖2所示的鏈?zhǔn)浇Y(jié)構(gòu),。文件內(nèi)各個(gè)部分存儲(chǔ)位置通過(guò)文件地址映射表組成一個(gè)鏈?zhǔn)浇Y(jié)構(gòu)來(lái)進(jìn)行查找,,并且當(dāng)文件結(jié)束時(shí),在文件地址映射表中標(biāo)以FF表示文件結(jié)束,,如圖4所示,。
文件采取首次創(chuàng)建時(shí)寫入文件頭信息,以后更新文件數(shù)據(jù)的方式,,提供兩條APDU 命令,。格式如下:
具體應(yīng)用時(shí)首先使用CREATE FILE創(chuàng)建文件,然后再使用UPDATE FILE添加數(shù)據(jù),。同時(shí)根據(jù)文件系統(tǒng)的需要,,還要提供SELECT FILE、READ FILE,、DELETE FILE等命令,。
4 結(jié)論
對(duì)比非智能IC卡的芯片上只有一個(gè)簡(jiǎn)單的存儲(chǔ)器邏輯電路,可以看出,,從可靠性和安全性而言,,智能卡具有天生的優(yōu)勢(shì)。智能卡操作系統(tǒng)COS的設(shè)計(jì)基本上是嚴(yán)格依ISO7816等有關(guān)規(guī)范進(jìn)行開(kāi)發(fā)的,,但其文件系統(tǒng)的設(shè)計(jì)是一個(gè)比較靈活的方面,。本文根據(jù)系統(tǒng)自身特點(diǎn),設(shè)計(jì)了一種智能卡的文件系統(tǒng)方案,,從實(shí)用上看,,還是相當(dāng)成功的,但仍然存在一些缺陷,,比如文件的搜索算法可以進(jìn)一步改進(jìn),,分區(qū)表可以進(jìn)一步精簡(jiǎn)等。同時(shí),,COS系統(tǒng)涉及的內(nèi)容相當(dāng)廣泛,,本文僅僅是通過(guò)一個(gè)具體實(shí)例對(duì)COS系統(tǒng),尤其是它的文件系統(tǒng)作了一些研究工作,,更深入廣泛的內(nèi)容還有待于今后的進(jìn)一步研究,。