基于Nand Flash閃存的安全存儲(chǔ)方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)一種基于Nand Flash閃存的安全存儲(chǔ)方法及系統(tǒng),基于機(jī)密數(shù)據(jù)在閃存中的物理存儲(chǔ)位置不斷變化的思想,保證機(jī)密數(shù)據(jù)存儲(chǔ)的安全性。初始化階段,在閃存轉(zhuǎn)換層中設(shè)置觸發(fā)器來(lái)控制機(jī)密數(shù)據(jù)的位置移動(dòng)機(jī)制;在閃存設(shè)備工作時(shí),啟動(dòng)觸發(fā)器,閃存轉(zhuǎn)換層監(jiān)聽(tīng)上層文件系統(tǒng)的讀、寫(xiě)等操作命令。當(dāng)滿足觸發(fā)機(jī)密數(shù)據(jù)移動(dòng)機(jī)制的條件時(shí),啟動(dòng)機(jī)密數(shù)據(jù)移動(dòng)操作。機(jī)密數(shù)據(jù)移動(dòng)階段,重新選擇合適的安全存儲(chǔ)區(qū)存放機(jī)密數(shù)據(jù),對(duì)安全塊進(jìn)行垃圾回收后將機(jī)密數(shù)據(jù)轉(zhuǎn)移到安全塊。機(jī)密數(shù)據(jù)移動(dòng)完成后,偽裝安全塊的狀態(tài),避免暴露機(jī)密數(shù)據(jù)的存放位置。本方法增加了機(jī)密數(shù)據(jù)存儲(chǔ)位置的不確定性和不可預(yù)見(jiàn)性,實(shí)現(xiàn)了機(jī)密數(shù)據(jù)在閃存設(shè)備中的安全存儲(chǔ)。
【專利說(shuō)明】
基于Nand FI ash閃存的安全存儲(chǔ)方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明屬于數(shù)據(jù)保護(hù)技術(shù)領(lǐng)域,特別涉及一種基于NandFlash閃存的存儲(chǔ)設(shè)備的數(shù)據(jù)安全存儲(chǔ)方法及系統(tǒng)。
【背景技術(shù)】
[0002]閃存是一種非易失性存儲(chǔ)器(Non-volatileMemory),目前主要有兩種實(shí)用的Flash存儲(chǔ)器件:Nand Flash和Nor Flash。這二者具有不同的特點(diǎn)和用途:Nor Flash是1983年由Intel公司推出,單位容量?jī)r(jià)格相對(duì)較高,目前主要集成在一些嵌入式芯片之中,替代EEPROM非易失存儲(chǔ)單元,用于存儲(chǔ)可執(zhí)行代碼及少量數(shù)據(jù);Nand Flash是1989年由東芝公司設(shè)計(jì)推出,主要作為大容量數(shù)據(jù)存儲(chǔ)器件。Nand Flash由于其體積小、質(zhì)量輕,抗震性強(qiáng)、噪聲小、耐高溫、低功耗等優(yōu)點(diǎn),已經(jīng)廣泛地應(yīng)用在常見(jiàn)的電子產(chǎn)品中。智能手機(jī)、數(shù)碼相機(jī)、GPS導(dǎo)航儀、汽車行車記錄儀等電子消費(fèi)產(chǎn)品中使用的SD卡,U盤(pán),固態(tài)硬盤(pán)(SolidState Disk,SSD),均以Nand Flash作為非易失存儲(chǔ)器。隨著生產(chǎn)技術(shù)的逐漸成熟,固態(tài)硬盤(pán)在桌面存儲(chǔ)、移動(dòng)存儲(chǔ)乃至存儲(chǔ)服務(wù)等領(lǐng)域也必將得到越來(lái)越廣泛的使用。
[0003]作為普通消費(fèi)類電子產(chǎn)品中的主要(多數(shù)情況下也是唯一的)非易失存儲(chǔ)介質(zhì),閃存中可能存儲(chǔ)著大量的個(gè)人或集體隱私數(shù)據(jù);此外,一些系統(tǒng)安全機(jī)制涉及的安全參數(shù),如加解密密鑰、用戶口令等,大多數(shù)情況下也是以明文或者密文的形式存放在存儲(chǔ)介質(zhì)之中。鑒于此,針對(duì)閃存的攻擊已經(jīng)逐漸成為黑客攻擊的焦點(diǎn),閃存的數(shù)據(jù)竊取、數(shù)據(jù)恢復(fù)等攻擊手段不斷被提出,基于閃存的數(shù)據(jù)安全存儲(chǔ)問(wèn)題已越來(lái)越受到重視。
[0004]針對(duì)閃存中數(shù)據(jù)的攻擊方法,根據(jù)對(duì)閃存芯片進(jìn)行的處理方法及破壞程度的不同,可以分為非入侵式攻擊,半入侵式攻擊與入侵式攻擊。其中入侵式攻擊方法攻擊力度較大,通過(guò)拆卸芯片可以暴力讀取閃存芯片上的所有數(shù)據(jù)的比特內(nèi)容。
[0005]英國(guó)劍橋大學(xué)計(jì)算機(jī)科學(xué)高級(jí)研究員Sergei P.Skorobogatov在書(shū)中詳細(xì)記錄了入侵式攻擊方法的實(shí)現(xiàn)過(guò)程。入侵式攻擊的第一步就是解封裝(Decapsulat1n)操作,從集成電路板上拆卸閃存芯片。大多數(shù)芯片在出廠時(shí)都封裝在TS0P(Thin Small OutlinePackage,薄型小尺寸封裝)或者BGA(Ball Grid Array,焊球陣列封裝)中,需要借助特殊的設(shè)備從電路板上拆卸閃存芯片。解封裝過(guò)程比較復(fù)雜,稍有不慎會(huì)破壞閃存芯片而導(dǎo)致數(shù)據(jù)丟失。第二步就是剝層處理(Deprocessing),剝層處理是芯片制造的逆過(guò)程。標(biāo)準(zhǔn)的閃存芯片通常包含許多層次的封裝,剝層處理主要是去除芯片表面的鈍化層(Passivat1n),最好的方法是借助一個(gè)激光切割機(jī)除去鈍化層,暴露出芯片表面的金屬層,以便于后續(xù)使用微探測(cè)技術(shù)讀取芯片數(shù)據(jù)。最后一步就是通過(guò)一個(gè)微探測(cè)站(主要組件是光學(xué)顯微鏡和探針)讀取芯片中的數(shù)據(jù)。直接從芯片上單個(gè)的存儲(chǔ)單元讀取數(shù)據(jù)是很困難的,借助微探測(cè)技術(shù)通過(guò)顯微鏡觀察探針移動(dòng)到的數(shù)據(jù)總線,記錄所訪問(wèn)的存儲(chǔ)單元的值。Marce IBreeuwsma在2007年通過(guò)類似的入侵式攻擊方法成功讀取出閃存芯片中的所有數(shù)據(jù)。
[0006]對(duì)基于閃存的存儲(chǔ)設(shè)備的入侵式攻擊方法,可以實(shí)現(xiàn)按比特讀取出存儲(chǔ)在閃存上的數(shù)據(jù)。如果閃存介質(zhì)中存儲(chǔ)機(jī)密數(shù)據(jù)的物理位置相對(duì)固定,攻擊者可以通過(guò)入侵式攻擊方法,定位分析出機(jī)密數(shù)據(jù)的存放位置,獲取閃存設(shè)備中存儲(chǔ)的機(jī)密數(shù)據(jù)。一旦攻擊成功,同種類型的閃存設(shè)備都將受到安全威脅。
【發(fā)明內(nèi)容】
[0007]本發(fā)明提供了一種基于NandFlash閃存的存儲(chǔ)設(shè)備數(shù)據(jù)安全存儲(chǔ)方法及系統(tǒng),實(shí)現(xiàn)了閃存數(shù)據(jù)的安全存儲(chǔ)機(jī)制,提高了數(shù)據(jù)存儲(chǔ)的安全性。
[0008]為減少上述對(duì)閃存的入侵式攻擊的可能性,本發(fā)明在閃存轉(zhuǎn)換層(FTL)設(shè)計(jì)了一種基于位置跳變的閃存數(shù)據(jù)安全存儲(chǔ)方案。在閃存設(shè)備的使用過(guò)程中,設(shè)置一個(gè)觸發(fā)器,如果觸發(fā)器條件滿足,則觸發(fā)機(jī)密數(shù)據(jù)移動(dòng)機(jī)制。在基于閃存的存儲(chǔ)設(shè)備系統(tǒng)運(yùn)行過(guò)程中,不斷的移動(dòng)、改變機(jī)密數(shù)據(jù)的存儲(chǔ)的物理位置,增加機(jī)密數(shù)據(jù)存儲(chǔ)位置的不確定性,增加攻擊者分析、尋找定位機(jī)密數(shù)據(jù)存儲(chǔ)位置的難度,減小同類型存儲(chǔ)設(shè)備機(jī)密數(shù)據(jù)存儲(chǔ)位置的可預(yù)見(jiàn)性,從而提高存儲(chǔ)設(shè)備的安全性。
[0009]具體來(lái)說(shuō),本發(fā)明采用的技術(shù)方案如下:
[0010]一種基于Nand Flash閃存設(shè)備的數(shù)據(jù)安全存儲(chǔ)方法,包括以下步驟:
[0011]I)在閃存的轉(zhuǎn)換層中維護(hù)兩級(jí)地址映射:一級(jí)地址映射維護(hù)文件系統(tǒng)邏輯地址到用戶數(shù)據(jù)區(qū)邏輯地址的映射表;二級(jí)地址映射維護(hù)用戶數(shù)據(jù)區(qū)邏輯地址到閃存中物理地址的映射表;對(duì)于普通用戶數(shù)據(jù),記錄其兩級(jí)地址映射(用戶通過(guò)邏輯接口,閃存系統(tǒng)查詢兩級(jí)地址映射,可以直接讀取普通用戶數(shù)據(jù));對(duì)于機(jī)密數(shù)據(jù),在一級(jí)地址映射表中不記錄其文件系統(tǒng)邏輯地址到用戶數(shù)據(jù)區(qū)邏輯地址的映射(使用戶不能通過(guò)邏輯接口直接讀取機(jī)密數(shù)據(jù));
[0012]2)運(yùn)行基于閃存的存儲(chǔ)設(shè)備,循環(huán)監(jiān)聽(tīng)文件系統(tǒng)下傳的操作指令的次數(shù)并作為控制機(jī)密數(shù)據(jù)移動(dòng)的觸發(fā)器,當(dāng)滿足觸發(fā)器條件時(shí),觸發(fā)機(jī)密數(shù)據(jù)移動(dòng)機(jī)制,將機(jī)密數(shù)據(jù)轉(zhuǎn)移至閃存中的安全塊;
[0013]3)在機(jī)密數(shù)據(jù)轉(zhuǎn)移至安全塊后,對(duì)安全塊中的機(jī)密數(shù)據(jù)進(jìn)行偽裝;
[0014]4)更新二級(jí)地址映射,將存放機(jī)密數(shù)據(jù)的用戶數(shù)據(jù)區(qū)邏輯地址映射到存儲(chǔ)機(jī)密數(shù)據(jù)的安全塊物理地址。
[0015]進(jìn)一步地,步驟I)在固件中固化一個(gè)用戶數(shù)據(jù)區(qū)邏輯地址作為機(jī)密數(shù)據(jù)的用戶數(shù)據(jù)區(qū)邏輯地址;在用戶讀取機(jī)密數(shù)據(jù)時(shí),通過(guò)固化的用戶數(shù)據(jù)區(qū)邏輯地址查找二級(jí)地址映射得到機(jī)密數(shù)據(jù)存放在閃存的物理地址,然后從閃存相應(yīng)位置讀取機(jī)密數(shù)據(jù)。
[0016]或者,步驟I)不在固件中固化一個(gè)用戶數(shù)據(jù)區(qū)邏輯地址作為機(jī)密數(shù)據(jù)的用戶數(shù)據(jù)區(qū)邏輯地址,而是在系統(tǒng)數(shù)據(jù)區(qū)的冗余空間中記錄機(jī)密數(shù)據(jù)的用戶數(shù)據(jù)區(qū)邏輯地址;當(dāng)機(jī)密數(shù)據(jù)移動(dòng)時(shí),更新機(jī)密數(shù)據(jù)的用戶數(shù)據(jù)區(qū)邏輯地址,同時(shí)也更新二級(jí)地址映射;在用戶讀取機(jī)密數(shù)據(jù)時(shí),首先在系統(tǒng)數(shù)據(jù)區(qū)冗余空間恢復(fù)出機(jī)密數(shù)據(jù)的用戶數(shù)據(jù)區(qū)邏輯地址,然后查找二級(jí)地址映射,得到機(jī)密數(shù)據(jù)存放在閃存的物理地址,然后從閃存相應(yīng)位置讀取機(jī)密數(shù)據(jù)。
[0017]進(jìn)一步地,用戶直接對(duì)閃存讀取數(shù)據(jù)時(shí),需要通過(guò)文件系統(tǒng)邏輯地址首先查找一級(jí)地址映射,再查找二級(jí)地址映射,然后到閃存相應(yīng)的物理地址讀取數(shù)據(jù);一級(jí)地址映射表中并沒(méi)有記錄機(jī)密數(shù)據(jù)的文件系統(tǒng)邏輯地址到用戶數(shù)據(jù)區(qū)邏輯地址的映射,以保證用戶不能通過(guò)閃存邏輯接口直接讀取機(jī)密數(shù)據(jù),增加機(jī)密數(shù)據(jù)的安全性。用戶需要讀取機(jī)密數(shù)據(jù)信息時(shí),通過(guò)輸入正確的用戶口令訪問(wèn)機(jī)密數(shù)據(jù);用戶身份認(rèn)證通過(guò)后,在二級(jí)地址映射表中,通過(guò)機(jī)密數(shù)據(jù)在用戶數(shù)據(jù)區(qū)的邏輯地址查找機(jī)密數(shù)據(jù)存放在閃存物理區(qū)的物理地址,然后從閃存相應(yīng)的物理位置中讀取機(jī)密數(shù)據(jù)。
[0018]進(jìn)一步地,所述觸發(fā)器包括兩種:閃存空閑時(shí)控制機(jī)密數(shù)據(jù)移動(dòng)的閑時(shí)移動(dòng)觸發(fā)器,以及閃存工作時(shí)控制系統(tǒng)移動(dòng)的被動(dòng)移動(dòng)觸發(fā)器;所述閑時(shí)移動(dòng)觸發(fā)器設(shè)置相對(duì)較小的閾值,所述被動(dòng)移動(dòng)的計(jì)時(shí)器設(shè)置相對(duì)較大的閾值。根據(jù)不同的安全要求的應(yīng)用場(chǎng)景,控制和調(diào)整機(jī)密數(shù)據(jù)移動(dòng)的頻率,既保證機(jī)密數(shù)據(jù)的安全性,又使得對(duì)系統(tǒng)性能的影響盡可能小。
[0019]進(jìn)一步地,步驟2)中機(jī)密數(shù)據(jù)的移動(dòng)過(guò)程包括:
[0020]2-1)選擇機(jī)密數(shù)據(jù)需要轉(zhuǎn)移到的安全塊;
[0021]2-2)對(duì)安全塊進(jìn)行垃圾回收;
[0022]2-3)將機(jī)密數(shù)據(jù)移動(dòng)到安全塊中;
[0023]2-4)重置觸發(fā)器繼續(xù)進(jìn)行下次監(jiān)聽(tīng),并更新閃存中記錄的機(jī)密數(shù)據(jù)存放的位置信息。
[0024]進(jìn)一步地,步驟2-1)在選擇存放機(jī)密數(shù)據(jù)的安全塊時(shí),首先按照閃存塊中無(wú)效頁(yè)數(shù)目的多少對(duì)閃存塊排序,然后在無(wú)效頁(yè)數(shù)目足夠多的閃存塊中任意選取一個(gè)閃存塊作為安全塊。
[0025]進(jìn)一步地,步驟3)對(duì)安全塊中的機(jī)密數(shù)據(jù)進(jìn)行偽裝的方法是:在安全塊中剩余的空白頁(yè)中寫(xiě)入隨機(jī)數(shù)據(jù);或者將安全塊作為閃存系統(tǒng)中下次使用的工作塊,在安全塊中剩余的空白頁(yè)中存儲(chǔ)正常的用戶數(shù)據(jù),并跳過(guò)已經(jīng)存放機(jī)密數(shù)據(jù)的物理頁(yè),防止機(jī)密數(shù)據(jù)因重復(fù)寫(xiě)而被破壞。
[0026]一種采用上述方法的基于Nand Flash閃存設(shè)備的數(shù)據(jù)安全存儲(chǔ)系統(tǒng),包括閃存數(shù)據(jù)安全存儲(chǔ)裝置,以及分別與其連接的初始化裝置、機(jī)密數(shù)據(jù)移動(dòng)裝置、安全塊偽裝裝置、機(jī)密數(shù)據(jù)讀取裝置;所述閃存數(shù)據(jù)安全存儲(chǔ)設(shè)備設(shè)置觸發(fā)器,當(dāng)觸發(fā)器條件滿足時(shí)觸發(fā)機(jī)密數(shù)據(jù)移動(dòng)機(jī)制;所述初始化裝置用于設(shè)置所述觸發(fā)器;所述機(jī)密數(shù)據(jù)移動(dòng)裝置用于控制機(jī)密數(shù)據(jù)的轉(zhuǎn)移;所述安全塊數(shù)據(jù)偽裝裝置用于對(duì)安全塊狀態(tài)實(shí)現(xiàn)偽裝;所述機(jī)密數(shù)據(jù)讀取裝置用于實(shí)現(xiàn)用戶對(duì)機(jī)密數(shù)據(jù)的讀取。
[0027]進(jìn)一步地,所述閃存數(shù)據(jù)安全存儲(chǔ)裝置通過(guò)USB總線分別于初始化裝置、機(jī)密數(shù)據(jù)移動(dòng)裝置、安全塊數(shù)據(jù)偽裝裝置、用戶讀取機(jī)密數(shù)據(jù)裝置連接,并通過(guò)USB接口與終端連接。
[0028]本發(fā)明基于機(jī)密數(shù)據(jù)在閃存中的物理存儲(chǔ)位置不斷變化的思想,保證機(jī)密數(shù)據(jù)存儲(chǔ)的安全性。初始化階段,在閃存轉(zhuǎn)換層中設(shè)置觸發(fā)器來(lái)控制機(jī)密數(shù)據(jù)的位置移動(dòng)機(jī)制;在閃存設(shè)備工作時(shí),啟動(dòng)觸發(fā)器,閃存轉(zhuǎn)換層監(jiān)聽(tīng)上層文件系統(tǒng)的讀、寫(xiě)等操作命令。當(dāng)滿足觸發(fā)機(jī)密數(shù)據(jù)移動(dòng)機(jī)制的條件時(shí),啟動(dòng)機(jī)密數(shù)據(jù)移動(dòng)操作。機(jī)密數(shù)據(jù)移動(dòng)階段,占用系統(tǒng)資源,重新選擇合適的安全存儲(chǔ)區(qū)(安全塊)存放機(jī)密數(shù)據(jù),對(duì)安全塊進(jìn)行垃圾回收后將機(jī)密數(shù)據(jù)轉(zhuǎn)移到安全塊。安全塊偽裝階段,機(jī)密數(shù)據(jù)移動(dòng)完成后,在安全塊剩余頁(yè)中寫(xiě)入隨機(jī)數(shù)據(jù),或者將安全塊作為閃存后續(xù)使用的工作塊,在安全塊的剩余頁(yè)中寫(xiě)入正常的用戶數(shù)據(jù),從而偽裝安全塊的狀態(tài),避免因安全塊特殊的塊狀態(tài)而暴露機(jī)密數(shù)據(jù)的存放位置。本方法增加了機(jī)密數(shù)據(jù)存儲(chǔ)位置的不確定性和不可預(yù)見(jiàn)性,提高了數(shù)據(jù)存儲(chǔ)的安全性,實(shí)現(xiàn)了機(jī)密數(shù)據(jù)在閃存設(shè)備中的安全存儲(chǔ)。
【附圖說(shuō)明】
[0029]圖1為本發(fā)明一種閃存數(shù)據(jù)安全存儲(chǔ)方法的流程示意圖;
[0030]圖2為本發(fā)明一種閃存數(shù)據(jù)安全存儲(chǔ)方法的初始化步驟示意圖;
[0031 ]圖3為本發(fā)明一種閃存數(shù)據(jù)安全存儲(chǔ)方法的機(jī)密數(shù)據(jù)移動(dòng)步驟示意圖;
[0032]圖4為本發(fā)明一種閃存數(shù)據(jù)安全存儲(chǔ)方法的用戶讀取機(jī)密數(shù)據(jù)的步驟示意圖;
[0033]圖5為本發(fā)明一種閃存數(shù)據(jù)安全存儲(chǔ)方法的結(jié)構(gòu)示意圖。
[0034]圖6為本發(fā)明另一種閃存數(shù)據(jù)安全存儲(chǔ)方法的流程示意圖。
【具體實(shí)施方式】
[0035]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。
[0036]實(shí)施例1:
[0037]如圖1所示,本實(shí)施例提供了一種基于NandFlash閃存的安全存儲(chǔ)方法,包括:
[0038]在閃存轉(zhuǎn)換層中維護(hù)著兩級(jí)地址映射:一級(jí)地址映射維護(hù)文件系統(tǒng)邏輯地址到用戶數(shù)據(jù)區(qū)邏輯地址的映射表;二級(jí)地址映射維護(hù)用戶數(shù)據(jù)區(qū)邏輯地址到閃存中物理地址的映射表。初始化時(shí),在固件中確定一個(gè)用戶數(shù)據(jù)區(qū)邏輯地址,并將其保留為機(jī)密數(shù)據(jù)的用戶數(shù)據(jù)區(qū)邏輯地址。
[0039]I)初始化步驟:
[0040]初始化階段,當(dāng)基于閃存的存儲(chǔ)設(shè)備連接到PC主機(jī)等終端設(shè)備后,閃存設(shè)備初始化控制機(jī)密數(shù)據(jù)移動(dòng)的觸發(fā)器,并啟動(dòng)觸發(fā)器。觸發(fā)器分為兩種,分別是控制系統(tǒng)閑時(shí)機(jī)密數(shù)據(jù)移動(dòng)的觸發(fā)器,以及控制系統(tǒng)工作時(shí)機(jī)密數(shù)據(jù)移動(dòng)的觸發(fā)器。
[0041]2)基于閃存的存儲(chǔ)設(shè)備中機(jī)密數(shù)據(jù)的移動(dòng)步驟:
[0042]在閃存設(shè)備工作時(shí),如果滿足初始設(shè)置的閾值,則啟動(dòng)機(jī)密數(shù)據(jù)移動(dòng)機(jī)制。
[0043]閃存工作時(shí),循環(huán)監(jiān)聽(tīng)文件系統(tǒng)下傳的讀、寫(xiě)等操作指令并執(zhí)行相應(yīng)的讀、寫(xiě)等操作,根據(jù)循環(huán)監(jiān)聽(tīng)文件系統(tǒng)下傳命令的次數(shù),可以大致等效于控制時(shí)間。當(dāng)系統(tǒng)處于空閑狀態(tài)時(shí),因?yàn)椴挥脠?zhí)行讀、寫(xiě)等操作,監(jiān)聽(tīng)一定次數(shù)的文件系統(tǒng)指令所經(jīng)歷的時(shí)間比較?。划?dāng)系統(tǒng)處于工作狀態(tài)時(shí),因?yàn)樾枰獔?zhí)行文件系統(tǒng)的讀、寫(xiě)等指令,監(jiān)聽(tīng)同樣次數(shù)的文件系統(tǒng)指令所經(jīng)歷的時(shí)間比較大。因此。通過(guò)循環(huán)監(jiān)聽(tīng)文件系統(tǒng)下傳指令的次數(shù),可以大致的作為機(jī)密數(shù)據(jù)移動(dòng)的時(shí)間觸發(fā)器,并且閑時(shí)閾值小,被動(dòng)移動(dòng)的閾值大。通過(guò)不同的安全要求的應(yīng)用場(chǎng)景,可以自行調(diào)整系統(tǒng)參數(shù)和閾值(即循環(huán)監(jiān)聽(tīng)文件系統(tǒng)下傳指令的次數(shù)),從而控制和調(diào)整機(jī)密數(shù)據(jù)移動(dòng)的頻率,既保證機(jī)密數(shù)據(jù)的安全性,又使得對(duì)系統(tǒng)性能的影響盡可能小。
[0044]由于在系統(tǒng)處于工作狀態(tài)時(shí)移動(dòng)機(jī)密數(shù)據(jù)會(huì)擱置文件系統(tǒng)命令,對(duì)閃存性能造成一定程度的影響,因此可以在文件系統(tǒng)下傳的指令隊(duì)列為空,即所有文件系統(tǒng)指令均已處理完畢,當(dāng)前不再存在讀、寫(xiě)等指令時(shí),判斷是否達(dá)到設(shè)置的循環(huán)監(jiān)聽(tīng)次數(shù)閾值,使得每次機(jī)密數(shù)據(jù)的移動(dòng)均在系統(tǒng)空閑狀態(tài),不會(huì)對(duì)閃存系統(tǒng)的性能造成太大影響,也不會(huì)造成系統(tǒng)工作時(shí)文件系統(tǒng)指令執(zhí)行的延遲。
[0045]首先,需要確定機(jī)密數(shù)據(jù)應(yīng)該轉(zhuǎn)移到的位置,即安全塊的物理位置。由于閃存塊具有不可重復(fù)寫(xiě)(erase-before-write)的物理特性,在數(shù)據(jù)移動(dòng)到安全塊之前,必須先擦除該閃存塊,因此,需要對(duì)安全塊先進(jìn)行垃圾回收。
[0046]由于垃圾回收時(shí)的讀、寫(xiě)和擦除操作會(huì)增加系統(tǒng)的負(fù)載,因此若此時(shí)文件系統(tǒng)存在讀、寫(xiě)命令,系統(tǒng)也會(huì)處于阻塞等待狀態(tài)。為減少安全塊垃圾回收時(shí)對(duì)系統(tǒng)負(fù)載的影響,提高閃存系統(tǒng)的性能,需要選擇合適的安全塊,即閃存塊中無(wú)效頁(yè)數(shù)目足夠多的塊。對(duì)安全塊中的數(shù)據(jù)回收完成后,將機(jī)密數(shù)據(jù)移動(dòng)到安全塊中,實(shí)現(xiàn)機(jī)密數(shù)據(jù)的轉(zhuǎn)移。
[0047]機(jī)密數(shù)據(jù)轉(zhuǎn)移后,更新二級(jí)地址映射,將存放機(jī)密數(shù)據(jù)的用戶數(shù)據(jù)區(qū)邏輯地址映射到閃存中新的安全物理塊。機(jī)密數(shù)據(jù)轉(zhuǎn)移到安全塊后,重置觸發(fā)器。
[0048]3)安全塊中的機(jī)密數(shù)據(jù)偽裝步驟:
[0049]由于閃存中存放機(jī)密數(shù)據(jù)的安全塊的狀態(tài)與正常閃存塊生命周期內(nèi)可能出現(xiàn)的各種狀態(tài)均不相同,因此比較容易被定位到機(jī)密數(shù)據(jù)的存儲(chǔ)位置,從而獲取機(jī)密數(shù)據(jù)內(nèi)容。因此需將安全塊進(jìn)行偽裝。
[0050]在機(jī)密數(shù)據(jù)轉(zhuǎn)移后,可以在安全塊剩余頁(yè)中寫(xiě)入隨機(jī)數(shù)據(jù),或者將安全塊作為閃存系統(tǒng)中下次使用的工作塊,在安全塊中剩余的空白頁(yè)中存儲(chǔ)正常的用戶數(shù)據(jù),但跳過(guò)存儲(chǔ)機(jī)密數(shù)據(jù)的閃存頁(yè),防止對(duì)機(jī)密數(shù)據(jù)的破壞,實(shí)現(xiàn)對(duì)安全塊狀態(tài)的偽裝。
[0051]4)讀取機(jī)密數(shù)據(jù)步驟:
[0052]合法用戶通過(guò)輸入正確的用戶口令,訪問(wèn)機(jī)密數(shù)據(jù)。用戶身份認(rèn)證通過(guò)后,在二級(jí)地址映射表中,通過(guò)機(jī)密數(shù)據(jù)在用戶數(shù)據(jù)區(qū)的邏輯地址查找機(jī)密數(shù)據(jù)存放在閃存物理區(qū)的物理地址,然后從閃存相應(yīng)的物理位置中讀取機(jī)密數(shù)據(jù)。
[0053]具體的,通過(guò)以下實(shí)例并結(jié)合附圖2?附圖5對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明:
[0054]初始化步驟如圖2所示,包括:
[0055]初始化閃存設(shè)備,并設(shè)置合適的觸發(fā)器控制機(jī)密數(shù)據(jù)的移動(dòng)。主要包括閃存系統(tǒng)空閑時(shí)控制機(jī)密數(shù)據(jù)移動(dòng)的閑時(shí)移動(dòng)觸發(fā)器和閃存工作時(shí)控制系統(tǒng)移動(dòng)的被動(dòng)移動(dòng)觸發(fā)器兩種。
[0056]閑時(shí)移動(dòng),在閃存系統(tǒng)處于空閑狀態(tài)時(shí)達(dá)到觸發(fā)器條件時(shí)啟動(dòng)的對(duì)機(jī)密數(shù)據(jù)的移動(dòng)機(jī)制。閑時(shí)移動(dòng)機(jī)制發(fā)生時(shí),閃存系統(tǒng)中不存在讀、寫(xiě)命令,因此,不會(huì)影響閃存性能。閑時(shí)移動(dòng)的觸發(fā)器設(shè)置相對(duì)較小的閾值。
[0057]被動(dòng)移動(dòng),在閃存系統(tǒng)長(zhǎng)時(shí)間持續(xù)工作達(dá)到觸發(fā)器條件時(shí)啟動(dòng)的對(duì)機(jī)密數(shù)據(jù)的移動(dòng)機(jī)制。被動(dòng)移動(dòng)機(jī)制發(fā)生時(shí),閃存系統(tǒng)中存在讀、寫(xiě)命令,因此,對(duì)閃存性能會(huì)產(chǎn)生一定的影響。被動(dòng)移動(dòng)的計(jì)時(shí)器設(shè)置為相對(duì)較大的閾值。
[0058]機(jī)密數(shù)據(jù)移動(dòng)步驟,具體如圖3所示,包括:
[0059]機(jī)密數(shù)據(jù)的移動(dòng)主要包括三步:首先選擇機(jī)密數(shù)據(jù)本次需要轉(zhuǎn)移到的安全塊;其次,對(duì)安全塊進(jìn)行垃圾回收;最后,將機(jī)密數(shù)據(jù)移動(dòng)到安全塊中。機(jī)密數(shù)據(jù)轉(zhuǎn)移到安全塊后,重置觸發(fā)器進(jìn)行下次監(jiān)聽(tīng)。
[0060]首先,安全塊的選擇問(wèn)題。為降低對(duì)安全塊進(jìn)行垃圾回收的系統(tǒng)負(fù)載,提高閃存系統(tǒng)的性能,減小文件系統(tǒng)讀、寫(xiě)命令的等待時(shí)間,需要選擇合適的安全塊,即閃存塊中無(wú)效頁(yè)數(shù)目足夠多的塊,以此減少對(duì)安全塊的垃圾回收時(shí)的系統(tǒng)開(kāi)銷。在選擇存放機(jī)密數(shù)據(jù)的安全塊時(shí),首先需要按照閃存塊中無(wú)效頁(yè)數(shù)目的多少對(duì)閃存塊排序。閃存塊排好序后,在足夠臟的閃存塊中任意選取一個(gè)閃存塊作為安全塊,既減小了垃圾回收時(shí)的系統(tǒng)負(fù)載,同時(shí)也保證了安全塊的不可預(yù)測(cè)性。
[0061]其次,就是對(duì)安全塊的垃圾回收和機(jī)密數(shù)據(jù)的轉(zhuǎn)移。由于閃存塊不可重復(fù)寫(xiě)的物理特性,在機(jī)密數(shù)據(jù)移動(dòng)到安全塊之前,必須先擦除安全塊。在選擇好存放機(jī)密數(shù)據(jù)的安全塊之后,需要對(duì)安全塊垃圾回收,然后擦除安全塊,最后從原始位置讀取機(jī)密數(shù)據(jù)后轉(zhuǎn)移到安全塊中,并重置二級(jí)映射表,將機(jī)密數(shù)據(jù)的用戶數(shù)據(jù)區(qū)邏輯地址映射到新的安全塊物理地址。
[0062]更新閃存二級(jí)地址映射的步驟,包括:
[0063]本方法中機(jī)密數(shù)據(jù)存放在閃存中的物理地址是不斷變化的,從而提高機(jī)密數(shù)據(jù)的存儲(chǔ)安全性。為保證合法用戶通過(guò)機(jī)密數(shù)據(jù)在閃存用戶數(shù)據(jù)區(qū)固定的邏輯地址正確查找到機(jī)密數(shù)據(jù)存放的物理地址,需要更新二級(jí)地址映射表。在完成機(jī)密數(shù)據(jù)轉(zhuǎn)移后,更新二級(jí)地址映射,將機(jī)密數(shù)據(jù)的用戶數(shù)據(jù)區(qū)邏輯地址映射到新的安全塊物理地址。
[0064]安全塊的偽裝步驟,包括:
[0065]在一個(gè)正常塊的生命周期內(nèi)只可能出現(xiàn)三種狀態(tài):I)空狀態(tài),即該塊被擦除后還未使用,所有頁(yè)的數(shù)據(jù)均為邏輯“I” ;2)分配狀態(tài),即該塊是當(dāng)前正在使用的閃存塊,部分頁(yè)已寫(xiě)入數(shù)據(jù)(有“I”有“O”),部分頁(yè)仍未使用(全“I”);3)滿狀態(tài),塊中的所有頁(yè)均已寫(xiě)入數(shù)據(jù)(有“I”有“O”)。由于安全塊的狀態(tài)有別于這三種狀態(tài),因此容易被敵手定位到機(jī)密數(shù)據(jù)的存放位置,獲取機(jī)密數(shù)據(jù)。要實(shí)現(xiàn)安全塊的偽裝和隱藏,可以在安全塊剩余頁(yè)中寫(xiě)入隨機(jī)數(shù)據(jù),或者將安全塊作為后續(xù)的系統(tǒng)工作塊,向安全塊中的空白頁(yè)寫(xiě)入正常的用戶數(shù)據(jù),并跳過(guò)已經(jīng)存放機(jī)密數(shù)據(jù)的物理頁(yè),防止機(jī)密數(shù)據(jù)因重復(fù)寫(xiě)而被破壞。
[0066]用戶讀取機(jī)密信息的步驟,具體如圖4所示,包括:
[0067]當(dāng)用戶需要讀取機(jī)密數(shù)據(jù)信息時(shí),首先需要正確輸入用戶口令,身份認(rèn)證通過(guò)后,在二級(jí)地址映射表中查找機(jī)密數(shù)據(jù)邏輯地址對(duì)應(yīng)在閃存塊中的物理地址,然后從閃存相應(yīng)的物理地址讀取機(jī)密數(shù)據(jù)。
[0068]實(shí)施例2:
[0069]如圖5所示,本實(shí)施例提供了一種實(shí)現(xiàn)上述閃存數(shù)據(jù)安全存儲(chǔ)方案的系統(tǒng),包括閃存數(shù)據(jù)安全存儲(chǔ)裝置(即閃存本身)、初始化裝置、機(jī)密數(shù)據(jù)移動(dòng)裝置、安全塊偽裝裝置、機(jī)密數(shù)據(jù)讀取裝置。其中,閃存數(shù)據(jù)安全存儲(chǔ)設(shè)備通過(guò)USB總線分別于初始化裝置、機(jī)密數(shù)據(jù)移動(dòng)裝置、安全塊數(shù)據(jù)偽裝裝置、用戶讀取機(jī)密數(shù)據(jù)裝置連接,閃存數(shù)據(jù)安全存儲(chǔ)設(shè)備通過(guò)USB接口與終端連接。
[0070]閃存數(shù)據(jù)安全存儲(chǔ)設(shè)備用于初始化階段,在閃存轉(zhuǎn)換層設(shè)置觸發(fā)器;在閃存設(shè)備工作時(shí),啟動(dòng)觸發(fā)器,F(xiàn)TL監(jiān)聽(tīng)文件系統(tǒng)下傳的讀、寫(xiě)等操作命令。當(dāng)觸發(fā)器條件滿足時(shí)觸發(fā)機(jī)密數(shù)據(jù)移動(dòng)機(jī)制,占用系統(tǒng)資源,重新選擇合適的安全存儲(chǔ)區(qū)(安全塊)存放機(jī)密數(shù)據(jù),對(duì)安全塊進(jìn)行垃圾回收后將機(jī)密數(shù)據(jù)轉(zhuǎn)移到安全塊,然后更新閃存中記錄的機(jī)密數(shù)據(jù)存放的位置信息。機(jī)密數(shù)據(jù)移動(dòng)完成后,將安全塊作為閃存后續(xù)使用的工作塊,在安全塊的空白頁(yè)中寫(xiě)入正常的用戶數(shù)據(jù),從而偽裝安全塊的狀態(tài),避免因安全塊特殊的塊狀態(tài)而暴露機(jī)密數(shù)據(jù)的存放位置。合法用戶讀取機(jī)密數(shù)據(jù)信息時(shí),身份認(rèn)證通過(guò)后,系統(tǒng)從閃存安全塊中讀取機(jī)密數(shù)據(jù)內(nèi)容。
[0071 ]初始化裝置用于設(shè)置控制機(jī)密數(shù)據(jù)移動(dòng)的觸發(fā)器。
[0072]機(jī)密數(shù)據(jù)移動(dòng)裝置用于控制機(jī)密數(shù)據(jù)的轉(zhuǎn)移。
[0073]安全塊數(shù)據(jù)偽裝裝置用于對(duì)安全塊狀態(tài)實(shí)現(xiàn)偽裝。
[0074]機(jī)密數(shù)據(jù)讀取裝置用于用戶對(duì)機(jī)密數(shù)據(jù)的讀取。
[0075]初始化裝置,進(jìn)一步包括閃存系統(tǒng)空閑時(shí)控制機(jī)密數(shù)據(jù)移動(dòng)的閑時(shí)移動(dòng)觸發(fā)器和閃存工作時(shí)控制系統(tǒng)移動(dòng)的被動(dòng)移動(dòng)觸發(fā)器兩種。閑時(shí)移動(dòng)觸發(fā)器,即在閃存系統(tǒng)處于空閑狀態(tài)時(shí)啟動(dòng)的觸發(fā)器。閑時(shí)移動(dòng)觸發(fā)器啟動(dòng)時(shí),閃存系統(tǒng)中不存在讀、寫(xiě)命令,閑時(shí)移動(dòng)的觸發(fā)器設(shè)置為相對(duì)較小的閾值。被動(dòng)移動(dòng)觸發(fā)器,在閃存系統(tǒng)處于工作狀態(tài)時(shí)啟動(dòng)的觸發(fā)器。被動(dòng)移動(dòng)觸發(fā)器啟動(dòng)時(shí),閃存系統(tǒng)中存在讀、寫(xiě)命令,被動(dòng)移動(dòng)的觸發(fā)器設(shè)置為相對(duì)較大的閾值。
[0076]機(jī)密數(shù)據(jù)移動(dòng)步驟,進(jìn)一步包括以下內(nèi)容:
[0077]首先,安全塊的選擇問(wèn)題。為降低對(duì)安全塊進(jìn)行垃圾回收的系統(tǒng)負(fù)載,提高閃存系統(tǒng)的性能,減小文件系統(tǒng)讀、寫(xiě)命令的等待時(shí)間,需要選擇合適的安全塊,即閃存塊中無(wú)效頁(yè)數(shù)目足夠多的塊,以此減少對(duì)安全塊的垃圾回收時(shí)的系統(tǒng)開(kāi)銷。在選擇存放機(jī)密數(shù)據(jù)的安全塊時(shí),首先需要按照閃存塊中無(wú)效頁(yè)數(shù)目的多少對(duì)閃存塊排序。閃存塊排好序后,在足夠臟的閃存塊中任意選取一個(gè)閃存塊作為安全塊,既減小了垃圾回收時(shí)的系統(tǒng)負(fù)載,同時(shí)也保證了安全塊的不可預(yù)測(cè)性。
[0078]其次,就是對(duì)安全塊的垃圾回收和機(jī)密數(shù)據(jù)的轉(zhuǎn)移。由于閃存塊不可重復(fù)寫(xiě)的物理特性,在機(jī)密數(shù)據(jù)移動(dòng)到安全塊之前,必須先擦除安全塊。在選擇好存放機(jī)密數(shù)據(jù)的安全塊之后,需要對(duì)安全塊垃圾回收,然后擦除安全塊,最后從原始位置讀取機(jī)密數(shù)據(jù)后轉(zhuǎn)移到安全塊中。
[0079]本方法中機(jī)密數(shù)據(jù)存放在閃存中的物理地址是不斷變化的,從而提高機(jī)密數(shù)據(jù)的存儲(chǔ)安全性。為保證合法用戶通過(guò)機(jī)密數(shù)據(jù)在閃存用戶數(shù)據(jù)區(qū)固定的邏輯地址正確查找到機(jī)密數(shù)據(jù)存放的物理地址,需要更新二級(jí)地址映射表。在完成機(jī)密數(shù)據(jù)轉(zhuǎn)移后,更新二級(jí)地址映射,將機(jī)密數(shù)據(jù)的用戶數(shù)據(jù)區(qū)邏輯地址映射到新的安全塊物理地址。
[0080]安全塊數(shù)據(jù)偽裝步驟,進(jìn)一步包括:由于安全塊的狀態(tài)不同于正常閃存塊生命周期中可能出現(xiàn)的狀態(tài),因此容易被敵手定位到機(jī)密數(shù)據(jù)的存放位置,獲取機(jī)密數(shù)據(jù)。要實(shí)現(xiàn)安全塊的偽裝和隱藏,可以在安全塊剩余頁(yè)中寫(xiě)入隨機(jī)數(shù)據(jù),或者將安全塊作為后續(xù)的系統(tǒng)工作塊,向安全塊中的空白頁(yè)寫(xiě)入正常的用戶數(shù)據(jù),并跳過(guò)已經(jīng)存放機(jī)密數(shù)據(jù)的物理頁(yè),防止機(jī)密數(shù)據(jù)因重復(fù)寫(xiě)而被破壞。
[0081 ]用戶讀取機(jī)密數(shù)據(jù)步驟,進(jìn)一步包括:首先需要正確輸入用戶口令,身份認(rèn)證通過(guò)后,在二級(jí)地址映射表中查找機(jī)密數(shù)據(jù)邏輯地址對(duì)應(yīng)在閃存塊中的物理地址,然后從閃存相應(yīng)的物理地址讀取機(jī)密數(shù)據(jù)。
[0082]實(shí)施例3:
[0083]本實(shí)施例在初始時(shí),無(wú)需在固件中確定一個(gè)用戶數(shù)據(jù)區(qū)邏輯地址。但是,系統(tǒng)中需要記錄機(jī)密數(shù)據(jù)存放位置的相關(guān)信息(實(shí)際記錄的是用戶數(shù)據(jù)區(qū)邏輯地址,確切說(shuō)是用戶數(shù)據(jù)區(qū)邏輯地址與用戶口令進(jìn)行數(shù)學(xué)運(yùn)算后的結(jié)果)。在系統(tǒng)數(shù)據(jù)保留區(qū)(比如頁(yè)映射表等)的冗余空間中,記錄機(jī)密數(shù)據(jù)存放的位置(用戶數(shù)據(jù)區(qū)邏輯地址)。在機(jī)密數(shù)據(jù)移動(dòng)后,不更新一級(jí)地址映射表,保證不能通過(guò)文件系統(tǒng)邏輯接口直接讀取機(jī)密數(shù)據(jù),增加數(shù)據(jù)安全性,但需要在系統(tǒng)數(shù)據(jù)保留區(qū)更新機(jī)密數(shù)據(jù)存放的位置信息(即機(jī)密數(shù)據(jù)的用戶數(shù)據(jù)區(qū)邏輯地址)。在記錄機(jī)密數(shù)據(jù)存儲(chǔ)位置時(shí),為保證機(jī)密性,將機(jī)密信息存放的位置信息與用戶口令進(jìn)行一些數(shù)學(xué)運(yùn)算(比如,異或運(yùn)算等)后存入閃存系統(tǒng)數(shù)據(jù)存儲(chǔ)區(qū)。用戶讀取機(jī)密數(shù)據(jù)時(shí),輸入用戶口令,身份驗(yàn)證通過(guò)后,系統(tǒng)將存放的地址信息與用戶口令再經(jīng)過(guò)數(shù)學(xué)運(yùn)算后恢復(fù)出機(jī)密數(shù)據(jù)存放的位置信息(即機(jī)密數(shù)據(jù)的用戶數(shù)據(jù)區(qū)邏輯地址),通過(guò)查詢二級(jí)地址映射表獲取機(jī)密數(shù)據(jù)存放在閃存的物理地址,然后從閃存相應(yīng)的位置讀取機(jī)密數(shù)據(jù)。其他步驟均與前述方法相同。圖6為該方法的步驟流程圖。
[0084]以上實(shí)施例中,對(duì)于普通用戶數(shù)據(jù),系統(tǒng)中會(huì)記錄兩級(jí)地址映射,用戶通過(guò)邏輯接口,閃存系統(tǒng)查詢兩級(jí)地址映射,可以直接讀取普通用戶數(shù)據(jù);對(duì)于機(jī)密數(shù)據(jù),系統(tǒng)中并沒(méi)有在一級(jí)地址映射中記錄其文件系統(tǒng)邏輯地址—用戶數(shù)據(jù)區(qū)邏輯地址的映射,因此,用戶不同通過(guò)邏輯接口直接讀取機(jī)密數(shù)據(jù)(因?yàn)橐患?jí)映射表中沒(méi)有相應(yīng)的映射項(xiàng))。對(duì)于實(shí)施例1的方案,在固件中(通過(guò)代碼)固化一個(gè)用戶數(shù)據(jù)區(qū)邏輯地址(因此系統(tǒng)中也不必記錄該地址)。當(dāng)機(jī)密數(shù)據(jù)移動(dòng)時(shí),正常更新二級(jí)地址映射。讀取機(jī)密數(shù)據(jù)時(shí),通過(guò)固化的用戶數(shù)據(jù)區(qū)邏輯地址查找二級(jí)地址映射得到機(jī)密數(shù)據(jù)存放在閃存的物理地址,然后從閃存相應(yīng)位置讀取機(jī)密數(shù)據(jù)。對(duì)于實(shí)施例3的方案,無(wú)需在固件中固化一個(gè)用戶數(shù)據(jù)區(qū)邏輯地址,因此需要在系統(tǒng)數(shù)據(jù)區(qū)的冗余空間記錄該信息(即機(jī)密數(shù)據(jù)的用戶數(shù)據(jù)區(qū)邏輯地址)。當(dāng)機(jī)密數(shù)據(jù)移動(dòng)時(shí),需要更新機(jī)密數(shù)據(jù)的用戶數(shù)據(jù)區(qū)邏輯地址(隨著機(jī)密數(shù)據(jù)的移動(dòng)也是變化的),同時(shí)也要正常的更新二級(jí)地址映射(將新的機(jī)密數(shù)據(jù)用戶數(shù)據(jù)區(qū)邏輯地址映射到新的閃存物理地址)。讀取機(jī)密數(shù)據(jù)時(shí),首先在系統(tǒng)數(shù)據(jù)區(qū)冗余空間恢復(fù)出機(jī)密數(shù)據(jù)的用戶數(shù)據(jù)區(qū)邏輯地址,然后查找二級(jí)地址映射,得到機(jī)密數(shù)據(jù)存放在閃存的物理地址,然后從閃存相應(yīng)位置讀取機(jī)密數(shù)據(jù)。
[0085]以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn)行限制,本領(lǐng)域的普通技術(shù)人員可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明的精神和范圍,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求書(shū)所述為準(zhǔn)。
【主權(quán)項(xiàng)】
1.一種基于NandFlash閃存設(shè)備的數(shù)據(jù)安全存儲(chǔ)方法,其特征在于,包括以下步驟: 1)在閃存的轉(zhuǎn)換層中維護(hù)兩級(jí)地址映射:一級(jí)地址映射維護(hù)文件系統(tǒng)邏輯地址到用戶數(shù)據(jù)區(qū)邏輯地址的映射表;二級(jí)地址映射維護(hù)用戶數(shù)據(jù)區(qū)邏輯地址到閃存中物理地址的映射表;對(duì)于普通用戶數(shù)據(jù),記錄其兩級(jí)地址映射;對(duì)于機(jī)密數(shù)據(jù),在一級(jí)地址映射表中不記錄其文件系統(tǒng)邏輯地址到用戶數(shù)據(jù)區(qū)邏輯地址的映射; 2)運(yùn)行基于閃存的存儲(chǔ)設(shè)備,循環(huán)監(jiān)聽(tīng)文件系統(tǒng)下傳的操作指令的次數(shù)并作為控制機(jī)密數(shù)據(jù)移動(dòng)的觸發(fā)器,當(dāng)滿足觸發(fā)器條件時(shí),觸發(fā)機(jī)密數(shù)據(jù)移動(dòng)機(jī)制,將機(jī)密數(shù)據(jù)轉(zhuǎn)移至閃存中的安全塊; 3)在機(jī)密數(shù)據(jù)轉(zhuǎn)移至安全塊后,對(duì)安全塊中的機(jī)密數(shù)據(jù)進(jìn)行偽裝; 4)更新二級(jí)地址映射,將存放機(jī)密數(shù)據(jù)的用戶數(shù)據(jù)區(qū)邏輯地址映射到存儲(chǔ)機(jī)密數(shù)據(jù)的安全塊物理地址。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟I)在固件中固化一個(gè)用戶數(shù)據(jù)區(qū)邏輯地址作為機(jī)密數(shù)據(jù)的用戶數(shù)據(jù)區(qū)邏輯地址;在用戶讀取機(jī)密數(shù)據(jù)時(shí),通過(guò)固化的用戶數(shù)據(jù)區(qū)邏輯地址查找二級(jí)地址映射得到機(jī)密數(shù)據(jù)存放在閃存的物理地址,然后從閃存相應(yīng)位置讀取機(jī)密數(shù)據(jù)。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟I)在系統(tǒng)數(shù)據(jù)區(qū)的冗余空間中記錄機(jī)密數(shù)據(jù)的用戶數(shù)據(jù)區(qū)邏輯地址;當(dāng)機(jī)密數(shù)據(jù)移動(dòng)時(shí),更新機(jī)密數(shù)據(jù)的用戶數(shù)據(jù)區(qū)邏輯地址,同時(shí)也更新二級(jí)地址映射;在用戶讀取機(jī)密數(shù)據(jù)時(shí),首先在系統(tǒng)數(shù)據(jù)區(qū)冗余空間恢復(fù)出機(jī)密數(shù)據(jù)的用戶數(shù)據(jù)區(qū)邏輯地址,然后查找二級(jí)地址映射,得到機(jī)密數(shù)據(jù)存放在閃存的物理地址,然后從閃存相應(yīng)位置讀取機(jī)密數(shù)據(jù)。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述觸發(fā)器包括兩種:閃存空閑時(shí)控制機(jī)密數(shù)據(jù)移動(dòng)的閑時(shí)移動(dòng)觸發(fā)器,以及閃存工作時(shí)控制系統(tǒng)移動(dòng)的被動(dòng)移動(dòng)觸發(fā)器;所述閑時(shí)移動(dòng)觸發(fā)器設(shè)置相對(duì)較小的閾值,所述被動(dòng)移動(dòng)的計(jì)時(shí)器設(shè)置相對(duì)較大的閾值;根據(jù)不同的安全要求的應(yīng)用場(chǎng)景,控制和調(diào)整機(jī)密數(shù)據(jù)移動(dòng)的頻率,既保證機(jī)密數(shù)據(jù)的安全性,又使得對(duì)系統(tǒng)性能的影響盡可能小。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在文件系統(tǒng)下傳的指令隊(duì)列為空,即所有文件系統(tǒng)指令均已處理完畢,當(dāng)前不再存在操作指令時(shí),判斷是否達(dá)到設(shè)置的循環(huán)監(jiān)聽(tīng)次數(shù)閾值,使得每次機(jī)密數(shù)據(jù)的移動(dòng)均在系統(tǒng)空閑狀態(tài)。6.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟2)中機(jī)密數(shù)據(jù)的移動(dòng)過(guò)程包括: 2-1)選擇機(jī)密數(shù)據(jù)需要轉(zhuǎn)移到的安全塊; 2-2)對(duì)安全塊進(jìn)行垃圾回收; 2-3)將機(jī)密數(shù)據(jù)移動(dòng)到安全塊中; 2-4)重置觸發(fā)器繼續(xù)進(jìn)行下次監(jiān)聽(tīng),并更新閃存中記錄的機(jī)密數(shù)據(jù)存放的位置信息。7.根據(jù)權(quán)利要求6所述的方法,其特征在于,步驟2-1)在選擇存放機(jī)密數(shù)據(jù)的安全塊時(shí),首先按照閃存塊中無(wú)效頁(yè)數(shù)目的多少對(duì)閃存塊排序,然后在無(wú)效頁(yè)數(shù)目足夠多的閃存塊中任意選取一個(gè)閃存塊作為安全塊。8.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟3)對(duì)安全塊中的機(jī)密數(shù)據(jù)進(jìn)行偽裝的方法是:在安全塊中剩余的空白頁(yè)中寫(xiě)入隨機(jī)數(shù)據(jù);或者將安全塊作為閃存系統(tǒng)中下次使用的工作塊,在安全塊中剩余的空白頁(yè)中存儲(chǔ)正常的用戶數(shù)據(jù),并跳過(guò)已經(jīng)存放機(jī)密數(shù)據(jù)的物理頁(yè),防止機(jī)密數(shù)據(jù)因重復(fù)寫(xiě)而被破壞。9.一種采用權(quán)利要求1所述方法的基于NandFlash閃存設(shè)備的數(shù)據(jù)安全存儲(chǔ)系統(tǒng),其特征在于,包括閃存數(shù)據(jù)安全存儲(chǔ)裝置,以及分別與其連接的初始化裝置、機(jī)密數(shù)據(jù)移動(dòng)裝置、安全塊偽裝裝置、機(jī)密數(shù)據(jù)讀取裝置;所述閃存數(shù)據(jù)安全存儲(chǔ)設(shè)備設(shè)置觸發(fā)器,當(dāng)觸發(fā)器條件滿足時(shí)觸發(fā)機(jī)密數(shù)據(jù)移動(dòng)機(jī)制;所述初始化裝置用于設(shè)置所述觸發(fā)器;所述機(jī)密數(shù)據(jù)移動(dòng)裝置用于控制機(jī)密數(shù)據(jù)的轉(zhuǎn)移;所述安全塊數(shù)據(jù)偽裝裝置用于對(duì)安全塊狀態(tài)實(shí)現(xiàn)偽裝;所述機(jī)密數(shù)據(jù)讀取裝置用于實(shí)現(xiàn)用戶對(duì)機(jī)密數(shù)據(jù)的讀取。10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述閃存數(shù)據(jù)安全存儲(chǔ)裝置通過(guò)USB總線分別于初始化裝置、機(jī)密數(shù)據(jù)移動(dòng)裝置、安全塊數(shù)據(jù)偽裝裝置、用戶讀取機(jī)密數(shù)據(jù)裝置連接,并通過(guò)USB接口與終端連接。
【文檔編號(hào)】G06F21/78GK105975878SQ201610370911
【公開(kāi)日】2016年9月28日
【申請(qǐng)日】2016年5月30日
【發(fā)明人】夏魯寧, 湯勝軍, 賈世杰, 張瓊露, 張國(guó)柱, 嵇亞飛, 林璟鏘
【申請(qǐng)人】中國(guó)科學(xué)院信息工程研究所