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