iThome

今年2月,聖地牙哥加州大學有位博士生Michael Wei,在儲存技術國際研討會(Fast 11)上發表了一份震驚全場的研究報告,他揭露了一個長期存在卻很少有人注意的SSD資料遺漏的安全問題,他說:「想要徹底銷毀SSD固態硬碟上的資料,其實不容易。沒有一種硬碟軟體刪除技術,可以有效刪除SSD硬碟中的特定文件。」

Michael Wei是加州大學聖地牙哥分校專門研究SSD硬碟的非揮發系統實驗室(Non-Volatile Systems Laboratory,NVSL)的成員,NVSL研究團隊發現,使用美國空軍刪除資料的方法,來清除SSD上的一個1GB檔案,仍舊有5.8~7.3%的資料可以回復,若是USB隨身碟,甚至最高可以回復63.5%的資料。

NVSL研究團隊測試了13種各國官方採用的資料銷燬方法,包括刪除軟體常見的Gutmann模式、英國的British HMG IS5模式、德國的German VSITR模式、俄羅斯的German VSITR模式等,甚是美國國防部US DoD 5220.22-M。他們在SSD硬碟和USB隨身碟上寫入一個1GB大小的檔案,利用這13種方法刪除後,仍然可以回復數十MB甚至上百MB的資料,沒有一種方法能有效地徹底抹除這個檔案。

臺灣科技大學電子系助理教授吳晉賢表示,資料難以刪除的關鍵是,「SSD儲存資料的方式和傳統硬碟截然不同。」

SSD快閃記憶體儲存方式 有三項限制

吳晉賢解釋,因為SSD使用快閃記憶體來儲存資料,電路特性會產生三個傳統硬碟所沒有的限制,這也導致SSD和硬碟儲存方式的差異

首先,資料不能重複寫入。在快閃記憶體上最小的儲存空間稱為一個Cell,一個Cell可以儲存一個位元的資訊,可以是1或0,這就是所謂的SLC儲存方式(Single Bit per Cell)。若要寫入新資料,必須充電來清除這個Cell的電位資訊以後,才可以重新寫入。不像硬碟磁盤上記錄資料的磁性可以反覆改變,也就說可反覆將資料寫入磁盤上同一個位置,達到重複寫入。另一種快閃記憶體技術MLC(Multi-level Cell),也是一樣在一個Cell上用不同電位來儲存2個位元的資訊,同樣也有不能重複寫入的特性。這是硬碟和SSD儲存方式第一個不同點。

第二,快閃記憶體刪除資料的方法也和硬碟磁盤不同,必須採取「逐一寫入整批抹除」的作法。

SSD寫入資料時最小的單位是Page,一個Page依SSD採用的快閃記憶體而有不同,可以是2,048、4,096或8,192Bit等,每次可以寫入1個Page的資料。但是,抹除資料時無法一次抹除1個Page的資料,而必須一整批Page同時抹除,這個整批抹除的單位就是Block,1個Block通常是64或128個Page,也可以更多如128或256。

基本原則是,寫入時每次1個Page,抹除時則要每次1個Block。因為每次最少要抹除1個Block,即使這個Block只有寫入了幾個Page的資料,SSD還是會一次抹除這個Block中所有Page的資料。因為必須採取整批寫入的方式,所以SSD的抹除速度會比讀取速度慢很多。

若是要更新某一個Page資料的作法也相當繁複,必須先將整個Block中記錄的資訊取出,存放到快取記憶體中,再更新這段快取記憶體中的資料,最後再逐一將Page資料寫回這個Block中。

最後一個特性是快閃記憶體寫入資料有次數限制,例如有的快閃記憶體的電路特性可以寫入10萬次。當一個區域寫入次數達到這個限制以後,就無法再寫入,成為壞死區域(Bad Sector)。為了延長SSD的使用壽命,就必須避免寫入集中在少數區域,讓寫入資料平均分配到每一個Cell上。

用FTL中間層 解決快閃記憶體的儲存限制

因為快閃記憶體這三個特性,所以,SSD採取了一種和傳統硬碟截然不同的存取架構,在檔案系統和實體資料儲存層之間,增加一個FTL層(Flash Translation Layer),FTL層會負責提供檔案系統和實體資料層之間的對應,讓作業系統仍舊看到和硬碟一樣的檔案系統。但是在實際儲存資料時,FTL層會將資料分散到不同的位置儲存,避免寫入動作集中在少數區域。

雖然SSD底層的實際寫入機制和硬碟不同,但FTL會模擬出像硬碟一樣的檔案系統,讓作業系統用同樣控制硬碟的指令,來控制SSD的寫入。

因為FTL層會移動資料實際存放的位置,這會造成資料覆寫的效果和傳統硬碟不同。

在傳統硬碟上,作業系統可以知道資料實際寫入的位置,若要覆蓋原來的資料,就在相同位置寫入資料。但是在SSD中,作業系統以為自己寫入相同位置的資料,但FTL層可能將第二次覆寫的資料,儲存到SSD中其他位置,而沒有蓋掉原來的資料,導致在SSD中無法透過資料覆寫來刪除原有資料。

還有另一個造成資料不易刪除的原因,是廠商特別為SSD設計的資料抹寫方式TRIM機制。因為SSD必須整批寫入的特性,導致抹寫速度遠比讀取速度慢。減少實際寫入的次數,除了能延長使用壽命也可以提高SSD的存取效能,所以,廠商讓SSD的TFL層先對需要刪除的資料加註記號,而不實際進行刪除,等到這個Block中多數Page的資料都需要刪除時,才真正實際抹除這個Block。

例如SSD要刪除大量小檔案時,若每刪除一個檔案就要抹除一次,一個Block可能需要抹寫數十次。改用TRIM的作法以後,可以逐次將需要刪除的檔案標記下來,等到系統有閒暇時再一次抹除。這樣的作法,更讓資料在SSD中實際存活的時間更久,甚至是,作業系統以為資料已經刪除,但實情剛好相反。

FTL是黑盒子 隱藏資料遺漏的隱憂

吳晉賢表示,FTL層就像是一個黑盒子,將作業系統的檔案系統和實際寫入動作隔離,作業系統不知道盒子裡會發生了什麼事情。

加州大學聖地牙哥分校NVSL研究團隊正是打開這個黑盒子以後,發現了SSD會有資料無法刪除的隱憂。

NVSL研究團隊購買了12款常見的SSD,容量從32GB到120GB不等,包括使用MLC和SLC快閃記憶體的產品。他們自製了一個快閃記憶體讀取裝置,來避開FTL層的控制,直接取得實際儲存在快閃記憶體中的資訊,再測試各種不同的資料刪除情境和作法,來比較FTL層的影響,找出SSD資料刪除的問題。

低階指令全面抹除有效 但SSD不一定支援

NVSL的研究發現,如果使用低階磁碟控制指令ATA Command中的刪除指令,針對整顆SSD資料進行全面抹除,通常可以有效抹除資料,但是,不是每一款SSD都能正確支援這種指令,在NVSL的測試中也有一款SSD執行ATA刪除指令後,SSD只是註記刪除位置,而沒有實際抹除。

部分檔案刪除難度高 國防等級刪除法也沒輒

有時不一定能採取全面抹除的作法,NVSL也考慮了另一種情況,在經常使用的SSD中,只刪除特定敏感性的文件。NVSL發現,若將上千個檔案寫入SSD後,有些檔案可能被複製了16份,散布在SSD中不同位置,想要單獨刪除其中特定檔案的難度相當高。NVSL測試了13種各國官方認可的資料刪除方法,都無法徹底刪除測試檔案的資料,在SSD中仍舊有部分測試檔案的資料可以回復。

吳晉賢表示,一般電子科系的大學生,就有能力使用便宜的8051單晶片做出可以直接存取快閃記憶體資料的工具,成本也不高,要取出SSD中尚未抹除的資料並不難。

不過,他認為,就算取出資料也不一定能夠完全重建出原始的檔案內容,只有像圖檔這種會連續儲存,即使部分損毀也能呈現的資料格式,比較有機會復原,或者是能取得文件標頭資訊才有可能重建出可用的內容。簡而言之,資料就算取回,能有效回復的機會也不大,但並不是完全沒有可能。

軟體抹除與實體摧毀孰勝?專家看法分歧

若SSD不需要繼續使用,SSD廠商OCZ(飢餓鯊)亞太營運中心產品經理程威迪建議,實體摧毀也是一個可行的作法。他表示,快閃記憶體晶片其實非常脆弱,只要有些許破損就無法使用。不過,同樣也是生產SSD的廠商宜鼎國際研發處協理吳錫熙則有不同的看法,他認為硬體破壞仍有資料遺漏風險,透過軟體徹底抹除SSD內容的安全性更佳。

但是,全面抹除的作法非常耗時,程威迪表示,他曾利用HD Tune軟體中的Gutmann演算法來抹除一顆120GB的SSD,花了8小時才處理完畢。有些SSD廠商的抹除工具也只能支援自家產品,而不能抹除所有的SSD產品。

吳晉賢倒是提出了另一個可以徹底保護SSD資料的作法,他建議,最保險又方便的作法是加密,將資料加密後再放入SSD,未來只要摧毀解密金鑰,資料就算被回復也無法解讀。不過,資料加密會影響存取效能,或是耗用處理器運算能力。

不只是SSD有風險,NVSL團隊提醒,凡是採用快閃記憶體的產品,包括了SSD,USB隨身碟、相機的SD記憶卡、手機、iPad、iPhone等產品,都有同樣的資料遺漏風險。

這些生活中常見的3C產品,保存了各種個人資料、私密照片、簡訊、電話等,倘若儲存的資料會有刪除不完全的問題,有心人士就有可能利用檔案回復技術來偷取資料,甚至是借用朋友的USB隨身碟暫存資料,也有可能會導致外洩問題。越來越多商用刀鋒伺服器和筆記型電腦開始採用SSD,這也意味著,企業重要的內部資料可能會因這些SSD遺失而外洩。

雖然,SSD資料刪除的威脅和解決方法的成效,各方意見仍有分歧,這也反映出SSD使用的複雜性,原本企業採用SSD的目的是為了提高讀取效率,但也不能忽略可能伴隨的資料遺漏風險。企業採購和運用SSD時,必須先了解SSD潛藏的問題,才能掌握可能風險,更縝密地評估需求,找出適合企業的運用之道。

 

國防等級刪除法也無法抹除單一檔案

 

SSD與傳統硬碟大不同

SSD存取資料的架構和傳統硬碟截然不同。SSD在檔案系統和實體資料儲存層之間,增加一個FTL層(Flash Translation Layer),FTL層會負責提供檔案系統和實體資料層之間的對應,讓作業系統仍舊看到和硬碟一樣的檔案系統,但是在實際儲存資料時,FTL層會將資料分散到不同的位置儲存,避免寫入動作集中在少數區域。

因為FTL層會移動資料實際存放的位置,這會造成資料覆寫的效果和傳統硬碟不同。作業系統以為自己寫入相同位置的資料,但FTL層可能將第二次覆寫的資料,儲存到SSD中其他位置,原來資料仍舊存在,難以透過資料覆寫來摧毀SSD中的舊資料。

 

SSD為效能和使用壽命而降低抹除可靠性

因為SSD有寫入次數的壽命限制,寫入速度也遠遠慢於讀取速度,廠商特別為SSD設計了一種不同於傳統硬碟的資料抹寫方式,稱為TRIM機制。當作業系統要刪除一筆資料時,SSD的TFL層先對需要刪除的資料加註記號,但沒有實際進行刪除,等到儲存資料所處的Block區域有多數資料需要刪除時,才會真正實際抹除這個Block,利用TRIM減少耗時的實際抹除動作,也因此,在實際抹除之前,舊資料一直存在,遺漏風險就會比傳統硬碟更高。

 


相關報導請參考「SSD資料無法100%銷毀」

熱門新聞

Advertisement