歡迎您訪問鄭州興邦電子股份有限公司官方網站!
    阿里巴巴誠信通企業
    全國咨詢熱線:40000-63966
    興邦電子,中國水控機第一品牌

    聯系興邦電子

    全國咨詢熱線:40000-63966

    售后:0371-55132951/55132952

    工廠:河南省 鄭州市 高新區蓮花街電子電器產業園

    智能卡操作系統

    文章出處:http://www.xujuanpiju.com 作者:不詳   人氣: 發表時間:2011年09月08日

    [文章內容簡介]:智能卡操作系統

    COS概述
       
      隨著IC卡從簡單的同步卡發展到異步卡,從簡單的 EPROM卡發展到內帶微處理器的智能卡(又稱CPU卡),對IC卡的各種要求越來越高。而卡本身所需要的各種管理工作也越來越復雜,因此就迫切地需要有一種工具來解決這一矛盾,而內部帶有微處理器的

      智能卡的出現,使得這種工具的實現變成了現實。人們利用它內部的微處理器芯片,開發了應用于智能卡內部的各種各樣的操作系統,也就是在本節將要論述的COS。 COs的出現不僅大大地改善了智能卡的交互界面,使智能卡的管理變得容易;而且,更為重要的是使智能卡本身向著個人計算機化的方向邁出了一大步,為智能卡的發展開拓了極為廣闊的前景。

      COS的全稱是Chip Operating System(片內操作系統),它一般是緊緊圍繞著它所服務的智能卡的特點而開發的。由于不可避免地受到了智能卡內微處理器芯片的性能及內存容量的影響,因此,COS在很大程度上不同于我們通常所能見到的微機上的操作系統(例如DOS、UNIX等)。首先,COS是一個專用系統而不是通用系統。即:一種COS一般都只能應用于特定的某種(或者是某些)智能卡,不同卡內的COS一般是不相同的。因為coS一般都是根據某種智能卡的特點及其應用范圍而特定設計開發的,盡管它們在所實際完成的功能上可能大部分都遵循著同一個國際標準。其次,與那些常見的微機上的操作系統相比較而言,COS在本質上更加接近于監控程序、而不是一個通常所謂的真正意義上的操作系統,這一點至少在目前看來仍是如此。因為在當前階段,COS所需要解決的主要還是對外部的命令如何進行處理、響應的問題,這其中一般并不涉及到共享、并發的管理及處理,而且就智能卡在目前的應用情況而盲,并發和共享的工作也確實是不需要曲。

      COS在設計時一般都是緊密結合智能卡內存儲器分區的情況,按照國際標準(ISO /IEC 7816系列標準)中所規定的一些功能進行設計、開發。但是由于目前智能卡的發展速度很快,而國際標準的制定周期相對比較長一些,因而造成了當前的智能卡國際標準還不太完善的情況,據此,許多廠家又各自都對自己開發的COS作了一些擴充。就目前而言,還沒有任何一家公司的CoS產品能形成一種工業標準。因此本章將主要結合現有的(指1994年以前)國際標準,重點講述CO5的基本原理以及基本功能,在其中適當地列舉它們在某些產品中的實現方式作為例子。

      COs的主要功能是控制智能卡和外界的信息交換,管理智能卡內的存儲器并在卡內部完成各種命令的處理。其中,與外界進行信息交換是coS最基本的要求。在交換過程中,COS所遵循的信息交換協議目前包括兩類:異步字符傳輸的 T=0協議以及異步分組傳輸的T=l協議。這兩種信息交換協議的具體內容和實現機制在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進行較為詳細的論述。

      在這里需要提起注意的是,智能卡中的“文件”概念與我們通常所說的“文件”是有區別的。盡管智能卡中的文件內存儲的也是數據單元或記錄,但它們都是與智能卡的具體應用直接相關的。

    一般而言,一個具體的應用必然要對應于智能卡中的一個文件,因此,智能卡中的文件不存在通常所謂的文件共享的情況。而且,這種文件不僅在邏輯廣必須是完整的,在物理組織上也都是連續的。此外,智能卡中的文件盡管也可以擁有文件名(FileN8me),但對文件的標識依靠的是與卡中文件—一對應的文件標識符(F3te ldentifier),而不是文件名。因為智能卡中的文件名是允許重復的,它在本質上只是文件的一種助記符,并不能完全代表萊個文件。


    傳 送 管 理
    (Transmission Manaeer)

      傳送管理主要是依據智能卡所使用的信息傳輸協議,對由讀寫設備發出的命令進行接收。同時,把對命令的響應按照傳輸協漢的格式發送出去。由此可見,這一部分主要和智能卡具體使用的通信協議有關;而且,所采用的通信協議越復雜,這一部分實現起來也就越困難、越復雜。

      我們在前面提到過目前智能卡采用的信息傳輸協議一般是T=0協議和T=1協議,如果說這兩類協議的COS在實現功能上有什么不同的話,主要就是在傳送管理器的實現上有不同。不過,無論是采用T=0協議還是T=1協議,智能卡在信息交換時使用的都是異步通信模式;而且由于智能卡的數據端口只有一個,此信息交換也只能采用半雙工的方式,即在任一時刻,數據端口上最多只能有一方(智能卡或者讀寫設備)在發送數據。 T=0、T=1協議的不同之處在于它們數據傳輸的單位和格式不一樣,T=0協漢以單字節的字符為基本單位,T=1協議則以有一定長度的數據塊為傳輸的基本單位。

      傳送管理器在對命令進行接收的同時,也要對命令接收的正確性作出判斷。這種判斷只是針對在傳輸過程中可能產生的錯誤預言的,并不涉及命令的具體內容,因此通常是利用諸如奇偶校驗位、校驗和等手段來實現。對分組傳輸協議,則還可以通過判斷分組長度的正確與否來實現。

      當發現命令接收有錯后,不同的信息交換協議可能會有不同的處理方法:有的協議是立刻向讀寫設備報告,并且請求重發原數據;有的則只是簡單地在響應命令上作一標記,本身不進行處理,留待它后面的功能模塊作出反應。這些都是由交換協議本身所規定的。

      如果傳送管理器認為對命令的接收是正確的,那么,它一般是只將接收到的命令的信息部分傳到下—功能模塊,即安全管理器,而濾掉諸如起始位、停止位之類的附加信息。相應地,當傳送管理器在向讀寫設備發送應答的時候,則應該對每個傳送單位加上信息交換協議中所規定的各種必要的附屬信息。 


    安全體系(—SecvritySCructure)

     
      智能卡的安全體系是智能卡的COs中一個極為重要的部分,它涉及到卡的鑒別與核實方式的選擇,包括COS在對卡中文件進行訪問時的權限控制機制,還關系列卡中信息的保密機制。可以認為,智能卡之所以能夠迅速地發展并且流行起來.其中的一個重要的原因就在于它能夠通過COS的安全體系給用戶提供—個較高的安全性保證。

      安全體系在概念上包括三大部分:安全狀態(Security Status),安全屬性(Security Attributes)以及安全機制(Security achanisms)。其中,安全狀態是指智能卡在當前所處的一種狀態,這種狀態是在智能—卡進行完復位應答或者是在它處理完某命令之后得到的。事實上,我們完全可以認為智能卡在整個的工作過程中始終都是處在這樣的、或是那樣的一種狀態之中,安全狀態通常可以利用智能卡在當前已經滿足的條件的集合來表示。

      安全屬性實際上是定義了執行某個命令所需要的一些條件,只有智能卡滿足了這些條件,該命令才是可以執行的。因此,如果將智能卡當前所處的安全狀態與某個操作的安全屬性相比較,那么根據比較的結果就可以很容易地判斷出一個命令在當前狀態下是否是允許執行的,從而達到了安全控制的目的。和安全狀態與安全屬性相聯系的是安全機制。安全機制可以認為是安全狀態實現轉移所采用的轉移方法和手段,通常包括:通行字鑒別,密碼鑒別,數據鑒別及數據加密。一種安全狀態經過上述的這些手段就可以轉移到另一種狀態,把這種狀態與某個安全屬性相比較,如果一致的話,就表明能夠執行該屬性對應的命令,這就是COS安全體系的基本工作原理。

      從上面對coS安全體系的工作原理的敘述中,我們可以看到,相對于安全屬性和安全狀態而言,安全機制的實現是安全體系中極力重要的一個方面。沒有安全機制,COS就無法進行任何操作。而從上面對安全機制的介紹中,我們可以看到,COS的安全機制所實現的就是如下三個功能:鑒別與核實,數據加密與解密,文件訪問的安全控制。因此,我們將在下面對它們分別進行介紹。其中,關于文件訪問的安全控制,由于它與文件管理器的聯系十分緊密,因此我們把它放到文件系統中加以討論。

      (1)鑒別與核實:鑒別與核實其實是兩個不同的概念,但是由于它們二者在所實現的功能上十分地相似,所以我們同時對它們進行討論,這樣也有利于在比較中掌握這兩個概念。

      通常所謂的鑒別(Authentication)指的是對智能卡(或者是讀寫設備)的合法性的驗證,即是如何判定一張智能卡(或讀寫設備)不是偽造的卡(或讀寫設備)的問題;而核實(verify)是指對智能卡的持有者的合法性的驗證,也就是如何判定一個持卡人是經過了合法的授權的問題。由此可見,二者實質都是對合法性的一種驗證,就其所完成的功能而言是十分類似的。但是,在具體的實現方式上,由于二者所要驗證的對象的不同,所采用的手段也就不盡相同了。

      具體而言,在實現原理上,核實是通過由用戶向智能卡出示僅有他本人才知道的通行字,并由智能卡對該通行宇的正確性進行判斷來達到驗證的目的的。在通行字的傳送過程中,有時為了保證不被人竊聽r還可以對要傳送的信息進行加密/解密運算,這一過程通常也稱為通行字鑒別。

      鑒別則是通過智能卡和讀寫設備雙方同時對任意一個相同的隨機數進行某種相同的加密運算(目前常用 DES算法),然后判斷雙方運算結果的一致性來達到驗證的日的的。

      根據所鑒別的對象的不同,COS又把鑒別分為內部鑒別(Interna1 Authentication)和外部鑒別(External Authentication)兩類。這里所說的“內部”、“外部”均以智能卡作為參照點,因此,內部鑒別就是讀寫設備對智能卡的合法性進行的驗證;外部簽別就是智能 F對讀寫設備的合法性進行的驗證。至于它們的具體的實現方式.我們在第5章中已有詳細論述,此處不再重復。

      智能卡通過鑒別與核實的方法可以有效地防止偽卡的使用,防止非法用戶的入侵,但還無法防止在信息交換過程中可能發生的竊聽,因此,在卡與讀寫設備的通信過程中對重要的數據進行加密就作為反竊聽的有效手段提了出來。下面僅對加密中的一個重要部件——密碼在COS中的管理及存儲原理加以說明。

      (2)密碼管理:目前智能卡中常用的數據加密算法是DES算法。采用DES算法的原因是因為該算法已被證明是一個十分成功的加密算法,而且算法的運算復雜度相對而言也較小,比較適用于智能卡這樣運算能力不是很強的情況。 DES算法的密碼(或稱密鑰)長度是64位的。 COS把數據加密時要用到的密碼組織在一起,以文件的形式儲存起來,稱為密碼文件。最簡單的密碼文件就是長度為8個字節的記錄的集合,其中的每個記錄對應著一個DES密碼;較為復雜的密碼文件的記錄中則可能還包含著該記錄所對應的密碼的各種屬性和為了保證每個記錄的完整性而附加的校驗和信息。

      其中的記錄頭部分存儲的就是密碼的屬性信息,例如是可以應用于所有應用文件的密碼還是只對應某一應用文件可用的密碼;是可以修改的還是只能讀取的密碼等等。但是:不論是什么樣的密碼文件,作為一個文件本身,COS都是通過對文件訪問的安全控制機制來保證密碼文件的安全性的。

      當需要進行數據加密運算時,COS就從密碼文件中選取密碼加入運算。從密碼文件中讀出密碼時,與讀取應用數據一樣,只要直接給出密碼所在的地址就可以了。當然,員簡單的產生密碼的方法是直接從密碼文件中隨機讀出一個密碼作為加密用密碼。但是這樣的機制可能會多次選中同一密碼,從而給竊聽者提供破譯的機會,安全性不太高。因此,比較好的辦法是在隨機抽取出一個密碼后再對密碼本身作一些處理,盡量減少其重復出現的機會。例如PBOS產品中,采用的辦法就是對從密碼文件中選出的密碼首先進行一次DES加密運算,然后將運算結果作為數據加密的密碼使用。其計算公式如下:

    Key = DES(CTC, K(a))

      式中,K是從密碼文件中隨機選取的一個密碼;CTC是一個記錄智能卡的交易次數的計數器,該計數器每完成一次交易就增一;key就是最后要提供給數據加密運算使用的密碼。使用這種方法可以提高智能卡的安全性,但卻降低了執行的效率。因此,具體采用什么樣的方法來產生密碼應當根據智能卡的應用范圍及安全性要求的高低而具體決定。

    應用管理器/文件管理器
    (Application Manager/File Manager)

     
    應用管理器

      應用管理器的主要任務在于對智能卡接收的命令的可執行性進行判斷。關于如何判斷一條命令的可執行性,我們已經在安全體系一節中作了說明,所以我們可以認為,應用管理器的實現主要是智能卡中的應用軟件的安全機制的實現問題。而因為智能卡的各個應用都以文件的形式存在,所以應用管理器的本質就是我們將要在下一節加以詞論的文件訪問的安全控制問題。正是基于這一點,我們也可以把應用管理器看作是文件管理器的一個部分。

    文件管理

      與安全一樣,文件也是COs中的一個極為重要的概念。所謂文件,是指關于數據單元或卡中記錄的有組織的集合。 COS通過給每種應用建立一個對應文件的方法來實現它對各個應用的存儲及管理。因此,COS的應用文件中存儲的都是與應用程序有關的備種數據或記錄。此外,對某些智能卡的CoS,可能還包含有對應用文件進行控制的應用控制文件。

      在COS中,所有的文件都有一個唯一的文件標識符(File ldentifier),因此通過文件標識符就可以直接查找所需的文件。此外,每個文件還可以有一個文件名作為助記符,它與文件標識符的不同之處在于它是可以重復的。COS中的各文件在智能卡的個人化過程中由發行商(Issuer) 根據卡的應用而創建,對卡的用戶而言通常是不能對文件進行創建或刪除的。但是用戶可以根據情況對文件內容進行修改,可以對文件中的記錄或數據單元進行增加、刪除等操作。

      (l)文件系統:COS的文件按照其所處的邏輯層次可以分為三類;主文件(Master File),專用文件(Dedicated File)以及基本文件(EIementary File)。其中,主文件對任何COS都是必不可少的,它是包含有文件控制信息及可分配存儲區的唯一文件,其作用相當于是COS文件系統的根文件,處于COS文件系統的最高層;基本文件也是必不可少的一個部分,它是實際用來存儲備應用的數據單元或記錄的文件,處于文件系統的最底層,而專用文件是可選的,它存儲的主要是文件的控制信息、文件的位置、大小等數據信息。我們可以用圖6.38的樹狀結構來形象地描述一個COS的文件系統的基本結構。




      當然,對于具體的某個COS產品,很可能由于應用的不同,對文件的實際分類標陳會有所不同。但只要仔細地進行分析,都可以歸結為上面的三個邏輯層次。例如前面授到過的PCOS產品。它對文件的分類不是按照邏輯層次劃分的,而是根據文件的用途進行的。

      它的文件分為三類:COS文件(COSFile)、密碼文件(KeyFile)和錢夾文件(PursesFile)。

      其中所謂的COS文件保存有基本的應用數據;密碼文件存儲的是進行數據加密時要用到的密碼;錢夾文件的作用有些類似于我們日常生活中的錢包。由此可見,它的這三類文件本質上其又都屆今基本文件(EF)類。在PCOS中,專用文件的慨念不是很明顯,但是事實上,如果大家留心的話,那么從以前的論述中,應該不難發現該產品存儲器分區中FAT區內的文件捆;交器的作用就類似于專用文件;而整張PCoS卡本身的性質實際就是一個主文件。

      cos文件有四種邏輯結構:透明結構,線性定長結構,線性變長結構,定長循環結構。

      它們的定義及特點可以參閱ISO/IEC7816—4協議中的有關部分,這里不再詳述。不過.無論采取的是什么樣的邏輯結構,cos中的文件在智能卡的存儲器中都是物理上連續存放的。卡中數據的存取方式、記錄的編號方法、數據單元的大小等作為文件系統的特征,在智能卡的復位應答過程中由卡給出。職過一般而言,在智能卡中最為重要的數據存取方式還是隨機存取方式,也就是卡的用戶在得到授權后,可以直接地任意訪問文件中的某個數據單元或記錄。至于COS具體對文件可以進行什么樣的操作.我們將在C()3的命令系統中進行討論。

      (2)文件訪問安全:對文件訪問的安全性控制是COS系統中的一個十分重要的部分,由于目前的國際標準(ISO/IEC7816-4)在這方面基本沒有作出什么實質性的規定,因此,現有的文件訪問的安全控制機制的具體實現方式多種多樣。我們在這里準備介紹其中比較有代表性的兩種實現方式:鑒別寄存器方式以及狀態機方式。其中,采用鑒別寄存方式的有PCOS、ME2000等產品:采用狀態機方式的產品有STARCOS。

      采用鑒別寄存器方式時,通常是在內存RAM中設置一個8位(或者是16位)長的區域作為鑒別用寄存器。這里的鑒別是指對安全控制密碼的鑒別。鑒別用寄存器所反映的是智能卡在當前所處的安全狀態。采用這種方式時,智能卡的每個文件的文件頭(或者是文件描述器)中通常都存儲有該文件能夠被訪問的條件,——般是包括讀、寫兩個條件r分別用Cr、Cu表示),這就構成了該文件的安全屬性。而用戶通過向智能卡輸入安全密碼.就可以改變卡的安全狀態,這一過程我們j至常稱為出示,這就是鑒別寄存器為式的安全機制。把上面的二方面結合起來,就能夠對卡中文件的讀寫權限加以控制了。具體的操作機制我們以 PCOS為例加以描述。

      首先,PBOS中的鑒別寄存器是8位字長的,這 s位dI的假;位分別與PC()3存儲器中保密宇區內的7個安全密碼的序號一一對應。寄存器中每——位的初始值都被置為“0”。如果用戶向智能卡出示了某一個安全密媽,并且被F判斷為正確的話,系統就在鑒別寄存器的相應位上寫入“1”。

      例如,如果處于保密宇區中的第2個安全密碼被用戶正確出示的話,PCOS就在寄存器的第2位上寫“1”。同時,文件描述器中的讀、寫條件Cr、Cu保存的都是在0和7之間的一個數,它的值對應于該文件進行讀(或寫)操作時所需要出示的密碼在保密宇區小的序號。在對某個文件進行讀(或寫)操作之前,系統首先判斷在鑒別寄存器巾對應的第Cr(或Cu)位是否已被置為“1”(如果Cr等于0,就表示該文件可以被用戶隨意讀取;對于Cu也是一樣),只有當該位為“1”時,才表示讀(或寫)權限已經得到滿足.才能對該文件進行讀(或寫)操作。這也就是說,如果用戶想要對一個文件進行操作的話,就必須要首先出示對應于該文件的安全屬性為正確的安全密碼。系統據此就達到了對文件的訪問進行安全控制的目的。

      與鑒別寄存器方式完全不一樣,狀態機方式更加明顯地表示出擴安全狀態、安全屬性以及安全機制的概念以及它們之間的關系(關于狀態機的知識不屬于本書的范疇,有興趣的讀者請自行查閱有關資料)。以5TARCOS為例,它采用的是‘—種確定狀態機的機制,該機制通過系統內的應用控制文件(Applicatlon ControIFile,ACF)而得以實現。 ACF文件的格式已是一個線性變長結構的文件,其rh記錄 01包括了該ACP所控制的應用可以允許的所有命令的指令碼(INS);其余的記錄分別與記錄 01中的指令碼一一對應,其中存儲的都是對府命令的變體(Varient)紀錄。所謂變體記錄指的是這樣的一些記錄。記錄中存儲的是控制信息、初始狀態、可能的下一狀態以及某些附加的指令信富的組臺,利用 ACF 中的這些變體記錄就可以形成狀態轉移圖。在變體記錄中,控制信息部分是必不可少的。不同的變體記錄主要在兩個方面有區別:一是命令所允許的狀態不同t二是以CLA宇節開始的指令信息部分不相同。這主要是由命令要操作的應用對象的不同而決定的。

      利用 ACF,COS系統就可以實現對文件訪問的安全控制了。當系統接收到一個應用進行操作的一條命令后,首先檢驗其指令碼是否在相應的ACF文件的記錄01中。如果不在其中,系統就認為該命令是錯誤的。在找到了對應的指令碼后,系統把命令的其余部分與該命令對應的備變體記錄中的指令信息按照該變體記錄的控制信息的要求進行比較,如果比較結果一致,那么再查驗變體記錄中的初始狀態信息。若所有這些檢測都順利通過,那么系統就進入對應變體記錄中指明的下一狀態;否則,繼續查找下一個變體記錄直到發現相應變體或是查完該命令對應的所有變體記錄為止。如果沒有找到相應的變體記錄,說明該命令是非法的;否則就進入下一步對命令的處理,即由 COS調用實際的處理過程執行對命令的處理。當且僅當處理過程正常結束的時候,系統才進入一個新的狀態,并開始等待對下一條命令的接收。

    基本概念/主要功能
        

    基本概念

    數據元素(Data Element)

    具有應用意義或內部工業環境中具有意義的信息。

    數據單元(Data Unit)

    可以被具體尋址確定的最小二進制信息集合。

    記錄(Record)

    可以作為一個整體被IC卡處理,并可由記錄號或記錄標識符尋址確定的字節串。

    記錄號(Record Number)

    在記錄文件中,順序、唯一的號碼。

    記錄標識符(Record Identifier)

    可以在應用級選擇,一個文件中的幾個記錄可以具有相同的標識符。

    文件(File)

    在IC卡中,有組織的數據單元或記錄的集合。

    文件名(File Name)

    在IC卡中可以唯一標識一個DF的字節串。

    文件標識符(File Identifier)

    每一文件(MF,DF,EF)均有的一個2字節標識信息。

    文件控制信息(File Control Information)

    一個文件的邏輯、結構及安全屬性信息。

    路徑(Path)

    無限制的文件標識符的聯接。

    可分配存儲器(Allocable Memory)

    在一個文件中包含的存儲器的一部分,但還沒有被具體分配。

    命令-響應對(Command- Response Pair)

    兩個信息的集合:一個命令后跟隨一個響應。

    層次級別(Level)

      從主文件開始,到具體某一文件中間DF的數量,其中主文件的層次級別為0。

          

    主要功能

    歸納起來,智能IC卡操作系統至少應具備以下4種基本功能:

    硬件資源管理功能;

    通訊傳輸管理功能;

    應用控制管理功能;

    安全控制管理功能。

      其中每一種功能又由若干子功能組成。如按ISO的OSI參考模型分類,硬件資源管理功能屬于物理層;通訊傳輸管理功能屬于數據鏈路層;應用控制管理和安全控制管理則屬于應用層。各層之間的邏輯關系見圖。

     

    圖為智能IC卡各功能層之間的邏輯關系


    硬件資源管理

                智能IC卡中的硬件資源十分豐富,其功能也各不相同,見表3-1。其中EEPROM是提供用戶的最主要的應用資源。

    智能IC卡硬件功能說明
    硬件資源       說明        主要功能

    MPU         微處理器       系統的中央運算、處理、管理

    CAU         加密運算協處理器   執行有關加、解密運算

    ROM         只讀存儲器      存儲操作系統程序

    RAM         隨機存儲器      臨時工作數據的暫存

    EEPROM       電擦除存儲器      應用程序、數據的存儲

    I/O         通訊接口        通訊傳輸

    SL         安全邏輯        內部資源的硬件保護

    ···


      硬件資源管理的目的就是由它統一組織、協調、指揮這些硬件的運行,為高層應用提供相應程序接口,使高層應用編程更容易、實現更簡單、可靠。它類似于PC機上的BIOS(基本輸入輸出接口)功能,但比它的管理層次更高。下面重點介紹用戶存儲器的組織管理。

      一、用戶存儲器的數據結構
      按ISO/IEC 7816標準,用戶存儲器的數據結構有線性固定結構(Linear Fixed)、線性可變結構(Linear Variable)、環形結構(Cyclic)、透明結構(Transparent)四種,見圖3-2。用戶可以根據應用數據的特點、更新速率等因素,決定選用哪種數據結構。


    圖2 數據組織結構

    1、線性固定結構

      典型結構如定長度記錄,其中每一記錄的存儲位置均由一個唯一的記錄號標識,可以隨機讀寫。按有關ISO/IEC標準,記錄號的范圍為1~253。

    2、線性可變結構

      如可變長度記錄,其中每一記錄的存儲位置均由一個唯一的記錄號標識,可以隨機讀寫。按有關ISO/IEC標準,記錄號的范圍為1~254。

    3、環形結構

      這種結構類似首尾環起來的定長度記錄,不允許隨機寫。其中記錄以某一固定順序存放,因為記錄數量有限,若超過限制數量,新寫入的數據將覆蓋掉舊的數據。

    4、透明結構

      二進制數據使用這種數據結構時,一般由用戶尋址、管理該數據,操作系統只負責存儲空間的分配。透明數據結構適用于聲音、圖像等超文本(HyperText)信息的存儲。

    二、用戶存儲器的文件組織形式
      按ISO/IEC 7816標準規定,智能IC卡中的數據在用戶存儲器中以樹型文件結構的形式組織存放。文件分成三種層次級別:一是主文件(Master File),形成文件系統的根,類似于DOS中的根目錄;二是專用文件(Dedicated File),在主文件之下,類似于DOS中的目錄;三是子專有文件(Child-DF),在DF之下的專有文件類似于DOS中的子目錄。當然,DF之下還可以有DF,這主要依賴于用戶存儲器的大小。此外,還有元文件(Elementary File),主要存儲實際應用數據和相應的系統管理信息,元文件可以存在于任何一個文件層次上。
    智能IC卡文件的樹型結構見下圖。

    圖3 智能IC卡樹型組織文件

      在智能IC卡的文件結構中,主文件只能有一個并且隨操作系統一起生成,用戶無法控制;在文件存取過程中,不能越層存取,若想讀寫子專有文件下的元文件必須經過其高層文件層次;某一專有文件的大小在申請生成時預定且不可修改,也有的操作系統可以在使用中動態修改該專有文件大小,當然其前提是有足夠的存儲空間。

    三、文件類型及其特性

      智能IC卡操作系統的文件有三種層次級別。每一層次級別的文件還分不同的種類,具有不同的用途。

    1、主文件

      系統中必須存在唯一一個主文件,主文件組成智能IC卡文件系統的根。主文件中含有系統文件控制信息及可分配的存儲空間,其下可以建立各種文件。

      雖然系統允許在根下直接生成各種應用文件,但最佳的文件組織方法是每一種應用均分配一個專有文件,在相應應用的專有文件下再具體組織安排各種應用數據。這樣做的優點是不同應用之間相互干擾小、便于應用設計、安全性更高等,有利于“一卡多用”。主文件一般用來存儲不同應用之間的共享數據,如卡序列號、持卡人數據等信息。

      在初始化時,主文件還可以被賦予一些安全特性,如禁止使用操作系統的某些命令等。這樣做的目的是為了在從IC卡生產到最終應用的環節過多時的安全管理,便于跨部門甚至跨行業的“一卡多用”的安全實施。

      智能IC卡一旦插入讀寫設備,主文件就立即被激活直到卡被拔出。在卡的生存期內,主文件不能被刪除。

    2、專有文件

      專有文件含有文件控制信息及可分配的存儲空間,其下可以建立各種文件。

      一個專有文件將被用來存儲某一應用的所有數據。每一應用的應用順序均由該專有文件的狀態機控制,使不同應用之間具有較強的獨立性并且更安全。

      專有文件在用戶存儲器中占據一塊靜態存儲器,一旦專有文件建立,其存儲器的大小就不能變動,但在該專有文件下的元文件則可以重新分配所使用存儲器大小,可以被刪除。專有文件下還可以再建立專有文件。此時,較高層的專有文件稱為父專有文件(Parent-DF),較低層的稱為子專有文件(Child-DF)。

      父專有文件無論在邏輯上(操作系統管理)還是在物理上(用戶存儲器)均相互隔離。不同的專有文件均可使用主文件下的公共資源。父專有文件的建立一般分成兩個步驟:先邏輯創建,即在操作系統中作一創建登記;再物理創建;實際分配一定數量的用戶存儲器。分步創建的優點是可以獨立于時間和存儲器位置生成具體應用。某一具體的父專有文件不能在其它專有文件或主文件中刪除,該父專有文件的刪除條件在其應用控制文件(ACF)中定義,只有滿足該條件才刪除。該父專有文件被刪除之后,其下的子專有文件、元文件也同時被刪除,釋放的存儲器塊可由其它父專有文件使用。

      子專有文件可以是某一子應用,子專用文件可有其自已的應用控制文件。某一具體的子專有文件不能在其它專有文件或主文件中刪除。該子專有文件的刪除條件在應用控制文件中定義,只有滿足該條件才可刪除。該子專有文件被刪除之后,其下的專有文件(若還有)、元文件也同時被刪除,釋放的存儲器塊可由其它子專有文件使用。

    3、元文件

      元文件含有實際應用數據或文件控制信息,其下不可建立任何文件。
    元文件分為三類:一類存儲實際的應用數據,稱為工作元文件(WEF);另一類存儲相應的系統管理信息,稱為系統管理元文件(SMEF);在ISO/IEC 7816標準中還定義有一種公共元文件(PEF)。
      工作元文件(Working Elementary File)具有以下特性:

    存儲應用數據;

    若條件滿足可被讀、寫、刪除等;

    可以存在于任何文件結構;

    可以是任何一種文件結構;

    具有內部數據校驗(如檢查和)措施。

    系統管理元文件(System Management EF)有以下兩種。

    1、內部保密文件(Internal Secret Files, ISF)具有以下特性:

    存儲系統或應用保密數據,如加密密鑰、個人密碼等;

    可被輸入、修改、覆蓋,但不可讀;

    不能部分刪除;

    可以存在于任何文件層次;

    文件結構可為線性可變結構。

    2、應用控制文件(Application Control Files, ACF)具有以下特性:

    存儲應用狀態機棗應用順序控制數據;

    不能刪除;

    每一文件層次必須有一ACF;

    文件結構可為線性可變結構。

    公共元文件(Public EF)主要用于存儲系統或應用的公共數據,可以無條件存取。

    四、文件屬性

      每一種文件均具有相應屬性(Attributs),智能IC卡的文件屬性一般有4種:

    文件名(File Name)/文件標識(File Identifer);

    安全狀態(Security Status);

    操作模式(Operation Mode);

    注釋(Notation)。

    1、文件名/文件標識

      每一文件可以通過其文件名或文件標識來尋址。按ISO/IEC 7816標準,文件類型不同,文件標識的編碼也不相同。正確識別、尋址一個文件需要一個從主文件或當前專有文件到該文件的完整的標識路徑。從主文件開始的路徑稱為絕對路徑(Absolute Path),可以唯一確定某一文件,這一點和DOS操作系統中的有關概念十分相似。

      在ISO/IEC 7816標準中規定,每一文件均由一個2字節長的文件標識參考確定,但在專有文件中也可以使用文件名來標識該文件,主要是為了便于應用設計人員設計該卡,特別是將父專有文件以文件名來標識,更容易區分、理解“一卡多用”。此外,在某一張卡上文件名一定要能唯一確定某一文件。其實,以名字命名該文件時操作系統同時在內部也自動分配給它一個標識,并通過標識來管理該文件。

      不同文件類型的標識具有不同的編碼。按ISO/IEC 7816標準,文件標識的第一個字節為文件限定符(File Qualifier),主要用于區別文件類型(如主文件、專有文件等);第二個字節為文件索引(File Index)。其中規定:

      主文件:其標識確定為“3F00 H”(十六進制);

      父專有文件(在標準中沒有作具體規定):一般的操作系統中,文件名最長為8字節字符串(第一個字節不能為“20 H”),若文件名不足8字節長,操作系統將在其后以“20 H”補足剩余字節,所有父專有文件的名字不能相同;

      子專有文件:子專有文件的文件標識為2字節。同一父專有文件下的子專有文件的標識不能相同,但不同父專有文件下的子專有文件的標識則可以相同;

      元文件:文件標識為2字節。其中第一個字節為文件限定符,第二個字節為文件索引,在ISO/IEC 7816中都沒有作十分明確的規定,其目的是為整個系統設計留有選擇的余地。一般文件限定符可以根據情況自定,當然最好不與標準沖突。文件索引也可自定,一種典型的編碼格式見表3-2。

    表3-2一種元文件的典型編碼
    Bg b7 b6 b5 b4 b3 b2 b1 b0       定義

    × ×                  文件類型

    0 0                   WEF
    0.1                   ACF
    1.0                   ISF
    1 1                   無用
    × ×                  文件層次

    0.0                    MF
    0.1                    Parent-DF
    1.0                    Child-DF
    1 1                    無用

    × × × ×                文件索引號
                         1-15


    2、安全狀態

      它主要用于定義不同命令在不同狀態下(由某一應用的狀態機決定)對該文件的存取權限。

    3、操作模式

      操作模式用于定義文件的靜態存取特性,主要有以下幾種特性:

    可刪除性(Erasable);
    讀/寫特性(R/W);
    存取特性(Access);
    一次寫入、多次讀出特性(WORM);
    只讀特性(RO);
    只寫特性(WO);
    可計算性(Compute):定義該文件是否可被某些命令存取執行。

    4、注釋

      注釋含有某一文件的簡短的說明信息,如版本號等。
    在ISO/IEC 7816標準中,對諸如文件屬性等的定義十分簡單,很不具體。其目的就是給系統設計人員保留充分的發揮空間。當具體設計某一IC卡的應用系統時,必須按智能IC卡的供應商的技術說明書操作。

    通訊傳輸管理

      IC卡必須與相應的讀寫設備(IFD)通訊。從這個角度講,智能IC卡操作系統的作用就是從讀寫設備(IFD)接收命令、執行命令并將結果返回讀寫設備(IFD)。所以,通訊管理功能模塊在操作系統中具有十分重要的作用。

    通訊管理功能模塊主要實現以下幾種功能:

    實現某一通訊協議的數據鏈路層的傳輸管理功能;

    實現ISO/IEC 7816標準規定的ATR(復位響應)等功能;

    ·為操作系統中的其它功能模塊提供相應接口。

      按ISO/IEC 7816標準,IC卡和讀寫設備之間的通訊協議有多種,一般一種特寫的卡只支持某一種通訊協議。下面以符合ISO/IEC 7816-3標準的T=1塊傳輸協議的智能IC卡為例介紹通訊管理功能(支持其它通訊協議的卡的通訊管理功能與此相似)。

      ICC上電之后,IFD將向ICC發送命令數據,在這樣一次典型的通訊過程中,通訊管理功能模塊主要從事6個步驟的具體工作。見圖。



    通訊模塊管理

      IFD和ICC之間的通訊由IFD啟動,IFD還負責給卡供電。通訊為半雙工方式(Half Duplex),即同時只能有一方在傳輸信息。

    第一步:復位響應

      在ICC正確插入IFD之后,通訊管理功能模塊將向IFD發送一個復位響應信息(Answer To Reset,ATR)。ATR中含有卡標識數據,如I/O緩沖區的大小、通訊速率轉換因子(Conversions Factor)等信息,通知IFD本ICC的操作特性,以便IFD正確選擇相應的操作參數與ICC進行通訊。ICC每次硬復位(卡插入IFD)都將發送一個ATR給IFD。

    第二步:數據收發

      具體監控、執行傳輸協議,收發數據。

    第三步:鏈接模式傳輸管理
      因為T=1協議傳輸完整的信息,其大小可能超過I/O緩沖區的大小。為避免出現傳輸問題,通訊管理功能模塊將一個完整的信息分塊傳輸。

    第四步:傳輸檢查
      通過檢查某一字節的奇偶校驗位、某一塊的檢查和或長度,發現傳輸錯誤并通知IFD。在這種情況下,IFD將重發錯誤數據。反之,若IFD通知ICC數據發送出錯,ICC將執行數據重發操作。

    第五步:數據傳遞
      若經過上面步驟后數據正確接收,通訊管理功能模塊將接收數據傳遞給下一功能模塊,如安全控制管理模塊作進一步處理。反之亦然。

    第六步:傳輸結束處理
      若正確傳輸后無任何其它動作,通訊管理功能模塊將MPU置于相應的節電方式,如睡眠方式(Sleep Mode)以節省功耗。

      反之,ICC向IFD發送有關數據信息,也將執行以上若干類似步驟的操作。


    應用控制管理

      為適應智能IC卡的應用,特別是對安全性要求較高的應用,在智能IC卡的操作系統中還提供應用控制管理功能模塊。在以上對用戶存儲器的文件組織方式的描述中曾經提到每一文件層次(如MF,DF等)均由一個應用控制文件,在該文件中就定義有應用控制管理數據。

      應用控制管理功能模塊主要具有兩個功能:一是提供對某一應用(處于某一文件層次)的應用順序流程控制;二是提供在不同的應用順序狀態下的命令執行權限。這兩個功能雖然可以分開討論,但在具體實施時卻密不可分。

    1、應用順序流程控制
    應用順序流程控制定義了某一應用的順序流程,即狀態機。例如,有一個較簡單的應用分四步執行,同時該應用具有三個狀態,啟動該應用需滿足條件1,然后進入狀態1,執行相應操作;若在狀態1下的操作滿足了條件2,則進入狀態2并執行相應操作;若在狀態2下的操作滿足了條件3,則進入狀態3并執行相應操作;就用結束,如下圖所示。



    應用流程圖

      可見,所謂應用順序流程控制就是定義了某一應用的具體執行過程及相應條件。一旦確定了應用流程,某一應用就必須而且只能按其要求執行,如在上圖中不可以從狀態1直接跳躍到狀態3去執行某一操作。

    2、命令執行權限
      進一步提高應用的安全性,在應用順序流程中還定義了在某一應用的不同狀態下對命令的執行權限。如一數據文件,在該文件建立時定義了其存取特性(如可讀寫但不能刪除),通過在該應用的順序流程中定義讀、寫命令還可以進一步限制對該文件的存取。擴展上面的例子,假設在該應用中有一數據文件存儲有重要數據,該文件的屬性定義為可讀寫,但根據應用需求讀寫操作只能在狀態3執行,狀態2只能進行讀操作,這就可以通過禁止在狀態2執行寫命令而允許讀命令,在狀態3同時允許執行讀、寫命令的方法實現,如圖6所示。



      命令權限限制示意圖

      至此,從應用順序控制角度可以認為,在建立某一文件時定義的屬性為該文件的靜態屬性,而結合具體應用定義的命令執行權限則為該文件的動態屬性。由此可見,利用這種機制對數據文件的存取限期安全又靈活。


    安全控制管理

      安全控制管理就是對智能IC卡中的靜態、動態數據進行安全控制及管理。它可以具體分為兩種功能:一是安全傳輸控制,即對傳輸數據的安全保護;二是對內部靜態安全數據(如加密密鑰等、各種認證授權操作)的控制管理。

    一、安全傳輸控制

      為防止有關信息(命令、數據)在IFD和ICC之間的傳輸過程中被惡意截取、篡改,提高動態傳輸信息的安全性和可靠性,在智能IC卡的操作系統中提供安全傳輸控制機制。其主要原理為:或者通過將傳輸的信息加密,使非法截取的信息無實際應用意義;或者將待傳輸的信息(或部分信息)進行加密,并將該加密信息附加在傳輸的明文之后再進行傳輸,使惡意篡改信息變為不可能;再就是將以上兩種方法共同使用,既可防止對傳輸信息的非法截取,又可防止對傳輸信息的非法篡改。

    在智能IC卡的操作系統中,一般具有四種信息傳輸方式:

    明文傳輸方式(Plaintext Transmit Mode);

    認證傳輸方式(Authentic Transmit Mode);

    加密傳輸方式(Encipher Transmit Mode);

    混合傳輸方式(Mixed Transmit Mode)。

      其中,明文傳輸方式對傳輸的信息不作任何處理,其它三種信息傳輸方式則分別實現三種安全控制傳輸機制。這三種傳輸方式的具體工作原理將在下一章中結合密碼技術詳細介紹。

      在具體應用中,設計人員可以根據不同的應用對安全性的特殊要求靈活采用不同的信息傳輸方式。因為并非所有的信息都需要安全傳輸(將增加時間和空間開銷),所以大多數的智能IC卡操作系統均可對每一次傳輸設定一種傳輸方式,例如可以一次傳輸采用認證傳輸方式,而下一次采用明文傳輸方式,再下一次則采用混合傳輸方式,十分靈活。

    二、內部安全控制管理

      內部安全控制管理的功能主要有兩個:一是對數據及功能(如某一命令)的存取執行權限的控制;二是對內部靜態保密數據(如加密密鑰等)的安全管理。

    1、數據及功能的存取執行權限控制

      以 IC卡為中心,在卡的應用中主要存在兩種認證授權過程,見圖7。IC卡驗證持卡人身份的合法性這一過程通過個人識別號(PIN)來完成;而IC卡和應用終端之間的認證則通過相應的認證過程來完成。

    IC卡應用中存在的兩種認證授權過程

    1)、個人識別號(Personal Identification Number,PIN)

      PIN是IC卡中的保密數據。PIN的主要用途是保證只有合法持卡人才能使用該卡或該卡中的某一項或幾項功能,以防止拾到該卡的人惡意使用或非法偽造。卡應用發行部門將每一張IC卡均初始化一個PIN并將它經安全渠道分發給相應持卡人。使用時首先要求持卡人輸入PIN,若輸入的PIN和該卡中存儲的PIN相同則證明此持卡人合法,可以使用該卡。

      一般較簡單的IC卡中只有一個PIN,在較復雜的卡(如智能IC卡)中可以存在幾個PIN,如多功能卡中的每一功能就可具有一個PIN。簡單IC卡中PIN的位數較短(如4位二進制),在較復雜的智能IC卡中PIN的位數較長(如1~8位十進制)。為進一步提高使用PIN的安全性,每一個PIN還配有一錯誤計數器(Error Counter)。該計數器用以記錄、限制PIN輸入錯誤的次數,若一次連續的輸入錯誤次數超過卡中規定次數則卡自鎖;而在該限制次數內只要PIN輸入正確一次就可使用該卡,且錯誤計數器復位,即下次使用輸入PIN時還具有卡中規定的最大的試探次數。

      一旦卡自鎖,簡單的IC卡就不可再用,而復雜的智能IC卡還可通過個人解鎖碼(Personal Unblocking Code,PUC)將卡打開。一般,一個PUC只用于一個PIN,并且也可以有錯誤計數器。若合法持卡人忘記PIN而將卡鎖住,則使用PUC將卡打開時還可以輸入一個新的PIN。

      在智能IC卡操作系統中,PIN還可以有以下幾種屬性。
    ·可修改性(Modifiable):PIN建立之后可以修改。
    ·不可修改性(Non- Modifiable):一旦PIN建立之后就不可修改。
    ·臨時失效性(Temp-Deactivated):通過命令可使某一PIN臨時失效,不起作用,當然還可以通過另一命令再將其激活等等。
    另外,在智能IC卡操作系統中,PIN也可按以下兩種形式出現。
    ·全局PIN(Global PIN):處于系統的較高層次(如主文件)中,一旦因錯誤計數溢出等原因自鎖,也同時鎖住使用該PIN的其它應用層次。
    ·局部PIN(Local PI N):處于某一具體應用層次,一旦因錯誤計數溢出等原因自鎖,則僅鎖住該層次有應用。

    2)、安全認證

      IC卡和應用終端之間的認證授權的用途就是相互確認合法性,目的在于防止偽造應用終端及相應的IC卡。它一般有三種認證方式:
    內部認證(Internal Authentication)
      應用終端驗證IC卡的合法性;

                   PIN功能簡單匯總

    功能        簡單IC卡      復雜IC卡如智能IC卡

    PIN          否           是

    PIN數量       一個          若干個

    PIN位數     較短,如4位二進制數   較長/可自定義,如1~8位十進制數

    PIN輸入錯誤限制次數  較少,如3次     較長/可自定義,如1~15次

    PIN構成方式      硬件         軟件或軟硬件共同構成

    全局/局部PIN      否           是

    可修改性等其它屬性    否           是

    個人解鎖碼(PUC)    否           是


    PIN應用示意圖



      外部認證(External Authentication):IC卡驗證應用終端的合法性;
      相互認證(Mutual Authentication):IC卡和應用終端相互驗證合法性。

      由以上論述可見,在對安全性要求較高的應用(如金融應用)中,只有綜合使用PIN和安全認證才能提供較為完善的安全保護。而在一般的IC卡的應用中,可以根據具體情況優化選擇各種安全措施,以達到實現較高性能價格比的目的。

    2、內部靜態安全數據的管理

      內部靜態安全數據主要指存儲于IC 卡內部的PIN、PUC、加密密鑰、解密密鑰等重要數據。稱其為內部是因為它們在應用周期(并非整個生存周期)中,一旦建立就不會在IC卡外出現,而只能在卡的內部使用。這樣做的目的當然是為了進一步提高IC卡的安全性。

      在智能IC卡操作系統中,專門提供ISF元文件存儲這些安全數據。一般每一文件層次(每一應用,某一DF)均有一個ISF元文件存儲相應層次(相應應用)的有關安全數據。

      不同種類的安全數據(如PIN,加密密鑰)具有不同的屬性及應用特性。內部靜態安全數據管理的主要功能就是當某一應用需要某一安全數據時檢查其合法性、可獲得性等,并具體執行相應的操作。

      不同的智能IC卡操作系統,內部靜態安全數據的管理也不盡相同,感興趣的人士可以參閱有關ISO/IEC 7816標準及相應操作系統的技術說明書。

    三、智能IC卡操作系統的信息結構

      在IFD和ICC之間的信息交換是命令-響應對(Command-Response Pair)結構,如IFD發送一個命令到ICC,ICC執行命令并將響應信息返回給IFD,典型的傳輸結構見圖9。


    IFD和ICC之間的信息傳輸

    按有關ISO/IEC 7816有關標準定義,一個應用協議數據單元(APDU)或者含有命令信息(Command Message)或者含有響應信息(Response Message),可以從IFD傳輸到ICC,反之亦然。其中APDU可以理解為IFD和ICC之間一次通訊傳輸的最小信息單位,如某一命令等。
    信息結構


    信息結構:按ISO/IEC 7816有關標準,信息結構有兩種:命令信息結構、響應信息結構。

    --命令信息結構

    命令信息結構由兩部分組成:4個字節的命令頭(Header),必備部分;緊接命令頭為一長度可變的數據體(Body),可選。

    命令信息結構

    Header(命令頭)          Body(數據體)

    CLA INS P1 P2        Lc Field  Data Field  Le Field


      命令信息結構中每一字段均具有不同含義。若Le=0,則為請求相應響應數據的最大長度。

    命令信息結構中的字段含義

    字段       名稱      長度(字節)      含義

    CLA     指令類別(CLAss)    1         指令類別

    INS     指令碼(INStruction)   1         指令碼

    P1     參數1(Parameter 1)   1         指令參數1

    P2     參數2(Parameter 2)   1         指令參數2

    Lc字段     長度       可變,≤3      數據字段的長度

    Data字段    數據       可變,=Lc      數據字段

    Le字段     長度       可變,≤3      預計響應數據的最大長度


      依據不同的命令,其信息結構也不相同,一般有以下4種結構。

    結構1



      在結構1中,沒有Lc、Le及Data字段,既沒有隨命令一起發送的數據,也沒有響應數據。

    結構2


      在結構2中,Le為空,既沒有響應數據。

    結構3



      結構3中,Lc為空,即沒有數據字段。

    結構4



      在結構4中,所有字段均存在。


        

    --響應信息結構 

    響應信息結構也由兩部分組成:可變長度的數據體(Body),可選;·2字節的狀態信息(Trailer),必備。

    響應信息結構中草藥不同字段的含義見表

    字段     名稱       長度(字節)    含義

    Data字段   數據字段     可變,= Lr     實際響應數據長度

    SW1     狀態字節1     1         命令處理狀態等數據信息

    SW2     狀態字節2      1        命令處理狀態等數據信息


      綜上所述,在IFD和ICC實際的通訊過程中,命令-響應對信息結構具有4種組合情況

    情況        命令數據信息     響應數據信息

    1         無數據字段       無數據字段

    2         有數據字段       無數據字段

    3         無數據字段       有數據字段

    4         有數據字段       有數據字段


      命令、響應數據信息結構中有關字段的編碼規則、具體應用等,請參考ISO/IEC 7816有關標準或某一具體智能IC卡操作系統的技術說明書。


       

    命令類型

         

     --面向數據管理的命令

    面向數據(或文件)管理的命令提供對不同結構的數據文件的存取操作及控制等命令,典型的命令如:

    ·創建文件命令(Create File Command);

    ·關閉文件命令(Close File Command);

    ·讀二進制數據命令(Read Binary Command);

    ·寫二進制數據命令(Write Binary Command);

    ·刪除二進制數據命令(Erase Binary Command);

    ·讀記錄命令(Read Record Command);

    ·寫記錄命令(Write Record Command);

    ·刪除記錄命令(Erase Record Command);

    ·選擇文件命令(Select File Command);等。

     

    --命令類型--面向通訊傳輸的命令

    在ISO/IEC 7816標準中還特別定義了兩個面向通訊傳輸的命令:

    獲取響應命令(Get Response Command);

    包裝命令(Envelope Command)。

      在標準的命令說明中指出,當不能用已知協議傳輸命令或響應數據信息時可以使用這兩個命令進行有關信息的傳輸。這兩個命令均由IFD初始啟動,獲取響應命令用于從ICC到IFD方向信息的傳輸,包裝命令用于從IFD到ICC方向信息的傳輸。

       

    --面向安全控制管理的命令

    內部認證命令(Internal Authenticate Command);

    外部認證命令(External Authenticate Command);

    相互認證命令(Mutual Authenticate Command);

    生成隨機數命令(Create Random Number Command);

    PIN校驗命令(PIN Verify Command);

      安全數據控制管理指令類(是一小類指令,主要用于密鑰、PIN、PUC等安全數據的生成、刪除、狀態查詢等,在不同的操作系統的具體實現上差別很大)。

       

    --部分標準指令

        

    指令          指令碼(INS)(十六進制)    說明

    Erase Binary      0E               刪除二進制數據命令

    Verify         20               PIN校驗命令

    Extemal Authenticate  82              外部認證命令

    Internal Authenticate  88              內部認證命令

    Select File       A4              文件選擇命令

    Read Binary       B0              讀二進制數據命令

    Read Record(s)      B2              讀記錄命令

    Get Response       C0              獲取響應命令

    Envelope         C2              包裝命令

    Write Binary       D0              寫二進制數據命令

    Write Record       D2              寫記錄命令


    智能卡芯片操作系統STARCOS

    智能卡芯片操作系統STARCOS(Smart Cark Chip Operation System)是由德國G&D公司和GMD公司合作開發的智能卡卡片級的一個完整的操作系統。它提供適合具體應用的操作和管理的20余條指令,而且其透明的結構使得用戶可以集成自定義的指令。該操作系統同樣很好地考慮了與現有的和將來的ISO標準的兼容性(ISO/IEC CD 7816。4/Sept.1992)。

    Giesecke&Derient是德國最大的卡片生產廠家,一個半世紀以來,以領先的鈔票印刷和自動分清技術為全世界四十多個國家的中央銀行服務。

    在中國,G&D保持其產品和技術一貫的先進、安全、可靠,被納入中國人民銀行金融IC卡及終端標準制定工作組。

    應用:

    支持一卡多用,不同的應用程序可以獨立安裝(多功能性)。
    實現了文件的分層管理結構(文件組織)。
    可以任意定義應用程序執行序列(狀態機)。
    數據通信時,具有不同層次的安全檢查機制(安全信息)以及真實性檢查。

    一卡之中不同應用的數量只受EEPROM存儲容量的限制。STARCOS已經在1K、2K、3K、4K、8K和10K字節的不同的微處理器上得以實現。這樣對于一些具體的應用就容易得到最好的性能價格比。只要使用具有更大容量的智能卡,任何新的應用程序都可再擴展。

    一個應用程序的登錄、生成和安裝都可以在所定義的保密級上獨立進行。保密的要領和數據結構完全由應用程序的設計者定義。




    STARCOS的功能

    STARCOS通過獨立于應用之外的狀態機來保證具體應用的操作和管理按照正確執行序列進行。狀態機可以由設計者根據具體應用的要求來定義。這種定義要以非常靈活,從簡單的規則,比如所有功能自由訪問,到具體的64個不同狀態的指令描述規則。

    這種序列控制,與分層文件結構結合,可以提供眾多可能的組合。同時,與ISO/IEC CD7816-4一致的指令結構,保證了應用接口的標準化。

    應用文件可以安裝在任意的數據文件層,下面是用到的文件結構:

    MF主文件:文件系統的根(相當于根目錄)
    DF專用文件:應用基礎結構,本身可以包含其它DF(相當于分支目錄)
    EF基礎文件:存放真正的應用數據,可以放在MF和DF下(相當于文件)
    WEF工作基礎文件: 完成特定應用文件的輸入和輸出
    ISF內部保密文件:存放用戶密鑰(PINs)和不同保密算法密鑰,STARCOS保護和管理這些文件,禁止任何數據輸出。
    STARCOS智能卡和智能卡終端之間的通信協議采用塊傳輸協議T=1,指令結構基于ISO/IEC CD7816-4。STARCOS SV 也支持字節傳輸T=0通信協議。
    數據傳輸通過指令響應序列來引導。在一主從應用系統中,智能卡作為從屬方,而終端和終端設備(PC、工作站、服務器、主機)作為宿主方生成指令及其序列。

    STARCOS支持智能卡應用領域的所有功能:

      保密數據存儲(例如付款交易和個人數據)
      持卡人身份識別離線操作,例如通過存在卡中的個人標識號碼(PIN)
      控制內部存儲數據的訪問
      數據存儲和傳輸的加密(智能卡作為保密模塊)

    作為一個通用的操作系統,STARCOS管理智能卡應用程序的安裝。安裝過程不限于單一的應用(例如卡片發行時),新的應用程序可以隨時加入,過時的應用程序可以從卡中刪除。)

    同一時間內應用程序的數量只受存儲器容量需求的限制。利用STARCOS的功能可以組成如下應用領域:

      電子錢包         數據解密/加密卡
      信用卡          身份證卡
      數據存儲(便攜文件)   保密模塊(例如在付費系統)
      醫療病歷卡        數字簽名

    根據需要,各應用程序可以單獨執行,在這種情況下,由STARCOS來監控制制作獨立和維一執行的情況。當然,STARCOS的分層文件結構允許不同應用程序的任意組合運行,這樣,不同的應用程序可以共享相同的資源。

    STARCOS及其保密性

    對于許多應用,存儲在智能卡中的數據一定要安全可靠,防止數據的丟失、非法修改和訪問等等。
    對于這樣的應用要求,STARCOS的保密功能可以克服幾乎所有潛在的攻擊。
    下面列出已經實現的保密功能:

    系統數據永遠不會輸出卡外

    系統數據由集成硬件機制保護并且經過特殊的定義的文件屬性校驗

    對于數據的傳送,可以采用標準的加密算法(DES)

    出現非法操作時,STARCOS能應用保密信息傳送模式進行探測(對指令和/或響應通過授權和/或穩含模式進行探測)

    所有存儲數據有內部校驗和保護

    所有對象具有屬性,保證數據的完整性

    卡片數據傳送有授權檢查

    應用序列由狀態機監控,最多有64個狀態

    DES加密算法及隨機數產生

    STARCOS版本分類

    版本        特點        芯片類型      應用

    STARCOS S1.2    符合ISO7816     SLE 44C40S    身份證卡
              符合EMV                標準進出控制
              T=0,T=1傳輸協議            獎勵積分
              多層文件結構              電子支付,借貸
              DES加密算法
              狀態機
              登記和創建的概念
              不同的初始化完成密碼


    STARCOS S2.1    符合ISO7816標準    SLE 44C20S     身份證卡
              符合EMV標準      SLE 44C42S     進出控制
              轉輸協議:T=0,T=1   SLE 44C80S     獎勵積分
              多層文件結構      SLE 44C160S    汽車卡
              DES和tripe DES加密算法 83C864     保健卡
              狀態機
              安全消息
              不同的初始化完成密碼
              安全寫入EEPROM

    STARCOS SPK2.1   符合ISO7816      SLE 44CR80    身份證卡
              符合EMV標準               出入控制
              多層文件結構               獎勵積分
              多種加密方法              保健卡
              DES,RSA,DSA              數字簽名
              狀態機                 網絡安全
              多種密鑰                付費電視
              最大1024位的數字簽名
              對稱或非對稱的認證手段

    本文關鍵詞:智能卡操作系統
    上一篇:光卡簡介[ 09-08 ] 下一篇:非接觸式智能卡技術[ 09-09 ]
    回到頂部