動(dòng)態(tài)多應(yīng)用智能卡文件系統(tǒng)的研究與設(shè)計(jì)
2.2 文件管理的指令
1)SELECT FILE(選擇文件):建立文件成功后,才能進(jìn)行文件選擇,面向?qū)ο笪募芾?a class="contentlabel" href="http://2s4d.com/news/listbylabel/label/系統(tǒng)">系統(tǒng)要 求在文件被選中之后才可以進(jìn)行存取處理。文件選擇就是通知操作系統(tǒng)即將對(duì)哪個(gè)文件進(jìn)行訪問(wèn)。新 文件的成功選擇將導(dǎo)致前面的選擇無(wú)效。這就意味著在任何時(shí)候被選中的文件只有一個(gè)。該文件系統(tǒng) 的支持根據(jù)文件的FID 進(jìn)行文件的選擇。
2)CREATE FILE(創(chuàng)建文件):該命令允許在智能卡中建立EF、KEF、DF。在執(zhí)行該命令之前, 必須先達(dá)到特定的安全狀態(tài)。在創(chuàng)建時(shí),判斷創(chuàng)建地址是否有效,即CMB 塊的相應(yīng)地址。同時(shí)創(chuàng)建 時(shí)會(huì)影響目錄樹(shù)的結(jié)構(gòu),可能需要修改其父親節(jié)點(diǎn)或者其兄弟節(jié)點(diǎn),因此要檢測(cè)所影響的結(jié)點(diǎn)是否可 以訪問(wèn),如果需要修改的節(jié)點(diǎn)不可被訪問(wèn),該命令則不能執(zhí)行。對(duì)于EF 和KEF,他們都擁有文件體, 則根據(jù)其大小具體分配。在申請(qǐng)頁(yè)面時(shí),一次把所需要的頁(yè)數(shù)全部分配給該文件,并且在文件分配表 里建立好映像。然后文件系統(tǒng)再根據(jù)文件分配表,把文件體寫(xiě)入EEPROM 中。
3)DELETE FILE(刪除文件):是把指定的智能卡的文件從存儲(chǔ)器中刪除,其釋放的存儲(chǔ)空間由 操作系統(tǒng)收回。文件系統(tǒng)的文件是存儲(chǔ)在應(yīng)用數(shù)據(jù)區(qū),因此該命令的操作對(duì)象是數(shù)據(jù)區(qū)的文件,并不 涉及其他存儲(chǔ)區(qū)域的數(shù)據(jù)。MF 為文件系統(tǒng)的根目錄,是不可被刪除的。
KEF 為DF 中的密鑰文件, 僅刪除KEF 會(huì)對(duì)其上層DF 造成極大的安全隱患,因此不提供單純的刪除KEF 操作,把該操作是嵌 入在刪除DF。該命令分為兩類(lèi):刪除DF 和刪除EF。刪除DF 函數(shù)僅刪除沒(méi)有子DF 文件的DF 文件, 如果所刪除的DF 具有直接子DF 文件(可以有EF 文件),則DF 不能直接刪除,需要首先刪除子DF文件,然后再使用本函數(shù)刪除。該操作會(huì)影響其父親節(jié)點(diǎn)或兄弟節(jié)點(diǎn)以及子EF 節(jié)點(diǎn),所以刪除之前 需要查看文件打開(kāi)表,檢查這些文件是否可以訪問(wèn),如果有不可以訪問(wèn)的節(jié)點(diǎn),則退出返回相應(yīng)的錯(cuò) 誤信息。
當(dāng)然執(zhí)行該操作之前,必須達(dá)到一定的要求安全狀態(tài)。刪除EF 時(shí),操作對(duì)象是CMB 塊中 的當(dāng)前工作文件EF,因此要?jiǎng)h除某EF 之前需要先選擇該文件。如果當(dāng)前工作文件地址無(wú)效,則返回 相應(yīng)的錯(cuò)誤信息。當(dāng)然執(zhí)行該操作之前,必須達(dá)到一定的要求安全狀態(tài)并且該EF 具有可刪除屬性。
4)VERIFY 命令用來(lái)把傳送給智能卡的秘密對(duì)象和所存儲(chǔ)的基準(zhǔn)值相比較,根據(jù)比較結(jié)果,改 變CMB 塊中的安全狀態(tài)。該操作系統(tǒng)的密鑰存儲(chǔ)在密鑰文件KEF 中,位于MF 的KEF 被用來(lái)作為 智能卡中所有應(yīng)用通用的密鑰,如果是DF 的KEF,則它僅可用于在DF 內(nèi)的有關(guān)應(yīng)用,即應(yīng)用的專(zhuān) 用密鑰。
該命令的操作對(duì)象默認(rèn)為CMB塊中指向的當(dāng)前所使用密鑰文件。一般的密鑰文件含有四個(gè)密鑰, 分別是:(1)瀏覽密鑰:滿(mǎn)足該密鑰后,可以讀該目錄下的所有EF 文件和子DF 頭標(biāo)。(2)更新密 鑰:滿(mǎn)足該密鑰后,可以在該目錄下的所有EF 文件中執(zhí)行更新操作。(3)刪除密鑰:滿(mǎn)足該密鑰后, 可以在該目錄下執(zhí)行刪除操作。(4)創(chuàng)建操作:滿(mǎn)足該密鑰后,可以在該目錄下執(zhí)行刪除操作。因此, verify 函數(shù)就是判斷其滿(mǎn)足相應(yīng)的密鑰,然后改變CMB 塊中的安全狀態(tài),使其可以執(zhí)行后需操作。
對(duì)于每一個(gè)密鑰都有一個(gè)重試計(jì)數(shù)器。對(duì)于肯定的比較結(jié)果,它被賦予零,對(duì)于否定的比較結(jié)果, 它增量1。如果重試計(jì)數(shù)器達(dá)到對(duì)大值,則絕對(duì)沒(méi)有任何可能再進(jìn)行對(duì)密鑰的進(jìn)一步比較。為了保證 安全,先對(duì)計(jì)數(shù)器字段加一并寫(xiě)入到記錄中。然后比較讀出密鑰和輸入密鑰是否匹配。匹配則將0 寫(xiě) 入到記錄的計(jì)數(shù)器字段中,并將安全狀態(tài)設(shè)置為OK 結(jié)果狀態(tài)。否則將安全狀態(tài)設(shè)置為NOK 結(jié)果狀 態(tài),并返回允許嘗試的剩余次數(shù)或記錄被鎖。
3 結(jié)論
本文研究并設(shè)計(jì)動(dòng)態(tài)多應(yīng)用智能卡文件系統(tǒng)。利用文件分配表為每個(gè)文件建立映像,利用 CMB 塊進(jìn)行文件管理,設(shè)置文件訪問(wèn)機(jī)制保證了每個(gè)應(yīng)用的讀寫(xiě)安全,最后詳細(xì)設(shè)計(jì)文件操作命令,使得 應(yīng)用可以對(duì)文件進(jìn)行建立,刪除等操作。
本文作者創(chuàng)新點(diǎn):本文借鑒了DOS 系統(tǒng)的文件系統(tǒng),設(shè)計(jì)了符合動(dòng)態(tài)多應(yīng)用智能卡要求的文件系統(tǒng)。
評(píng)論