手機智慧卡的作業系統——COS技術概述
COS概述
COS的全稱是Chip Operating System(片內作業系統),它一般是緊緊圍繞著它所服務的智慧卡的特點而開發的。由於不可避免地受到了智慧卡內微處理器晶片的效能及記憶體容量的影響,因此,COS在很大程度上不同於我們通常所能見到的微機上的作業系統(例如DOS、UNIX等)。
首先,COS是一個專用系統而不是通用系統。即:一種COS一般都只能應用於特定的某種(或者是某些)智慧卡,不同卡內的COS一般是不相同的。因為COS一般都是根據某種智慧卡的特點及其應用範圍而特定設計開發的,儘管它們在所實際完成的功能上可能大部分都遵循著同一個國際標準。其次,與那些常見的微機上的作業系統相比較而言,COS在本質上更加接近於臨控程式、而不是一個通常所謂的真正意義上的作業系統,這一點至少在目前看來仍是如此。因為在當前階段,COS所需要解決的主要還是對外部的命令如何進行處理、響應的問題,這其中一般並不涉及到共享、併發的管理及處理,而且就智慧卡在目前的應用情況而盲,併發和共享的工作也確實是不需要曲。COS在設計時一般都是緊密結合智慧卡記憶體儲器分割槽的情況,按照國際標準(ISO/IEC7816系列標準)中所規定的一些功能進行設計、開發。但是由於目前智慧卡的發展速度很快,而國際標準的制定週期相對比較長一些,因而造成了當前的智慧卡國際標準還不太完善的情況,據此,許多廠家又各自都對自己開發的COS作了一引起擴充。
就目前而言,還沒有任何一家公司的COS產品能形成一種工業標準。因此本章將主要結合現有的(指1994年以前)國際標準,重點講述CO5的基本原理以及基本功能,在其中適應當地列舉它們在某些產品中的實現方式作為例子。CO5的主要功能是控制智慧卡和外界的資訊交換,管理智慧卡內的儲存器並在卡內部完成各種命令的處理。其中,與外界進行資訊交換是COS最基本的要求。在交換過程中,COS所遵循的資訊交換協議目前包括兩類:類字元傳輸的T=0協議以及非同步分組傳輸的T=1協議。這兩種資訊交換協議的具體內容和實現機制在ISO/IEC7816—3和ISO/IEC7816—3A3標準中作了規定;而COS所應完成的管理和控制的基中功能則是在ISO/IEC7816—4標準中作出規定的。在該國際標準中,還對智慧卡的資料結構以及COS的基本命令集作出了較為詳細的說明。至於ISO/IEC7816—1和2,則是對智慧卡的物理引數、外形尺寸作了規定,它們與COS的關係不是很密切。
COS的體系
依賴於上一節中所描述的智慧卡的硬體環境,可以設計出各種各樣的COS。但是,所有的COS都必須能夠解決至少三個問題,即:檔案操作、鑑別與核實、安全機制。事實上,鑑別與核實和安全機制都屬於智慧卡的安全體系的範疇之中,所以,智慧卡的COS中最重要的兩方面就是檔案與安全。但再具體地分析一下,則我們實際上可以把從讀寫裝置(即介面裝置IFD)發出命令到卡給出響應的一個完整過程劃分為四個階段,也可以說是四個功能模組:傳送管理器(TM)、安全管理器(SM)、應用管理器(AM)和檔案管理器(FM),其中,傳送管理器用於檢查資訊是否被正確地傳送。這一部分主要和智慧卡所採用的通訊協議有關;安全管理器主要是對所傳送的資訊進行安全性的檢查或處理,防止非法的竊聽或侵入;應用管理器則用於判斷所接收的命令執行的可能性;檔案管理器通過核實命令的操作許可權,最終完成對命令的處理。對於一個具體的COS命令而言,這四個階段並不一定都是必須具備的,有些階段可以省略,或者是並人另一階段中;但一般來說,具備這四個階段的COS是比較常見的。以下我們將按照這四個階段對COS進行較為詳細的論述。
在這裡需要提起注意的是,智慧卡中的“YYWR”概念與我們通常所說的“檔案”是有區別的。儘管智慧卡中的檔案記憶體儲的也是資料單元或記錄,但它們都是與智慧卡的矍應用直接相關的。一般而言,一個具體的應用必然要對應於智慧卡中的一個檔案,因此,智慧卡中的檔案不存在通常所謂的檔案共享的情況。而且,這種檔案不僅在邏輯廣必須是完整的,在物理組織上也都是連續的。此外,智慧卡中的檔案儘管也可以擁有檔名(File Name),但對檔案的標識依靠的是與卡中檔案——對應的檔案識別符號(File Identifier),而不是檔名。因為智慧卡中的檔名是允許重複的,它在本質上只是檔案的一種助記符,並不能完全代表某個檔案。
1.傳送管理 (Transmission Manager)
傳送管理主要是依據智慧卡所使用的資訊傳輸協議,對由讀寫裝置發出的命令進行接收。同時,把對命令的響應按照傳輸協議的格式傳送出去。由此可見,這一部分主要和智慧卡具體使用的通訊協議有關;而且,所採用的通訊協議越複雜,這一部分實現起來也就越困難、越複雜。
我們在前面提到過目前智慧卡採用的資訊傳輸協議一般是T=0協議和T=1協議,如果說這兩類協議的COS在實現功能上有什麼不同的話,主要就是在傳送管理器的實現上有不同。不過,無論是採用T=0協議還是T=1協議,智慧卡在資訊交換時使用的都是非同步通訊模式;而且由於智慧卡的資料埠只有一個,此資訊交換也只能採用半雙工的方式,即在任一時刻,資料埠上最多隻能有一方(智慧卡或者讀寫裝置)在傳送資料。T=0、T=1協議的不同之處在於它們資料傳輸的單位和格式不一樣,T=0協議以單位元組的字元為基本單位,T=1協議則以有一定長度的資料塊為傳輸的基本單位。傳送管理器在對命令進行接收的同時,也要對命令接收的正確性作出判斷。這種判斷只是針對在傳輸過程中可能產生的錯誤預言的,並不涉及命令的具體內容,因此通常是利用諸如奇偶校驗位、校驗和等手段來實現。對分組傳輸協議,則還可以通過判斷分組長度的正確與否來實現。當發現命令接收有錯後,不同的資訊交換協議可能會有不同的處理方法:有的協議是立刻向讀寫裝置報告,並且請求重發原資料;有的則只是簡單地在響應命令上作一標記,本身不進行處理,留等它後面的功能模組作出反應。這些都是由交換協議本身所規定的。
如果傳送管理器認為對命令的接收是正確的,那麼,它一般是隻將接收到的命令的資訊部分傳到下一功能模組,即安全管理器,而濾掉諸如起始位、停止位之類的附加資訊。相應地,當傳送管理器在向讀寫裝置傳送應答的時候,則應該對每個傳送單位加上資訊交換協議中所規定的各種必要的附屬資訊。
2.安全體系 (Security Scruture)
智慧卡的安全體系是智慧卡的COS中一個極為重要的部分,它涉及到卡的鑑別與核實方式的選擇,包括COS在對卡中檔案進行進行訪問時的許可權控制機制,還關係列卡中資訊的保密機制。可以認為,智慧卡之所以能夠迅速地發展並且流行起來,其中的一個重要的原因就在於它能夠通過COS的安全體系給使用者提供一個較高的安全性保證。
安全體系在概念上包括三個部分:安全狀態(Security Status),安全屬性(Security Attributes)以及安全機制(Security Machanisms)。其中,安全狀態是指智慧卡在當前所處的一種狀態,這種狀態是在智慧卡進行完復位應答或者是在它處理完某命令之後得到的。事實上,我們完全可以認為智慧卡在整個的工作過程中始終都是處在這樣的、或是那樣的一種狀態之中,安全狀態通常可以利用智慧卡在當前已經滿足的條件的集合來表示。
安全屬性實際上是定義了執行某個命令所需要的一些條件,只有智慧卡滿足了這些條件,該命令才是可以執行的。因此,如果將智慧卡當前所處的安全狀態與某個操作的安全屬性相比較,那麼根據比較的結晶就可以很容易地判斷出一個命令在當前狀態下是否是允許執行的,從而達到了安全控制的目的。和安全狀態與安全屬性相聯絡的是安全機制。安全機制可以認為是安全狀態實現轉移所採用的轉移方法和手段,通常包括:通行字鑑別,密碼鑑別,資料鑑別及資料加密。一種安全狀態經過上述的這些手段就可以轉移到另一種狀態,把這種狀態與某個安全屬性相比較,如果一致的話,就表明能夠執行該屬性對應的命令,這就是COS安全體系的基本工作原理。
從上面對COS安全體系的工作原理的敘述中,我們可以看到,相對於安全屬性和安全狀態而言,安全機制的實現是安全體系中極力重要的一個方面。沒有安全機制,COS就無法進行任何操作。而從上面對安全機制的介紹中,我們可以看到,COS的安全機制所實現的就是如下三個功能;鑑別與核實,資料加密與解密,檔案訪問的安全控制。因此,我們將在下面對它們分別進行介紹。其中,關於檔案訪問的安全控制,由於它與檔案管理器的聯絡十分緊密,因此我們把它放到檔案系統中加以討論。
(1)鑑別與核實:鑑別與核實其實是兩個不同的概念,但是由於它們二者在所實現的功能上十分地相似,所以我們同時對它們進行討論,這樣也有利於在比較中掌握這兩個概念。
通常所謂的鑑別(Authentication)指的是對智慧卡(或者是讀寫裝置)的合法性的驗證,即是如何判定一張智慧卡(或讀寫裝置)的問題;而核實(verify)是指對智慧卡的持有者的合法性的驗證,也就是如何判定一個持卡人是經過了合法的授權的問題。由此可見,二者實質都是對合法性的一種驗證,就其所完成的功能而言是十分類似的。但是,在具體的實現方式上,由於二者所要驗證的物件的不同,所採用的手段也就不盡相同了。
具體而言,在實現原理上,核實是通過由使用者向智慧卡出示僅有他本人才知道的通行字,並由智慧卡對該通行字的正確性進行判斷來達到驗證的目的的。在通行字的傳送過程中,有時為了保證不被人竊聽還可以對要傳送的資訊進行加密/解密運算,這一過程通常也稱為通行字鑑別。
鑑別則是通過智慧卡和讀寫裝置雙方同時對任意一個相同的隨機數進行某種相同的加密運算(目前常用DES演算法),然後判斷雙方運算結果的一致性來達到驗證的目的的。
根據所鑑別的物件的不同,COS又把鑑別分為內部鑑別(Internal Authentication)和外部鑑別(External Authentication)兩類。這裡所說的“內部”、“外部”均以智慧卡作為參照點,因此,內部鑑別就是讀寫裝置對智慧卡的合法性進行的驗證;外部鑑別就是智慧F對讀寫裝置的合法性進行的驗證。
智慧卡通過鑑別與核實的方法可以有效地防止偽卡的使用,防止非法使用者的入侵,但還無法防止在資訊交換過程中可能發生的竊聽,因此,在卡與讀寫裝置的通訊過程中對重要的資料進行加密就作為反竊聽的有效手段提了出來。我們下面僅對加密中的一個重要部件——密碼在COS中的管理及儲存原理加以說明。
(2)密碼管理:目前智慧卡中常用的資料加密演算法是DES演算法。採用DES演算法的原因是因為該演算法已被證明是一個十分成功的加密演算法,而且演算法的運算複雜度相對而言也較小,比較適用於智慧卡這樣運算能力不是很強的情況。DES演算法的密碼(或稱金鑰)長度是64位的。COS把資料加密時要用到的密碼組織在一起,以檔案的形式儲存起來,稱為密碼檔案。最簡單的密碼檔案就是長度為8個位元組的記錄的集合,其中的每個記錄對應著一個DES密碼;較為複雜的密碼檔案的記錄中則可能還包含著該記錄所對應的密碼的各種屬性和為了保證每個記錄的完整性而附加的校驗和資訊,其中的記錄頭部分儲存的就是密碼的屬性資訊,例如是可以應用於所有應用檔案可用的密碼;是可以修改的還是隻能讀取的密碼等等。但是:不論是什麼樣的密碼檔案,作為一個檔案本身,COS都是通過對檔案訪問的安全控制機制來保證密碼檔案的安全性的。
當需要進行資料加密運算時,COS就從密碼檔案中選取密碼加入運算。從密碼檔案中讀出密碼時,與讀取應用資料一樣,只要直接給出密碼所在的地址就可以了。當然,最簡單的產生密碼的方法是直接從密碼檔案中隨機讀出一個密碼作為加密用密碼。但是這樣的機制可能會多次選中同一密碼,從而給竊聽者提供破譯的機會,安全性不太高。因此,比較好的辦法是在隨機抽取出一個密碼後再對密碼本身作一些處理,儘量減少其重複出現的機會。例如PBOS產品中,採用的辦法就是對從密碼檔案中選出的密碼首先進行一次DES加密運算,然後將運算結果作為資料加密的密碼使用。其計算公式如下:
Key=DES(CTC,K(a))
公式中,K是從密碼檔案中隨機選取的一個密碼;CTC是一個記錄智慧卡的交易次數的計數器,該計數器每完成一次交將近就增一;key就是最後要提供給資料加密運算使用的密碼。使用這種方法可以提高智慧卡的安全性,但卻降低了執行的效率。因此,具體採用什麼樣的方法來產生密碼應當根據智慧卡的應用範圍及安全性要求的高低而具體決定。
3.應用管理器 (Application Manager)
應用管理器的主要任務在於對智慧卡接收的命令的可執行性進行判斷。關於如何判斷一條命令的可執行性,我們已經在安全體系一節中作了說明,所以我們可以認為,應用管理器的實現主要是智慧卡中的應用軟體的安全機制的實現問題。而因為智慧卡的各個應用都以檔案形式存在,所以應用管理器的本質就是我們將要在下一節加以詞論的檔案訪問的安全控制問題。正是基於這一點,我們也可把應用管理器看作是檔案管理器的一個部分。
4.檔案管理器 (File Manager)
與安全一樣,檔案也是COS中的一個極為重要的概念。所謂檔案,是指關於資料單元或卡中記錄的有組織的集合。COS通過每種應用建立一個對應檔案的方法來實現它對各個應用的儲存及管理。因此,COS的應用檔案中儲存的都是與應用程式有關的備種資料或記錄。此外,對某些智慧卡的COS,可能還包含有對應用檔案進行控制的應用控制檔案。在COS中,所在的檔案都有一個唯一的檔案識別符號(File Identifier),因此通過檔案識別符號就可以直接查詢所需的檔案。此外,每個檔案還可以有一個檔名作為助記符,它與檔案識別符號的不同之處在於它是可以重複的。COS中的各檔案在智慧卡的個人化過程中由發行商(Issuer)根據卡的應用而建立,對卡的使用者而言通常是不能對檔案進行建立工刪除的。但是使用者可以根據情況對檔案內容進行修改,可以對檔案中的記錄或資料單元進行增加、刪除等操作。
(1)檔案系統:
COS的檔案按照其所處的邏輯層次可以分為三類:主檔案(Master File),專用檔案(Dedicated File)以及基本檔案(Eiementary File)。其中,主檔案對任何COS都是必不可少的,它是包含有檔案控制資訊及可分配儲存區的唯一檔案,其作用相當於是COS檔案系統的根檔案,處於COS檔案系統的最高層;基本檔案也是必不可少的一個部分,它是實際用來儲存備應用的資料單元或記錄的檔案,處於檔案系統的最底層,而專用檔案是可選的,它儲存的主要是檔案的控制資訊、檔案的位置、大小等資料資訊。我們可以附圖的樹狀結構來形象地描述一個COS的檔案系統的基本結構。
當然,對於具體的某個COS產品,很可能由於應用的不同,對檔案的實際分類標陳會有所不同。但只要仔細地進行分析,都可以歸結為上面的三個邏輯層次。例如前面提到過的PCOS產品。該產品的儲存器分構情況在前面談到的時候已經作了說明。它對檔案的分類不是按照邏輯層次劃分的,而是根據資料夾的用途進行的。它的檔案分為三類:COS檔案(COS File)、密碼檔案(Key File)和錢夾檔案(Purses File)。其中所謂的COS檔案儲存有基本的應用資料;密碼檔案儲存的是進行資料加密時要用到的密碼;錢夾資料夾的作用有些類似於我們日常生活中的錢包。由此可見,它的這三類檔案本質上其又都屆今基本檔案(EF)類。在PCOS中,專用檔案的概念不是很明顯,但是事實上,如果大家留心的話,那麼從以前的論述中,應該不難發現該產品儲存器分割槽中FAT區內的檔案儲存器的作用就類似於專用檔案;而整張PCOS卡本身的性質實際就是一個主檔案。
COS檔案有四種邏輯結構:透明結構,線性定長結構,線性變長結構,定長迴圈結構。 它們的定義及特點可以參閱ISO/IEC7816—4協議中的有關部分,這裡不再詳述。不過,無論採取的是什麼樣的邏輯結構,COS中的檔案在智慧卡的儲存器中都是物理上連續存放的。卡中資料的存取方式、記錄的編號方法、資料單元的大小 等作為檔案系統的特徵,在智慧卡的復位應答過程中由卡給出。不過一般而言,在智慧卡中最為重要的資料存取方式還是隨機存取方式,也就是卡的使用者在得到授權後,可以直接地任意訪問檔案中的某個資料單元或記錄。至於COS具體對檔案可以進行什麼樣的操作,我們將在COS的命令系統中進行討論。
(2)檔案訪問安全:對檔案訪問的安全性控制是COS系統中的一個十分重要的部分,由於目前的國際標準(ISO/IEC7816-4)在這方面基本沒有作出什麼實質性的規定,因此,現有的檔案訪問的安全控制機制的具體實現方式多種多樣。我們在這裡準備介紹其中比較有代表性的兩種實現方式:鑑別暫存器方式以及狀態機方式。其中,採用鑑別暫存器方式的有PCOS、ME2000等產品:採用狀態機方式的產品有STARCOS。
採有鑑別寄存器方式時,通常是在記憶體RAM中設定一個8位(或者是16位)長的區域作為鑑別用暫存器。這裡的鑑別是指對安全控制密碼的鑑別。鑑別用暫存器所反映的是智慧卡在當前所處的安全狀態。採用這種方式時,智慧卡的每個檔案的檔案頭(或者是檔案描述器)中通常都儲存有該檔案能夠被訪問的條件,一般是包括讀、寫兩個條件:分別用Cr、Cu表示),這就構成了該檔案的安全屬性。而使用者通過向智慧卡輸入安全密碼,就可以改變卡的安全狀態,這一過程我們通常稱為出示,這就是鑑別暫存器為式的安全機制。把上面的二方面結合起來,就能夠對卡中檔案的讀寫許可權加以控制了。