智能卡操作系統(tǒng)
文章出處:http://www.sgrivertours.com 作者:不詳 人氣: 發(fā)表時間:2011年09月08日
COS概述
隨著IC卡從簡單的同步卡發(fā)展到異步卡,從簡單的 EPROM卡發(fā)展到內(nèi)帶微處理器的智能卡(又稱CPU卡),對IC卡的各種要求越來越高。而卡本身所需要的各種管理工作也越來越復雜,因此就迫切地需要有一種工具來解決這一矛盾,而內(nèi)部帶有微處理器的
智能卡的出現(xiàn),使得這種工具的實現(xiàn)變成了現(xiàn)實。人們利用它內(nèi)部的微處理器芯片,開發(fā)了應用于智能卡內(nèi)部的各種各樣的操作系統(tǒng),也就是在本節(jié)將要論述的COS。 COs的出現(xiàn)不僅大大地改善了智能卡的交互界面,使智能卡的管理變得容易;而且,更為重要的是使智能卡本身向著個人計算機化的方向邁出了一大步,為智能卡的發(fā)展開拓了極為廣闊的前景。
COS的全稱是Chip Operating System(片內(nèi)操作系統(tǒng)),它一般是緊緊圍繞著它所服務的智能卡的特點而開發(fā)的。由于不可避免地受到了智能卡內(nèi)微處理器芯片的性能及內(nèi)存容量的影響,因此,COS在很大程度上不同于我們通常所能見到的微機上的操作系統(tǒng)(例如DOS、UNIX等)。首先,COS是一個專用系統(tǒng)而不是通用系統(tǒng)。即:一種COS一般都只能應用于特定的某種(或者是某些)智能卡,不同卡內(nèi)的COS一般是不相同的。因為coS一般都是根據(jù)某種智能卡的特點及其應用范圍而特定設計開發(fā)的,盡管它們在所實際完成的功能上可能大部分都遵循著同一個國際標準。其次,與那些常見的微機上的操作系統(tǒng)相比較而言,COS在本質(zhì)上更加接近于監(jiān)控程序、而不是一個通常所謂的真正意義上的操作系統(tǒng),這一點至少在目前看來仍是如此。因為在當前階段,COS所需要解決的主要還是對外部的命令如何進行處理、響應的問題,這其中一般并不涉及到共享、并發(fā)的管理及處理,而且就智能卡在目前的應用情況而盲,并發(fā)和共享的工作也確實是不需要曲。
COS在設計時一般都是緊密結(jié)合智能卡內(nèi)存儲器分區(qū)的情況,按照國際標準(ISO /IEC 7816系列標準)中所規(guī)定的一些功能進行設計、開發(fā)。但是由于目前智能卡的發(fā)展速度很快,而國際標準的制定周期相對比較長一些,因而造成了當前的智能卡國際標準還不太完善的情況,據(jù)此,許多廠家又各自都對自己開發(fā)的COS作了一些擴充。就目前而言,還沒有任何一家公司的CoS產(chǎn)品能形成一種工業(yè)標準。因此本章將主要結(jié)合現(xiàn)有的(指1994年以前)國際標準,重點講述CO5的基本原理以及基本功能,在其中適當?shù)亓信e它們在某些產(chǎn)品中的實現(xiàn)方式作為例子。
COs的主要功能是控制智能卡和外界的信息交換,管理智能卡內(nèi)的存儲器并在卡內(nèi)部完成各種命令的處理。其中,與外界進行信息交換是coS最基本的要求。在交換過程中,COS所遵循的信息交換協(xié)議目前包括兩類:異步字符傳輸?shù)?T=0協(xié)議以及異步分組傳輸?shù)腡=l協(xié)議。這兩種信息交換協(xié)議的具體內(nèi)容和實現(xiàn)機制在ISO/IEC7816—3和ISO/IEC7816—3A3標準中作了規(guī)定;而COS所應完成的管理和控制的基中功能則是在ISO/IEC7816—4標準中作出規(guī)定的。在該國際標準中,還對智能卡的數(shù)據(jù)結(jié)構(gòu)以及COS的基本命令集作出了較為詳細的說明。
至于ISO/IEC7816—1和2,則是對智能卡的物理參數(shù)、外形尺寸作了規(guī)定,它們與COS的關系不是很密切。
COS的體系結(jié)構(gòu)
依賴于上一節(jié)中所描述的智能卡的硬件環(huán)境,可以設計出各種各樣的cos。但是,所有的COS都必須能夠解決至少三個問題,即:文件操作、鑒別與核實、安全機制。事實上,鑒別與核實和安全機制都屬于智能卡的安全體系的范疇之中,所以,智能卡的coS中最重要的兩方面就是文件與安全。但再具體地分析一下,則我們實際上可以把從讀寫設備(即接口設備IFD)發(fā)出命令到卡給出響應的一個完整過程劃分為四個階段,也可以說是四個功能模塊:傳送管理器(TM)、安全管理器(SM)、應用管理器(AM)和文件管理器(FM)。其中,傳送管理器用于檢查信息是否被正確地傳送。
這一部分主要和智能卡所采用的通信協(xié)議有關;安全管理器主要是對所傳送的信息進行安全性的檢查或處理,防止非法的竊聽或侵入;應用管理器則用于判斷所接收的命令執(zhí)行的可能性;文件管理器通過核實命令的操作權(quán)限,最終完成對命令的處理。對于一個具體的COS命令而言,這四個階段并不一定都是必須具備的,有些階段可以省略,或者是并人另一階段中;但一般來說,具備這四個階段的COS是比較常見的。以下我們將按照這四個階段對COS進行較為詳細的論述。
在這里需要提起注意的是,智能卡中的“文件”概念與我們通常所說的“文件”是有區(qū)別的。盡管智能卡中的文件內(nèi)存儲的也是數(shù)據(jù)單元或記錄,但它們都是與智能卡的具體應用直接相關的。
一般而言,一個具體的應用必然要對應于智能卡中的一個文件,因此,智能卡中的文件不存在通常所謂的文件共享的情況。而且,這種文件不僅在邏輯廣必須是完整的,在物理組織上也都是連續(xù)的。此外,智能卡中的文件盡管也可以擁有文件名(FileN8me),但對文件的標識依靠的是與卡中文件—一對應的文件標識符(F3te ldentifier),而不是文件名。因為智能卡中的文件名是允許重復的,它在本質(zhì)上只是文件的一種助記符,并不能完全代表萊個文件。
傳 送 管 理
(Transmission Manaeer)
傳送管理主要是依據(jù)智能卡所使用的信息傳輸協(xié)議,對由讀寫設備發(fā)出的命令進行接收。同時,把對命令的響應按照傳輸協(xié)漢的格式發(fā)送出去。由此可見,這一部分主要和智能卡具體使用的通信協(xié)議有關;而且,所采用的通信協(xié)議越復雜,這一部分實現(xiàn)起來也就越困難、越復雜。
我們在前面提到過目前智能卡采用的信息傳輸協(xié)議一般是T=0協(xié)議和T=1協(xié)議,如果說這兩類協(xié)議的COS在實現(xiàn)功能上有什么不同的話,主要就是在傳送管理器的實現(xiàn)上有不同。不過,無論是采用T=0協(xié)議還是T=1協(xié)議,智能卡在信息交換時使用的都是異步通信模式;而且由于智能卡的數(shù)據(jù)端口只有一個,此信息交換也只能采用半雙工的方式,即在任一時刻,數(shù)據(jù)端口上最多只能有一方(智能卡或者讀寫設備)在發(fā)送數(shù)據(jù)。 T=0、T=1協(xié)議的不同之處在于它們數(shù)據(jù)傳輸?shù)膯挝缓透袷讲灰粯樱琓=0協(xié)漢以單字節(jié)的字符為基本單位,T=1協(xié)議則以有一定長度的數(shù)據(jù)塊為傳輸?shù)幕締挝弧?BR>
傳送管理器在對命令進行接收的同時,也要對命令接收的正確性作出判斷。這種判斷只是針對在傳輸過程中可能產(chǎn)生的錯誤預言的,并不涉及命令的具體內(nèi)容,因此通常是利用諸如奇偶校驗位、校驗和等手段來實現(xiàn)。對分組傳輸協(xié)議,則還可以通過判斷分組長度的正確與否來實現(xiàn)。
當發(fā)現(xiàn)命令接收有錯后,不同的信息交換協(xié)議可能會有不同的處理方法:有的協(xié)議是立刻向讀寫設備報告,并且請求重發(fā)原數(shù)據(jù);有的則只是簡單地在響應命令上作一標記,本身不進行處理,留待它后面的功能模塊作出反應。這些都是由交換協(xié)議本身所規(guī)定的。
如果傳送管理器認為對命令的接收是正確的,那么,它一般是只將接收到的命令的信息部分傳到下—功能模塊,即安全管理器,而濾掉諸如起始位、停止位之類的附加信息。相應地,當傳送管理器在向讀寫設備發(fā)送應答的時候,則應該對每個傳送單位加上信息交換協(xié)議中所規(guī)定的各種必要的附屬信息?!?BR>
安全體系(—SecvritySCructure)
智能卡的安全體系是智能卡的COs中一個極為重要的部分,它涉及到卡的鑒別與核實方式的選擇,包括COS在對卡中文件進行訪問時的權(quán)限控制機制,還關系列卡中信息的保密機制??梢哉J為,智能卡之所以能夠迅速地發(fā)展并且流行起來.其中的一個重要的原因就在于它能夠通過COS的安全體系給用戶提供—個較高的安全性保證。
安全體系在概念上包括三大部分:安全狀態(tài)(Security Status),安全屬性(Security Attributes)以及安全機制(Security achanisms)。其中,安全狀態(tài)是指智能卡在當前所處的一種狀態(tài),這種狀態(tài)是在智能—卡進行完復位應答或者是在它處理完某命令之后得到的。事實上,我們完全可以認為智能卡在整個的工作過程中始終都是處在這樣的、或是那樣的一種狀態(tài)之中,安全狀態(tài)通??梢岳弥悄芸ㄔ诋斍耙呀?jīng)滿足的條件的集合來表示。
安全屬性實際上是定義了執(zhí)行某個命令所需要的一些條件,只有智能卡滿足了這些條件,該命令才是可以執(zhí)行的。因此,如果將智能卡當前所處的安全狀態(tài)與某個操作的安全屬性相比較,那么根據(jù)比較的結(jié)果就可以很容易地判斷出一個命令在當前狀態(tài)下是否是允許執(zhí)行的,從而達到了安全控制的目的。和安全狀態(tài)與安全屬性相聯(lián)系的是安全機制。安全機制可以認為是安全狀態(tài)實現(xiàn)轉(zhuǎn)移所采用的轉(zhuǎn)移方法和手段,通常包括:通行字鑒別,密碼鑒別,數(shù)據(jù)鑒別及數(shù)據(jù)加密。一種安全狀態(tài)經(jīng)過上述的這些手段就可以轉(zhuǎn)移到另一種狀態(tài),把這種狀態(tài)與某個安全屬性相比較,如果一致的話,就表明能夠執(zhí)行該屬性對應的命令,這就是COS安全體系的基本工作原理。
從上面對coS安全體系的工作原理的敘述中,我們可以看到,相對于安全屬性和安全狀態(tài)而言,安全機制的實現(xiàn)是安全體系中極力重要的一個方面。沒有安全機制,COS就無法進行任何操作。而從上面對安全機制的介紹中,我們可以看到,COS的安全機制所實現(xiàn)的就是如下三個功能:鑒別與核實,數(shù)據(jù)加密與解密,文件訪問的安全控制。因此,我們將在下面對它們分別進行介紹。其中,關于文件訪問的安全控制,由于它與文件管理器的聯(lián)系十分緊密,因此我們把它放到文件系統(tǒng)中加以討論。
(1)鑒別與核實:鑒別與核實其實是兩個不同的概念,但是由于它們二者在所實現(xiàn)的功能上十分地相似,所以我們同時對它們進行討論,這樣也有利于在比較中掌握這兩個概念。
通常所謂的鑒別(Authentication)指的是對智能卡(或者是讀寫設備)的合法性的驗證,即是如何判定一張智能卡(或讀寫設備)不是偽造的卡(或讀寫設備)的問題;而核實(verify)是指對智能卡的持有者的合法性的驗證,也就是如何判定一個持卡人是經(jīng)過了合法的授權(quán)的問題。由此可見,二者實質(zhì)都是對合法性的一種驗證,就其所完成的功能而言是十分類似的。但是,在具體的實現(xiàn)方式上,由于二者所要驗證的對象的不同,所采用的手段也就不盡相同了。
具體而言,在實現(xiàn)原理上,核實是通過由用戶向智能卡出示僅有他本人才知道的通行字,并由智能卡對該通行宇的正確性進行判斷來達到驗證的目的的。在通行字的傳送過程中,有時為了保證不被人竊聽r還可以對要傳送的信息進行加密/解密運算,這一過程通常也稱為通行字鑒別。
鑒別則是通過智能卡和讀寫設備雙方同時對任意一個相同的隨機數(shù)進行某種相同的加密運算(目前常用 DES算法),然后判斷雙方運算結(jié)果的一致性來達到驗證的日的的。
根據(jù)所鑒別的對象的不同,COS又把鑒別分為內(nèi)部鑒別(Interna1 Authentication)和外部鑒別(External Authentication)兩類。這里所說的“內(nèi)部”、“外部”均以智能卡作為參照點,因此,內(nèi)部鑒別就是讀寫設備對智能卡的合法性進行的驗證;外部簽別就是智能 F對讀寫設備的合法性進行的驗證。至于它們的具體的實現(xiàn)方式.我們在第5章中已有詳細論述,此處不再重復。
智能卡通過鑒別與核實的方法可以有效地防止偽卡的使用,防止非法用戶的入侵,但還無法防止在信息交換過程中可能發(fā)生的竊聽,因此,在卡與讀寫設備的通信過程中對重要的數(shù)據(jù)進行加密就作為反竊聽的有效手段提了出來。下面僅對加密中的一個重要部件——密碼在COS中的管理及存儲原理加以說明。
(2)密碼管理:目前智能卡中常用的數(shù)據(jù)加密算法是DES算法。采用DES算法的原因是因為該算法已被證明是一個十分成功的加密算法,而且算法的運算復雜度相對而言也較小,比較適用于智能卡這樣運算能力不是很強的情況。 DES算法的密碼(或稱密鑰)長度是64位的。 COS把數(shù)據(jù)加密時要用到的密碼組織在一起,以文件的形式儲存起來,稱為密碼文件。最簡單的密碼文件就是長度為8個字節(jié)的記錄的集合,其中的每個記錄對應著一個DES密碼;較為復雜的密碼文件的記錄中則可能還包含著該記錄所對應的密碼的各種屬性和為了保證每個記錄的完整性而附加的校驗和信息。
其中的記錄頭部分存儲的就是密碼的屬性信息,例如是可以應用于所有應用文件的密碼還是只對應某一應用文件可用的密碼;是可以修改的還是只能讀取的密碼等等。但是:不論是什么樣的密碼文件,作為一個文件本身,COS都是通過對文件訪問的安全控制機制來保證密碼文件的安全性的。
當需要進行數(shù)據(jù)加密運算時,COS就從密碼文件中選取密碼加入運算。從密碼文件中讀出密碼時,與讀取應用數(shù)據(jù)一樣,只要直接給出密碼所在的地址就可以了。當然,員簡單的產(chǎn)生密碼的方法是直接從密碼文件中隨機讀出一個密碼作為加密用密碼。但是這樣的機制可能會多次選中同一密碼,從而給竊聽者提供破譯的機會,安全性不太高。因此,比較好的辦法是在隨機抽取出一個密碼后再對密碼本身作一些處理,盡量減少其重復出現(xiàn)的機會。例如PBOS產(chǎn)品中,采用的辦法就是對從密碼文件中選出的密碼首先進行一次DES加密運算,然后將運算結(jié)果作為數(shù)據(jù)加密的密碼使用。其計算公式如下:
Key = DES(CTC, K(a))
式中,K是從密碼文件中隨機選取的一個密碼;CTC是一個記錄智能卡的交易次數(shù)的計數(shù)器,該計數(shù)器每完成一次交易就增一;key就是最后要提供給數(shù)據(jù)加密運算使用的密碼。使用這種方法可以提高智能卡的安全性,但卻降低了執(zhí)行的效率。因此,具體采用什么樣的方法來產(chǎn)生密碼應當根據(jù)智能卡的應用范圍及安全性要求的高低而具體決定。
應用管理器/文件管理器
(Application Manager/File Manager)
應用管理器
應用管理器的主要任務在于對智能卡接收的命令的可執(zhí)行性進行判斷。關于如何判斷一條命令的可執(zhí)行性,我們已經(jīng)在安全體系一節(jié)中作了說明,所以我們可以認為,應用管理器的實現(xiàn)主要是智能卡中的應用軟件的安全機制的實現(xiàn)問題。而因為智能卡的各個應用都以文件的形式存在,所以應用管理器的本質(zhì)就是我們將要在下一節(jié)加以詞論的文件訪問的安全控制問題。正是基于這一點,我們也可以把應用管理器看作是文件管理器的一個部分。
文件管理
與安全一樣,文件也是COs中的一個極為重要的概念。所謂文件,是指關于數(shù)據(jù)單元或卡中記錄的有組織的集合。 COS通過給每種應用建立一個對應文件的方法來實現(xiàn)它對各個應用的存儲及管理。因此,COS的應用文件中存儲的都是與應用程序有關的備種數(shù)據(jù)或記錄。此外,對某些智能卡的CoS,可能還包含有對應用文件進行控制的應用控制文件。
在COS中,所有的文件都有一個唯一的文件標識符(File ldentifier),因此通過文件標識符就可以直接查找所需的文件。此外,每個文件還可以有一個文件名作為助記符,它與文件標識符的不同之處在于它是可以重復的。COS中的各文件在智能卡的個人化過程中由發(fā)行商(Issuer) 根據(jù)卡的應用而創(chuàng)建,對卡的用戶而言通常是不能對文件進行創(chuàng)建或刪除的。但是用戶可以根據(jù)情況對文件內(nèi)容進行修改,可以對文件中的記錄或數(shù)據(jù)單元進行增加、刪除等操作。
(l)文件系統(tǒng):COS的文件按照其所處的邏輯層次可以分為三類;主文件(Master File),專用文件(Dedicated File)以及基本文件(EIementary File)。其中,主文件對任何COS都是必不可少的,它是包含有文件控制信息及可分配存儲區(qū)的唯一文件,其作用相當于是COS文件系統(tǒng)的根文件,處于COS文件系統(tǒng)的最高層;基本文件也是必不可少的一個部分,它是實際用來存儲備應用的數(shù)據(jù)單元或記錄的文件,處于文件系統(tǒng)的最底層,而專用文件是可選的,它存儲的主要是文件的控制信息、文件的位置、大小等數(shù)據(jù)信息。我們可以用圖6.38的樹狀結(jié)構(gòu)來形象地描述一個COS的文件系統(tǒng)的基本結(jié)構(gòu)。
當然,對于具體的某個COS產(chǎn)品,很可能由于應用的不同,對文件的實際分類標陳會有所不同。但只要仔細地進行分析,都可以歸結(jié)為上面的三個邏輯層次。例如前面授到過的PCOS產(chǎn)品。它對文件的分類不是按照邏輯層次劃分的,而是根據(jù)文件的用途進行的。
它的文件分為三類:COS文件(COSFile)、密碼文件(KeyFile)和錢夾文件(PursesFile)。
其中所謂的COS文件保存有基本的應用數(shù)據(jù);密碼文件存儲的是進行數(shù)據(jù)加密時要用到的密碼;錢夾文件的作用有些類似于我們?nèi)粘I钪械腻X包。由此可見,它的這三類文件本質(zhì)上其又都屆今基本文件(EF)類。在PCOS中,專用文件的慨念不是很明顯,但是事實上,如果大家留心的話,那么從以前的論述中,應該不難發(fā)現(xiàn)該產(chǎn)品存儲器分區(qū)中FAT區(qū)內(nèi)的文件捆;交器的作用就類似于專用文件;而整張PCoS卡本身的性質(zhì)實際就是一個主文件。
cos文件有四種邏輯結(jié)構(gòu):透明結(jié)構(gòu),線性定長結(jié)構(gòu),線性變長結(jié)構(gòu),定長循環(huán)結(jié)構(gòu)。
它們的定義及特點可以參閱ISO/IEC7816—4協(xié)議中的有關部分,這里不再詳述。不過.無論采取的是什么樣的邏輯結(jié)構(gòu),cos中的文件在智能卡的存儲器中都是物理上連續(xù)存放的。卡中數(shù)據(jù)的存取方式、記錄的編號方法、數(shù)據(jù)單元的大小等作為文件系統(tǒng)的特征,在智能卡的復位應答過程中由卡給出。職過一般而言,在智能卡中最為重要的數(shù)據(jù)存取方式還是隨機存取方式,也就是卡的用戶在得到授權(quán)后,可以直接地任意訪問文件中的某個數(shù)據(jù)單元或記錄。至于COS具體對文件可以進行什么樣的操作.我們將在C()3的命令系統(tǒng)中進行討論。
(2)文件訪問安全:對文件訪問的安全性控制是COS系統(tǒng)中的一個十分重要的部分,由于目前的國際標準(ISO/IEC7816-4)在這方面基本沒有作出什么實質(zhì)性的規(guī)定,因此,現(xiàn)有的文件訪問的安全控制機制的具體實現(xiàn)方式多種多樣。我們在這里準備介紹其中比較有代表性的兩種實現(xiàn)方式:鑒別寄存器方式以及狀態(tài)機方式。其中,采用鑒別寄存方式的有PCOS、ME2000等產(chǎn)品:采用狀態(tài)機方式的產(chǎn)品有STARCOS。
采用鑒別寄存器方式時,通常是在內(nèi)存RAM中設置一個8位(或者是16位)長的區(qū)域作為鑒別用寄存器。這里的鑒別是指對安全控制密碼的鑒別。鑒別用寄存器所反映的是智能卡在當前所處的安全狀態(tài)。采用這種方式時,智能卡的每個文件的文件頭(或者是文件描述器)中通常都存儲有該文件能夠被訪問的條件,——般是包括讀、寫兩個條件r分別用Cr、Cu表示),這就構(gòu)成了該文件的安全屬性。而用戶通過向智能卡輸入安全密碼.就可以改變卡的安全狀態(tài),這一過程我們j至常稱為出示,這就是鑒別寄存器為式的安全機制。把上面的二方面結(jié)合起來,就能夠?qū)ㄖ形募淖x寫權(quán)限加以控制了。具體的操作機制我們以 PCOS為例加以描述。
首先,PBOS中的鑒別寄存器是8位字長的,這 s位dI的假;位分別與PC()3存儲器中保密宇區(qū)內(nèi)的7個安全密碼的序號一一對應。寄存器中每——位的初始值都被置為“0”。如果用戶向智能卡出示了某一個安全密媽,并且被F判斷為正確的話,系統(tǒng)就在鑒別寄存器的相應位上寫入“1”。
例如,如果處于保密宇區(qū)中的第2個安全密碼被用戶正確出示的話,PCOS就在寄存器的第2位上寫“1”。同時,文件描述器中的讀、寫條件Cr、Cu保存的都是在0和7之間的一個數(shù),它的值對應于該文件進行讀(或?qū)?操作時所需要出示的密碼在保密宇區(qū)小的序號。在對某個文件進行讀(或?qū)?操作之前,系統(tǒng)首先判斷在鑒別寄存器巾對應的第Cr(或Cu)位是否已被置為“1”(如果Cr等于0,就表示該文件可以被用戶隨意讀??;對于Cu也是一樣),只有當該位為“1”時,才表示讀(或?qū)?權(quán)限已經(jīng)得到滿足.才能對該文件進行讀(或?qū)?操作。這也就是說,如果用戶想要對一個文件進行操作的話,就必須要首先出示對應于該文件的安全屬性為正確的安全密碼。系統(tǒng)據(jù)此就達到了對文件的訪問進行安全控制的目的。
與鑒別寄存器方式完全不一樣,狀態(tài)機方式更加明顯地表示出擴安全狀態(tài)、安全屬性以及安全機制的概念以及它們之間的關系(關于狀態(tài)機的知識不屬于本書的范疇,有興趣的讀者請自行查閱有關資料)。以5TARCOS為例,它采用的是‘—種確定狀態(tài)機的機制,該機制通過系統(tǒng)內(nèi)的應用控制文件(Applicatlon ControIFile,ACF)而得以實現(xiàn)。 ACF文件的格式已是一個線性變長結(jié)構(gòu)的文件,其rh記錄 01包括了該ACP所控制的應用可以允許的所有命令的指令碼(INS);其余的記錄分別與記錄 01中的指令碼一一對應,其中存儲的都是對府命令的變體(Varient)紀錄。所謂變體記錄指的是這樣的一些記錄。記錄中存儲的是控制信息、初始狀態(tài)、可能的下一狀態(tài)以及某些附加的指令信富的組臺,利用 ACF 中的這些變體記錄就可以形成狀態(tài)轉(zhuǎn)移圖。在變體記錄中,控制信息部分是必不可少的。不同的變體記錄主要在兩個方面有區(qū)別:一是命令所允許的狀態(tài)不同t二是以CLA宇節(jié)開始的指令信息部分不相同。這主要是由命令要操作的應用對象的不同而決定的。
利用 ACF,COS系統(tǒng)就可以實現(xiàn)對文件訪問的安全控制了。當系統(tǒng)接收到一個應用進行操作的一條命令后,首先檢驗其指令碼是否在相應的ACF文件的記錄01中。如果不在其中,系統(tǒng)就認為該命令是錯誤的。在找到了對應的指令碼后,系統(tǒng)把命令的其余部分與該命令對應的備變體記錄中的指令信息按照該變體記錄的控制信息的要求進行比較,如果比較結(jié)果一致,那么再查驗變體記錄中的初始狀態(tài)信息。若所有這些檢測都順利通過,那么系統(tǒng)就進入對應變體記錄中指明的下一狀態(tài);否則,繼續(xù)查找下一個變體記錄直到發(fā)現(xiàn)相應變體或是查完該命令對應的所有變體記錄為止。如果沒有找到相應的變體記錄,說明該命令是非法的;否則就進入下一步對命令的處理,即由 COS調(diào)用實際的處理過程執(zhí)行對命令的處理。當且僅當處理過程正常結(jié)束的時候,系統(tǒng)才進入一個新的狀態(tài),并開始等待對下一條命令的接收。
基本概念/主要功能
基本概念
數(shù)據(jù)元素(Data Element)
具有應用意義或內(nèi)部工業(yè)環(huán)境中具有意義的信息。
數(shù)據(jù)單元(Data Unit)
可以被具體尋址確定的最小二進制信息集合。
記錄(Record)
可以作為一個整體被IC卡處理,并可由記錄號或記錄標識符尋址確定的字節(jié)串。
記錄號(Record Number)
在記錄文件中,順序、唯一的號碼。
記錄標識符(Record Identifier)
可以在應用級選擇,一個文件中的幾個記錄可以具有相同的標識符。
文件(File)
在IC卡中,有組織的數(shù)據(jù)單元或記錄的集合。
文件名(File Name)
在IC卡中可以唯一標識一個DF的字節(jié)串。
文件標識符(File Identifier)
每一文件(MF,DF,EF)均有的一個2字節(jié)標識信息。
文件控制信息(File Control Information)
一個文件的邏輯、結(jié)構(gòu)及安全屬性信息。
路徑(Path)
無限制的文件標識符的聯(lián)接。
可分配存儲器(Allocable Memory)
在一個文件中包含的存儲器的一部分,但還沒有被具體分配。
命令-響應對(Command- Response Pair)
兩個信息的集合:一個命令后跟隨一個響應。
層次級別(Level)
從主文件開始,到具體某一文件中間DF的數(shù)量,其中主文件的層次級別為0。
主要功能
歸納起來,智能IC卡操作系統(tǒng)至少應具備以下4種基本功能:
硬件資源管理功能;
通訊傳輸管理功能;
應用控制管理功能;
安全控制管理功能。
其中每一種功能又由若干子功能組成。如按ISO的OSI參考模型分類,硬件資源管理功能屬于物理層;通訊傳輸管理功能屬于數(shù)據(jù)鏈路層;應用控制管理和安全控制管理則屬于應用層。各層之間的邏輯關系見圖。
圖為智能IC卡各功能層之間的邏輯關系
硬件資源管理
智能IC卡中的硬件資源十分豐富,其功能也各不相同,見表3-1。其中EEPROM是提供用戶的最主要的應用資源。
智能IC卡硬件功能說明
硬件資源 說明 主要功能
MPU 微處理器 系統(tǒng)的中央運算、處理、管理
CAU 加密運算協(xié)處理器 執(zhí)行有關加、解密運算
ROM 只讀存儲器 存儲操作系統(tǒng)程序
RAM 隨機存儲器 臨時工作數(shù)據(jù)的暫存
EEPROM 電擦除存儲器 應用程序、數(shù)據(jù)的存儲
I/O 通訊接口 通訊傳輸
SL 安全邏輯 內(nèi)部資源的硬件保護
···
硬件資源管理的目的就是由它統(tǒng)一組織、協(xié)調(diào)、指揮這些硬件的運行,為高層應用提供相應程序接口,使高層應用編程更容易、實現(xiàn)更簡單、可靠。它類似于PC機上的BIOS(基本輸入輸出接口)功能,但比它的管理層次更高。下面重點介紹用戶存儲器的組織管理。
一、用戶存儲器的數(shù)據(jù)結(jié)構(gòu)
按ISO/IEC 7816標準,用戶存儲器的數(shù)據(jù)結(jié)構(gòu)有線性固定結(jié)構(gòu)(Linear Fixed)、線性可變結(jié)構(gòu)(Linear Variable)、環(huán)形結(jié)構(gòu)(Cyclic)、透明結(jié)構(gòu)(Transparent)四種,見圖3-2。用戶可以根據(jù)應用數(shù)據(jù)的特點、更新速率等因素,決定選用哪種數(shù)據(jù)結(jié)構(gòu)。
圖2 數(shù)據(jù)組織結(jié)構(gòu)
1、線性固定結(jié)構(gòu)
典型結(jié)構(gòu)如定長度記錄,其中每一記錄的存儲位置均由一個唯一的記錄號標識,可以隨機讀寫。按有關ISO/IEC標準,記錄號的范圍為1~253。
2、線性可變結(jié)構(gòu)
如可變長度記錄,其中每一記錄的存儲位置均由一個唯一的記錄號標識,可以隨機讀寫。按有關ISO/IEC標準,記錄號的范圍為1~254。
3、環(huán)形結(jié)構(gòu)
這種結(jié)構(gòu)類似首尾環(huán)起來的定長度記錄,不允許隨機寫。其中記錄以某一固定順序存放,因為記錄數(shù)量有限,若超過限制數(shù)量,新寫入的數(shù)據(jù)將覆蓋掉舊的數(shù)據(jù)。
4、透明結(jié)構(gòu)
二進制數(shù)據(jù)使用這種數(shù)據(jù)結(jié)構(gòu)時,一般由用戶尋址、管理該數(shù)據(jù),操作系統(tǒng)只負責存儲空間的分配。透明數(shù)據(jù)結(jié)構(gòu)適用于聲音、圖像等超文本(HyperText)信息的存儲。
二、用戶存儲器的文件組織形式
按ISO/IEC 7816標準規(guī)定,智能IC卡中的數(shù)據(jù)在用戶存儲器中以樹型文件結(jié)構(gòu)的形式組織存放。文件分成三種層次級別:一是主文件(Master File),形成文件系統(tǒng)的根,類似于DOS中的根目錄;二是專用文件(Dedicated File),在主文件之下,類似于DOS中的目錄;三是子專有文件(Child-DF),在DF之下的專有文件類似于DOS中的子目錄。當然,DF之下還可以有DF,這主要依賴于用戶存儲器的大小。此外,還有元文件(Elementary File),主要存儲實際應用數(shù)據(jù)和相應的系統(tǒng)管理信息,元文件可以存在于任何一個文件層次上。
智能IC卡文件的樹型結(jié)構(gòu)見下圖。
圖3 智能IC卡樹型組織文件
在智能IC卡的文件結(jié)構(gòu)中,主文件只能有一個并且隨操作系統(tǒng)一起生成,用戶無法控制;在文件存取過程中,不能越層存取,若想讀寫子專有文件下的元文件必須經(jīng)過其高層文件層次;某一專有文件的大小在申請生成時預定且不可修改,也有的操作系統(tǒng)可以在使用中動態(tài)修改該專有文件大小,當然其前提是有足夠的存儲空間。
三、文件類型及其特性
智能IC卡操作系統(tǒng)的文件有三種層次級別。每一層次級別的文件還分不同的種類,具有不同的用途。
1、主文件
系統(tǒng)中必須存在唯一一個主文件,主文件組成智能IC卡文件系統(tǒng)的根。主文件中含有系統(tǒng)文件控制信息及可分配的存儲空間,其下可以建立各種文件。
雖然系統(tǒng)允許在根下直接生成各種應用文件,但最佳的文件組織方法是每一種應用均分配一個專有文件,在相應應用的專有文件下再具體組織安排各種應用數(shù)據(jù)。這樣做的優(yōu)點是不同應用之間相互干擾小、便于應用設計、安全性更高等,有利于“一卡多用”。主文件一般用來存儲不同應用之間的共享數(shù)據(jù),如卡序列號、持卡人數(shù)據(jù)等信息。
在初始化時,主文件還可以被賦予一些安全特性,如禁止使用操作系統(tǒng)的某些命令等。這樣做的目的是為了在從IC卡生產(chǎn)到最終應用的環(huán)節(jié)過多時的安全管理,便于跨部門甚至跨行業(yè)的“一卡多用”的安全實施。
智能IC卡一旦插入讀寫設備,主文件就立即被激活直到卡被拔出。在卡的生存期內(nèi),主文件不能被刪除。
2、專有文件
專有文件含有文件控制信息及可分配的存儲空間,其下可以建立各種文件。
一個專有文件將被用來存儲某一應用的所有數(shù)據(jù)。每一應用的應用順序均由該專有文件的狀態(tài)機控制,使不同應用之間具有較強的獨立性并且更安全。
專有文件在用戶存儲器中占據(jù)一塊靜態(tài)存儲器,一旦專有文件建立,其存儲器的大小就不能變動,但在該專有文件下的元文件則可以重新分配所使用存儲器大小,可以被刪除。專有文件下還可以再建立專有文件。此時,較高層的專有文件稱為父專有文件(Parent-DF),較低層的稱為子專有文件(Child-DF)。
父專有文件無論在邏輯上(操作系統(tǒng)管理)還是在物理上(用戶存儲器)均相互隔離。不同的專有文件均可使用主文件下的公共資源。父專有文件的建立一般分成兩個步驟:先邏輯創(chuàng)建,即在操作系統(tǒng)中作一創(chuàng)建登記;再物理創(chuàng)建;實際分配一定數(shù)量的用戶存儲器。分步創(chuàng)建的優(yōu)點是可以獨立于時間和存儲器位置生成具體應用。某一具體的父專有文件不能在其它專有文件或主文件中刪除,該父專有文件的刪除條件在其應用控制文件(ACF)中定義,只有滿足該條件才刪除。該父專有文件被刪除之后,其下的子專有文件、元文件也同時被刪除,釋放的存儲器塊可由其它父專有文件使用。
子專有文件可以是某一子應用,子專用文件可有其自已的應用控制文件。某一具體的子專有文件不能在其它專有文件或主文件中刪除。該子專有文件的刪除條件在應用控制文件中定義,只有滿足該條件才可刪除。該子專有文件被刪除之后,其下的專有文件(若還有)、元文件也同時被刪除,釋放的存儲器塊可由其它子專有文件使用。
3、元文件
元文件含有實際應用數(shù)據(jù)或文件控制信息,其下不可建立任何文件。
元文件分為三類:一類存儲實際的應用數(shù)據(jù),稱為工作元文件(WEF);另一類存儲相應的系統(tǒng)管理信息,稱為系統(tǒng)管理元文件(SMEF);在ISO/IEC 7816標準中還定義有一種公共元文件(PEF)。
工作元文件(Working Elementary File)具有以下特性:
存儲應用數(shù)據(jù);
若條件滿足可被讀、寫、刪除等;
可以存在于任何文件結(jié)構(gòu);
可以是任何一種文件結(jié)構(gòu);
具有內(nèi)部數(shù)據(jù)校驗(如檢查和)措施。
系統(tǒng)管理元文件(System Management EF)有以下兩種。
1、內(nèi)部保密文件(Internal Secret Files, ISF)具有以下特性:
存儲系統(tǒng)或應用保密數(shù)據(jù),如加密密鑰、個人密碼等;
可被輸入、修改、覆蓋,但不可讀;
不能部分刪除;
可以存在于任何文件層次;
文件結(jié)構(gòu)可為線性可變結(jié)構(gòu)。
2、應用控制文件(Application Control Files, ACF)具有以下特性:
存儲應用狀態(tài)機棗應用順序控制數(shù)據(jù);
不能刪除;
每一文件層次必須有一ACF;
文件結(jié)構(gòu)可為線性可變結(jié)構(gòu)。
公共元文件(Public EF)主要用于存儲系統(tǒng)或應用的公共數(shù)據(jù),可以無條件存取。
四、文件屬性
每一種文件均具有相應屬性(Attributs),智能IC卡的文件屬性一般有4種:
文件名(File Name)/文件標識(File Identifer);
安全狀態(tài)(Security Status);
操作模式(Operation Mode);
注釋(Notation)。
1、文件名/文件標識
每一文件可以通過其文件名或文件標識來尋址。按ISO/IEC 7816標準,文件類型不同,文件標識的編碼也不相同。正確識別、尋址一個文件需要一個從主文件或當前專有文件到該文件的完整的標識路徑。從主文件開始的路徑稱為絕對路徑(Absolute Path),可以唯一確定某一文件,這一點和DOS操作系統(tǒng)中的有關概念十分相似。
在ISO/IEC 7816標準中規(guī)定,每一文件均由一個2字節(jié)長的文件標識參考確定,但在專有文件中也可以使用文件名來標識該文件,主要是為了便于應用設計人員設計該卡,特別是將父專有文件以文件名來標識,更容易區(qū)分、理解“一卡多用”。此外,在某一張卡上文件名一定要能唯一確定某一文件。其實,以名字命名該文件時操作系統(tǒng)同時在內(nèi)部也自動分配給它一個標識,并通過標識來管理該文件。
不同文件類型的標識具有不同的編碼。按ISO/IEC 7816標準,文件標識的第一個字節(jié)為文件限定符(File Qualifier),主要用于區(qū)別文件類型(如主文件、專有文件等);第二個字節(jié)為文件索引(File Index)。其中規(guī)定:
主文件:其標識確定為“3F00 H”(十六進制);
父專有文件(在標準中沒有作具體規(guī)定):一般的操作系統(tǒng)中,文件名最長為8字節(jié)字符串(第一個字節(jié)不能為“20 H”),若文件名不足8字節(jié)長,操作系統(tǒng)將在其后以“20 H”補足剩余字節(jié),所有父專有文件的名字不能相同;
子專有文件:子專有文件的文件標識為2字節(jié)。同一父專有文件下的子專有文件的標識不能相同,但不同父專有文件下的子專有文件的標識則可以相同;
元文件:文件標識為2字節(jié)。其中第一個字節(jié)為文件限定符,第二個字節(jié)為文件索引,在ISO/IEC 7816中都沒有作十分明確的規(guī)定,其目的是為整個系統(tǒng)設計留有選擇的余地。一般文件限定符可以根據(jù)情況自定,當然最好不與標準沖突。文件索引也可自定,一種典型的編碼格式見表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、安全狀態(tài)
它主要用于定義不同命令在不同狀態(tài)下(由某一應用的狀態(tài)機決定)對該文件的存取權(quán)限。
3、操作模式
操作模式用于定義文件的靜態(tài)存取特性,主要有以下幾種特性:
可刪除性(Erasable);
讀/寫特性(R/W);
存取特性(Access);
一次寫入、多次讀出特性(WORM);
只讀特性(RO);
只寫特性(WO);
可計算性(Compute):定義該文件是否可被某些命令存取執(zhí)行。
4、注釋
注釋含有某一文件的簡短的說明信息,如版本號等。
在ISO/IEC 7816標準中,對諸如文件屬性等的定義十分簡單,很不具體。其目的就是給系統(tǒng)設計人員保留充分的發(fā)揮空間。當具體設計某一IC卡的應用系統(tǒng)時,必須按智能IC卡的供應商的技術(shù)說明書操作。
通訊傳輸管理
IC卡必須與相應的讀寫設備(IFD)通訊。從這個角度講,智能IC卡操作系統(tǒng)的作用就是從讀寫設備(IFD)接收命令、執(zhí)行命令并將結(jié)果返回讀寫設備(IFD)。所以,通訊管理功能模塊在操作系統(tǒng)中具有十分重要的作用。
通訊管理功能模塊主要實現(xiàn)以下幾種功能:
實現(xiàn)某一通訊協(xié)議的數(shù)據(jù)鏈路層的傳輸管理功能;
實現(xiàn)ISO/IEC 7816標準規(guī)定的ATR(復位響應)等功能;
·為操作系統(tǒng)中的其它功能模塊提供相應接口。
按ISO/IEC 7816標準,IC卡和讀寫設備之間的通訊協(xié)議有多種,一般一種特寫的卡只支持某一種通訊協(xié)議。下面以符合ISO/IEC 7816-3標準的T=1塊傳輸協(xié)議的智能IC卡為例介紹通訊管理功能(支持其它通訊協(xié)議的卡的通訊管理功能與此相似)。
ICC上電之后,IFD將向ICC發(fā)送命令數(shù)據(jù),在這樣一次典型的通訊過程中,通訊管理功能模塊主要從事6個步驟的具體工作。見圖。
通訊模塊管理
IFD和ICC之間的通訊由IFD啟動,IFD還負責給卡供電。通訊為半雙工方式(Half Duplex),即同時只能有一方在傳輸信息。
第一步:復位響應
在ICC正確插入IFD之后,通訊管理功能模塊將向IFD發(fā)送一個復位響應信息(Answer To Reset,ATR)。ATR中含有卡標識數(shù)據(jù),如I/O緩沖區(qū)的大小、通訊速率轉(zhuǎn)換因子(Conversions Factor)等信息,通知IFD本ICC的操作特性,以便IFD正確選擇相應的操作參數(shù)與ICC進行通訊。ICC每次硬復位(卡插入IFD)都將發(fā)送一個ATR給IFD。
第二步:數(shù)據(jù)收發(fā)
具體監(jiān)控、執(zhí)行傳輸協(xié)議,收發(fā)數(shù)據(jù)。
第三步:鏈接模式傳輸管理
因為T=1協(xié)議傳輸完整的信息,其大小可能超過I/O緩沖區(qū)的大小。為避免出現(xiàn)傳輸問題,通訊管理功能模塊將一個完整的信息分塊傳輸。
第四步:傳輸檢查
通過檢查某一字節(jié)的奇偶校驗位、某一塊的檢查和或長度,發(fā)現(xiàn)傳輸錯誤并通知IFD。在這種情況下,IFD將重發(fā)錯誤數(shù)據(jù)。反之,若IFD通知ICC數(shù)據(jù)發(fā)送出錯,ICC將執(zhí)行數(shù)據(jù)重發(fā)操作。
第五步:數(shù)據(jù)傳遞
若經(jīng)過上面步驟后數(shù)據(jù)正確接收,通訊管理功能模塊將接收數(shù)據(jù)傳遞給下一功能模塊,如安全控制管理模塊作進一步處理。反之亦然。
第六步:傳輸結(jié)束處理
若正確傳輸后無任何其它動作,通訊管理功能模塊將MPU置于相應的節(jié)電方式,如睡眠方式(Sleep Mode)以節(jié)省功耗。
反之,ICC向IFD發(fā)送有關數(shù)據(jù)信息,也將執(zhí)行以上若干類似步驟的操作。
應用控制管理
為適應智能IC卡的應用,特別是對安全性要求較高的應用,在智能IC卡的操作系統(tǒng)中還提供應用控制管理功能模塊。在以上對用戶存儲器的文件組織方式的描述中曾經(jīng)提到每一文件層次(如MF,DF等)均由一個應用控制文件,在該文件中就定義有應用控制管理數(shù)據(jù)。
應用控制管理功能模塊主要具有兩個功能:一是提供對某一應用(處于某一文件層次)的應用順序流程控制;二是提供在不同的應用順序狀態(tài)下的命令執(zhí)行權(quán)限。這兩個功能雖然可以分開討論,但在具體實施時卻密不可分。
1、應用順序流程控制
應用順序流程控制定義了某一應用的順序流程,即狀態(tài)機。例如,有一個較簡單的應用分四步執(zhí)行,同時該應用具有三個狀態(tài),啟動該應用需滿足條件1,然后進入狀態(tài)1,執(zhí)行相應操作;若在狀態(tài)1下的操作滿足了條件2,則進入狀態(tài)2并執(zhí)行相應操作;若在狀態(tài)2下的操作滿足了條件3,則進入狀態(tài)3并執(zhí)行相應操作;就用結(jié)束,如下圖所示。
應用流程圖
可見,所謂應用順序流程控制就是定義了某一應用的具體執(zhí)行過程及相應條件。一旦確定了應用流程,某一應用就必須而且只能按其要求執(zhí)行,如在上圖中不可以從狀態(tài)1直接跳躍到狀態(tài)3去執(zhí)行某一操作。
2、命令執(zhí)行權(quán)限
進一步提高應用的安全性,在應用順序流程中還定義了在某一應用的不同狀態(tài)下對命令的執(zhí)行權(quán)限。如一數(shù)據(jù)文件,在該文件建立時定義了其存取特性(如可讀寫但不能刪除),通過在該應用的順序流程中定義讀、寫命令還可以進一步限制對該文件的存取。擴展上面的例子,假設在該應用中有一數(shù)據(jù)文件存儲有重要數(shù)據(jù),該文件的屬性定義為可讀寫,但根據(jù)應用需求讀寫操作只能在狀態(tài)3執(zhí)行,狀態(tài)2只能進行讀操作,這就可以通過禁止在狀態(tài)2執(zhí)行寫命令而允許讀命令,在狀態(tài)3同時允許執(zhí)行讀、寫命令的方法實現(xiàn),如圖6所示。
命令權(quán)限限制示意圖
至此,從應用順序控制角度可以認為,在建立某一文件時定義的屬性為該文件的靜態(tài)屬性,而結(jié)合具體應用定義的命令執(zhí)行權(quán)限則為該文件的動態(tài)屬性。由此可見,利用這種機制對數(shù)據(jù)文件的存取限期安全又靈活。
安全控制管理
安全控制管理就是對智能IC卡中的靜態(tài)、動態(tài)數(shù)據(jù)進行安全控制及管理。它可以具體分為兩種功能:一是安全傳輸控制,即對傳輸數(shù)據(jù)的安全保護;二是對內(nèi)部靜態(tài)安全數(shù)據(jù)(如加密密鑰等、各種認證授權(quán)操作)的控制管理。
一、安全傳輸控制
為防止有關信息(命令、數(shù)據(jù))在IFD和ICC之間的傳輸過程中被惡意截取、篡改,提高動態(tài)傳輸信息的安全性和可靠性,在智能IC卡的操作系統(tǒng)中提供安全傳輸控制機制。其主要原理為:或者通過將傳輸?shù)男畔⒓用?,使非法截取的信息無實際應用意義;或者將待傳輸?shù)男畔ⅲɑ虿糠中畔ⅲ┻M行加密,并將該加密信息附加在傳輸?shù)拿魑闹笤龠M行傳輸,使惡意篡改信息變?yōu)椴豢赡?;再就是將以上兩種方法共同使用,既可防止對傳輸信息的非法截取,又可防止對傳輸信息的非法篡改。
在智能IC卡的操作系統(tǒng)中,一般具有四種信息傳輸方式:
明文傳輸方式(Plaintext Transmit Mode);
認證傳輸方式(Authentic Transmit Mode);
加密傳輸方式(Encipher Transmit Mode);
混合傳輸方式(Mixed Transmit Mode)。
其中,明文傳輸方式對傳輸?shù)男畔⒉蛔魅魏翁幚?,其它三種信息傳輸方式則分別實現(xiàn)三種安全控制傳輸機制。這三種傳輸方式的具體工作原理將在下一章中結(jié)合密碼技術(shù)詳細介紹。
在具體應用中,設計人員可以根據(jù)不同的應用對安全性的特殊要求靈活采用不同的信息傳輸方式。因為并非所有的信息都需要安全傳輸(將增加時間和空間開銷),所以大多數(shù)的智能IC卡操作系統(tǒng)均可對每一次傳輸設定一種傳輸方式,例如可以一次傳輸采用認證傳輸方式,而下一次采用明文傳輸方式,再下一次則采用混合傳輸方式,十分靈活。
二、內(nèi)部安全控制管理
內(nèi)部安全控制管理的功能主要有兩個:一是對數(shù)據(jù)及功能(如某一命令)的存取執(zhí)行權(quán)限的控制;二是對內(nèi)部靜態(tài)保密數(shù)據(jù)(如加密密鑰等)的安全管理。
1、數(shù)據(jù)及功能的存取執(zhí)行權(quán)限控制
以 IC卡為中心,在卡的應用中主要存在兩種認證授權(quán)過程,見圖7。IC卡驗證持卡人身份的合法性這一過程通過個人識別號(PIN)來完成;而IC卡和應用終端之間的認證則通過相應的認證過程來完成。
IC卡應用中存在的兩種認證授權(quán)過程
1)、個人識別號(Personal Identification Number,PIN)
PIN是IC卡中的保密數(shù)據(jù)。PIN的主要用途是保證只有合法持卡人才能使用該卡或該卡中的某一項或幾項功能,以防止拾到該卡的人惡意使用或非法偽造??☉冒l(fā)行部門將每一張IC卡均初始化一個PIN并將它經(jīng)安全渠道分發(fā)給相應持卡人。使用時首先要求持卡人輸入PIN,若輸入的PIN和該卡中存儲的PIN相同則證明此持卡人合法,可以使用該卡。
一般較簡單的IC卡中只有一個PIN,在較復雜的卡(如智能IC卡)中可以存在幾個PIN,如多功能卡中的每一功能就可具有一個PIN。簡單IC卡中PIN的位數(shù)較短(如4位二進制),在較復雜的智能IC卡中PIN的位數(shù)較長(如1~8位十進制)。為進一步提高使用PIN的安全性,每一個PIN還配有一錯誤計數(shù)器(Error Counter)。該計數(shù)器用以記錄、限制PIN輸入錯誤的次數(shù),若一次連續(xù)的輸入錯誤次數(shù)超過卡中規(guī)定次數(shù)則卡自鎖;而在該限制次數(shù)內(nèi)只要PIN輸入正確一次就可使用該卡,且錯誤計數(shù)器復位,即下次使用輸入PIN時還具有卡中規(guī)定的最大的試探次數(shù)。
一旦卡自鎖,簡單的IC卡就不可再用,而復雜的智能IC卡還可通過個人解鎖碼(Personal Unblocking Code,PUC)將卡打開。一般,一個PUC只用于一個PIN,并且也可以有錯誤計數(shù)器。若合法持卡人忘記PIN而將卡鎖住,則使用PUC將卡打開時還可以輸入一個新的PIN。
在智能IC卡操作系統(tǒng)中,PIN還可以有以下幾種屬性。
·可修改性(Modifiable):PIN建立之后可以修改。
·不可修改性(Non- Modifiable):一旦PIN建立之后就不可修改。
·臨時失效性(Temp-Deactivated):通過命令可使某一PIN臨時失效,不起作用,當然還可以通過另一命令再將其激活等等。
另外,在智能IC卡操作系統(tǒng)中,PIN也可按以下兩種形式出現(xiàn)。
·全局PIN(Global PIN):處于系統(tǒng)的較高層次(如主文件)中,一旦因錯誤計數(shù)溢出等原因自鎖,也同時鎖住使用該PIN的其它應用層次。
·局部PIN(Local PI N):處于某一具體應用層次,一旦因錯誤計數(shù)溢出等原因自鎖,則僅鎖住該層次有應用。
2)、安全認證
IC卡和應用終端之間的認證授權(quán)的用途就是相互確認合法性,目的在于防止偽造應用終端及相應的IC卡。它一般有三種認證方式:
內(nèi)部認證(Internal Authentication)
應用終端驗證IC卡的合法性;
PIN功能簡單匯總
功能 簡單IC卡 復雜IC卡如智能IC卡
PIN 否 是
PIN數(shù)量 一個 若干個
PIN位數(shù) 較短,如4位二進制數(shù) 較長/可自定義,如1~8位十進制數(shù)
PIN輸入錯誤限制次數(shù) 較少,如3次 較長/可自定義,如1~15次
PIN構(gòu)成方式 硬件 軟件或軟硬件共同構(gòu)成
全局/局部PIN 否 是
可修改性等其它屬性 否 是
個人解鎖碼(PUC) 否 是
PIN應用示意圖
外部認證(External Authentication):IC卡驗證應用終端的合法性;
相互認證(Mutual Authentication):IC卡和應用終端相互驗證合法性。
由以上論述可見,在對安全性要求較高的應用(如金融應用)中,只有綜合使用PIN和安全認證才能提供較為完善的安全保護。而在一般的IC卡的應用中,可以根據(jù)具體情況優(yōu)化選擇各種安全措施,以達到實現(xiàn)較高性能價格比的目的。
2、內(nèi)部靜態(tài)安全數(shù)據(jù)的管理
內(nèi)部靜態(tài)安全數(shù)據(jù)主要指存儲于IC 卡內(nèi)部的PIN、PUC、加密密鑰、解密密鑰等重要數(shù)據(jù)。稱其為內(nèi)部是因為它們在應用周期(并非整個生存周期)中,一旦建立就不會在IC卡外出現(xiàn),而只能在卡的內(nèi)部使用。這樣做的目的當然是為了進一步提高IC卡的安全性。
在智能IC卡操作系統(tǒng)中,專門提供ISF元文件存儲這些安全數(shù)據(jù)。一般每一文件層次(每一應用,某一DF)均有一個ISF元文件存儲相應層次(相應應用)的有關安全數(shù)據(jù)。
不同種類的安全數(shù)據(jù)(如PIN,加密密鑰)具有不同的屬性及應用特性。內(nèi)部靜態(tài)安全數(shù)據(jù)管理的主要功能就是當某一應用需要某一安全數(shù)據(jù)時檢查其合法性、可獲得性等,并具體執(zhí)行相應的操作。
不同的智能IC卡操作系統(tǒng),內(nèi)部靜態(tài)安全數(shù)據(jù)的管理也不盡相同,感興趣的人士可以參閱有關ISO/IEC 7816標準及相應操作系統(tǒng)的技術(shù)說明書。
三、智能IC卡操作系統(tǒng)的信息結(jié)構(gòu)
在IFD和ICC之間的信息交換是命令-響應對(Command-Response Pair)結(jié)構(gòu),如IFD發(fā)送一個命令到ICC,ICC執(zhí)行命令并將響應信息返回給IFD,典型的傳輸結(jié)構(gòu)見圖9。
IFD和ICC之間的信息傳輸
按有關ISO/IEC 7816有關標準定義,一個應用協(xié)議數(shù)據(jù)單元(APDU)或者含有命令信息(Command Message)或者含有響應信息(Response Message),可以從IFD傳輸?shù)絀CC,反之亦然。其中APDU可以理解為IFD和ICC之間一次通訊傳輸?shù)淖钚⌒畔挝唬缒骋幻畹取?BR>信息結(jié)構(gòu)
信息結(jié)構(gòu):按ISO/IEC 7816有關標準,信息結(jié)構(gòu)有兩種:命令信息結(jié)構(gòu)、響應信息結(jié)構(gòu)。
--命令信息結(jié)構(gòu)
命令信息結(jié)構(gòu)由兩部分組成:4個字節(jié)的命令頭(Header),必備部分;緊接命令頭為一長度可變的數(shù)據(jù)體(Body),可選。
命令信息結(jié)構(gòu)
Header(命令頭) Body(數(shù)據(jù)體)
CLA INS P1 P2 Lc Field Data Field Le Field
命令信息結(jié)構(gòu)中每一字段均具有不同含義。若Le=0,則為請求相應響應數(shù)據(jù)的最大長度。
命令信息結(jié)構(gòu)中的字段含義
字段 名稱 長度(字節(jié)) 含義
CLA 指令類別(CLAss) 1 指令類別
INS 指令碼(INStruction) 1 指令碼
P1 參數(shù)1(Parameter 1) 1 指令參數(shù)1
P2 參數(shù)2(Parameter 2) 1 指令參數(shù)2
Lc字段 長度 可變,≤3 數(shù)據(jù)字段的長度
Data字段 數(shù)據(jù) 可變,=Lc 數(shù)據(jù)字段
Le字段 長度 可變,≤3 預計響應數(shù)據(jù)的最大長度
依據(jù)不同的命令,其信息結(jié)構(gòu)也不相同,一般有以下4種結(jié)構(gòu)。
結(jié)構(gòu)1
在結(jié)構(gòu)1中,沒有Lc、Le及Data字段,既沒有隨命令一起發(fā)送的數(shù)據(jù),也沒有響應數(shù)據(jù)。
結(jié)構(gòu)2
在結(jié)構(gòu)2中,Le為空,既沒有響應數(shù)據(jù)。
結(jié)構(gòu)3
結(jié)構(gòu)3中,Lc為空,即沒有數(shù)據(jù)字段。
結(jié)構(gòu)4
在結(jié)構(gòu)4中,所有字段均存在。
--響應信息結(jié)構(gòu)
響應信息結(jié)構(gòu)也由兩部分組成:可變長度的數(shù)據(jù)體(Body),可選;·2字節(jié)的狀態(tài)信息(Trailer),必備。
響應信息結(jié)構(gòu)中草藥不同字段的含義見表
字段 名稱 長度(字節(jié)) 含義
Data字段 數(shù)據(jù)字段 可變,= Lr 實際響應數(shù)據(jù)長度
SW1 狀態(tài)字節(jié)1 1 命令處理狀態(tài)等數(shù)據(jù)信息
SW2 狀態(tài)字節(jié)2 1 命令處理狀態(tài)等數(shù)據(jù)信息
綜上所述,在IFD和ICC實際的通訊過程中,命令-響應對信息結(jié)構(gòu)具有4種組合情況
情況 命令數(shù)據(jù)信息 響應數(shù)據(jù)信息
1 無數(shù)據(jù)字段 無數(shù)據(jù)字段
2 有數(shù)據(jù)字段 無數(shù)據(jù)字段
3 無數(shù)據(jù)字段 有數(shù)據(jù)字段
4 有數(shù)據(jù)字段 有數(shù)據(jù)字段
命令、響應數(shù)據(jù)信息結(jié)構(gòu)中有關字段的編碼規(guī)則、具體應用等,請參考ISO/IEC 7816有關標準或某一具體智能IC卡操作系統(tǒng)的技術(shù)說明書。
命令類型
--面向數(shù)據(jù)管理的命令
面向數(shù)據(jù)(或文件)管理的命令提供對不同結(jié)構(gòu)的數(shù)據(jù)文件的存取操作及控制等命令,典型的命令如:
·創(chuàng)建文件命令(Create File Command);
·關閉文件命令(Close File Command);
·讀二進制數(shù)據(jù)命令(Read Binary Command);
·寫二進制數(shù)據(jù)命令(Write Binary Command);
·刪除二進制數(shù)據(jù)命令(Erase Binary Command);
·讀記錄命令(Read Record Command);
·寫記錄命令(Write Record Command);
·刪除記錄命令(Erase Record Command);
·選擇文件命令(Select File Command);等。
--命令類型--面向通訊傳輸?shù)拿?BR>
在ISO/IEC 7816標準中還特別定義了兩個面向通訊傳輸?shù)拿?
獲取響應命令(Get Response Command);
包裝命令(Envelope Command)。
在標準的命令說明中指出,當不能用已知協(xié)議傳輸命令或響應數(shù)據(jù)信息時可以使用這兩個命令進行有關信息的傳輸。這兩個命令均由IFD初始啟動,獲取響應命令用于從ICC到IFD方向信息的傳輸,包裝命令用于從IFD到ICC方向信息的傳輸。
--面向安全控制管理的命令
內(nèi)部認證命令(Internal Authenticate Command);
外部認證命令(External Authenticate Command);
相互認證命令(Mutual Authenticate Command);
生成隨機數(shù)命令(Create Random Number Command);
PIN校驗命令(PIN Verify Command);
安全數(shù)據(jù)控制管理指令類(是一小類指令,主要用于密鑰、PIN、PUC等安全數(shù)據(jù)的生成、刪除、狀態(tài)查詢等,在不同的操作系統(tǒng)的具體實現(xiàn)上差別很大)。
--部分標準指令
指令 指令碼(INS)(十六進制) 說明
Erase Binary 0E 刪除二進制數(shù)據(jù)命令
Verify 20 PIN校驗命令
Extemal Authenticate 82 外部認證命令
Internal Authenticate 88 內(nèi)部認證命令
Select File A4 文件選擇命令
Read Binary B0 讀二進制數(shù)據(jù)命令
Read Record(s) B2 讀記錄命令
Get Response C0 獲取響應命令
Envelope C2 包裝命令
Write Binary D0 寫二進制數(shù)據(jù)命令
Write Record D2 寫記錄命令
智能卡芯片操作系統(tǒng)STARCOS
智能卡芯片操作系統(tǒng)STARCOS(Smart Cark Chip Operation System)是由德國G&D公司和GMD公司合作開發(fā)的智能卡卡片級的一個完整的操作系統(tǒng)。它提供適合具體應用的操作和管理的20余條指令,而且其透明的結(jié)構(gòu)使得用戶可以集成自定義的指令。該操作系統(tǒng)同樣很好地考慮了與現(xiàn)有的和將來的ISO標準的兼容性(ISO/IEC CD 7816。4/Sept.1992)。
Giesecke&Derient是德國最大的卡片生產(chǎn)廠家,一個半世紀以來,以領先的鈔票印刷和自動分清技術(shù)為全世界四十多個國家的中央銀行服務。
在中國,G&D保持其產(chǎn)品和技術(shù)一貫的先進、安全、可靠,被納入中國人民銀行金融IC卡及終端標準制定工作組。
應用:
支持一卡多用,不同的應用程序可以獨立安裝(多功能性)。
實現(xiàn)了文件的分層管理結(jié)構(gòu)(文件組織)。
可以任意定義應用程序執(zhí)行序列(狀態(tài)機)。
數(shù)據(jù)通信時,具有不同層次的安全檢查機制(安全信息)以及真實性檢查。
一卡之中不同應用的數(shù)量只受EEPROM存儲容量的限制。STARCOS已經(jīng)在1K、2K、3K、4K、8K和10K字節(jié)的不同的微處理器上得以實現(xiàn)。這樣對于一些具體的應用就容易得到最好的性能價格比。只要使用具有更大容量的智能卡,任何新的應用程序都可再擴展。
一個應用程序的登錄、生成和安裝都可以在所定義的保密級上獨立進行。保密的要領和數(shù)據(jù)結(jié)構(gòu)完全由應用程序的設計者定義。
STARCOS的功能
STARCOS通過獨立于應用之外的狀態(tài)機來保證具體應用的操作和管理按照正確執(zhí)行序列進行。狀態(tài)機可以由設計者根據(jù)具體應用的要求來定義。這種定義要以非常靈活,從簡單的規(guī)則,比如所有功能自由訪問,到具體的64個不同狀態(tài)的指令描述規(guī)則。
這種序列控制,與分層文件結(jié)構(gòu)結(jié)合,可以提供眾多可能的組合。同時,與ISO/IEC CD7816-4一致的指令結(jié)構(gòu),保證了應用接口的標準化。
應用文件可以安裝在任意的數(shù)據(jù)文件層,下面是用到的文件結(jié)構(gòu):
MF主文件:文件系統(tǒng)的根(相當于根目錄)
DF專用文件:應用基礎結(jié)構(gòu),本身可以包含其它DF(相當于分支目錄)
EF基礎文件:存放真正的應用數(shù)據(jù),可以放在MF和DF下(相當于文件)
WEF工作基礎文件: 完成特定應用文件的輸入和輸出
ISF內(nèi)部保密文件:存放用戶密鑰(PINs)和不同保密算法密鑰,STARCOS保護和管理這些文件,禁止任何數(shù)據(jù)輸出。
STARCOS智能卡和智能卡終端之間的通信協(xié)議采用塊傳輸協(xié)議T=1,指令結(jié)構(gòu)基于ISO/IEC CD7816-4。STARCOS SV 也支持字節(jié)傳輸T=0通信協(xié)議。
數(shù)據(jù)傳輸通過指令響應序列來引導。在一主從應用系統(tǒng)中,智能卡作為從屬方,而終端和終端設備(PC、工作站、服務器、主機)作為宿主方生成指令及其序列。
STARCOS支持智能卡應用領域的所有功能:
保密數(shù)據(jù)存儲(例如付款交易和個人數(shù)據(jù))
持卡人身份識別離線操作,例如通過存在卡中的個人標識號碼(PIN)
控制內(nèi)部存儲數(shù)據(jù)的訪問
數(shù)據(jù)存儲和傳輸?shù)募用埽ㄖ悄芸ㄗ鳛楸C苣K)
作為一個通用的操作系統(tǒng),STARCOS管理智能卡應用程序的安裝。安裝過程不限于單一的應用(例如卡片發(fā)行時),新的應用程序可以隨時加入,過時的應用程序可以從卡中刪除。)
同一時間內(nèi)應用程序的數(shù)量只受存儲器容量需求的限制。利用STARCOS的功能可以組成如下應用領域:
電子錢包 數(shù)據(jù)解密/加密卡
信用卡 身份證卡
數(shù)據(jù)存儲(便攜文件) 保密模塊(例如在付費系統(tǒng))
醫(yī)療病歷卡 數(shù)字簽名
根據(jù)需要,各應用程序可以單獨執(zhí)行,在這種情況下,由STARCOS來監(jiān)控制制作獨立和維一執(zhí)行的情況。當然,STARCOS的分層文件結(jié)構(gòu)允許不同應用程序的任意組合運行,這樣,不同的應用程序可以共享相同的資源。
STARCOS及其保密性
對于許多應用,存儲在智能卡中的數(shù)據(jù)一定要安全可靠,防止數(shù)據(jù)的丟失、非法修改和訪問等等。
對于這樣的應用要求,STARCOS的保密功能可以克服幾乎所有潛在的攻擊。
下面列出已經(jīng)實現(xiàn)的保密功能:
系統(tǒng)數(shù)據(jù)永遠不會輸出卡外
系統(tǒng)數(shù)據(jù)由集成硬件機制保護并且經(jīng)過特殊的定義的文件屬性校驗
對于數(shù)據(jù)的傳送,可以采用標準的加密算法(DES)
出現(xiàn)非法操作時,STARCOS能應用保密信息傳送模式進行探測(對指令和/或響應通過授權(quán)和/或穩(wěn)含模式進行探測)
所有存儲數(shù)據(jù)有內(nèi)部校驗和保護
所有對象具有屬性,保證數(shù)據(jù)的完整性
卡片數(shù)據(jù)傳送有授權(quán)檢查
應用序列由狀態(tài)機監(jiān)控,最多有64個狀態(tài)
DES加密算法及隨機數(shù)產(chǎn)生
STARCOS版本分類
版本 特點 芯片類型 應用
STARCOS S1.2 符合ISO7816 SLE 44C40S 身份證卡
符合EMV 標準進出控制
T=0,T=1傳輸協(xié)議 獎勵積分
多層文件結(jié)構(gòu) 電子支付,借貸
DES加密算法
狀態(tài)機
登記和創(chuàng)建的概念
不同的初始化完成密碼
STARCOS S2.1 符合ISO7816標準 SLE 44C20S 身份證卡
符合EMV標準 SLE 44C42S 進出控制
轉(zhuǎn)輸協(xié)議:T=0,T=1 SLE 44C80S 獎勵積分
多層文件結(jié)構(gòu) SLE 44C160S 汽車卡
DES和tripe DES加密算法 83C864 保健卡
狀態(tài)機
安全消息
不同的初始化完成密碼
安全寫入EEPROM
STARCOS SPK2.1 符合ISO7816 SLE 44CR80 身份證卡
符合EMV標準 出入控制
多層文件結(jié)構(gòu) 獎勵積分
多種加密方法 保健卡
DES,RSA,DSA 數(shù)字簽名
狀態(tài)機 網(wǎng)絡安全
多種密鑰 付費電視
最大1024位的數(shù)字簽名
對稱或非對稱的認證手段