Bagaimana cara menghapus file dari drive SSD dengan aman?

14

Saat mencoba menghapus SSD dengan aman, kami memiliki beberapa masalah:

  • SSD aus setelah siklus penghapusan yang terbatas
  • SSD memiliki pengontrol yang secara dinamis memetakan LBAs (alamat blok logis yang digunakan oleh sistem untuk mengakses disk) ke sel NVRAM (sel memori flash aktual) untuk menyeimbangkan keausan, yang berarti memerintahkan disk untuk menimpa blok yang sebelumnya menyimpan spesifik file dapat mengakibatkan menimpa blok cadangan lainnya.
  • SSD memiliki persentase kapasitas cadangan yang terkenal yang digunakan untuk mengkompensasi sel penyimpanan yang sekarat dan mengurangi pemakaian. Mereka tidak terlihat oleh sistem dan mungkin menyimpan fragmen data lama.

Sekarang pilihan apa yang kita miliki dari dalam Ubuntu untuk menghapus SSD dengan aman?

Saya telah mendengar bahwa beberapa SSD yang lebih baru seharusnya dapat menghapus sendiri dengan aman, tetapi bagaimana cara mengetahui apakah SSD saya mampu melakukan ini dan bagaimana saya memicunya?
Seharusnya juga ada perintah penghapusan aman ATA, bagaimana cara mengetahui apakah itu didukung dan bagaimana saya memicu itu?

Apakah ada juga cara untuk menghapus secara aman hanya file yang diberikan atau hanya ruang yang tidak digunakan?
Saya kira membuat cadangan semua partisi, dengan aman menyeka seluruh disk dan kemudian memulihkan cadangan mungkin dilakukan tetapi terdengar terlalu rumit dan akan terlalu lama untuk praktis. Apakah ada alternatif lain? Jika tidak, alat apa yang dapat saya gunakan untuk membuat cadangan partisi tanpa juga membuat cadangan file yang sudah dihapus?

Tentu saja alat standar suka shredatau wipetidak dapat digunakan di sini untuk poin yang dijelaskan di atas. Mereka hanya menimpa file aa (dengan menimpa cluster sistem file yang terikat pada BBA yang tidak terus-menerus menunjuk pada sel flash yang sama karena pengontrol leveling aus).

Komandan Byte
sumber
Mungkin ada beberapa informasi menarik di sini wiki.archlinux.org/index.php/SSD_memory_cell_clearing
Byte Commander
Saya tahu pekerjaan akademis tentang hal ini yang berhasil masuk ke dalam kernel, lihat lwn.net/Articles/480269
noleti

Jawaban:

9

Saat ini tidak ada cara untuk menghapus file di SSD dengan aman tanpa menghapus konten seluruh drive atau akses ke firmware SSD.

  • Mustahil untuk mengetahui di mana SSD dapat menyimpan salinan blok logis sebelumnya.

  • Lebih buruk lagi, karena mekanisme penjurnalan dan copy-on-write dari sistem file mungkin tidak mungkin untuk mengetahui blok logis mana yang mungkin menyimpan salinan sebelumnya dari file tertentu.

Satu-satunya cara untuk mencegah kebocoran file yang terhapus ke seseorang dengan akses langsung ke drive adalah mengenkripsi mereka di tempat pertama dan menjaga kunci enkripsi tetap aman dari mata yang mengintip.

Tambahan:

Saya melakukan riset dan menemukan bahwa Anda dapat menyortir-menghapus semua file yang sebelumnya dihapus jika Anda berhasil mempelajari semua sektor yang tidak dihuni sistem file, yang secara umum mungkin dan ditawarkan oleh beberapa alat sistem file (misalnya untuk keluarga ext * ), dan kemudian membuangnya (misalnya dengan yang blkdiscard(8)dijabarkan dalam jawaban untuk pertanyaan terkait ), yang mengembalikan blok untuk pengumpulan sampah sampai digunakan kembali dan ditimpa dalam proses.

Ini aman terhadap semua orang yang tidak dapat mengakses sel-sel flash secara langsung, demikian juga setiap orang yang

  • tidak memiliki perangkat pembacaan sel flash yang cocok dan
  • tidak dapat membicarakan firmware drive untuk mengungkapkan konten blok yang belum ditetapkan (yang akan memerlukan modifikasi firmware yang berarti dalam kebanyakan kasus dan perintah ATA khusus karena tidak ada cara standar).
David Foerster
sumber
Bisakah Anda memasukkan poin-poin utama dan ringkasan instruksi dari tautan itu ke dalam jawaban Anda?
Byte Commander
Saya tertaut ke pertanyaan AU yang setara. Saya harap itu lebih baik.
David Foerster
Apakah dengan aman menghapus ruang kosong saat boot menjadi opsi yang layak?
user4493605
1
@ user4493605: Apa yang Anda maksud "layak"? Itu tentu saja mungkin. Bisakah Anda membuka pertanyaan baru jika Anda memiliki pertanyaan baru atau tindak lanjut? Bagian komentar tidak cocok atau dimaksudkan untuk pertanyaan baru atau diskusi panjang. Anda dapat mengirim saya komentar dengan pemberitahuan untuk menarik perhatian saya padanya. Terima kasih.
David Foerster
3

Peringatan: Jika belum jelas, menghapus drive dengan aman akan menghilangkan semua data pada drive dan membuatnya tidak mungkin untuk dipulihkan. Anda harus mencadangkan semua informasi penting.

Cara termudah untuk menentukan apakah drive Anda mendukung penghapusan aman adalah dengan bertanya: Saya telah menggunakan / dev / sdX dalam contoh di bawah ini. Anda harus mengubahnya dengan hati-hati agar sesuai dengan perangkat yang bekerja dengan Anda:

Sumber:

https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase

/superuser/1161531/how-to-un-freeze-drive-in-linux

$ sudo hdparm -I /dev/sdX | grep -i erase

Pada SSD saya ini menghasilkan:

supported: enhanced erase
2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.

Jika penghapusan aman didukung oleh perangkat Anda, memicu itu adalah proses 2 atau 3 langkah.

  1. Jika perangkat melaporkan bahwa itu dibekukan seperti yang ditunjukkan oleh output dari sudo hdparm -I /dev/sdXmirip dengan ini:
not   enabled
not   locked
      frozen
not   expired: security count
supported: enhanced erase

Buang beku dengan menangguhkan dan melanjutkan sistem Anda. Saya melakukan ini dengan perintah sudo systemctl suspend memindahkan pointer hingga sistem dilanjutkan.

  1. Anda harus menetapkan kata sandi untuk menggunakan penghapusan aman dalam hal ini saya menggunakan foobar sebagai kata sandi, Anda dapat menggunakan kata sandi tidak kosong apa pun yang Anda suka karena bersifat sementara.

    sudo hdparm --user-master u --security-set-pass foobar /dev/sdX

  2. Dengan set kata sandi Anda sekarang dapat menggunakannya untuk menghapus drive dengan aman:

sudo hdparm --user-master u --security-erase foobar /dev/sdX

Jika drive Anda mendukungnya dan Anda ingin, Anda dapat memilih untuk menggunakan penghapusan keamanan yang disempurnakan dengan:

sudo hdparm --user-master u --security-erase-enhanced foobar /dev/sdX

Penatua Geek
sumber