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