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