文/諸文
智能卡(smart card)又稱集成電路卡。它將一個集成電路芯片鑲嵌于塑料基片中,封裝成卡的形式。[1]隨著封裝工藝的進步,智能卡數據儲容量變得越來越大,因此多應用智能卡正在不斷取代單應用智能卡,逐步占據市場。例如公交應用、金融應用、社保應用、防災救援應用等等,已具備在一張智能卡上實現的條件。
本文將介紹一種單片智能卡實現多應用的程序結構,以及該智能卡在防災救援方面的應用。
作為智能卡程序的核心,文件系統起到數據存儲、數據管理、數據維護的作用,不僅如此,文件系統還為應用層提供例如讀、寫等操作的訪問機制,滿足在一張智能卡上,安全地運行多個應用。
2.1.1 存儲設計
在此之前,大部分的智能卡內文件結構系統是以單一的一個MF下允許建立多個DF,并且每個DF下允許建立多個EF的樹形結構為主[2]。
而多應用的智能卡內文件結構除了兼容上述結構外,還允許建立兩個或兩個以上互相獨立的MF,我們簡稱為“主MF”、“次MF”,原則上“主MF”和“次MF”具備相同的權限。如圖1所示。
單一MF下的多個應用管理,各個應用之間是由“應用防火墻”隔離的,但是所有的應用都是由其上級的MF進行控制,這也就意味著這些多應用本質上都是由一個卡片發行商管理的。而多MF結構則除了具備單個MF的所有功能外,還可以支持兩個或兩個以上的卡片發行商,他們各自管理自己的“卡片”,從邏輯上看,可以認為支持多張卡片,各個卡片分屬各個發行商管理。
2.1.2 文件格式設計
通常情況下,我們可以把卡內存在的文件格式分為兩大類:通用文件區和應用文件區,存儲空間分配一般也是連續的。

圖1:單MF及多MF文件結構圖

圖2:多應用模型設計
通用文件區常用于存放文件系統中的一些基本信息,例如卡片整體配置信息、卡內剩余空間等,同時也可以作為掉電保護的備份區使用。
應用文件區存儲各行業的應用數據信息,包括個人化信息、行業密鑰信息、記錄文件等。
2.1.3 文件安全性設計
文件的安全性設計主要指文件訪問控制策略。我們假設訪問權限控制器的值可以是0~15之間的某一個值,那么文件系統的目錄分別具有16種不同的訪問權限狀態。只有通過了當前目錄下的個人身份鑒別或者外部認證,才能改變當前目錄的訪問權限狀態。
安全機制是指某種訪問權限狀態轉移為另外一種訪問權限狀態所采用的方法和手段,通過核對口令和外部認證來改變訪問權限狀態。某些敏感的數據讀寫或者指令的執行必須達到一定的權限等級,才允許用戶操作,從而有效地保證敏感數據的安全性。
2.1.4 環境的可靠性設計
智能卡在使用過程中不可避免會遇到外部機具供電不穩,又或者已達到自身存儲壽命的上限,所以我們在設計的時候,需要考慮以上不確定的因素。
通常為了防止卡片在使用過程中突然掉電,我們會先把數據寫入備份區,然后再將備份區的數據更新至指定目標區。
數據備份流程按以下流程依次執行:把目標地址區的數據寫入備份區、設置備份標識、寫正式數據、清除備份標識。
每次智能卡上電??砂匆韵铝鞒踢M行數據恢復:檢查備份區標識、用備份數據跟新正式數據、清除備份標識。
根據正常流程可以看出,備份標識總共有兩種狀態:置位、未置位。如果備份標識位置位,表示上次處理沒有正常完成,需要進行數據恢復操作。如果備份標識位未置位,表示上次處理正常完成,無需進行數據恢復操作。
由于數據備份存在頻繁的讀寫操作,所以備份區不能靜態分配,需要動態選擇。因此,程序應選擇采用“循環寫空閑塊”的方式,實現數據備份功能。
多應用對外而言是指智能卡如何管理不同的應用,包括應用的建立、激活、刪除、鎖定、解鎖等。智能卡中可以存在多個目錄文件,每個目錄文件都有自己專用的基礎數據文件和密鑰文件,每個應用之間互相獨立,具有“防火墻”功能。
應用防火墻功能都是由應用管理模塊實現的。用戶在當前應用下只能使用當前應用的下的密鑰文件,同樣也只能使用當前應用下的基礎數據文件。
基于支持多應用智能卡,設計了一種在地震救援方面的模型,如圖2所示。
智能卡通常存在接觸式接口(符合ISO7816協議[3])和非接觸接口(符合ISO14443協議[4])兩個邏輯傳輸通道。兩個通道既能獨立的進行數據傳輸又需要互相協調工作,當然也和芯片內核存在密切聯系。
本文介紹了在多應用環境下,文件系統、安全機制、結構模型、通訊模式等方面設計內容,可在地震救援工作中起到輔助作用,進一步提高防災救援的效率。