一種智能卡寫(xiě)保護(hù)機(jī)制的實(shí)現(xiàn)
摘要:提出一種智能卡寫(xiě)保護(hù)的實(shí)現(xiàn)方法,該方法將一次數(shù)據(jù)寫(xiě)入分成兩步進(jìn)行,在保證正常讀寫(xiě)功能的同時(shí),重點(diǎn)討論了如何在意外掉電的情況下完成可靠的寫(xiě)操作。同時(shí)利用該機(jī)制實(shí)現(xiàn)了事務(wù)回滾功能,為卡片應(yīng)用提供了更大的靈活性。通過(guò)對(duì)已實(shí)現(xiàn)系統(tǒng)的掉電測(cè)試,分析了應(yīng)用該方法后的系統(tǒng)性能的變化及對(duì)電力業(yè)務(wù)的影響。
本文引用地址:http://m.butianyuan.cn/article/266050.htm引言
隨著微電子技術(shù)的發(fā)展,各種各樣的智能卡開(kāi)始進(jìn)入人們的生活。不論是手機(jī)卡、銀行卡、水卡、電卡還是社???、門(mén)禁卡甚至是身份證都是智能卡在不同行業(yè)的應(yīng)用。由于智能卡的應(yīng)用非常廣泛,應(yīng)用環(huán)境千差萬(wàn)別,因此在各種惡劣環(huán)境下保證卡片業(yè)務(wù)進(jìn)行的正確性是十分重要的。
早期的智能卡由于處理速度慢、存儲(chǔ)空間小,業(yè)務(wù)數(shù)據(jù)都直接寫(xiě)入存儲(chǔ)區(qū)。但是,卡片應(yīng)用直接操作存儲(chǔ)區(qū)容易造成存儲(chǔ)區(qū)數(shù)據(jù)混亂。而且不符合卡片操作系統(tǒng)(cos)分層設(shè)計(jì)的趨勢(shì)。為此新一代智能卡普遍采用文件來(lái)保存數(shù)據(jù),通過(guò)文件系統(tǒng)來(lái)隔離應(yīng)用和底層讀寫(xiě)存儲(chǔ)區(qū)的操作。
智能卡cos系統(tǒng)根據(jù)其功能可以劃分為四個(gè)層次:底層固件、存儲(chǔ)管理系統(tǒng)、文件系統(tǒng)、應(yīng)用系統(tǒng)如表1所示。其中應(yīng)用系統(tǒng)又可以細(xì)分為基本指令系統(tǒng)和專(zhuān)有系統(tǒng),基本指令是指不同行業(yè)應(yīng)用都會(huì)用到的apdu指令例如文件選擇等符合7816規(guī)范的指令。專(zhuān)有指令則是不同行業(yè)根據(jù)自身業(yè)務(wù)需要而設(shè)計(jì)的指令。
1 智能卡寫(xiě)保護(hù)的策略分析
處理卡片的意外掉電事件是寫(xiě)保護(hù)機(jī)制的用途之一??紤]到卡片的使用者可能對(duì)卡片的操作規(guī)范并不了解,一個(gè)用戶(hù)使用電卡給電表充值,在等待兩秒后將電卡拔出,如果卡片在拔出的瞬間正在進(jìn)行存儲(chǔ)區(qū)的寫(xiě)操作,在意外掉電的情況下業(yè)務(wù)數(shù)據(jù)可能一半寫(xiě)成功而其余數(shù)據(jù)仍然是舊數(shù)據(jù),導(dǎo)致業(yè)務(wù)數(shù)據(jù)的混亂。在系統(tǒng)重新上電后,利用寫(xiě)保護(hù)機(jī)制可以將數(shù)據(jù)恢復(fù)到文件中,保證業(yè)務(wù)數(shù)據(jù)的正確性。
另一種情況稱(chēng)為事務(wù)回滾,表示一項(xiàng)應(yīng)用進(jìn)行了一半,如果客戶(hù)希望取消該應(yīng)用,則卡片操作系統(tǒng)應(yīng)該提供一種機(jī)制消除該業(yè)務(wù)已經(jīng)完成部分的影響。例如,一項(xiàng)業(yè)務(wù)由三個(gè)步驟組成,用戶(hù)在完成前兩步后不愿意進(jìn)行第三步的操作決定放棄該業(yè)務(wù),此時(shí)系統(tǒng)需要消除前兩步完成后產(chǎn)生的影響。寫(xiě)保護(hù)滿(mǎn)足了這種應(yīng)用需求。
2 寫(xiě)保護(hù)的設(shè)計(jì)
寫(xiě)保護(hù)主要涉及存儲(chǔ)區(qū)的鏡像讀寫(xiě)技術(shù)、鏡像區(qū)的空間管理、鏡像區(qū)初始化以及數(shù)據(jù)恢復(fù)。其中對(duì)存儲(chǔ)區(qū)的鏡像讀寫(xiě)是寫(xiě)保護(hù)的核心功能。
存儲(chǔ)區(qū)的鏡像讀寫(xiě)是指在寫(xiě)存儲(chǔ)區(qū)時(shí)不將數(shù)據(jù)直接寫(xiě)入,而是將數(shù)據(jù)先寫(xiě)入一個(gè)鏡像區(qū),當(dāng)寫(xiě)入完成后將鏡像區(qū)數(shù)據(jù)導(dǎo)入實(shí)際存儲(chǔ)區(qū)地址。當(dāng)讀取數(shù)據(jù)時(shí),目標(biāo)數(shù)據(jù)可能在實(shí)際地址,也可能在鏡像區(qū)尚未提交,此時(shí)讀操作應(yīng)該對(duì)不同情況分別判定。
寫(xiě)操作的參數(shù)主要有源地址、目的地址和長(zhǎng)度。每次寫(xiě)入操作需要在鏡像區(qū)申請(qǐng)空間來(lái)保存這些數(shù)據(jù),同時(shí),為了便于檢索鏡像區(qū)數(shù)據(jù)需要對(duì)已經(jīng)分配的空間進(jìn)行管理。因此設(shè)計(jì)了寫(xiě)保護(hù)的管理鏈表對(duì)這些關(guān)鍵數(shù)據(jù)進(jìn)行管理,如表2所示。
表中保護(hù)標(biāo)記用來(lái)標(biāo)識(shí)鏡像區(qū)是否有數(shù)據(jù)需要導(dǎo)入存儲(chǔ)區(qū)。可用地址和長(zhǎng)度用來(lái)進(jìn)行鏡像區(qū)的空間分配。在數(shù)據(jù)項(xiàng)中,目標(biāo)地址是數(shù)據(jù)將要寫(xiě)入存儲(chǔ)區(qū)的地址,而源地址是數(shù)據(jù)在鏡像區(qū)中的地址。
評(píng)論