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