Linux

關於linux/unix系統敏感數據的創建和銷毀

  • March 24, 2016

在現代文件系統(以及現代 SSD 上)中,無法保證如果您使用傳統實用程序(例如 dd)覆蓋文件,數據將被原地覆蓋並日誌備份被破壞。結果,數據可能會被恢復。因此,經過一番研究,我認為安裝一個臨時 ramfs(tmpfs 被排除,因為它可能會交換)將是可行的方法:

# mkdir -p /mnt/tmp/ram
# mount -t ramfs -o size=[size, but ramfs grows as needed] ramfs /mnt/tmp/ram
# [create the sensitive data, secure it, copy out secured data]
# umount /mnt/tmp/ram

Q1:解除安裝 ramfs 會破壞其中包含的數據嗎?

Q2:如果數據不能保證被銷毀,有沒有可行的方法來恢復所說的數據(或者我只是偏執)?

Q3:如果數據是可恢復的,會

# dd if=/dev/zero of=/mnt/tmp/ram/[filename]

正確銷毀數據還是不能保證 ramfs 就地覆蓋文件?

約束:在這些操作之前/期間/之後不能強制系統重新啟動。

如果您好奇,在這種情況下,“敏感數據”是 pam 數據庫的未加鹽、未散列的使用者名+密碼。“受保護的數據”是加鹽/散列的數據庫,最終會出現在主驅動器上。我不希望敏感數據接觸驅動器(因為我使用的是 ext3 - 據我所知,如果不擦除整個分區,它不能保證數據將無法恢復)。

如果您知道更好的方法來做到這一點,請賜教,謝謝。

Q1:是的

Q2:恢復數據不可行。不過,如果你想變得極端,你可以這樣做:)

  1. 在 ram 中創建一些空間: mkdir ram mount -t ramfs -o size=1000M ramfs ram/
  2. 創建一些隨機填充的文件,我們在該 RAM 空間中對其進行加密。充滿隨機數據將不可能在隨機數據和加密數據之間建立界限。 dd if=/dev/urandom of=ram/test bs=1M count=512
  3. 設置加密 cryptsetup -y luksFormat ram/test cryptsetup luksOpen ram/test encypted
  4. 格式化並掛載新的安全空間: mkfs.ext4 /dev/mapper/encypted mkdir securedir mount /dev/mapper/encypted securedir/
  5. Umont secureir/ 然後 ram/ 釋放數據直到時間結束。 umount securedir/ umount ram/

引用自:https://unix.stackexchange.com/questions/271813