設計工具
儲存裝置

如何安全地清除美光 SATA SSD - 為什麼資料清理很重要。

Jon Tanguy | 2017 年 3 月

我們所處的時代非常注重保護敏感資訊,保護儲存裝置上的資料在這些裝置生命週期的每個階段都至關重要,包括在裝置報廢和重新部署以用於其他目的時。因此,確保從資料儲存裝置中安全清除使用者資料的能力至關重要。美光的 SSD 為此提供了非常有效和高效的方法。事實上,與 HDD 相比,SSD 在全硬碟清除功能的速度和安全性方面具有巨大優勢。

在本部落格文章中,我將介紹美光在序列進階技術附件 (SATA) 和可信運算群組 (TCG) 協議內完全清除或「清理」SSD 的方法。

清除 SSD 與清除 HDD 的對比

過去,從磁性介質(如 HDD)中永久刪除資料的公認方法是用預先確定的資料模式(如「全為 0」或隨機資料模式)覆寫資料。要真正做到資料不可恢復,可能需要多次清除和數小時的作業時間。這樣做效率低下且成本高昂。

但是,對於大多數 SSD 中的 NAND 快閃記憶體來說,沒有覆寫命令可用。NAND 快閃記憶體的獨特之處在於,如果資料儲存在 SSD 內的某個儲存元件,必須首先對資料執行單獨的「清除」命令,然後才能在該物理位置執行新的「寫入」命令。

由於 NAND 快閃記憶體介質的這一固有特性,當主機指示 SSD 覆寫資料時,硬碟必須首先向每個目標儲存元件發出「清除」命令。只有在這一清除步驟完成後,硬碟才會繼續將所需的資料模式寫入經過清除的元件。這樣做的低效率顯而易見。已經清除過一次的 NAND 快閃記憶體元件現在又被資料填滿。

更糟糕的是,當主機需要寫入新的使用者資料時,硬碟必須首先再次清除已寫入的資料模式!現在,因為嘗試將 SSD 當作 HDD 處理,效率變得更低。

幸運的是,美光的 SSD 提供了一種快速、高效的方法來消除硬碟中的所有資料,而無需對硬碟進行多餘的清除、填充和重新清除。

什麼是清理?

「清理」一詞顯然與清除多餘或不需要的資料有關。然而,「清理」是一個關乎資料安全的專業術語,描述的是從儲存裝置移除資料的程序,並且被移除的資料無法用已知鑑識手段重建。使用大寫字母(如 SANITIZE)時,它指的是 ATA 命令集 (ACS) 指定的命令,該命令用於在 SSD 上啟動資料清理程序。

政府規範中對 SANITIZE 的描述最為全面。美國國家標準與技術研究院 (NIST, USA) 在一份名為特別出版物 800-88「介質清理指南」的文件中對這一功能的描述尤其全面,該文件目前為 2014 年出版的第 1 修訂版,可在 SP800- 88r1 上查閱。該文件旨在「協助組織和系統擁有者根據其資訊的機密性分類,做出實際清除決策」。

除了繼續用於硬碟和磁性介質的較為傳統的技術外,SP800-88r1 還包括對 SSD 資料儲存的新特性所導致的資料清理流程的新描述。它承認,硬碟的清理方法不適合 SSD,而且往往適得其反。

在最新的 ATA 規範中,「清理」命令有兩種叫法:SANITIZE BLOCK ERASE 和 SANITIZE CRYPTO SCRAMBLE,下文將分別介紹這兩種方法。ATA 規範還描述了 SANITIZE OVERWRITE ERASE,但它只適用於 HDD,本文章不涉及。

舊命令:安全清除

另一種清除整個 SSD 的方法稱為安全清除,它來自 ATA 規範的舊版本。部分僅支援 SATA 3.0 規範的美光舊款 SSD 不支援 SANITIZE,因此安全清除是首選方法。在支援 SATA 3.1 及更高版本的新款美光 SSD 上,SSD 同時支援安全清除和清理命令。在介質層級,清理和安全清除執行相同的作業,只有介面命令不同。

我們將繼續使用「Sanitize」(清理)一詞,並將「清理區塊清除」(Sanitize Block Erase) 和「安全消除」(Security Erase) 視為相同的作業。

若要執行安全清除,美光建議採用安全清除準備(SECURITY ERASE PREPARE)和安全清除單元(SECURITY ERASE UNIT)命令,如 ATA 命令集發佈的介面標準(可在 t13.org 獲取)所述。在美光 SSD 上執行的命令 ENHANCED SECURITY ERASE UNIT 可啟用加密清除,本帖文稍後將對此進行介紹。

命令執行

無論是使用 SANITIZE BLOCK ERASE 還是舊有的 SECURITY ERASE UNIT 命令執行清除作業,硬碟層級的作業都是一樣的。美光的專有韌體會指示 SSD 控制器向硬碟上的所有 NAND 裝置傳送 BLOCK ERASE 命令,包括為超額配置和淘汰區塊保留的 NAND 空間,主機或使用者無法訪問這些區域。

當主機啟動清理作業時,SSD 控制器會同時清除 SSD 最大額定功耗規範所允許的最大 NAND 快閃記憶體單元數量。由於這種平行性,在美光的大多數 SSD 上,SANITIZE BLOCK ERASE 或 SECURITY ERASE UNIT 命令可在一分鐘內完成;這比 HDD 中的類似作業有了質的飛躍,後者可能需要數小時才能安全、徹底地清除使用者資料。

哪些資料不會被清除?

整個使用者空間和超預留空間會被徹底、不可逆轉地清除。使用者空間中的每個區塊都已準備好接受新的主機寫入資料,使硬碟進入最高效能狀態,即 FOB(新品開箱)狀態。

不過,有些資料必須保留,以便硬碟正常運作。必須保留的資料包括:駐留在 NAND 中的 SSD 韌體副本、所有 SMART 資料和淘汰的 NAND 區塊對應表。

SANITIZE 的安全程度如何?

有些工程師和科學家曾在清除後檢測到 NAND 單元中的雜散電子,美光也承認這種可能性。然而,由於區塊清除作業會將每個 NAND 單元提升到相同的清除電壓,而不管該單元以前的狀態如何,因此美光認為,不可能根據殘留的雜散訊號來確定單元的先前狀態。

此外,SANITIZE 作業不能像全磁碟寫入一樣中斷。切斷電源可能中斷 SANITIZE 命令,但恢復電源後清除作業會立即重新開始。在 SANITIZE 命令成功完成之前,SSD 無法與主機通訊。

在 SANITIZE 作業期間,SSD 還會盡一切努力清除可能存在於淘汰 NAND 區塊中的資料。事實上,淘汰 NAND 區塊最常見的原因是無法成功清除該區塊。但是,美光工程師發現,即使清除失敗,失敗區塊中仍 90% 以上的位元被成功清除。未被清除的位元幾乎從不連續,因此在裝置層級檢測過程中不會產生連貫的資料。損壞的區塊無法透過 SATA 介面存取,需要具備偵測已分離 NAND 快閃記憶體元件的位元的能力。因此,即使嘗試進行裝置層級檢測,從未完全清除的 NAND 區塊重建可用資料的風險仍然非常低。

驗證 SANITIZE

美光瞭解有些客戶管理的資料非常敏感,客戶不能簡單地相信我們的話,即資料已被永久、安全地清理。對於我們的某些產品,我們已經與第三方安全公司合作,確認在依照規範執行 SANITIZE 之後,所有資料經確認及認證為不可恢復。我們會將某些產品的證書存檔,如果沒有證書,我們可以要求進行進一步測試和認證。請聯絡您的美光業務代表,以獲得更多詳細資訊。

SAS 和 PCIe/NVMe SSD

雖然本部落格文章沒有詳細討論,但 SAS 和 PCIe/NVMe 協議都有啟動與 SATA SANITIZE 命令相同作業的命令。在 SAS 中,該命令是 FORMAT UNIT,而在 PCIe/NVMe 中,該命令是 FORMAT NVM。

透過加密提高安全性

美光提供一系列自我加密硬碟 (SED),這些硬碟使用 256 位進階加密標準 (AES) 引擎以提供最先進的資料保護。

除了提供強大、安全的方法來保護透過密碼控制的使用者資料外,SED 還提供一種非常有效的方法,使硬碟上的所有資料變得不可讀。

為了永久消除資料,美光的 SATA SED 支援 SATA 標準 SANITIZE CRYPTO SCRAMBLE 命令,該命令可刪除和替換加密金鑰。加密金鑰被替換之後,資料位元仍保存在原處,但完全無法辨識。這種加密清除作業的一大優點是,大多數硬碟可以在兩秒內完成清除。

如今,人們普遍認為 256 位加密金鑰完全無法破解。不過,可以想像,總有一天會有足夠的超級運算能力,能夠在合理的時間內破解這種密碼。因此,在時間允許的情況下,為了確保所有使用者資料都被完全清除並且永遠無法恢復,美光建議在執行 SANITIZE CRYPTO SCRAMBLE 命令後,再執行 SANITIZE BLOCK ERASE 命令。該命令組合能夠將硬碟恢復到新品開箱 (FOB) 的效能狀態,而單獨的 CRYPTO SCRAMBLE 命令不會將硬碟重新初始化到這種「如新」狀態。

美光的 SED 符合用戶端運算儲存裝置的 TCG Opal 規範。如需其他 SED 資訊,請參閱此處trustedcomputinggroup.org

PSID 還原功能

雖然 SED 在保護資料免遭未經授權查看方面提供了極大的幫助,但也存在風險,包括遺失驗證金鑰或密碼。IT 管理應用程式提供了多種冗餘備份密碼、驗證金鑰和其他存取代碼的方法。強烈建議利用這些功能。然而,遺失這些密碼仍有可能發生。如果不幸遺失密碼,即使是美光這樣的儲存裝置製造商也無法解密和恢復使用者資料。因此,重要資料可能永久丟失。

帶有 32 字元 PSID 和相應 2D 條碼的美光 SED

不僅資料會丟失,加密鎖定的硬碟也可能被阻止進行正常的重新格式化作業。這種情況會造成使用者資料丟失,並且連硬碟也無法使用。

為了幫助解決部分問題,美光的 SED 系列支援物理安全識別 (PSID) 還原功能。PSID 是由 32 個 ASCII 字元組成的字串,列印在每個 SSD 的序號標籤上。每個硬碟都有唯一的 PSID。

雖然 PSID 還原功能無法在丟失密碼時恢復使用者資料,但 PSID 還原功能可用於解鎖 SED;啟動 SANITIZE CRYPTO SCRAMBLE 命令;以及將硬碟恢復為正常功能,使其能夠再次使用。

請注意,支援 Opal 1.0 規範的舊款美光 SSD 不包括 PSID Revert 功能。

美光 Storage Executive 軟體

美光現已推出名為美光 Storage Executive 的免費軟體公用程式,用來管理許多美光 SSD 功能。它具有易於使用的 Windows® 或 Linux® GUI 和命令列介面 (CLI) 選項,包括執行 SANITIZE BLOCK ERASE 和 PSID REVERT 命令的功能。請參閱美光的 Storage Executive 軟體以下載軟體並找到文件位置。

美光的 SED 還提供加密清除功能,可確保 SSD 上的資料無法被目前已知的幾乎所有解密技術讀取。然後,使用者可以使用 SANITIZE BLOCK ERASE 作業消除資料,並將 SSD 恢復到 FOB 效能狀態。

結論

將資料寫入或覆寫至完整磁碟包是從 HDD 安全消除資料的公認作法。但是,對於基於 NAND 快閃記憶體的 SSD,透過覆寫消除資料是多餘的、不必要的,而且可能不安全。NAND 快閃記憶體可使用 BLOCK ERASE 功能正確消除資料。

美光強烈建議使用 SANITIZE BLOCK ERASE 命令來取代資料覆寫算法。對於舊款美光 SSD,建議使用 SECURITY ERASE 命令。這兩個命令都能確保 SSD 在整個使用者空間、超額配置空間以及備用區塊和壞區塊位置正確執行 BLOCK ERASE 命令。

美光的 SED 還提供加密清除功能,可確保 SSD 上的資料無法被目前已知的幾乎所有解密技術讀取。然後,使用者可以使用 SANITIZE BLOCK ERASE 作業物理消除資料,並將 SSD 恢復到 FOB 效能狀態。有關自我加密 SSD 的更多資訊,請訪問 https://www.micron.com/solutions/storage-data-security。

產品僅保證符合美光的生產資料表規格。產品、計畫和規格若有變動,恕不另行通知。

任何硬體、軟體或系統都無法在所有情況下提供絕對安全性。對於使用任何美光產品(包含上述任一安全功能的產品)所發生的資料遺失、遭竊或損壞,美光概不承擔任何責任。

Principal SSD Product Engineer, CPG

Jon Tanguy

Jon is a Senior Technical Marketing Engineer for Micron's Storage Business Unit, with a focus on client solid state drives.