隨著IC卡從簡單的同步卡發展到異步卡,從簡單的E-PROM卡發展到內帶微處理器的智能卡(又稱CPU卡),對IC卡的各種要求越來越高。而卡自己所需要的各種管理工作也越來越複雜,因此就迫切地需要有一種工具來解決這一矛盾,而內部帶有微處理器的智能卡的出現,使得這種工具的實現變成了現實。人們使用它內部的微處理器芯片,開發了應用于智能卡內部的各種各樣的操作系統,也就是在本節將要論述的COS。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表达),這就構成了該文件的安全屬性。而用戶通過向智能卡輸入安全密碼,就可以改變卡的安全狀態,這一過程我們通常稱爲出示,這就是鑒別寄存器爲式的安全機制。把上面的二方面結合起來,就能夠對卡中文件的讀寫權限加以控制了。 目前深圳明華可提供多種一般及開放標准的多功能IC卡操作系統。明華SmartCOS操作系統系列中文产品适合高度安全的要求,是适合ISO標准的完全的多功能IC卡操作系統。目前,明華SmartCOS已被廣泛用于應用于金融、社保、郵政、安全、工商、稅務、交通、公用事業等各個領域,是經過多種考驗的可靠IC卡操作系統。明華SmartCOS中文产品家族包括以下中文产品: SmartCOS-PBOC 金融智能卡 SmartCOS-SB 社保智能卡 SmartCOS-PK PKI智能卡 SmartCOS-DI 雙界面智能卡 SmartCOS-PSAM 智能卡/模塊 SmartCOS-ESAM模塊 SmartCOS XC SmartCOS 通信中文产品 SmartCOS PSAM 終端安全控制模塊(卡) SmartCOS SH 石化加油卡
|