智能卡操作系統Chip Operating System(片內操作系統)概述
- 2019-01-13 20:28:00
- 諾塔斯智能科技 原創
- 3942
隨著IC卡從簡單的同步卡發展到異步卡,從簡單的EPROM卡發展到內帶微處理器的智能卡(又稱CPU卡),對IC卡的各種要求越來越高。而卡本身所需要的各種管理工作也越來越復雜,因此就迫切地需要有一種工具來解決這一矛盾,而內部帶有微處理器的智能卡的出現,使得這種工具的實現變成了現實。人們利用它內部的微處理器芯片,開發了應用于智能卡內部的各種各樣的操作系統。COS的出現不僅大大地改善了智能卡的交互界面,使智能卡的管理變得容易;而且,更為重要的是使智能卡本身向著個人計算機化的方向邁出了一大步,為智能卡的發展開拓了極為廣闊的前景。
COS的全稱是Chip Operating System(片內操作系統),它一般是緊緊圍繞著它所服務的智能卡的特點而開發的。由于不可避免地受到了智能卡內微處理器芯片的性能及內存容量的影響,因此,COS在很大程度上不同于我們通常所能見到的微機上的操作系統(例如DOS、UNIX等)。首先,COS是一個專用系統而不是通用系統。即:一種COS一般都只能應用于特定的某種(或者是某些)智能卡,不同卡內的COS一般是不相同的。因為COS一般都是根據某種智能卡的特點及其應用范圍而特定設計開發的,盡管它們在所實際完成的功能上可能大部分都遵循著同一個國際標準。其次,與那些常見的微機上的操作系統相比較而言,COS在本質上更加接近于臨控程序、而不是一個通常所謂的真正意義上的操作系統,這一點至少在目前看來仍是如此。因為在當前階段,COS所需要解決的主要還是對外部的命令如何進行處理、響應的問題,這其中一般并不涉及到共享、并發的管理及處理,而且就智能卡在目前的應用情況而盲,并發和共享的工作也確實是不需要曲。COS在設計時一般都是緊密結合智能卡內存儲器分區的情況,按照國際標準(ISO/IEC7816系列標準)中所規定的一些功能進行設計、開發。但是由于目前智能卡的發展速度很快,而國際標準的制定周期相對比較長一些,因而造成了當前的智能卡國際標準還不太完善的情況,據此,許多廠家又各自都對自己開發的COS作了一引起擴充。
就目前而言,還沒有任何一家公司的COS產品能形成一種工業標準。因此本文將主要結合現有的(指l994年以前)國際標準,重點講述COS的基本原理以及基本功能,在其中適當地列舉它們在某些產品中的實現方式作為例子。
COS的主要功能是控制智能卡同外界的信息交換,管理智能卡內的存儲器并在卡內部完成各種命令的處理。其中,與外界進行信息交換是COS最基本的要求。在交換過程中,COS所遵循的信息交換協議目前包括兩類:異步字符傳輸的T=0協議以及異步分組傳輸的T=l協議。這兩種信息交換協議的具體內容和實現機制在IS0/IEC78l6-3和IS0/IEC7816-3A3標準中作了規定;而COS所應完成的管理和控制的基中功能則是在 ISO/IEC78l6-4標準中作出規定的。在該國際標準中,還對智能卡的數據結構以及COS的基本命令集作出了較為詳細的說明。至于IS0/IEC78l6-l和2,則是對智能卡的物理參數、外形尺寸作了規定,它們與COS的關系不是很密切。
COS的體系
依賴于上一節中所描述的智能卡的硬件環境,可以設計出各種各樣的COS。但是,所有的COS都必須能夠解決至少三個問題,即:文件操作、鑒別與核實、安全機制。事實上,鑒別與核實和安全機制都屬于智能卡的安全體系的范疇之中,所以,智能卡的COS中最重要的兩方面就是文件與安全。但再具體地分析一下,則我們實際上可以把從讀寫設備(即接口設備IFD)發出命令到卡給出響應的一個完整過程劃分為四個階段,也可以說是四個功能模塊:傳送管理器(TM)、安全管理器(SM)、應用管理器(AM)和文件管理器(FM)。其中,傳送管理器用于檢查信息是否被正確地傳送。這一部分主要和智能卡所采用的通信協議有關;安全管理器主要是對所傳送的信息進行安全性的檢查或處理,防止非法的竊聽或侵入;應用管理器則用于判斷所接收的命令執行的可能性;文件管理器通過核實命令的操作權限,最終完成對命令的處理。對于一個具體的COS命令而言,這四個階段并不一定都是必須具備的,有些階段可以省略,或者是并人另一階段中;但一般來說,具備這四個階段的COS是比較常見的。以下我們將按照這四個階段對COS進行較為詳細的論述。在這里需要提起注意的是,智能卡中的“文件”概念與我們通常所說的“文件”是有區別的。盡管智能卡中的文件內存儲的也是數據單元或記錄,但它們都是與智能卡的具體應用直接相關的。一般而言,一個具體的應用必然要對應于智能卡中的一個文件,因此,智能卡中的文件不存在通常所謂的文件共享的情況。而且,這種文件不僅在邏輯廣必須是完整的,在物理組織上也都是連續的。此外,智能卡中的文件盡管也可以擁有文件名,但對文件的標識依靠的是與卡中文件—一對應的文件標識符,而不是文件名。因為智能卡中的文件名是允許重復的,它在本質上只是文件的一種助記符,并不能完全代表整個文件。
傳送管理(Transmission Manager)
傳送管理主要是依據智能卡所使用的信息傳輸協議,對由讀寫設備發出的命令進行接收。同時,把對命令的響應按照傳輸協漢的格式發送出去。由此可見,這一部分主要和智能卡具體使用的通信協議有關,而且,所采用的通信協議越復雜,這一部分實現起來也就越困難、越復雜。我們在前面提到過目前智能技術卡采用的住處傳輸協議一般是T=0協議和T=1協議,如果說這兩類協議的COS在實現功能上有什么不同的話,主要就是在傳送管理器的實現上有不同。不過,無論是采用T=0協議還T=1協議,智能卡在信息交換時使用的都是異步通信模式;而且由于智能卡的數據端口只有一個,此信息交換也只能采用半雙工的方式,即在任一時刻,數據端口上最多只能有一方(智能卡或者讀寫設備)在發送數據。T=0、T=1協議的不同之處在于它們數據傳輸的單位和格式不一樣,T=0協議以單字節的字符為基本單位,T=1協議則以有一定長度的數據塊為傳輸的基本單位。
如果傳送管理器認為對命令的接收是正確的,那么,它一般是只將接收到的命令的信息部分傳到下一功能模塊,即安全管理器,而濾掉諸如起始位、停止位之類的附加信息。相應地,當傳送管理器在向讀寫設備發送應答的時候,則應該對每個傳送單位加上信息交換協議中所規定的各種必要的附屬信息。
安全體系(Security Structure)
智能卡的安全體系是智能卡COS中一個極為重要的部分,它涉及到卡的鑒別與核實方式的選擇,包括COS在對卡中文件進行訪問時的權限控制機制,還關系到卡中信息的保密機制??梢哉J為,智能卡之所以能夠迅速地發展并且流行起來.其中一個重要的原因就在于它能夠通過COS的安全體系給用戶提供一個較高的安全ttributes)和安全機制(SecurityMachinams) 。其中,安全狀態是指智能卡在當前所處的一種狀態,這種狀態是在智能卡進行完復位應答或者是在它處理完某命令之后得到的。事實上,我們完全可以認為智能卡在整個工作過程中始終都是處在這樣或是那樣的一種狀態之中,安全狀態通??梢岳弥悄芸ㄔ诋斍耙呀洕M足條件的集合來表示。安全屬性實際上是定義了執行某個命令所需要的…些條件,只有智能卡滿足了這些條件,該命令才是可以執行的。因此,如果將智能卡當前所處的安全狀態與某個操作的安全屬性相比較,那么根據比較的結果就可以很容易地判斷出一個命令在當前狀態下是否是允許執行的,從而達到了安全控制的目的和安全狀態與安全屬性相聯系的是安全機制。安全機制可以認為是安全狀態實現轉移所采用的轉移方法和手段,通常包括:通行字鑒別,密碼鑒別,數據鑒別及數據加密。一種安全狀態經過上述的這些手段就可以轉移到另一種狀態,把這種狀態與某個安全屬性相比較,如果一致的話,就表明能夠執行該屬性對應的命令,這就是COS安全體系的基本工作原理。從上面對cos安全體系的工作原理的敘述中,我們可以看到,相對于安全屬性和安全狀態而言,安全機制的實現是安全體系中極為重要的一個方面。沒有安全機制,cos就無法進行任何操作。而從上面對安全機制的介紹中,我們可以看到,coS的安全機制所實現的就是如下三個功能:鑒別與核實,數據加密與解密,文件訪問的安全控制。因此,我們將在下面對它們分別進行介紹。其中,關于文件訪問的安全控制,由于它與文件管理器的聯系十分緊密,因此我們把它放到文件系統中加以討論。
鑒別與核實:鑒別與核實其實是兩個不同的概念,但是由于它們二者在所實現的功能上十分地相似,所以我們同時對它們進行討論,這樣也有利于在比較中掌握這兩個概念。
通常所謂的鑒別(Authentication)指的是對智能卡(或者是讀寫設備)的合法性的驗證,即是如何判定一張智能卡(或讀寫設備)不是偽造的卡(或讀寫設備)的問題;而核實(verlfy)是指對智能卡的持有者的合法性的驗證,也就是如何判定一個持卡人是經過了合法的授權的問題。由此可見,二者實質都是對合法性的一種驗證,就其所完成的功能而言是十分類似的。但是,在具體的實現方式上,由于二者所要驗證的對象的不同,所采用的手段也就不盡相同了。具體而言,在實現原理上,核實是通過由用戶向智能卡出示僅有他本人才知道的通行字,并由智能卡對該通行字的正確性進行判斷來達到驗證的目的的。在通行字的傳送過程中,有時為了保證不被人竊聽還可以對要傳送的信息進行加密/解密運算,這一過程通常也稱為通行字鑒別。
鑒別則是通過智能卡和讀寫設備雙方同時對任意一個相同的隨機數進行某種相同的加密運算(目前常用DES算法),然后判斷雙方運算結果的一致性來達到驗證的目的。根據所鑒別的對象的不同,COS又把鑒別分為內部鑒別(Internal Authentlcation)和外部鑒別(EXternal Authentication)兩類。這里所說的"內部"、"外部"均以智能卡作為參照點,因此,內部鑒別就是讀寫設備對智能卡的合法性進行的驗證;外部簽別就是智能卡對讀寫設備的合法性進行的驗證。
智能卡通過鑒別與核實的方法可以有效地防止偽卡的使用,防止非法用戶的入侵,但還無法防止在信息交換過程中可能發生的竊聽。因此,在卡與讀寫設備的通信過程中對重要的數據進行加密就作為反竊聽的有效手段提了出來。我們下面僅對加密中的一個重要部件密碼在COS中的管理及存儲原理加以說明。
密碼管理:目前智能卡中常用的數據加密算法是DES算法。采用DES算法的原因是因為該算法已被證明是一個十分成功的加密算法,而且算法的運算復雜度相對而言也較小,比較適用于智能卡這樣運算能力不是很強的情況。 DES算法的密碼(或稱密鑰)長度是64位的。COS把數據加密時要用到的密碼組織在一起,以文件的形式儲存起來,稱為密碼文件。最簡單的密碼文件就是長度為8個字節的記錄的集合,其中的每個記錄對應著一個DES密碼;較為復雜的密碼文件的記錄中則可能還包含著該記錄所對應的密碼的各種屬性和為了保證每個記錄的完整性而附加的校驗和信息。其中的記錄頭部分存儲的就是密碼的屬性信息,例如是可以應用于所有應用文件的密碼還是只對應某-應用文件可用的密碼;是可以修改的還是只能讀取的密碼等等。但是,不論是什么樣的密碼文件,作為一個文件本身,COS都是通過對文件訪問的安全控制機制來保證密碼文件的安全性的。
當需要進行數據加密運算時,COS就從密碼文件中選取密碼加入運算。從密碼文件中讀出密碼時,與讀取應用數據一樣,只要直接給出密碼所在的地址就可以了。當然,最簡單的產生密碼的方法是直接從密碼文件中隨機讀出一個密碼作為加密用密碼。但是這樣的機制可能會多次選中同一密碼,從而給竊聽者提供破譯的機會,安全性不太高。因此,比較好的辦法是在隨機抽取出一個密碼后再對密碼本身作一些處理,盡量減少其重復出現的機會。
例如PCOS產品中,采用的辦法就是對從密碼文件中選出的密碼首先進行一次DES加密運算,然后將運算結果作為數據加密的密碼使用。其計算公式如下:Key=DES(CTC,K(a))式中,K是從密碼文件中隨機選取的一個密碼;CTC是一個記錄智能卡的交易次數的計數器,該計數器每完成一次交易就增一;key就是最后要提供給數據加密運算使用的密碼。使用這種方法可以提高智能卡的安全性,但卻降低了執行的效率。因此,具體采用什么樣的方法來產生密碼應當根據智能卡的應用范圍及安全性要求的高低而具體決定。
應用管理器(AppIication Manager)
應用管理器的主要任務在于對智能卡接收的命令的可執行性進行判斷。關于如何判斷一條命令的可執行性,我們已經在安全體系一節中作了說明,所以我們可以認為,應用管理器的實現主要是智能卡應用軟件的安全機制的實現問題。而因為智能卡的各個應用都以文件的形式存在,所以應用管理器的本質就是我們將要在下一節加以討論的文件訪問的安全控制問題。正是基于這一點,我們也可以把應用管理器看作是文件管理器的一個部分。文件管理器(File Manager)
與安全一樣,文件也是COS中的一個極為重要的概念。所謂文件,是指關于數據單元或卡中記錄的有組織的集合。COS通過給每種應用建立一個對應文件的方法來實現它對各個應用的存儲及管理。因此,COS的應用文件中存儲的都是與應用程序有關的各種數據或記錄。此外,對某些智能卡的COS,可能還包含有對應用文件進行控制的應用控制文件。在CoS中,所有的文件都有一個唯一的文件標識符(Filel Identifier),因此通過文件標識符就可以直接查找所需的文件。此外,每個文件還可以有一個文件名作為助記符,它與文件標識符的不同之處在于它是可以重復的。CoS中的各文件在智能卡的個人化過程中由發行商(Is suer)根據卡的應用而創建,對卡的用戶而言通常是不能對文件進行創建或刪除的。但是用戶可以根據情況對文件內容進行修改,可以對文件中的記錄或數據單元進行增加、刪除等操作。(1) 文件系統:COS的文件按照其所處的邏輯層次可以分為三類; 主文件(Master File),專用文件(Dedicated File) 以及基本文件(Elementary File)。其中,主文件對任何COS都是必不可少的,它是包含有文件控制信息及可分配存儲區的唯一文件,其作用相當于是CoS文件系統的根文件,處于COS文件系統的最高層;基本文件也是必不可少的一個部分,它是實際用來存儲應用的數據單元或記錄的文件,處于文件系統的最底層,而專用文件是可選的,它存儲的主要是文件的控制信息、文件的位置、大小等數據信息。我們可以用下圖的樹狀結構來形象地描述一個COS的文件系統的基本結構。
當然,對于具體的某個COS產品,很可能由于應用的不同,對文件的實際分類表示會有所不同。但只要仔細地進行分析,都可以歸結為上面的三個邏輯層次。例如前面提到過的PCOS產品。它對文件的分類不是按照邏輯層次劃分的,而是根據文件的用途進行的。它的文件分為三類: COS文件(COS File)、密碼文件(Key File)和錢包文件(Purses File)。其中所謂的COS文件保存有基本的應用數據;密碼文件存儲的是進行數據加密時要用到的密碼;錢包文件的作用有些類似 于我們日常生活中的錢包。由此可見,它的這三類文件本質上又都介于基本文件(EF)類。在PCOS中,專用文件的概念不是很明顯,但是事實上,如果大家留心的話,那么從以前的論述中,應該不難發現該產品存儲器分區中FAT區內的文件的作用就類似于專用文件;而整張PCOS卡本身的性質實際就是一個主文件。COS文件有四種邏輯結構:透明結構,線性定長結構,線性變長結構,定長循環結構。它們的定義及特點可以參閱ISO/IEC78l 6-4協議中的有關部分,這里不再詳述。不過無論采取的是什么樣的邏輯結構,COS中的文件在 智能卡的存儲器中都是物理上連續存放的。卡中數據的存取方式、記錄的編號方法、數據單元的大小等作為文件系統的特征,在智能卡的復位應答過程中由卡給出。
一般而言,在智能卡中最為重要的數據存取方式還是隨機存取方式,也就是卡的用戶在得到授權后,可以直接地任意訪問文件中的某個數據單元或記錄。至于COS具體對文件可以進行什么樣的操作.我們將在cos的命令系統中進行討論。
(2) 文件訪問安全:對文件訪問的安全性控制是cos系統中的一個十分重要的部分,由于目前的國際標準(1S0/IEC78l 6-4)在這方面基本沒有作出什么實質性的規定,因此,現有的文件訪問的安全控制機制的具體實現方式多種多樣。我們在這里準備介紹其中比較有代表性的兩種實現方式:鑒別寄存器方式以及狀態機方式。其中,采用鑒別寄存器方式的有PCOS、ME2000等產品:采用狀態機方式的產品有STARCOS。采用鑒別寄存器方式時,通常是在內存RAM中設置一個8位(或者是16位)長的區域作為鑒別用寄存器。這里的鑒別是指對安全控制密碼的鑒別。鑒別用寄存器所反映的是智能卡在當前所處的安全狀態。采用這種方式時,智能卡的每個文件的文件頭(或者是文件描述器)中通常都存儲有該文件能夠被訪問的條件,一般是包括讀、寫兩個條件,分別用cr、cu表示這就構成了該文件的安全屬性。而用戶通過向智能卡輸入安全密碼.就可以改變卡的安全狀態,這一過程我們通常稱為出示,這就是鑒別寄存器為主的安全機制。把上面的兩方面結合起來,就能夠對卡中文件的讀寫權限加以控制了。具體的操作機制我們以PCOS為例加以描述。
首先,PCOS中的鑒別寄存器是8位字長的,這8位字長的各位分別與PCOS存儲器中保密字區內的7個安全密碼的序號一一對應。寄存器中每一位的初始值都被置為"o"。如果用戶向智能卡出示了某一個安全密碼,并且被判斷為正確的話,系統就在鑒別寄存器的相應位上寫入"l"。例如,如果處于保密字區中的第2個安全密碼被用戶正確出示的話,PCoS就在寄存器的第2位上寫"l"。同時,文件描述器中的讀、寫條件Cr、Cu保存的都是在o和7之間的一個數,它的值對應于該文件進行讀(或寫)操作時所需要出示的密碼在保密字區小的序號。在對某個文件進行讀(或寫)操作之前,系統首先判斷在鑒別寄存器內對應的第Cr(或Cu)位是否己被置為"l" (如果Cr等于O,就表示該文件可以被用戶隨意讀??;對于Cu也是一樣),只有當該位為"l"時,才表示讀(或寫)權限已經得到滿足.才能對該文件進行讀(或寫)操作。這也就是說,如果用戶想要對一個件進行操作的話,就必須要首先出示對應于該文件的安全屬性為正確的安全密碼。系統據此就達到了對文件的訪問進行安全控制的目的。與鑒別寄存器方式完全不一樣,狀態機方式更加明顯地表示出安全狀態、安全屬性以及安全機制的概念以及它們之間的關系(關于狀態機的知識不屬于本文章的范疇,有興趣的讀者請自行查閱有關資料)。以STARCoS為例,它采用的是一種確定狀態機的機制,該機制通過系統內的應用控制文件(Application Control File,ACF)而得以實現。ACF是一個線性變長結構的文件,其rh記錄0l包括了該ACP所控制的應用可以允許的所有命令的指令碼 (INS);其余的記錄分別與記錄ol中的指令碼一一對應,其中存儲的都是對應命令的變體(Varient)記錄。所謂變體記錄指的是這樣的一些記錄:記錄中存儲的是控制信息、初始狀態、可能的下一狀態以及某些附加的指令信息的組合,利用ACF中的這些變體記錄就可以形成狀態轉移圖。在變體記錄中,控制信息部分是必不可少的。不同的變體記錄主要在兩個方面有區別:一是命令所允許的狀態不同,二是以CLA字節開始的指令信息部分不相同。這主要是由命令要操作的應用的對象不同而決定的。
利用ACF,COS系統就可以實現對文件訪問的安全控制了。當系統接收到一個應用進行操作的一條命令后,首先檢驗其指令碼是否在相應的ACF文件的記錄01中。如果不在其中,系統就認為該命令是錯誤的。在找到了對應的指令碼后,系統把命令的其余部分與該命令對應的備變體記錄中的指令信息按照該變體記錄的控制信息的要求進行比較,如果比較結果一致,那么再查驗變體記錄中的初始狀態信息。若所有這些檢測都順利通過,那么系統就進入對應變體記錄中指明的下一狀態;否則,繼續查找下一個變體記錄直到發現相應變體或是查完該命令對應的所有變體記錄為止。如果沒有找到相應的變體記錄,說明該命令是非法的;否則就進入下一步對命令的處理,即由COS調用實際的處理過程執行對命令的處理。并且僅當處理過程正常結束的時候,系統才進入一個新的狀態,并開始等待對下一條命令的接收。
熱門產品
發表評論
文章分類
熱門文章推薦
關于PSAM卡、SAM卡、SIM卡的特征和區別
2019-03-22
由于人們對PSAM卡、SAM卡、SIM卡的概念理解不到位加之很少仔細的對PSAM卡、SAM卡、SIM卡實物進行區別,容易將PSAM卡、SAM卡、SIM卡混為一談。諾塔斯智能科技就PSAM卡、SAM卡、SIM卡三者特征和作用進行介紹,幫助大家對PSAM卡、SAM卡、SIM卡進行深刻的認識和區分。
M1卡常見問題和處理方法
2019-02-21
M1卡是恩智浦出品的芯片縮寫,全稱為NXP Mifare1系列,常用的有S50及S70兩種型號,截止到2013年11月4日,已經有國產芯片與其兼容,利用PVC封裝M1芯片、感應天線,然后壓制成型后而制作的卡即是智能卡行業所說的M1卡。M1卡的優點是可讀可寫的多功能卡,缺點是:價格稍貴,感應距離短,目前適合非定額消費系統、停車場系統、門禁考勤系統等,目前應用最廣泛的非接觸式IC卡。
NFC數據交換格式(NDEF)規范
2019-05-28
為實現標簽和NFC設備,及NFC設備之間的交互通信,NFC論壇定義了稱為NFC數據交換格式(NDEF)的通用數據格式。
NDEF是輕量級的緊湊的二進制格式,可帶有URL,vCard和NFC定義的各種數據類型。
非接觸式IC卡(M1卡)區塊讀寫控制
2019-02-21
非接觸式IC卡系列中的Mifare One (M1卡)的優點是可讀可寫的多功能卡,缺點是:價格稍貴,感應距離短,目前適合非定額消費系統、停車場系統、門禁考勤系統等,目前應用最廣泛的 非接觸式IC卡。諾塔斯智能科技專業從事非接觸式IC卡讀寫器的研發與銷售,為各行業用戶提供專業的IC卡系統解決方案。
相關問題
FAQ
聯系我們
聯系人: | 張經理 |
---|---|
電話: | 400-023-6659 |
傳真: | 023-68798110 |
Email: | 843718693@qq.com |
QQ: | 843718693 |
微信: | Lotus-Smart |
微博: | lotusreader |
旺旺: | 諾塔斯智能科技有限公司 |
地址: | 重慶市江北區宏帆路36號宏帆天地1棟6樓 |