熊臣宇



摘要:固態(tài)硬盤(Solid-state Drive,SSD)的數(shù)據(jù)銷毀問題已提出了解決方法,但多數(shù)方法的銷毀粒度為單個存儲介質;而在實際應用中往往只需要銷毀單個文件,因此現(xiàn)有的SSD數(shù)據(jù)銷毀方法存在銷毀粒度不對等的問題。針對SSD中銷毀粒度不對等的問題,提出對存儲文件使用密碼學方法,將文件銷毀問題轉化為密鑰銷毀問題。文件加密存儲,密鑰存放在SSD中的指定空間上,進行數(shù)據(jù)銷毀時僅銷毀指定文件的密鑰,實現(xiàn)銷毀粒度為文件的數(shù)據(jù)銷毀。最后通過實驗驗證了該方案的可行性。
關鍵詞:固態(tài)硬盤;數(shù)據(jù)銷毀;密碼學;銷毀粒度;快速銷毀
中圖分類號:TP393? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)16-0048-04
開放科學(資源服務)標識碼(OSID):
Research on fast File Destruction Method Based on Cryptography in SSD
XIONG Chen-yu
(Sichuan University, Chengdu 610207, China)
Abstract: Solid-state Drive have been put forward many solutions to the problem of SSD data destruction, but the destruction granularity of the proposed method is mostly a single storage medium so far. In reality, users only need to destroy a file in most cases, so the existing SSD data destruction methods have the problem of unequal destruction granularity. In order to solve the problem of unequal destruction granularity in SSD, a cryptography method is proposed to store files. By this way, the problem of data destruction is transformed into the problem of keys destruction. The file is encrypted, and the key is stored in the specified space in SSD. When data need to be destroyed, only the key of specified file need to be destroyed, so as to realize the destruction of data with file destruction granularity. Finally, the feasibility of the scheme is verified.
Key words: SSD; data destruction; cryptography; destruction granularity; fast destruction
1 背景
固態(tài)硬盤(Solid-state disk, SSD)作為一種數(shù)據(jù)存儲介質,在個人電腦、服務器、移動設備上均有著十分廣泛的應用。和另一種常用的存儲介質機械硬盤(Hard disk drive, HDD)相比,SSD具有讀寫速度快、功耗低、抗震防摔等優(yōu)點[1]。在某些特殊情況下,使用者需要對存儲介質中的數(shù)據(jù)進行銷毀[2],為了解決SSD中的數(shù)據(jù)銷毀問題,研究人員提出了許多解決方法。
對SSD的數(shù)據(jù)安全銷毀研究中,Michael Wei等人[3]針對HDD的數(shù)據(jù)銷毀方法是否能用于SSD的數(shù)據(jù)銷毀問題展開研究。在研究中他們發(fā)現(xiàn),由于SDD的寫入基本單位為“頁寫入”,擦除基本單位為“塊擦除”[4-5],SSD在執(zhí)行擦除操作時需要先將目標數(shù)據(jù)塊中的有效數(shù)據(jù)先寫入其他數(shù)據(jù)塊的空白存儲頁上,隨后再對該目標數(shù)據(jù)塊進行擦除操作。用DoD 5220M等適用于HDD的安全銷毀方法對SSD進行全盤數(shù)據(jù)銷毀后,目標文件在經(jīng)過多次覆寫后仍然能在SSD中找到一個甚至多個目標文件的復制。在該篇文章中,提出了一種針對SSD的數(shù)據(jù)銷毀方法“Scrubbing”。具體方法為讓SSD的閃存轉換層(Flash Translation Layer, FTL)能夠直接將新的數(shù)據(jù)寫入需要銷毀的閃存存儲頁中,有效解決了由于SSD數(shù)據(jù)擦除規(guī)則導致的數(shù)據(jù)多次拷貝問題。但其中存在的問題是,SSD存儲器閃存芯片不同會導致該方法的擦除效果有很大的差異,不能很好的保證數(shù)據(jù)被安全銷毀[6-7]。
Kim G等人[8]提出了TRIM算法,TRIM能夠在操作系統(tǒng)層面反映SSD閃存存儲層數(shù)據(jù)安全銷毀的結果。Guomeng Wang等人[9]使用基于異步I/O的多線程技術,增加HDD存儲器的數(shù)據(jù)讀寫速度,加快了數(shù)據(jù)的銷毀速率。Xiaolong Xu等人[10]提出了數(shù)據(jù)折疊方法,該方法將數(shù)據(jù)等分成大小相同兩段,在數(shù)據(jù)覆寫階段使用后段數(shù)據(jù)與前段數(shù)據(jù)進行異或操作,對新產(chǎn)生的數(shù)據(jù)繼續(xù)進行等分操作,直到數(shù)據(jù)大小被減少到一定程度時,便對全部數(shù)據(jù)進行擦除操作。該方法同樣采用了多次覆寫的方式,每次覆寫的空間大小逐漸減少,提高了數(shù)據(jù)銷毀的速度。秦雄等人[11]提出了CREAM(梳狀隨機銷毀算法,comb-like randomly eliminating algorithm)方法,該方法從某個起始偏移量開始,利用具有特定間隔的擦寫梳對存儲空間進行“梳理”。在區(qū)間內隨機但不重復地選擇起始偏移量,并執(zhí)行梳理操作,不斷重復該過程直到取完區(qū)間內所有整數(shù)實現(xiàn)數(shù)據(jù)銷毀。
為了實現(xiàn)數(shù)據(jù)快速銷毀,Chen Liu等人提出了數(shù)據(jù)加密銷毀策略[12]。對一個閃存塊區(qū)中的每個組進行加密,一個塊區(qū)的密鑰組集中存放在一特定數(shù)據(jù)存儲塊上,將數(shù)據(jù)銷毀問題轉化為密鑰銷毀問題,數(shù)據(jù)銷毀僅需對密鑰存儲塊進行數(shù)據(jù)銷毀,大幅加快了銷毀速度且滿足數(shù)據(jù)安全銷毀的要求。之后,該團隊就該方法進行了相應優(yōu)化,對一個SSD進行功能劃分,劃分為加密區(qū)和非加密區(qū),保證了數(shù)據(jù)能夠按需對應存儲,減少銷毀非重要數(shù)據(jù)消耗的時間,一定程度上加快了數(shù)據(jù)銷毀的速度,也一定程度上減少了銷毀對SSD帶來的磨損[7]。
Tianran Xiao等人提出了基于NAND Flash的SSD單文件銷毀方法[5]。對每個文件加入獨一無二的頭部,在進行單文件數(shù)據(jù)銷毀時在全盤范圍內對具有該特征的文件進行銷毀。Younsung Choi等人[13]針對SSD的單文件銷毀問題設計了以口令為基礎的SSD安全存儲系統(tǒng)。用戶針對文件設置銷毀口令,由可信第三方和本地存儲SSD系統(tǒng)同時保管,用戶發(fā)出銷毀口令時,第三方和本地存儲系統(tǒng)進行驗證確認身份,允許用戶對其的相應操作。I. Shin等人[14]提出了一種使用身份認證的IBE-DHT (Identity-Based Encryption Secure and Distributed Hash Table)文件自銷毀系統(tǒng)。
SSD具有兩個特點,一是寫入和擦除的基本單元不同,為“頁寫入,塊擦除”;二是每個閃存存儲塊都有一定的擦寫次數(shù),即有一定的使用壽命。數(shù)據(jù)銷毀需要對原存儲位置進行多次數(shù)據(jù)覆寫操作,覆寫操作違背了SSD的數(shù)據(jù)擦除規(guī)則,且多次覆寫過程需要的時間過長;在SSD上使用覆寫方法會造成空間的大量占用,完成銷毀后仍然有數(shù)據(jù)副本存在于SSD存儲介質中[3];多次擦寫會嚴重影響閃存存儲塊的使用壽命,影響SSD的性能[6]。綜上,針對SSD的數(shù)據(jù)銷毀問題亟需一個高效可行的銷毀辦法。此外用戶在進行數(shù)據(jù)銷毀時的基本操作單位為文件[5],在存儲介質內銷毀粒度為文件進行數(shù)據(jù)銷毀可以減少需要銷毀的數(shù)據(jù)大小,一定程度上降低數(shù)據(jù)銷毀對存儲介質造成的損耗[5][7]。以文件為基本單位進行數(shù)據(jù)安全銷毀能夠幫助用戶更加直觀的知曉銷毀的目標,確保重要數(shù)據(jù)能夠及時銷毀。所以本文提出了一種在SSD中基于密碼學的文件快速銷毀方法。
基于密碼學的文件快速銷毀方法使用基于密碼學的存儲方法,將文件加密后存儲至SSD中。需要銷毀文件時,僅需銷毀文件對應的密鑰,即可保證數(shù)據(jù)不可獲取,即將SSD的數(shù)據(jù)銷毀問題轉化為文件加密密鑰的銷毀問題?;诿艽a學的文件存儲方法包含了密碼學功能和密鑰管理功能。密碼學功能實現(xiàn)了文件的加密存儲和解密讀取;密鑰管理功能將密鑰存儲在指定的閃存存儲塊上,該閃存存儲塊稱為密鑰存儲區(qū)域。數(shù)據(jù)銷毀功能使用Scrubbing方法對密鑰存儲頁進行多次覆寫,實現(xiàn)數(shù)據(jù)銷毀目的。
2 系統(tǒng)整體設計
SSD中基于密碼學方法的文件銷毀方法架構如圖1所示:
基于密碼學的文件銷毀方案架構圖如圖1所示。在FTL原有的功能上增加了密碼學功能和數(shù)據(jù)銷毀功能。密碼學功能使用AES-256加密算法,對存儲文件進行加密存儲,密文存放在一般閃存存儲塊上,密鑰存放在密鑰存儲塊上;讀取文件時解密讀取,從一般閃存存儲塊上獲取密文,從密鑰存儲塊上獲取對應的密鑰,密文解密后明文返回至操作系統(tǒng)。
數(shù)據(jù)銷毀模塊執(zhí)行數(shù)據(jù)銷毀功能,使用Scrubbing方法對密鑰存儲塊進行數(shù)據(jù)銷毀,通過5次覆寫,實現(xiàn)數(shù)據(jù)銷毀。該方法經(jīng)過實驗驗證,發(fā)現(xiàn)覆寫5次以上,能夠保證數(shù)據(jù)的恢復概率低于10-5。
密鑰存儲塊專門用于存放加密的密鑰。密鑰存儲塊需要保證僅用于密鑰存儲,不能存放其他數(shù)據(jù);對密鑰存儲塊執(zhí)行磨損平衡時,密鑰存儲塊上的數(shù)據(jù)只能遷移至密鑰存儲塊上;非密鑰存儲塊不能用于存儲密鑰。
3 基于密碼學的文件快速銷毀方法
為解決SSD數(shù)據(jù)銷毀中的銷毀時間過長和對SSD性能損耗問題,提出了數(shù)據(jù)加密銷毀方法。數(shù)據(jù)加密銷毀主要分為以下幾個部分:數(shù)據(jù)加密寫入和解密讀取、數(shù)據(jù)銷毀,本節(jié)將就上述內容進行詳細介紹。
3.1 數(shù)據(jù)加密寫入
主機通過接口發(fā)送寫命令至SSD,SSD接收該命令后執(zhí)行,并接收主機要寫入的明文數(shù)據(jù),F(xiàn)TL使用AES算法對數(shù)據(jù)進行加密,獲得一個256bit的密鑰,將密鑰存放到指定的密鑰存儲塊上。加密后的密文數(shù)據(jù)先緩存在SSD的RAM中,F(xiàn)TL為每個邏輯數(shù)據(jù)塊分配一個物理地址,邏輯地址與物理地址的映射關系存放在FTL的地址映射表中。當緩存中的密文數(shù)據(jù)達到一定數(shù)量后,F(xiàn)TL將發(fā)送寫閃存的請求給后端,后端根據(jù)寫請求,將緩存中的密文數(shù)據(jù)寫入預先分配的閃存空間。數(shù)據(jù)加密流程如圖2所示:
3.2 數(shù)據(jù)解密讀取
SSD進行數(shù)據(jù)解密讀取操作時,由主機發(fā)送讀命令,從密鑰存儲塊中提取密鑰至緩存中;SSD根據(jù)需要讀取數(shù)據(jù)塊的邏輯地址在地址映射表中查找對應的物理地址,獲取物理地址位置后FTL從對應的物理地址上將密文數(shù)據(jù)讀取到緩存中,使用緩存中的密鑰對密文數(shù)據(jù)進行解密,得到明文數(shù)據(jù);最后把存儲在緩存中的明文數(shù)據(jù)返回至用戶。數(shù)據(jù)解密流程如圖3所示:
3.3 數(shù)據(jù)銷毀
SSD中存儲的數(shù)據(jù)由于使用密碼學方法存儲,保證了加密數(shù)據(jù)在沒有密鑰的情況下無法得到其中包含的信息;假設銷毀了加密數(shù)據(jù)所使用的密鑰,那么就能夠確保數(shù)據(jù)無法在可接受的代價下被破譯,即數(shù)據(jù)無法在可接受的代價下被恢復。本文將數(shù)據(jù)的銷毀問題通過密碼學方法轉化為密鑰的銷毀問題。一般而言,密鑰大小遠小于加密密文的大小,轉換銷毀的對象減少了需要銷毀的閃存塊數(shù)量,解決SSD數(shù)據(jù)銷毀造成銷毀時間過長和銷毀對SSD性能影響的問題。
Scrubbing算法由Michael Wei等人[3]針對SSD數(shù)據(jù)銷毀提出的方法,多次將數(shù)據(jù)直接覆寫至原數(shù)據(jù)頁上,可以達到數(shù)據(jù)銷毀的目的。該方法能夠很好解決地址映射為頁級映射的SSD數(shù)據(jù)銷毀問題,其結果已經(jīng)得到驗證。本文將使用5次覆寫的Scrubbing算法對數(shù)據(jù)銷毀問題進行研究。
基于密碼學的文件存儲方法中數(shù)據(jù)銷毀功能針對目標為密鑰,只需對存儲密鑰的閃存存儲塊銷毀,即可達到數(shù)據(jù)銷毀目的。數(shù)據(jù)銷毀功能在FTL中實現(xiàn),需要進行數(shù)據(jù)銷毀時,F(xiàn)TL查找到存放密鑰的數(shù)據(jù)存儲塊,對該存儲塊執(zhí)行數(shù)據(jù)銷毀算法,實現(xiàn)密鑰的銷毀。上述操作導致密鑰對應的密文不可破譯,無法獲取密文對應的明文信息,實現(xiàn)了存儲文件的數(shù)據(jù)銷毀。
4 基于密碼學的文件銷毀方法評價
在本節(jié)中,我們使用Flash-DBSim模擬器對的模型進行仿真,以評估本文中使用的數(shù)據(jù)銷毀算法與ErasuCrypto算法對不同大小文件的銷毀速度,ErasuCrypto算法是SSD數(shù)據(jù)銷毀中的一種數(shù)據(jù)銷毀技術。
模擬器存儲空間1G,其中頁大小2KB,一塊包含64個頁,一個分組包含1024個塊,共有2個芯片;存儲數(shù)據(jù)文件大小2MB、1MB,密鑰大小256bit。
據(jù)表1構建了了一個基于Flash-DBSim模擬器的SSD存儲區(qū)域。在FTL模塊中加入了數(shù)據(jù)加解密功能,實現(xiàn)了數(shù)據(jù)加密寫入,數(shù)據(jù)解密讀取、數(shù)據(jù)銷毀功能。本次實驗將模擬數(shù)據(jù)寫入、讀取和數(shù)據(jù)銷毀功能,對基于密碼學的數(shù)據(jù)存儲方法和ErasuCrypto方法在數(shù)據(jù)銷毀方面進行比較。
1) 構造大小為2MB和1MB的文件。使用密碼學功能,分別對兩個不同大小的文件進行加密寫入。
2) 使用Chen Liu等人的ErasuCrypto方法在Flash-DBSim中模擬數(shù)據(jù)銷毀流程。同樣使用AES-256密碼學功能,分別對兩個不同大小的文件進行加密寫入。得到兩個數(shù)據(jù)銷毀總延遲時間。
3) 執(zhí)行完成1)、2)操作后可以獲得下述數(shù)據(jù)。2MB文件:a)、使用基于密碼學的文件快速銷毀方法,獲得使用AES-256加密的4MB密文,存放在密鑰銷毀塊區(qū)的1個256bit密鑰,密鑰數(shù)據(jù)銷毀時間約為2049ms;b)、使用ErasuCrypto方法,獲得使用AES-256加密的4MB密文,存放在密鑰銷毀塊區(qū)的128個256bit密鑰,密鑰數(shù)據(jù)銷毀時間約為3930ms。1MB文件:a)使用基于密碼學的文件快速銷毀方法,獲得使用AES-256加密的2MB密文,存放在密鑰銷毀塊區(qū)的1個256bit密鑰,密鑰數(shù)據(jù)銷毀時間約為2049ms;b)使用ErasuCrypto方法,獲得使用AES-256加密的2MB密文,存放在一個密鑰銷毀塊區(qū)的64個256bit密鑰,密鑰數(shù)據(jù)銷毀時間約為1887ms。
Flash-DBSim模擬了基于密碼學的文件存儲方法和Chen Liu等人的ErasuCrypto,實驗結果如圖4所示:
銷毀2MB文件的密鑰,本文基于密碼學的文件存儲方法在銷毀速度上快于ErasuCrypto方法。本文基于密碼學的文件存儲方法,加密對象為文件,在進行數(shù)據(jù)銷毀時,無論文件大小如何變化,需要銷毀的密鑰存儲頁數(shù)量不會發(fā)生變化;ErasuCrypto方法加密對象為一個分組中的所有閃存頁,密鑰數(shù)量會隨著文件增大而增多。對于2MB大小文件,本文提出的方法產(chǎn)生了1個密鑰,占據(jù)1個密鑰存儲頁;ErasuCrypto方法產(chǎn)生了128個密鑰,占據(jù)2個密鑰存儲頁。所以銷毀2MB大小文件時,基于密碼學的文件存儲方法文件銷毀速度快于ErasuCrypto方法。
對1MB大小的文件進行加密銷毀,基于密碼學的文件存儲方法速度略微慢于ErasuCrypto方法。此時兩種方法均只需要對1個密鑰頁進行銷毀,但由于ErasuCrypto方法在密鑰存儲頁中寫滿了數(shù)據(jù),單文件加密方法僅在密鑰存儲頁上寫有1個256bit的密鑰,ErasuCrypto需要從1寫為0的數(shù)據(jù)量更少,理論上銷毀速度應該更快,但由于單字節(jié)寫入需要的時間是200μs,對結果影響過小,導致兩種方法在耗時上區(qū)別不明顯。綜上,基于密碼學的數(shù)據(jù)存儲方法和ErasuCrypto數(shù)據(jù)銷毀方法相比,當文件越大時,基于密碼學的文件銷毀方法速度更快。
設文件明文大小為m,銷毀時間為t,文件加密方法的銷毀速度定義為銷毀1B數(shù)據(jù)需要的時間(μs/B),設為η,則銷毀速度公式1為:
η=t/m? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)
Scrubbing算法是對閃存存儲頁進行覆寫,根據(jù)公式1可知:數(shù)據(jù)越多,寫入時間越長,即銷毀時間越長。基于密碼學的文件存儲方法中,單個文件產(chǎn)生1個密鑰,銷毀時間t為定值,則m越大,速度越快;m越小,單位時間里銷毀的數(shù)據(jù)越少,速度越慢。所以文件大小對文件加密銷毀方法的銷毀速度有著很大的影響。
5 結束語
本文提出了基于密碼學的文件快速銷毀方法,是一種以文件為粒度的數(shù)據(jù)加密銷毀方法。本文首先對數(shù)據(jù)加密寫入,解密讀取過程進行了描述,設計了單文件加密銷毀方案。其次,對比基于密碼學的數(shù)據(jù)存儲方法與ErasuCrypto方法對不同大小文件的數(shù)據(jù)銷毀時間比較,發(fā)現(xiàn)文件大小會對單文件加密銷毀方法的銷毀速度產(chǎn)生影響;文件越大,基于密碼學的數(shù)據(jù)存儲方法數(shù)據(jù)銷毀速度越快。
以文件為銷毀粒度的數(shù)據(jù)銷毀方法能夠很好地滿足使用者的需求,更加直觀地反映銷毀目標。其次,基于密碼學的文件快速銷毀方法很好地解決了銷毀過程時間長和影響SSD性能的問題。但是,通過研究發(fā)現(xiàn),文件大小對文件加密銷毀方法的銷毀速度有著重大影響,如何降低文件大小帶來的影響是一個值得思考的問題。
參考文獻:
[1] National Industrial Security Program Operating Manual (NISPOM)[M]. The Federal Register / FIND,2020,85(245).
[2] 中共中央辦公廳、國務院辦公廳關于轉發(fā)《中共中央保密委員會辦公室、國家保密局關于國家秘密載體保密管理的規(guī)定》的通知[N].浙江政報,2001(2):12-15.
[3] M. Wei, L. M. Grupp, F. E. Spada, and S. Swanson, Reliably Erasing Data from Flash-Based Solid State Drives[J]. in 9th USENIX Conference on File and Storage Technologies, Feb.2011:105–117.
[4] Gutmann P. Secure deletion of data from magnetic and solid-state memory[J]. Proceedings of Usenix Security Symposium, 1996:77-89.
[5] Xiao, Tianran. Per-File Secure Deletion for Flash-Based Solid State Drives[J]. Proceedings, August 2019, 2019 IEEE International Conference on Networking, Architecture and Storage, NAS 2019.
[6] Ji-Yong Shin, Zeng-Lin Xia, et al. FTL design exploration in reconfigurable high-performance SSD for server applications[J]. Supercomputing, 2009.
[7] Hoda Aghaei Khouzani,Chen Liu,Chengmo Yang. Architecting data placement in SSDs for efficient secure deletion implementation[J]. Computer-Aided Design,2018.
[8] Kim G, Shin D. Performance analysis of SSD write using TRIM in NTFS and EXT4. Computer Sciences and Convergence Information Technology (ICCIT). IEEE.2011: 422-423.
[9] Wang Guomeng, Zhao, Yanping. A Fast Algorithm for Data Erasure[J]. IEEE International Conference on Intelligence and Security Informatics, 2008, IEEE ISI 2008:254-256.
[10] Xu Xiaolong, Gong Peipei, Xu, Jia. Data Folding: A New Data Soft Destruction Algorithm[J]. 2014 6th International Conference on Wireless Communications and Signal Processing, WCSP 2014, December 18, 2014.
[11] 秦雄.半導體存儲器數(shù)據(jù)自毀方法及其核心算法的研究[D].成都:四川大學,2014.
[12] Chen Liu, Hoda Aghaei Khouzani, Chengmo Yang. ErasuCrypto: A Light-weight Secure Data Deletion Scheme for Solid State Drives[J]. Proceedings on Privacy Enhancing Technologies,2017(1).
[13] 胡洋.高性能固態(tài)盤的多級并行性及算法研究[D].武漢:華中科技大學,2012.
【通聯(lián)編輯:代影】