熊臣宇
摘要:固態(tài)硬盤(Solid-state Drive,SSD)的數據銷毀問題已提出了解決方法,但多數方法的銷毀粒度為單個存儲介質;而在實際應用中往往只需要銷毀單個文件,因此現(xiàn)有的SSD數據銷毀方法存在銷毀粒度不對等的問題。針對SSD中銷毀粒度不對等的問題,提出對存儲文件使用密碼學方法,將文件銷毀問題轉化為密鑰銷毀問題。文件加密存儲,密鑰存放在SSD中的指定空間上,進行數據銷毀時僅銷毀指定文件的密鑰,實現(xiàn)銷毀粒度為文件的數據銷毀。最后通過實驗驗證了該方案的可行性。
關鍵詞:固態(tài)硬盤;數據銷毀;密碼學;銷毀粒度;快速銷毀
中圖分類號: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)作為一種數據存儲介質,在個人電腦、服務器、移動設備上均有著十分廣泛的應用。和另一種常用的存儲介質機械硬盤(Hard disk drive, HDD)相比,SSD具有讀寫速度快、功耗低、抗震防摔等優(yōu)點[1]。在某些特殊情況下,使用者需要對存儲介質中的數據進行銷毀[2],為了解決SSD中的數據銷毀問題,研究人員提出了許多解決方法。
對SSD的數據安全銷毀研究中,Michael Wei等人[3]針對HDD的數據銷毀方法是否能用于SSD的數據銷毀問題展開研究。在研究中他們發(fā)現(xiàn),由于SDD的寫入基本單位為“頁寫入”,擦除基本單位為“塊擦除”[4-5],SSD在執(zhí)行擦除操作時需要先將目標數據塊中的有效數據先寫入其他數據塊的空白存儲頁上,隨后再對該目標數據塊進行擦除操作。用DoD 5220M等適用于HDD的安全銷毀方法對SSD進行全盤數據銷毀后,目標文件在經過多次覆寫后仍然能在SSD中找到一個甚至多個目標文件的復制。在該篇文章中,提出了一種針對SSD的數據銷毀方法“Scrubbing”。具體方法為讓SSD的閃存轉換層(Flash Translation Layer, FTL)能夠直接將新的數據寫入需要銷毀的閃存存儲頁中,有效解決了由于SSD數據擦除規(guī)則導致的數據多次拷貝問題。但其中存在的問題是,SSD存儲器閃存芯片不同會導致該方法的擦除效果有很大的差異,不能很好的保證數據被安全銷毀[6-7]。
Kim G等人[8]提出了TRIM算法,TRIM能夠在操作系統(tǒng)層面反映SSD閃存存儲層數據安全銷毀的結果。Guomeng Wang等人[9]使用基于異步I/O的多線程技術,增加HDD存儲器的數據讀寫速度,加快了數據的銷毀速率。Xiaolong Xu等人[10]提出了數據折疊方法,該方法將數據等分成大小相同兩段,在數據覆寫階段使用后段數據與前段數據進行異或操作,對新產生的數據繼續(xù)進行等分操作,直到數據大小被減少到一定程度時,便對全部數據進行擦除操作。該方法同樣采用了多次覆寫的方式,每次覆寫的空間大小逐漸減少,提高了數據銷毀的速度。秦雄等人[11]提出了CREAM(梳狀隨機銷毀算法,comb-like randomly eliminating algorithm)方法,該方法從某個起始偏移量開始,利用具有特定間隔的擦寫梳對存儲空間進行“梳理”。在區(qū)間內隨機但不重復地選擇起始偏移量,并執(zhí)行梳理操作,不斷重復該過程直到取完區(qū)間內所有整數實現(xiàn)數據銷毀。
為了實現(xiàn)數據快速銷毀,Chen Liu等人提出了數據加密銷毀策略[12]。對一個閃存塊區(qū)中的每個組進行加密,一個塊區(qū)的密鑰組集中存放在一特定數據存儲塊上,將數據銷毀問題轉化為密鑰銷毀問題,數據銷毀僅需對密鑰存儲塊進行數據銷毀,大幅加快了銷毀速度且滿足數據安全銷毀的要求。之后,該團隊就該方法進行了相應優(yōu)化,對一個SSD進行功能劃分,劃分為加密區(qū)和非加密區(qū),保證了數據能夠按需對應存儲,減少銷毀非重要數據消耗的時間,一定程度上加快了數據銷毀的速度,也一定程度上減少了銷毀對SSD帶來的磨損[7]。
Tianran Xiao等人提出了基于NAND Flash的SSD單文件銷毀方法[5]。對每個文件加入獨一無二的頭部,在進行單文件數據銷毀時在全盤范圍內對具有該特征的文件進行銷毀。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具有兩個特點,一是寫入和擦除的基本單元不同,為“頁寫入,塊擦除”;二是每個閃存存儲塊都有一定的擦寫次數,即有一定的使用壽命。數據銷毀需要對原存儲位置進行多次數據覆寫操作,覆寫操作違背了SSD的數據擦除規(guī)則,且多次覆寫過程需要的時間過長;在SSD上使用覆寫方法會造成空間的大量占用,完成銷毀后仍然有數據副本存在于SSD存儲介質中[3];多次擦寫會嚴重影響閃存存儲塊的使用壽命,影響SSD的性能[6]。綜上,針對SSD的數據銷毀問題亟需一個高效可行的銷毀辦法。此外用戶在進行數據銷毀時的基本操作單位為文件[5],在存儲介質內銷毀粒度為文件進行數據銷毀可以減少需要銷毀的數據大小,一定程度上降低數據銷毀對存儲介質造成的損耗[5][7]。以文件為基本單位進行數據安全銷毀能夠幫助用戶更加直觀的知曉銷毀的目標,確保重要數據能夠及時銷毀。所以本文提出了一種在SSD中基于密碼學的文件快速銷毀方法。
基于密碼學的文件快速銷毀方法使用基于密碼學的存儲方法,將文件加密后存儲至SSD中。需要銷毀文件時,僅需銷毀文件對應的密鑰,即可保證數據不可獲取,即將SSD的數據銷毀問題轉化為文件加密密鑰的銷毀問題?;诿艽a學的文件存儲方法包含了密碼學功能和密鑰管理功能。密碼學功能實現(xiàn)了文件的加密存儲和解密讀取;密鑰管理功能將密鑰存儲在指定的閃存存儲塊上,該閃存存儲塊稱為密鑰存儲區(qū)域。數據銷毀功能使用Scrubbing方法對密鑰存儲頁進行多次覆寫,實現(xiàn)數據銷毀目的。
2 系統(tǒng)整體設計
SSD中基于密碼學方法的文件銷毀方法架構如圖1所示:
基于密碼學的文件銷毀方案架構圖如圖1所示。在FTL原有的功能上增加了密碼學功能和數據銷毀功能。密碼學功能使用AES-256加密算法,對存儲文件進行加密存儲,密文存放在一般閃存存儲塊上,密鑰存放在密鑰存儲塊上;讀取文件時解密讀取,從一般閃存存儲塊上獲取密文,從密鑰存儲塊上獲取對應的密鑰,密文解密后明文返回至操作系統(tǒng)。
數據銷毀模塊執(zhí)行數據銷毀功能,使用Scrubbing方法對密鑰存儲塊進行數據銷毀,通過5次覆寫,實現(xiàn)數據銷毀。該方法經過實驗驗證,發(fā)現(xiàn)覆寫5次以上,能夠保證數據的恢復概率低于10-5。
密鑰存儲塊專門用于存放加密的密鑰。密鑰存儲塊需要保證僅用于密鑰存儲,不能存放其他數據;對密鑰存儲塊執(zhí)行磨損平衡時,密鑰存儲塊上的數據只能遷移至密鑰存儲塊上;非密鑰存儲塊不能用于存儲密鑰。
3 基于密碼學的文件快速銷毀方法
為解決SSD數據銷毀中的銷毀時間過長和對SSD性能損耗問題,提出了數據加密銷毀方法。數據加密銷毀主要分為以下幾個部分:數據加密寫入和解密讀取、數據銷毀,本節(jié)將就上述內容進行詳細介紹。
3.1 數據加密寫入
主機通過接口發(fā)送寫命令至SSD,SSD接收該命令后執(zhí)行,并接收主機要寫入的明文數據,F(xiàn)TL使用AES算法對數據進行加密,獲得一個256bit的密鑰,將密鑰存放到指定的密鑰存儲塊上。加密后的密文數據先緩存在SSD的RAM中,F(xiàn)TL為每個邏輯數據塊分配一個物理地址,邏輯地址與物理地址的映射關系存放在FTL的地址映射表中。當緩存中的密文數據達到一定數量后,F(xiàn)TL將發(fā)送寫閃存的請求給后端,后端根據寫請求,將緩存中的密文數據寫入預先分配的閃存空間。數據加密流程如圖2所示:
3.2 數據解密讀取
SSD進行數據解密讀取操作時,由主機發(fā)送讀命令,從密鑰存儲塊中提取密鑰至緩存中;SSD根據需要讀取數據塊的邏輯地址在地址映射表中查找對應的物理地址,獲取物理地址位置后FTL從對應的物理地址上將密文數據讀取到緩存中,使用緩存中的密鑰對密文數據進行解密,得到明文數據;最后把存儲在緩存中的明文數據返回至用戶。數據解密流程如圖3所示:
3.3 數據銷毀
SSD中存儲的數據由于使用密碼學方法存儲,保證了加密數據在沒有密鑰的情況下無法得到其中包含的信息;假設銷毀了加密數據所使用的密鑰,那么就能夠確保數據無法在可接受的代價下被破譯,即數據無法在可接受的代價下被恢復。本文將數據的銷毀問題通過密碼學方法轉化為密鑰的銷毀問題。一般而言,密鑰大小遠小于加密密文的大小,轉換銷毀的對象減少了需要銷毀的閃存塊數量,解決SSD數據銷毀造成銷毀時間過長和銷毀對SSD性能影響的問題。
Scrubbing算法由Michael Wei等人[3]針對SSD數據銷毀提出的方法,多次將數據直接覆寫至原數據頁上,可以達到數據銷毀的目的。該方法能夠很好解決地址映射為頁級映射的SSD數據銷毀問題,其結果已經得到驗證。本文將使用5次覆寫的Scrubbing算法對數據銷毀問題進行研究。
基于密碼學的文件存儲方法中數據銷毀功能針對目標為密鑰,只需對存儲密鑰的閃存存儲塊銷毀,即可達到數據銷毀目的。數據銷毀功能在FTL中實現(xiàn),需要進行數據銷毀時,F(xiàn)TL查找到存放密鑰的數據存儲塊,對該存儲塊執(zhí)行數據銷毀算法,實現(xiàn)密鑰的銷毀。上述操作導致密鑰對應的密文不可破譯,無法獲取密文對應的明文信息,實現(xiàn)了存儲文件的數據銷毀。
4 基于密碼學的文件銷毀方法評價
在本節(jié)中,我們使用Flash-DBSim模擬器對的模型進行仿真,以評估本文中使用的數據銷毀算法與ErasuCrypto算法對不同大小文件的銷毀速度,ErasuCrypto算法是SSD數據銷毀中的一種數據銷毀技術。
模擬器存儲空間1G,其中頁大小2KB,一塊包含64個頁,一個分組包含1024個塊,共有2個芯片;存儲數據文件大小2MB、1MB,密鑰大小256bit。
據表1構建了了一個基于Flash-DBSim模擬器的SSD存儲區(qū)域。在FTL模塊中加入了數據加解密功能,實現(xiàn)了數據加密寫入,數據解密讀取、數據銷毀功能。本次實驗將模擬數據寫入、讀取和數據銷毀功能,對基于密碼學的數據存儲方法和ErasuCrypto方法在數據銷毀方面進行比較。
1) 構造大小為2MB和1MB的文件。使用密碼學功能,分別對兩個不同大小的文件進行加密寫入。
2) 使用Chen Liu等人的ErasuCrypto方法在Flash-DBSim中模擬數據銷毀流程。同樣使用AES-256密碼學功能,分別對兩個不同大小的文件進行加密寫入。得到兩個數據銷毀總延遲時間。
3) 執(zhí)行完成1)、2)操作后可以獲得下述數據。2MB文件:a)、使用基于密碼學的文件快速銷毀方法,獲得使用AES-256加密的4MB密文,存放在密鑰銷毀塊區(qū)的1個256bit密鑰,密鑰數據銷毀時間約為2049ms;b)、使用ErasuCrypto方法,獲得使用AES-256加密的4MB密文,存放在密鑰銷毀塊區(qū)的128個256bit密鑰,密鑰數據銷毀時間約為3930ms。1MB文件:a)使用基于密碼學的文件快速銷毀方法,獲得使用AES-256加密的2MB密文,存放在密鑰銷毀塊區(qū)的1個256bit密鑰,密鑰數據銷毀時間約為2049ms;b)使用ErasuCrypto方法,獲得使用AES-256加密的2MB密文,存放在一個密鑰銷毀塊區(qū)的64個256bit密鑰,密鑰數據銷毀時間約為1887ms。
Flash-DBSim模擬了基于密碼學的文件存儲方法和Chen Liu等人的ErasuCrypto,實驗結果如圖4所示:
銷毀2MB文件的密鑰,本文基于密碼學的文件存儲方法在銷毀速度上快于ErasuCrypto方法。本文基于密碼學的文件存儲方法,加密對象為文件,在進行數據銷毀時,無論文件大小如何變化,需要銷毀的密鑰存儲頁數量不會發(fā)生變化;ErasuCrypto方法加密對象為一個分組中的所有閃存頁,密鑰數量會隨著文件增大而增多。對于2MB大小文件,本文提出的方法產生了1個密鑰,占據1個密鑰存儲頁;ErasuCrypto方法產生了128個密鑰,占據2個密鑰存儲頁。所以銷毀2MB大小文件時,基于密碼學的文件存儲方法文件銷毀速度快于ErasuCrypto方法。
對1MB大小的文件進行加密銷毀,基于密碼學的文件存儲方法速度略微慢于ErasuCrypto方法。此時兩種方法均只需要對1個密鑰頁進行銷毀,但由于ErasuCrypto方法在密鑰存儲頁中寫滿了數據,單文件加密方法僅在密鑰存儲頁上寫有1個256bit的密鑰,ErasuCrypto需要從1寫為0的數據量更少,理論上銷毀速度應該更快,但由于單字節(jié)寫入需要的時間是200μs,對結果影響過小,導致兩種方法在耗時上區(qū)別不明顯。綜上,基于密碼學的數據存儲方法和ErasuCrypto數據銷毀方法相比,當文件越大時,基于密碼學的文件銷毀方法速度更快。
設文件明文大小為m,銷毀時間為t,文件加密方法的銷毀速度定義為銷毀1B數據需要的時間(μs/B),設為η,則銷毀速度公式1為:
η=t/m? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)
Scrubbing算法是對閃存存儲頁進行覆寫,根據公式1可知:數據越多,寫入時間越長,即銷毀時間越長。基于密碼學的文件存儲方法中,單個文件產生1個密鑰,銷毀時間t為定值,則m越大,速度越快;m越小,單位時間里銷毀的數據越少,速度越慢。所以文件大小對文件加密銷毀方法的銷毀速度有著很大的影響。
5 結束語
本文提出了基于密碼學的文件快速銷毀方法,是一種以文件為粒度的數據加密銷毀方法。本文首先對數據加密寫入,解密讀取過程進行了描述,設計了單文件加密銷毀方案。其次,對比基于密碼學的數據存儲方法與ErasuCrypto方法對不同大小文件的數據銷毀時間比較,發(fā)現(xiàn)文件大小會對單文件加密銷毀方法的銷毀速度產生影響;文件越大,基于密碼學的數據存儲方法數據銷毀速度越快。
以文件為銷毀粒度的數據銷毀方法能夠很好地滿足使用者的需求,更加直觀地反映銷毀目標。其次,基于密碼學的文件快速銷毀方法很好地解決了銷毀過程時間長和影響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] 秦雄.半導體存儲器數據自毀方法及其核心算法的研究[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)編輯:代影】