預加密擦除,為什麼?
我想知道為什麼,在驅動器上加密和安裝之前,Kali :
- 擦除了整個驅動器
- 用 0 填充驅動器
- 用 1s 填充驅動器
- 用隨機數據填充驅動器
- 再次擦拭驅動器
我知道 Kali 不是要安裝的,但這不是重點。
那麼,在安裝之前,這有什麼用處,比如在全新的硬碟上?我習慣於在移除硬碟時看到這一點,而不是安裝。
多次通過是沒有意義的。一次就夠了。
用隨機數據填充待加密驅動器主要有兩個用途:
- 擺脫舊的、未加密的數據
- 使可用空間與加密數據無法區分
通常,如果您加密,您不希望任何人看到您的數據。因此,如果您在此驅動器上有舊的、未加密的數據,您可能也想刪除它。SSD 可能會使用
blkdiscard
. 事實上,Linux會在mkfs
不要求您確認的情況下對所有數據進行 TRIM,這使得任何類型的數據恢復都成為不可能。Linux 中有太多的 TRIM。自由空間是一個灰色地帶。如果您不預先填充隨機數據,則在全新的 HDD 上,從未寫入的扇區將為零。在 SSD 上,如果您允許丟棄/修剪,可用空間也將為零。
雖然這不會以任何方式影響您的數據(它仍然是加密的),但它會顯示您擁有多少可用空間/實際數據,以及這些可用空間/數據的位置。例如
hexdump -C
,一個加密的、經過修整的 SSD 看起來有點像這樣:# hexdump -C /dev/ssd | grep -C 2 '^\*' ... -- b3eabff0 dc c9 c7 89 16 ca d3 4f a3 27 d6 df a0 10 c3 4f |.......O.'.....O| b3eac000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * b3f70000 5a 99 44 b5 9c 6b 1e 9c 81 cf 9a 43 b6 23 e9 0f |Z.D..k.....C.#..| b3f70010 2c e6 9a 5d 59 9b 46 5f 21 3f 4d 5f 44 5b 0a 6b |,..]Y.F_!?M_D[.k| -- b3f70ff0 5f 63 8d e8 c4 10 fd b1 a6 17 b5 7d 4a 57 09 68 |_c.........}JW.h| b3f71000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * b3f72000 5d 1c 09 dd c9 6b 57 18 db 67 e1 35 81 57 45 8e |]....kW..g.5.WE.| b3f72010 0f a8 be 39 ae e5 5f cf cf e3 8b a7 c1 25 1a a3 |...9.._......%..| -- ...
由此您可以看出我在地址
0xb3eac000 .. 0xb3f70000
,b3f71000 .. b3f72000
, … 處有空閒空間段,而與之相反的當然是數據段,例如0xb3f70000 .. b3f71000
.你能用它做什麼?好吧,什麼都沒有(*)。
(*) 是我想說的。但人們變得有創造力。可用空間模式可用於派生您使用的文件系統的類型(由於它們儲存元數據的方式/位置 - 如果有可用空間
ext4
儲存其元數據備份之一,則很可能沒有ext4
,等等)。有時它甚至會顯示您使用的發行版(如果您的 Linux 安裝程序確定性地填充文件系統,文件可能總是以相同的物理地址結束)。那時有人可能知道特定係統文件的位置,並可能以某種方式修改/損壞它。(安裝程序應該隨機化他們填充文件系統的方式以防止這種情況。)然而,與大多數加密安裝由於其他原因造成的脆弱性相比,這些考慮非常理論化,並且風險非常低。在大多數開箱即用的安裝中,篡改 initramfs、安裝鍵盤記錄器或利用正在執行的系統更有可能/更簡單,而不是以某種方式獲取原始訪問和分析加密數據並希望以這種方式實現任何目標。
在擔心顯示可用空間之前,您應該首先擔心這些。
使用 SSD,啟用 TRIM 並因此始終顯示可用空間是完全正常的。對於在文件層而不是塊層上工作的加密解決方案也是如此。
使用 HDD,您甚至可以在新磁碟上進行隨機擦除,因為您可以這樣做,而且沒有理由不這樣做,因為它不涉及任何成本(除了首次設置)並且沒有缺點。