智能卡操作系統(tǒng)(COS)安全管理研究
引言
電子技術(shù)的快速發(fā)展推動(dòng)了智能卡的發(fā)展,而智能卡的片內(nèi)操作系統(tǒng)COS(Chip Operating System)自然成為備受關(guān)注的焦點(diǎn),它是根據(jù)它所服務(wù)的智能卡的特點(diǎn)而研發(fā)的。COS的主要功能是控制智能卡和外部的信息交換,管理智能卡內(nèi)部的存儲(chǔ)器,并在智能卡的內(nèi)部進(jìn)行各種命令的處理。其中,與智能卡外部的信息交換是最基本的要求。
1 COS功能層結(jié)構(gòu)
符合智能卡規(guī)范和國(guó)際標(biāo)準(zhǔn)的智能卡操作系統(tǒng),主要包括4個(gè)功能模塊:通信管理模塊、命令解析模塊、文件管理模塊和安全管理模塊。如圖1所示。
通信管理模塊的功能是依據(jù)智能卡所使用的信息通信傳輸協(xié)議完成的。通信管理模塊對(duì)由終端讀寫設(shè)備發(fā)出的命令進(jìn)行接收,同時(shí),把對(duì)該命令的響應(yīng)按照通信傳輸協(xié)議的格式發(fā)送出去。智能卡與讀寫終端的接觸式通信協(xié)議,目前國(guó)際標(biāo)準(zhǔn)中規(guī)定了T=0和T=1兩種。這兩種通信協(xié)議都是異步半雙工的傳輸協(xié)議.不同之處在于使用的傳輸?shù)臄?shù)據(jù)格式是不一樣:T=0傳輸協(xié)議以字符為基本單位進(jìn)行傳輸,T=I傳輸協(xié)議以數(shù)據(jù)塊為基本單位進(jìn)行傳輸。
命令解析模塊的功能是對(duì)智能卡接收的命令的可執(zhí)行性進(jìn)行判斷.并且根據(jù)接收到的命令檢查智能卡內(nèi)部的各項(xiàng)參數(shù)是否正確等,并在此基礎(chǔ)上完成相應(yīng)的操作和數(shù)據(jù)處理。COS是通過(guò)對(duì)命令的響應(yīng)與外界進(jìn)行信息交換的,在國(guó)際標(biāo)準(zhǔn)ISO/IEC7816-4中規(guī)定了COS的基本命令集。
2 文件管理
COS的文件系統(tǒng)采用的是樹形層次結(jié)構(gòu),類似于DOS.如圖2所示。在COS中定義了三種文件類型:主文件肝(Master File)、專用文件DF(Deicated File)和基本文件EF(Elementary File)。主文件MF是整個(gè)文件系統(tǒng)的根目錄,是整個(gè)樹形結(jié)構(gòu)的根節(jié)點(diǎn)。專用文件DF類似于是中間日錄,可以包含其它的DF和EF?;疚募﨓F是真正用來(lái)進(jìn)行數(shù)據(jù)存儲(chǔ)的文件。在每個(gè)文件中都包含了兩部分:文件頭標(biāo)和文件體,文件頭標(biāo)通常是開發(fā)人員根據(jù)應(yīng)用上的需求進(jìn)行設(shè)計(jì)的固定了字節(jié)的字符串,并且長(zhǎng)度通常是EEPROM的摹本分塊長(zhǎng)度的整數(shù)倍。它規(guī)定了對(duì)文件的控制信息。對(duì)文件體來(lái)說(shuō),主文件MF和專用文件DF的文件體就是它下面包含的所有文件,對(duì)基本文件EF來(lái)說(shuō),文件體則包含了用戶數(shù)據(jù)或一些智能卡的專用數(shù)據(jù)。在智能卡的文件結(jié)構(gòu)中,主文件MF只能有一個(gè),并且是隨著操作系統(tǒng)一起生成的,用戶不能在文件的存取過(guò)程中越層存取。若想讀寫子專有文件DF下的基本文件EF,則必須經(jīng)過(guò)其高層的文件層次中某一專有文件DF的大小在申請(qǐng)生成時(shí)預(yù)定并且不可修改。
3 安全管理
智能卡的安全體系是智能卡的核心,智能卡能夠迅速地發(fā)展起來(lái)的一個(gè)重要原因,就在于它能夠通過(guò)它的安全體系給用戶提供一個(gè)較高的安全保證。安全體系從概念上講主要包括三個(gè)部分:安全狀態(tài)、安全屬性和安全機(jī)制。
{$page$}
3.1安全狀態(tài)
安全狀態(tài)是指智能卡在當(dāng)前情況下所處的狀態(tài).這種狀態(tài)會(huì)在智能卡進(jìn)行完復(fù)位應(yīng)答或者在它處理完某條命令之后得到。事實(shí)上,我們可以認(rèn)為智能卡在整個(gè)工作過(guò)程中始終都是處在這樣或是那樣一種狀態(tài)。利用智能卡在當(dāng)前已滿足條件的集合可以表示當(dāng)前的安全狀態(tài),各種安全狀態(tài)和它的轉(zhuǎn)換條件組合在一起,從而構(gòu)成了狀態(tài)機(jī)。
3.2安全屬性
對(duì)智能卡的數(shù)據(jù)對(duì)象的訪問(wèn)控制,稱為智能卡的安全屬性。對(duì)智能卡的數(shù)據(jù)對(duì)象進(jìn)行操作,主要包括兩方砸的內(nèi)容:文件和操作命令。文件的安全屬性包括了兩個(gè)方面的內(nèi)容:允許進(jìn)行操作的類型和進(jìn)行操作需要滿足的安全狀態(tài),這兩者結(jié)合起來(lái)就構(gòu)成了文件的安全屬性。文件的安全屬性一般是在文件的初始建立階段定義,包含在文件描述塊中,并由cos來(lái)進(jìn)行管理和維護(hù)。操作命令的安全屬性是由具體的命令來(lái)定義的,它主要也包括兩方面的內(nèi)容:命令全部報(bào)文的安傘控制和命令數(shù)據(jù)域的安全控制。操作命令的安全屬性,主要是通過(guò)MAC來(lái)確保命令傳輸過(guò)程中的安全性和完整性,在MAC校驗(yàn)成功之后操作命令才能夠順利執(zhí)行。
3.3安全機(jī)制
與安全狀態(tài)和安全屬性相聯(lián)系的就是安全機(jī)制。安全機(jī)制可以理解為實(shí)現(xiàn)安全狀態(tài)的轉(zhuǎn)移所使用的方法和手段。cos安全體系的基本工作原理可以這樣認(rèn)為,一種安全狀態(tài)經(jīng)過(guò)安全機(jī)制的一些轉(zhuǎn)移方法和手段就可以轉(zhuǎn)移到另一種狀態(tài),將這種狀態(tài)與相應(yīng)的某個(gè)安全屬性相比較,如果是一致的,就執(zhí)行該安全屬性對(duì)應(yīng)的命令。所以可以這樣說(shuō),沒(méi)有安全機(jī)制,COS就無(wú)法運(yùn)作。
COS的安全機(jī)制主要包括三個(gè)方面的功能:數(shù)據(jù)加密與解密、鑒別與核實(shí)和文件訪問(wèn)的安全控制。其中,數(shù)據(jù)的加解密貫穿安全體系整個(gè)過(guò)程中;鑒別與核實(shí)從本質(zhì)上說(shuō)就是身份認(rèn)證;文件訪問(wèn)的安全控制與文件管理器的聯(lián)系十分緊密。
3.3.1 數(shù)據(jù)加密與解密
智能卡中的加密算法是整個(gè)智能卡安全體系的基礎(chǔ)。加密算法的關(guān)鍵在于對(duì)密鑰文件的選擇,在COS中密鑰文件通常指定了使用該密鑰的算法類型:
(1)在專用文件DF下都包含一個(gè)主控密鑰,該密鑰是整個(gè)DF文件下密鑰體系的基礎(chǔ),只有通過(guò)了此密鑰的驗(yàn)證,才能對(duì)此專用文件DF下的子文件做進(jìn)一步的操作.該密鑰是專用文件DF中的根密鑰,保存在專用文件DF下的Key文件中[43。
(2)對(duì)稱密鑰一般統(tǒng)一保存在一個(gè)密鑰文件中,通常為DES或3DES密鑰,這些密鑰以記錄的形式保存,在記錄體的屬性段描述了密鑰的算法屬性。
(3)非對(duì)稱密鑰以密鑰對(duì)的形式出現(xiàn),可以只保存單獨(dú)一個(gè)公鑰或者一個(gè)私鑰,每一對(duì)非對(duì)稱密鑰保存在一個(gè)非對(duì)稱密鑰文件中,在文件的描述塊中保存了密鑰的屬性。
3.3.2鑒別與核實(shí)
鑒別(Authentication),是指對(duì)智能卡(或者是終端讀寫設(shè)備)的合法性進(jìn)行驗(yàn)證,而核實(shí)(Verify)是指對(duì)智能卡的持有者的合法性進(jìn)行驗(yàn)證。
鑒別是通過(guò)智能卡和讀寫設(shè)備雙方同時(shí)對(duì)任意一個(gè)相同的隨機(jī)數(shù)進(jìn)行相同的加密運(yùn)算(目前普遍采用DES算法),然后判斷雙方運(yùn)算結(jié)果的是否一致來(lái)達(dá)到驗(yàn)證的目的。核實(shí)則是通過(guò)由用戶向智能卡出示僅有他本人才知道的通行字,并由智能卡對(duì)該通行字的正確性進(jìn)行判斷來(lái)達(dá)到驗(yàn)證的目的。在通行字傳送的過(guò)程中,有時(shí)為了保證不被人竊聽(tīng),還可以對(duì)傳送的信息進(jìn)行加密/解密運(yùn)算。
根據(jù)鑒別對(duì)象的不同,鑒別分為內(nèi)部鑒別和外部鑒別。內(nèi)部鑒別是終端讀寫設(shè)備對(duì)智能卡的合法性進(jìn)行驗(yàn)證;外部鑒別是智能卡對(duì)終端讀寫設(shè)備的合法性進(jìn)行驗(yàn)證。
智能卡的內(nèi)部鑒別分為三步。首先,智能卡的讀寫設(shè)備向智能卡的COS發(fā)送數(shù)據(jù).要求智能卡COS對(duì)這批數(shù)據(jù)進(jìn)行加解密或者計(jì)算MAC,同時(shí)智能卡讀寫設(shè)備也會(huì)對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的計(jì)算。之后,智能卡COS在收到數(shù)據(jù)后,根據(jù)操作命令要求使用相應(yīng)的密鑰對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的計(jì)算,并將計(jì)算結(jié)果返回給智能卡讀寫終端設(shè)備.最后,智能卡讀寫終端設(shè)備在收到智能卡cos的認(rèn)證數(shù)據(jù)后,將這些數(shù)據(jù)與自身計(jì)算的數(shù)據(jù)相比較,相同則驗(yàn)證合
法。外部鑒別的原理與內(nèi)部鑒別相同。
3.3.3文件訪問(wèn)的安全控制
對(duì)文件訪問(wèn)的安全控制是系統(tǒng)中的非常重要的部分,其中代表性的兩種文件安全訪問(wèn)的實(shí)現(xiàn)方式是:狀態(tài)機(jī)方式和鑒別寄存器方式.鑒別寄存器方式是使用兩個(gè)四位的寄存器來(lái)表示安全狀態(tài)。一個(gè)寄存器作為主文件盯的安全狀態(tài)寄存器,另一個(gè)寄存器作為當(dāng)前專用文件DF的安全狀態(tài)寄存器。將每個(gè)寄存器的初始值都設(shè)置為0.設(shè)定取值范圍為0~F.文件會(huì)設(shè)置兩種訪問(wèn)控制權(quán)限AC0,AC1。AC0是使用權(quán)限,AC1是修改權(quán)限,都用一個(gè)字節(jié)來(lái)表示.當(dāng)安全狀態(tài)寄存器的值大于訪問(wèn)控制權(quán)限AC的字節(jié)的低半字節(jié)而小于其高半字節(jié)時(shí),則該文件的相應(yīng)得讀和寫的權(quán)限在該安全狀態(tài)下被滿足,并且能進(jìn)行相應(yīng)的操作。COS在建立文件時(shí)會(huì)指定其AC0字節(jié)和AC1字節(jié)的值來(lái)對(duì)文件的訪問(wèn)權(quán)限進(jìn)行設(shè)定,通過(guò)校驗(yàn)口令和外部認(rèn)證可以改變安全狀態(tài)寄存器的值,從而利用安全機(jī)制實(shí)現(xiàn)對(duì)文件的安全訪問(wèn)控制。
4 結(jié)束語(yǔ)
COS的安全是基于軟件的安全,相信隨著芯片制造技術(shù)水平的提高。CPU運(yùn)行速度的提高和卡內(nèi)存儲(chǔ)器容量的增大,性能更好的加密算法的出現(xiàn),智能卡最終將得到更廣泛的應(yīng)用。