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