湯勝軍,賈世杰,夏魯寧
基于位置跳變的閃存數(shù)據(jù)安全存儲方法
湯勝軍1,2,3,賈世杰1,2,3,夏魯寧1,2
(1. 中國科學(xué)院數(shù)據(jù)與通信保護研究教育中心,北京 100093;2. 中國科學(xué)院信息工程研究所,北京 100093;3. 中國科學(xué)院大學(xué),北京 100049)
閃存(Flash)器件在電子設(shè)備中已經(jīng)得到廣泛應(yīng)用,其存儲安全問題也日益受到關(guān)注。多數(shù)情況下消費類電子產(chǎn)品中沒有特定的安全存儲硬件,閃存是其唯一的非易失存儲器,因而敏感數(shù)據(jù)也只能與普通數(shù)據(jù)一起保存在閃存之中。雖然可以使用存儲加密的手段,但密鑰仍不得不存放于閃存自身。這使得一旦攻擊者可以獲得閃存器件的物理鏡像,就可以相對容易的獲取密鑰等敏感數(shù)據(jù),進而獲得所有的明文數(shù)據(jù)。本文提出了一種基于位置跳變的閃存數(shù)據(jù)安全存儲方案,通過隨機改變敏感數(shù)據(jù)在閃存的存儲位置,大大降低了敏感數(shù)據(jù)存儲位置的可預(yù)見性,從而顯著增加了攻擊者通過閃存物理鏡像揭示敏感數(shù)據(jù)的難度。
信息安全;閃存;存儲安全;物理攻擊
當(dāng)前的數(shù)據(jù)存儲領(lǐng)域,閃存(Flash)已經(jīng)逐漸取代機械硬盤(Hard Disk Drives,HDD)成為最主要的大容量數(shù)據(jù)存儲器[1,2]。閃存中可能存儲著大量的隱私數(shù)據(jù),一些系統(tǒng)安全機制涉及的安全參數(shù)大多數(shù)情況下也以不同的形式存放在閃存介質(zhì)之中[8,9,13]。鑒于此,針對閃存的攻擊已經(jīng)逐漸成為黑客攻擊的焦點,閃存的數(shù)據(jù)竊取、數(shù)據(jù)恢復(fù)等攻擊手段不斷被提出[3,4,5,6],基于閃存的數(shù)據(jù)安全存儲問題已越來越受到重視[17,26,27]。
本文提出一種基于位置跳變的閃存數(shù)據(jù)安全存儲方案,極大的提高攻擊者對機密數(shù)據(jù)的獲取難度,增加攻擊者的攻擊成本,提高閃存設(shè)備中敏感數(shù)據(jù)的安全性。
本文后續(xù)部分的內(nèi)容組織如下:第2章介紹研究背景,第3章介紹基于位置跳變的閃存數(shù)據(jù)安全存儲方案,第4章介紹實驗及實驗結(jié)果分析,第5章評價和總結(jié)。
與傳統(tǒng)機械磁盤相比,閃存芯片具有獨特的物理組成與使用特性,為了將閃存存儲設(shè)備模擬成為像機械磁盤一樣的普通的塊存儲設(shè)備,需要借助閃存轉(zhuǎn)換層來屏蔽閃存的這些差異,使上層系統(tǒng)可以透明的使用閃存。然而,由于閃存的特殊物理性質(zhì),也使其遭受到了多種攻擊。本章主要介紹閃存的物理性質(zhì)、閃存轉(zhuǎn)換層以及針對閃存的常見攻擊方法。
1.1閃存物理特性
閃存(Flash)有Nor Flash和Nand Flash之分,用于大容量存儲的一般是Nand Flash。鑒于本文的目的,后續(xù)描述中所述的“閃存”皆特指Nand Flash。閃存主要支持三種基本操作:讀(Read),編程(寫),擦除(Erase)。相對于傳統(tǒng)磁盤,閃存芯片具有如下獨特的物理性質(zhì):
第一,不能重復(fù)寫[15]。閃存編程操作和擦除操作的最小單位不一致,閃存讀、寫操作的基本單位是頁,而擦除操作的基本單位是塊。在寫操作之前必須先執(zhí)行擦除操作。
第二,不可原位更新。由于閃存在編程之前必須擦除的物理特性,閃存中的數(shù)據(jù)若要實現(xiàn)原位更新必須先將整個塊內(nèi)的有效頁的數(shù)據(jù)讀出,擦除此塊后,再將有效頁的數(shù)據(jù)與更新后的數(shù)據(jù)寫回此塊,這將導(dǎo)致寫放大[14]。因此閃存中的數(shù)據(jù)采用非原位更新,即更新數(shù)據(jù)時,只是將新數(shù)據(jù)寫到一個新的空白頁中,然后將原數(shù)據(jù)所在的物理頁標(biāo)記為無效頁。
第三,閃存內(nèi)的每一個塊的擦寫壽命都是有限的[19]。通常SLC(Single-Level Cell)類型的閃存中塊的擦寫壽命是十萬次,而MLC(Multi-Level Cell)類型的閃存中塊的擦寫壽命一般只有一萬次。
1.2閃存轉(zhuǎn)換層
由于閃存上述的物理特性,導(dǎo)致常規(guī)的文件系統(tǒng)(如FAT32,EXT2等)不能直接用于管理閃存介質(zhì)。為了屏蔽閃存的物理性質(zhì),將閃存模擬為普通的塊設(shè)備(block device),使其適用于現(xiàn)有的塊文件系統(tǒng),在閃存與文件系統(tǒng)之間有一個專用的軟件/固件層——閃存轉(zhuǎn)換層(Flash Translation Layer,F(xiàn)TL)。如圖1所示,閃存轉(zhuǎn)換層主要的功能是地址映射,磨損均衡和垃圾回收[20]。
地址映射由于閃存中存儲的數(shù)據(jù)采用非原位更新,隨著數(shù)據(jù)的不斷更新,數(shù)據(jù)在閃存上的物理位置也不斷變化,因而需要維持?jǐn)?shù)據(jù)在上層系統(tǒng)(如操作系統(tǒng)、文件系統(tǒng)等)的邏輯地址到閃存中內(nèi)部物理地址的映射關(guān)系,即地址映射[21]。
圖1 閃存存儲系統(tǒng)結(jié)構(gòu)Fig.1 The architecture of a flash-based storage system
垃圾回收隨著閃存內(nèi)數(shù)據(jù)的不斷更新,閃存中的過時數(shù)據(jù)隨之增多,閃存內(nèi)部的可用物理存儲空間逐漸減小。垃圾回收[20]機制,負責(zé)將過時數(shù)據(jù)所占用的空間釋放,保障閃存內(nèi)部空間的持續(xù)重復(fù)性利用。垃圾回收可以分為被動和主動兩種模式。被動模式即在可用存儲空間少于一定閾值時,啟動垃圾回收;主動模式在系統(tǒng)空閑時即執(zhí)行垃圾回收,保證一定數(shù)量的可用存儲空間,從而有效的提高閃存存儲系統(tǒng)的性能和效率。
使用均衡由于閃存的每一個塊的擦寫壽命有限,為了避免因某些塊過度使用而使設(shè)備報廢,使用均衡機制保證均勻的使用每個閃存塊[16],從而延長閃存的使用壽命。使用均衡策略分為動態(tài)和靜態(tài)兩種,動態(tài)磨損均衡就是每次將數(shù)據(jù)寫入到使用次數(shù)最小的塊中,使用次數(shù)較多的塊盡量不用;靜態(tài)磨損均衡策略是將長期沒有修改的舊數(shù)據(jù)從使用次數(shù)較少的塊中移出來,存放于使用次數(shù)較多的塊中,增加使用次數(shù)較少的塊的使用頻率。
1.3針對閃存的攻擊方法
目前,針對閃存的攻擊方法[7]已經(jīng)可以獲取閃存的邏輯快照和物理快照,現(xiàn)有的閃存產(chǎn)品,其密鑰等敏感數(shù)據(jù)大都存放在系統(tǒng)的保留塊中,通過邏輯接口并不能讀取敏感數(shù)據(jù),因此可以抵御邏輯快照攻擊。但是,對于物理快照攻擊,由于密鑰等敏感數(shù)據(jù)的存儲位置相對比較固定,一旦攻擊者獲取閃存的物理快照,就能相對容易地定位到敏感數(shù)據(jù)的存放位置,并且一次攻擊成功后,能為后續(xù)攻擊提供先驗知識,后續(xù)攻擊可以直接定位到敏感數(shù)據(jù)的存放位置,從而直接獲取敏感數(shù)據(jù)。
Marcel Breeuwsma等人在文獻[6]中介紹了三種獲取閃存物理快照的攻擊方法,成功獲取了閃存的物理鏡像。第一種是非入侵式的攻擊[10]方法,攻擊者可以直接利用生產(chǎn)商或者應(yīng)用商場提供的對特定設(shè)備的閃存工具(Flasher tools)即可獲取閃存的物理快照;第二種方法是通過JTAG的測試接口在外部測試模式或者debug模式下讀取閃存內(nèi)容,從而獲取閃存的物理快照;第三種方法是一種半入侵式攻擊方法[11,12],其適用場景更廣,在前兩種方式均不可行的情況下,可以采取這種較為復(fù)雜的攻擊方法。首先從集成電路中拆卸閃存芯片,然后對閃存芯片進行預(yù)處理,除去芯片上的焊料等雜質(zhì),最后通過商用的閃存芯片閱讀器便可讀取閃存的數(shù)據(jù),從而獲取閃存的物理快照。
后文提出一種閃存數(shù)據(jù)安全存儲的新方案,可以有效抵御針對閃存的物理快照攻擊。
對基于閃存的存儲設(shè)備的物理快照攻擊方法,可以讀取出存儲在閃存上的所有物理數(shù)據(jù)[6,7]。如果閃存介質(zhì)中存儲敏感數(shù)據(jù)的物理位置相對固定,攻擊者可以通過針對閃存的物理快照攻擊方法,定位分析出敏感數(shù)據(jù)的存放位置,從而獲取基于閃存設(shè)備中所存儲的敏感數(shù)據(jù)。一旦攻擊成功,攻擊者可以獲取先驗知識,同種類型的閃存設(shè)備都將受到安全威脅。
為減少上述攻擊的可能性,本文提出了一種在閃存轉(zhuǎn)換層(FTL)實現(xiàn)的基于位置跳變思想的閃存數(shù)據(jù)安全存儲方案。
在閃存存儲設(shè)備的使用過程中,設(shè)置一定的觸發(fā)條件,當(dāng)觸發(fā)條件滿足時,則啟動敏感數(shù)據(jù)移動機制。通過不斷的移動、改變敏感數(shù)據(jù)存儲的物理位置,增加敏感數(shù)據(jù)存儲位置的不確定性,增大攻擊者分析、尋找定位敏感數(shù)據(jù)存儲位置的難度;并且即使攻擊者一次攻擊成功,也不能夠獲取任何先驗知識,可以減小同類型存儲設(shè)備中敏感數(shù)據(jù)存儲位置的可預(yù)見性,從而提高存儲設(shè)備的安全性。
2.1設(shè)計思想
本文所提出的基于閃存的存儲設(shè)備敏感數(shù)據(jù)安全存儲方案,主要是通過修改閃存存儲設(shè)備中的閃存轉(zhuǎn)換層的邏輯,從而實現(xiàn)閃存存儲設(shè)備中敏感數(shù)據(jù)的安全存儲,提高敏感數(shù)據(jù)存儲的安全性。
初始化基于閃存的存儲設(shè)備時,在閃存轉(zhuǎn)換層中設(shè)置一個觸發(fā)器。當(dāng)觸發(fā)條件滿足時,啟動敏感數(shù)據(jù)移動機制,此時將占用系統(tǒng)資源,掛起系統(tǒng)的讀、寫線程。移動敏感數(shù)據(jù)時,首先選擇合適的安全存儲區(qū)作為存放敏感數(shù)據(jù)的“安全塊”,然后對目標(biāo)安全塊進行垃圾回收,最后將機密數(shù)據(jù)移動到目標(biāo)安全塊中。敏感數(shù)據(jù)移動完成后,需要對安全塊進行偽裝,避免暴露安全塊的物理位置。本方案主要需要解決四個問題,即系統(tǒng)如何訪問敏感數(shù)據(jù),移動敏感數(shù)據(jù)的時機,移動數(shù)據(jù)的方式,以及敏感數(shù)據(jù)的偽裝。
本方案的具體算法如下:
算法1 敏感數(shù)據(jù)轉(zhuǎn)移算法if(觸發(fā)條件滿足) NextBlock=RandomSelectBlock();//隨機選取敏感數(shù)據(jù)的轉(zhuǎn)移塊NextPage=RandomPage();//隨機選取敏感數(shù)據(jù)的轉(zhuǎn)移頁GC(NextBlock);//對NextBlock垃圾回收ReadSensitiveData();//從原始位置讀取敏感數(shù)據(jù)DataShift(NextBlock, NextPage);//將敏感數(shù)據(jù)轉(zhuǎn)移到NextBlock,Nextpage位置DataCamouflage();//填充隨機數(shù)偽裝EraseData();//擦除原位置的敏感數(shù)據(jù)endif
2.2關(guān)鍵問題
2.2.1 初始工作
閃存轉(zhuǎn)換層FTL維護著一個兩級的地址映射,如圖2所示。一級地址映射是文件系統(tǒng)邏輯地址到FTL層邏輯地址的映射,二級地址映射是FTL層邏輯地址到閃存物理地址的映射。
圖2 地址映射Fig.2 Address Mapping
基于位置跳變的閃存數(shù)據(jù)安全存儲方案中,敏感數(shù)據(jù)的存儲位置是不斷變化的,不固定的位置。為了保證每次敏感數(shù)據(jù)的物理存儲位置變化之后,系統(tǒng)合法用戶可以正確的獲取敏感數(shù)據(jù),在初始階段,我們在FTL層預(yù)留一個邏輯地址作為閃存中敏感數(shù)據(jù)的專用邏輯地址。此后,無論敏感數(shù)據(jù)如何移動,系統(tǒng)只需根據(jù)FTL層專用邏輯地址查找二級地址映射表即可獲取敏感數(shù)據(jù)的物理位置。
2.2.2 觸發(fā)條件
設(shè)置合理的觸發(fā)條件。在敏感數(shù)據(jù)移動時伴隨一系列讀、寫操作和擦除操作,因此敏感數(shù)據(jù)的移動時機會直接影響基于閃存的存儲設(shè)備的性能。本方案提出了兩種觸發(fā)器,即基于時間的觸發(fā)器和基于事件的觸發(fā)器。
1. 基于時間的觸發(fā)器
顧名思義,以時間作為觸發(fā)器。初始時,設(shè)置一個計時器,達到設(shè)定的時間閾值時,掛起讀、寫線程,啟動敏感數(shù)據(jù)移動機制,將敏感數(shù)據(jù)轉(zhuǎn)移到另一個安全位置。
2. 基于事件的觸發(fā)器
分兩種情況設(shè)置觸發(fā)條件,即系統(tǒng)空閑時的閑時觸發(fā)器和系統(tǒng)工作時的工作觸發(fā)器。閑時觸發(fā)器,系統(tǒng)的空閑時不存在讀、寫任務(wù),可以設(shè)置為時間觸發(fā),達到設(shè)置的時間閾值即轉(zhuǎn)移敏感數(shù)據(jù);工作觸發(fā)器,在系統(tǒng)工作時,記錄系統(tǒng)連續(xù)執(zhí)行讀寫操作的次數(shù)或時間,達到一個較大閾值時,啟動敏感數(shù)據(jù)移動機制,保證在工作時觸發(fā)頻率小。
實際應(yīng)用時,需要在系統(tǒng)性能和數(shù)據(jù)安全性上權(quán)衡,根據(jù)不同的應(yīng)用場景,設(shè)置合理的觸發(fā)條件。
2.2.3 移動敏感數(shù)據(jù)
當(dāng)觸發(fā)條件滿足時,系統(tǒng)會啟動敏感數(shù)據(jù)移動機制,將敏感數(shù)據(jù)移動到閃存芯片中的另一個不同物理位置的安全塊中。
首先,需要確定敏感數(shù)據(jù)移動的目標(biāo)位置。由于閃存不可重復(fù)寫的物理特性,在數(shù)據(jù)移動到下一個安全位置(安全塊)時,必須先擦除該閃存塊,因此,需要對安全塊中原有的數(shù)據(jù)進行垃圾回收。這會增加系統(tǒng)的額外開銷,對閃存性能產(chǎn)生不利影響。為降低垃圾回收的系統(tǒng)負載,提高系統(tǒng)性能,需要選擇合適的目標(biāo)安全塊。本方案中,應(yīng)盡量選擇閃存塊中無效頁數(shù)目較多的塊作為安全塊,以此來減少安全塊垃圾回收時的系統(tǒng)開銷。對安全塊的垃圾回收完成后,將敏感數(shù)據(jù)移動到安全塊中。
敏感數(shù)據(jù)寫入目標(biāo)安全塊后,一級映射表始終不記錄安全塊中敏感數(shù)據(jù)所在閃存頁的映射信息,使得文件系統(tǒng)將其視為無效頁,保證敏感數(shù)據(jù)不能直接從文件系統(tǒng)的邏輯接口讀取,從而保證敏感數(shù)據(jù)的安全性。在二級映射表中需要更新敏感數(shù)據(jù)的映射項,保證閃存系統(tǒng)通過查找二級映射表可以正確獲取敏感數(shù)據(jù)。
2.2.4 蹤跡隱藏
將敏感數(shù)據(jù)移動到預(yù)先垃圾回收的目標(biāo)安全塊之后,由于敏感數(shù)據(jù)不會占用安全塊中的所有頁,因此,安全塊中會存在未使用的頁,這將會導(dǎo)致安全塊中閃存頁的使用情況與其它的閃存塊之間存在明顯區(qū)別。
如圖3所示,在一個正常閃存塊的生命周期內(nèi)只可能出現(xiàn)三種狀態(tài):1)空狀態(tài),即該塊被擦除后還未使用,所有頁的數(shù)據(jù)均為邏輯“1”;2)分配狀態(tài),即該塊是當(dāng)前正在使用的閃存塊,部分頁已寫入數(shù)據(jù),部分頁仍未使用;3)滿狀態(tài),塊中的所有頁均已寫入數(shù)據(jù)。由于目標(biāo)安全塊的狀態(tài)有別于這三種狀態(tài),因此容易被敵手定位到敏感數(shù)據(jù)的存放位置,從而獲取敏感數(shù)據(jù)。
圖3 閃存塊狀態(tài)Fig.3 Nand Flash Block States
要實現(xiàn)敏感數(shù)據(jù)在目標(biāo)安全塊的偽裝和隱藏,防止攻擊者通過安全塊的特殊物理狀態(tài)而定位到敏感數(shù)據(jù)的存儲位置,可以向安全塊中填充隨機數(shù)據(jù),將安全塊偽裝成“滿狀態(tài)”的數(shù)據(jù)塊。
3.1實驗環(huán)境
3.1.1 硬件環(huán)境
我們在圖4所示的閃存開發(fā)板上實現(xiàn)了基于位置跳變的閃存數(shù)據(jù)安全存儲方案??刂破餍吞枮锳RM926EJ-S[22],Nand Flash為Samsung公司生產(chǎn)的K9F4G08U0M,該Nand Flash共有4096個塊,每塊含64頁,每頁2 KB,容量為512 MB。
3.1.2 軟件環(huán)境
本實驗基于OpenNFM(Open Nand Flash Manager)項目[23],該項目是一個針對固態(tài)硬盤和嵌入式存儲設(shè)備的閃存FTL開源項目。在OpenNFM項目中,主要通過兩個層次來實現(xiàn)具體功能。
圖4 閃存開發(fā)板Fig.4 Nand Flash development board
一個是UBI層,主要負責(zé)管理閃存的物理存儲資源,實現(xiàn)壞塊管理和靜態(tài)使用均衡策略,維護用戶數(shù)據(jù)區(qū)邏輯地址,到閃存中物理地址的二級地址映射。
另一個是FTL層,主要實現(xiàn)頁級地址映射,負責(zé)分配和回收閃存頁,維護文件系統(tǒng)邏輯地址到用戶數(shù)據(jù)區(qū)邏輯地址的一級地址映射。FTL層中添加了熱數(shù)據(jù)標(biāo)記(Hot Data Identifier,HDI),用以分離冷、熱數(shù)據(jù)[24]。熱數(shù)據(jù),即經(jīng)常更新的數(shù)據(jù);冷數(shù)據(jù),就是相對穩(wěn)定的數(shù)據(jù)。分離冷熱數(shù)據(jù),可以提高垃圾回收的效率。
在OpenNFM項目中,系統(tǒng)的前46個閃存邏輯塊(塊號0-45)是系統(tǒng)數(shù)據(jù)區(qū),存儲包括ROOT表、臟頁表(Block Dirty Table,BDT)、熱數(shù)據(jù)標(biāo)記(HDI)、頁映射表(Page Mapping Table,PMT)等系統(tǒng)數(shù)據(jù)。BDT記錄所有閃存塊中的無效頁數(shù)目,為垃圾回收提供依據(jù);HDI,記錄文件系統(tǒng)邏輯地址數(shù)據(jù)的更新次數(shù),用以區(qū)分冷熱數(shù)據(jù);PMT,記錄邏輯地址到物理地址的映射;ROOT表,記錄各系統(tǒng)數(shù)據(jù)的存放位置,包括BDT,HDI,PMT在閃存中的存放的物理位置。基于閃存的存儲設(shè)備工作時,系統(tǒng)維護三個工作塊,分別是熱數(shù)據(jù)工作塊、冷數(shù)據(jù)工作塊和垃圾回收工作塊,分別用于存儲熱數(shù)據(jù)、冷數(shù)據(jù)和垃圾回收塊中的有效數(shù)據(jù)。
3.2實驗過程
我們在OpenNFM項目的基礎(chǔ)上,添加了基于位置跳變的閃存數(shù)據(jù)安全存儲機制。
首先,設(shè)置敏感數(shù)據(jù)移動的觸發(fā)器。閃存設(shè)備掛載后進入正常工作狀態(tài),初始化觸發(fā)器,循環(huán)監(jiān)聽上層文件系統(tǒng)下傳的讀、寫命令并處理。每次監(jiān)聽文件系統(tǒng)指令時,判斷觸發(fā)條件是否滿足,若滿足觸發(fā)條件,則啟動敏感數(shù)據(jù)移動機制。根據(jù)BDT中記錄的各閃存塊中無效頁數(shù)目,在無效頁數(shù)目較多的閃存塊中隨機選取一個閃存塊作為敏感數(shù)據(jù)轉(zhuǎn)移的安全塊。
隨后對目標(biāo)安全塊垃圾回收,將塊中的有效頁復(fù)制到系統(tǒng)的冷數(shù)據(jù)工作塊中[20](安全塊中的無效頁因為已經(jīng)被更新過,可以將其視為熱數(shù)據(jù),而安全塊中的有效頁,因為未被更新,可以將其當(dāng)作冷數(shù)據(jù)處理)。擦除安全塊后,將敏感數(shù)據(jù)轉(zhuǎn)移到安全塊,并將安全塊中的空白頁填充隨機數(shù)。
敏感數(shù)據(jù)移動完成后,重置觸發(fā)器,并更新二級地址映射,將敏感數(shù)據(jù)的FTL層邏輯地址(專用邏輯地址)映射到安全塊中敏感數(shù)據(jù)所在的閃存頁上。
3.3實驗分析
本文提出的基于位置跳變的閃存數(shù)據(jù)安全存儲方案,由于在敏感數(shù)據(jù)移動時存在額外的系統(tǒng)負載,包括復(fù)制有效頁、擦除閃存塊,寫入敏感數(shù)據(jù)等,這些讀、寫,擦除等操作會增加系統(tǒng)負載,因此閃存存儲系統(tǒng)的讀、寫性能會存在一定程度的下降。
利用I/O測試工具fio[25],分別測試原始OpenNFM項目和添加了基于位置跳變的閃存數(shù)據(jù)安全存儲方案后項目的性能,測試其順序讀、寫和隨機讀、寫數(shù)據(jù)的性能。本文分別對兩種觸發(fā)條件均進行實驗和測試。
1. 基于時間的觸發(fā)器,即無論系統(tǒng)是空閑或者工作狀態(tài),達到一定時間則啟動敏感數(shù)據(jù)移動機制。分別測試時間閾值(即移動頻率)為5 s、30 s,以及60 s時系統(tǒng)的讀寫性能。
2. 基于事件的觸發(fā)器,即根據(jù)系統(tǒng)的狀態(tài)設(shè)置閑時觸發(fā)器和工作觸發(fā)器。設(shè)置閑時觸發(fā)器為60 s,工作觸發(fā)器為系統(tǒng)持續(xù)不間斷執(zhí)行讀寫任務(wù)10 min,分別測試系統(tǒng)的讀、寫性能。
實驗測試結(jié)果如下表1,性能測試結(jié)果圖如圖5所示。
通過性能測試結(jié)果,可以得出如下結(jié)論。
如表1、圖5所示從性能測試結(jié)果圖可以看到,添加本方案后閃存的讀、寫效率與敏感數(shù)據(jù)移動的頻率有關(guān),也與觸發(fā)條件有關(guān)。圖5中四條曲線均成上升趨勢,可以知道:敏感數(shù)據(jù)移動的頻率越大,閃存的讀、寫效率越低;基于事件的觸發(fā)器,其閃存讀、寫性能優(yōu)于基于時間的觸發(fā)器,它能根據(jù)系統(tǒng)的當(dāng)前狀態(tài)選擇是否啟動敏感數(shù)據(jù)移動機制。
通過性能測試結(jié)果圖看到,本方案對基于閃存的存儲設(shè)備的順序讀、寫性能影響較大,對隨機讀、寫性能影響相對較小。由于敏感數(shù)據(jù)的位置跳變策略會破壞閃存的順序讀、寫機制,因此對順序讀、寫性能影響較大,對隨機讀、寫性能影響相對較小。
表1 性能測試結(jié)果(KB/s)Table 1 Performance Testing Results (KB/s)
圖5 性能測試結(jié)果Fig.5 Performance Testing Results
對于基于時間的觸發(fā)器,閃存讀、寫效率均有比較明顯的降低。閃存性能的影響與敏感數(shù)據(jù)的移動頻率存在一定的相關(guān)性,即敏感數(shù)據(jù)的移動頻率越大,閃存性能的下降程度也越大。如果敏感數(shù)據(jù)的移動頻率越大,那么單位時間內(nèi)系統(tǒng)的額外負載就越多,因此閃存的讀、寫效率降低越大。
對于基于事件的觸發(fā)器,閃存讀、寫性能下降不明顯,并且較之基于時間的觸發(fā)器,閃存性能有顯著提升。因為基于事件的觸發(fā)器,會考慮閃存系統(tǒng)的當(dāng)前狀態(tài),在閃存工作時,較少地觸發(fā)敏感數(shù)據(jù)移動機制。在實際使用閃存設(shè)備時,用戶的讀、寫命令一般都是斷續(xù)的,長時間的持續(xù)讀、寫操作并不多,因此敏感數(shù)據(jù)的移動大多發(fā)生在系統(tǒng)處于空閑狀態(tài)的時候,對閃存的讀、寫性能影響較小。
本文提出的基于位置跳變的閃存數(shù)據(jù)安全存儲方案與數(shù)據(jù)加密與否無關(guān),敏感數(shù)據(jù)可以是明文或者密文的方式存儲,敏感數(shù)據(jù)可以是密鑰,也可以是用戶的重要隱私文件。本方案的目的是增加攻擊者定位敏感數(shù)據(jù)存儲位置的難度。
本方案利用Nand Flash閃存中的無效頁存放敏感數(shù)據(jù),保證上層文件系統(tǒng)不能直接訪問和讀取數(shù)據(jù)內(nèi)容;通過不斷移動、變化敏感數(shù)據(jù)在閃存的物理存儲位置,增大攻擊者的攻擊難度,并減小其下次存儲位置的可預(yù)見性,提供較高的安全保障。在FTL中增加基于位置跳變的安全存儲保護機制,閃存的讀、寫性能有一定程度的下降,移動的頻率越高,對敏感數(shù)據(jù)的保護越安全,閃存的性能下降程度也越大。通過將基于時間的觸發(fā)器優(yōu)化為基于事件的觸發(fā)器,使敏感數(shù)據(jù)的移動盡可能發(fā)生在系統(tǒng)的空閑狀態(tài),這既保證了敏感數(shù)據(jù)的機密性,又保證了閃存數(shù)據(jù)的讀、寫效率。
[1] http://www.csia.net.cn/Article/ShowInfo.asp?InfoID=34726
[2] Ji S, Shin D. An efficient garbage collection for flash memory-based virtual memory systems[J]. Consumer Electronics, IEEE Transactions on, 2010, 56(4): 2355-2363.
[3] Phillips B J, Schmidt C D, Kelly D R. Recovering data from USB flash memory sticks that have been damaged or electronically erased[C]//Proceedings of the 1st international conference on Forensic applications and techniques in telecommunications, information, and multimedia and workshop. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2008: 19. [4] Qiu W, Su Q, Liu B, et al. iOS data recovery using low-level NAND images[J]. IEEE Security & Privacy, 2013(5): 49-55.
[5] Luck J, Stokes M. An integrated approach to recovering deleted files from nand flash data[J]. Small Scale Digital Device Forensics Journal, 2008, 2(1): 1941-6164.
[6] Breeuwsma M, De Jongh M, Klaver C, et al. Forensic data recovery from flash memory[J]. Small Scale Digital Device Forensics Journal, 2007, 1(1): 1-17.
[7] Skorobogatov S P. Semi-invasive attacks: a new approach to hardware security analysis[D]. University of Cambridge, 2005.
[8] Jain A K, Hong L, Pankanti S, et al. An identity- authentication system using fingerprints[J]. Proceedings of the IEEE, 1997, 85(9): 1365-1388.
[9] George P. User Authentication with Smart Cards in Trusted Computing Architecture[C]//Security and Management. 2004: 25-31.
[10] Messerges T S, Dabbish E A, Sloan R H. Investigations of Power Analysis Attacks on Smartcards[J]. Smartcard, 1999, 99: 151-161.
[11] Skorobogatov S. Flash memory ‘bumping’attacks[M]// Cryptographic Hardware and Embedded Systems, CHES2010. Springer Berlin Heidelberg, 2010: 158-172.
[12] Skorobogatov S P, Anderson R J. Optical fault induction attacks[M]//Cryptographic Hardware and Embedded Systems-CHES 2002. Springer Berlin Heidelberg, 2002: 2-12.
[13] Bellare M, Canetti R, Krawczyk H. Keying hash functions for message authentication[C]//Advances in Cryptology—CRYPTO’96. Springer Berlin Heidelberg, 1996: 1-15.
[14] Hu X Y, Eleftheriou E, Haas R, et al. Write amplification analysis in flash-based solid state drives[C]//Proceedings of SYSTOR 2009: The Israeli Experimental Systems Conference. ACM, 2009: 10.
[15] Kang J U, Jo H, Kim J S, et al. A superblock-based flash translation layer for NAND flash memory[C]//Proceedings of the 6th ACM & IEEE International conferenceon Embedded software. ACM, 2006: 161-170.
[16] Chang L P. On efficient wear leveling for large-scale flash-memory storage systems[C]//Proceedings of the 2007 ACM symposium on Applied computing. ACM, 2007: 1126-1130.
[17] 魏興偉. OpenStack 對象存儲身份和訪問控制管理的安全性分析與改進[J]. 軟件, 2015, 36(2): 36-38
[18] Lin M, Chen S. Efficient and intelligent garbage collection policy for NAND flash-based consumer electronics[J]. Consumer Electronics, IEEE Transactions on, 2013, 59(3): 538-543.
[19] Wang C, Wong W F. Extending the lifetime of NAND flash memory by salvaging bad blocks[C]//Proceedings of the Conference on Design, Automation and Test in Europe. EDA Consortium, 2012: 260-263.
[20] Yang M C, Chang Y M, Tsao C W, et al. Garbage collection and wear leveling for flash memory: Past and future[C]// Smart Computing (SMARTCOMP), 2014 International Conference on. IEEE, 2014: 66-73.
[21] Gupta A, Kim Y, Urgaonkar B. DFTL: a flash translation layer employing demand-based selective caching of page-level address mappings[M]. ACM, 2009.
[22] http://www.mouser.cn/ProductDetail/Olimex-Ltd/LPC-H313 1/?qs=%2fha2pyFadugd%2fNl9FDPn1bJUcs0TNDsLJCo0Ht uGS0s%3d
[23] https://code.google.com/archive/p/opennfm/
[24] Shin I. Hot/cold clustering for page mapping in NAND flash memory[J]. Consumer Electronics, IEEE Transactions on, 2011, 57(4): 1728-1731.
[25] Fio. http://freecode.com/projects/fio.
[26] 王又立, 王晶. 一種基于Kerberos和HDFS 的數(shù)據(jù)存儲平臺訪問控制策略[J]. 軟件, 2016, 37(01): 67-70
[27] 單武. 基于CC 標(biāo)準(zhǔn)的物聯(lián)網(wǎng)數(shù)據(jù)安全需求分析及應(yīng)用研究[J]. 軟件, 2015, 36(8): 121-127
A Secure Data Storage Method of Flash Memory Based on Position Shifting
TANG Sheng-jun1,2,3, JIA Shi-jie1,2,3, XIA Lu-ning1,2
(1. Data Assurance and Communication Security Research Center, Chinese Academy of Sciences, Beijing 100093, China; 2. State Key Laboratory of Information Security, Institute of Information Engineering, Chinese Academy of Sciences, Beijing 100093, China; 3. University of Chinese Academy of Sciences, Beijing 100049, China)
Flash memory is widely used in electronic devices, and the data storage security in flash memory devices is much concerned by researchers. In most cases, there is no specific security firmware in consumer electronic products, flash memory devices are the only nonvolatile storage devices, so sensitive information must be stored in flash memory just as common data. Though encryption method can be applied, keys still have to be stored in flash. Once attackers get the physical images of flash memory, they can easily get keys and other sensitive information in flash memory, and then get all plain text in flash. In this paper, a secure data storage method of flash memory is proposed. It significantly reduces the predictability of the storage location through randomly shifting the position of sensitive information, which can greatly increases the difficulty of getting sensitive information in flash memory through physical images.
Information security; Nand flash; Storage security; Physical attack
TP309
A
10.3969/j.issn.1003-6970.2017.02.016
信工所973云計算(Y460011103)
湯勝軍(1992-),男,碩士研究生,信息安全。
賈世杰,博士研究生,主要研究方向:信息安全。
本文著錄格式:湯勝軍,賈世杰,夏魯寧. 基于位置跳變的閃存數(shù)據(jù)安全存儲方法[J]. 軟件,2017,38(2):68-74