Bagaimana cara menghapus file yang tersimpan di SSD dengan aman?

27

Dari artikel (sangat panjang, tapi pasti layak dibaca) di SSD :

Ketika Anda menghapus file di OS Anda, tidak ada reaksi dari hard drive atau SSD. Baru setelah Anda menimpa sektor (pada hard drive) atau halaman (pada SSD) Anda benar-benar kehilangan data. Program pemulihan file menggunakan properti ini untuk keuntungan mereka dan itulah cara mereka membantu Anda memulihkan file yang dihapus.

Perbedaan utama antara HDD dan SSD adalah apa yang terjadi ketika Anda menimpa file. Sementara HDD dapat dengan mudah menulis data baru ke sektor yang sama, SSD akan mengalokasikan halaman baru (atau yang sebelumnya digunakan) untuk data yang ditimpa. Halaman yang berisi data yang sekarang tidak valid hanya akan ditandai sebagai tidak valid dan pada titik tertentu akan terhapus.

Jadi, apa cara terbaik untuk menghapus file yang tersimpan di SSD dengan aman? Menimpa dengan data acak seperti biasa dari hard disk (misalnya menggunakan utilitas "rusak") tidak akan berfungsi kecuali jika Anda menimpa drive WHOLE ...

c089
sumber

Jawaban:

22

Bagaimana mengenkripsi volume itu sendiri? Data yang dihapus masih ada di sana tetapi tidak dapat diakses oleh siapa pun tanpa kunci yang sesuai.

teh celup
sumber
Lucu aku tidak berpikir tentang itu - karena saya selalu menggunakan enkripsi LUKS pada hard disk saya juga;)
c089
Sebagaimana dinyatakan di sini ini akan memiliki dampak kinerja yang serius. Dengan drive berbasis SandForce, menggunakan ATA secure erase akan menghapus kunci enkripsi AES, memberikan solusi untuk masalah penghapusan aman saat tidak menggunakan enkripsi perangkat lunak.
c089
12

Jika drive SSD mendukung set fitur mode keamanan ATA, maka drive itu memiliki fungsionalitas hapus aman, yang dapat Anda akses menggunakan sesuatu seperti Secure Erase, didokumentasikan di sini dan di sini .

bk1e
sumber
2
+1 untuk set fitur mode keamanan ATA. Ada video yang bagus tentang ini di SecurityTube.net
RJFalconer
2
Tapi fitur itu hanya untuk drive lengkap juga, bukan?
c089
@ Chris089: Itu benar: penghapusan aman akan menghapus seluruh drive. Menimpa seluruh drive dengan data acak tidak dijamin untuk menghapus seluruh drive, karena underprovisioning. (Tapi itu bisa membuat beberapa data tidak rusak tidak dapat diakses oleh pengguna biasa, setidaknya.) Lihat anandtech.com/storage/showdoc.aspx?i=3531&p=9 untuk info lebih lanjut.
bk1e
Berhati-hatilah karena drive (lama) telah ditemukan tidak mengimplementasikan fitur ini sebagaimana mestinya. Ini juga harus bekerja untuk HDD, tetapi pada SSD itu memiliki keuntungan bahwa itu sebenarnya bisa selesai dalam hitungan detik, bukan jam.
Maarten Bodewes
Masalah yang membuat frustasi dengan Secure Erase adalah bahwa banyak drive mengharuskan Anda melakukan siklus daya fisik (cabut konektor daya dan pasang kembali) untuk mengeluarkannya dari kondisi "keamanan beku". Hanya saat itulah Secure Erase berfungsi. Tidak selalu mudah atau diinginkan harus membuka PC Anda, terutama ketika itu laptop atau sistem embedded yang lebih buruk.
misha256
10

Bahkan jika Anda menimpa keseluruhan drive, Anda tidak dapat benar-benar yakin karena HD dan SSD berisi sektor cadangan yang diganti ketika terjadi kegagalan , atau dalam hal SSD untuk membantu menaikkan level keausan .

Jika Anda ingin benar-benar yakin bahwa data tidak dapat dipulihkan, Anda harus menghancurkan drive secara fisik setelah pemulihan. Menimpa memberi Anda kepastian yang wajar tentang HD - pada SSD, sebenarnya tidak ada cara untuk mencapai itu. Jika Anda mengisi seluruh drive, masih mungkin blok data yang ada telah dipindahkan ke blok cadangan untuk leveling keausan dan akan muncul kembali nanti.

Michael Borgwardt
sumber
Belum dapat melakukan downvote, tetapi jawaban penghapusan aman membatalkan argumen ini. Tentu saja, jika Anda tidak ingin bergantung pada penghapusan aman dari pabrikan, maka menghancurkan flash secara fisik adalah sebuah pilihan. Tapi pastikan Anda membakar atau menghancurkan semua chip, flash sangat tangguh.
Maarten Bodewes
Perhatikan bahwa ini adalah jawaban lama; sekarang SECURE ERASE harus didukung oleh sebagian besar jika tidak semua drive, termasuk sebagian besar drive hard disk.
Maarten Bodewes
1
Hapus Aman menghapus semua SSD. Tetapi tidak memisahkan set file atau partisi.
Mikhail Moskalev
9

Karena sifat memori flash NAND, SSD tidak dapat langsung menimpa data. Menimpa file berulang kali sebelum menghapusnya tidak akan menghapusnya dengan aman pada SSD — data hanya akan ditulis di tempat lain di NAND.

Untuk memahami mengapa hal ini terjadi, perlu dijelaskan bagaimana SSD bekerja di dalam.

  • NAND flash dibagi menjadi beberapa blok , masing-masing terdiri dari satu set halaman yang biasanya berukuran 4 KB (ditambah kode koreksi kesalahan). Kebanyakan SSD modern menggunakan NAND dengan blok 128 halaman untuk ukuran blok 512 KB, meskipun beberapa drive, terutama yang lebih lama, dapat menggunakan 256 KB atau blok yang lebih kecil. Diagram berikut ini mengasumsikan 256 KB blok, tetapi konsepnya sama terlepas dari ukuran blok.

Diagram halaman dalam blok NAND
Sumber - Pengurut Musik Courtesy di Wikipedia, CC BY-SA 3.0

  • Setiap halaman dapat ditulis secara individual, tetapi halaman tidak dapat ditulis ulang sampai dihapus, dan menghapus hanya dapat dilakukan di seluruh blok. Ini berarti bahwa setiap kali data ditulis ulang, SSD harus menandai data di halaman yang terpengaruh tidak valid dan menulis ulang di tempat lain, mungkin di blok yang berbeda. Pada waktu yang lebih tepat, idealnya saat drive dalam keadaan idle dan semua halaman dalam blok ditandai tidak valid, SSD dapat menghapus blok yang tidak lagi digunakan. Proses pembersihan ini disebut pengumpulan sampah .

  • Agar SSD mengetahui blok mana yang dapat dihapus, sistem operasi harus memberi tahu blok mana yang tidak lagi berisi data yang valid. Hal ini dilakukan dengan menggunakan ATA TRIM perintah . SSD kemudian bebas untuk mengumpulkan sampah blok-blok yang tidak terpakai.

SSD mencoba menyebarkan penulisan secara merata ke NAND untuk menghindari kegagalan prematur, sebuah proses yang bergantung pada ruang kosong yang tersedia untuk drive.

  • Setiap blok NAND hanya dapat mempertahankan jumlah siklus tulis / hapus yang terbatas. Banyak SSD tingkat konsumen saat ini menggunakan 19-21nm NAND di mana setiap blok baik untuk sekitar 3.000 siklus sebelum menjadi tidak dapat digunakan, meskipun SSD perusahaan dan beberapa SSD konsumen kelas atas yang menggunakan jenis NAND yang lebih tahan lama tersedia secara komersial.

  • Namun, dalam semua kasus, SSD harus menyebar ke seluruh drive untuk menghindari menempatkan keausan yang tidak semestinya pada blok tunggal apa pun untuk menghindari kegagalan drive yang prematur, melalui proses yang disebut levelling keausan . Perataan keausan yang efisien hanya dapat dicapai jika ada ruang tertentu ( penyediaan berlebih ) yang dicadangkan untuk memungkinkan pengumpulan sampah yang efisien seperti yang disyaratkan bahkan jika drive hampir penuh.

  • Dalam kondisi ekstrem di mana SSD diminta untuk menulis data lebih cepat daripada yang dapat menghapus blok lama (umum dalam beban kerja pusat data yang berat), SSD mungkin dipaksa untuk menulis ulang data dalam satu blok ke blok lain, lalu segera menghapus blok lama itu untuk memberi jalan bagi data baru, sebelum memiliki kesempatan untuk melakukan pengumpulan sampah.

  • Penulisan ulang paksa blok kurang dari ideal karena menurunkan kinerja dan berkontribusi untuk menulis amplifikasi , di mana lebih banyak data ditulis ke NAND yang mendasarinya daripada jumlah aktual yang diminta untuk ditulis oleh drive. Penambahan ketentuan yang berlebihan membantu mengurangi amplifikasi penulisan dengan menyediakan lebih banyak ruang kosong untuk menulis ulang data dan menghapus blok lama. Inilah sebabnya mengapa SSD perusahaan kelas atas seperti Samsung SSD 845DC PRO memiliki ukuran seperti 200 GB dan 400 GB meskipun drive tersebut masing-masing berisi lebih dekat dengan 256 atau 512 GB NAND di dalamnya. Lihat juga: Mengapa SSD memiliki ukuran aneh?

  • Seri kertas putih SSD Samsung memberikan penjelasan menyeluruh tentang cara kerja bagian dalam SSD. Menulis dan menghapus halaman NAND dan blok dan pengumpulan sampah dijelaskan dalam kertas putih 04 .

Satu-satunya cara untuk benar-benar menghapus data pada SSD adalah dengan menggunakan perintah ATA Secure Erase.

  • Secure Erase memerintahkan drive untuk menghapus semua data yang disimpan, termasuk data yang mungkin tetap berada di wilayah NAND yang terlalu ditentukan. Semua blok dihapus saat ini dilakukan, menghasilkan drive murni.

  • Di drive dengan kemampuan enkripsi sendiri, Secure Erase dapat dengan mudah diimplementasikan dengan menghapus kunci enkripsi. Karena data pada NAND dari drive yang dienkripsi tidak dapat dibaca tanpa kunci, maka tidak perlu menghapus semua blok sebagaimana diperlukan pada drive yang tidak dienkripsi.

bwDraco
sumber
Berhati-hatilah karena tidak semua drive menerapkan perintah hapus aman dengan benar. Jika Anda masih ingin menggunakan drive, itu mungkin yang terbaik yang dapat Anda lakukan jika Anda tidak memiliki keinginan untuk mengenkripsi dari awal. Jika Anda ingin membuang drive, Anda harus menghancurkannya secara fisik - terutama chip flash.
Bob
Jika kehancuran fisik diperlukan, saya akan membuka drive dan menghancurkan PCB yang mendasarinya.
bwDraco
@ Bob Apakah Anda memiliki tautan ke sumber yang membahas implementasi yang salah? The secure_erasePerintah merupakan bagian dari standar ATA. Mungkin tidak ada pada beberapa drive yang lebih murah, tetapi jika ada, itu harus berfungsi dengan baik. Alasan kerjanya lebih baik daripada opsi lain adalah karena ia mengembalikan drive ke konfigurasi pabrik aslinya. Bahkan pada HDD lebih cepat dan lebih efektif daripada alat seperti DBAN.
Paul
@ Paulus security.stackexchange.com/questions/41676/... , usenix.org/legacy/events/fast11/tech/full_papers/Wei.pdf , security.stackexchange.com/questions/62253/... Ada benar-benar nol jaminan sewenang-wenang firmware drive dengan benar mengimplementasikan perintah yang diberikan (bug dapat terjadi di mana saja) - dan pengujian telah membuktikan bahwa setidaknya beberapa drive pasti tidak melakukannya. Pada akhirnya, masalah terbesar adalah Anda tidak dapat benar-benar memverifikasi penghapusan yang benar.
Bob
1
Karena kita tidak dapat membuat pernyataan / jaminan keberhasilan, kita harus mengasumsikan setidaknya beberapa drive tidak mengimplementasikannya dengan benar. Jika kita menganggap beberapa drive tidak mengimplementasikannya dengan benar, maka hal yang aman untuk dilakukan adalah mengasumsikan tidak ada drive yang mengimplementasikannya dengan benar sampai terbukti sebaliknya. Dan itu tidak mudah untuk dibuktikan - menghapus mungkin terlihat benar bagi Anda, sambil menyimpan informasi pada chip flash untuk semua yang Anda tahu - yang berarti Anda harus selalu menghancurkan secara fisik untuk apa pun yang benar-benar sensitif.
Bob
6

Seperti yang dinyatakan oleh @teabot menggunakan perangkat lunak enkripsi disk penuh akan menghindari masalah penghapusan aman karena Anda tidak perlu lagi melakukannya. Namun, seperti yang dinyatakan dalam pertanyaan terkait , ini akan memiliki dampak kinerja yang sangat besar karena ini mencegah banyak fitur pengendali seperti kompresi dan TRIM dan telah dilaporkan menurunkan kinerja hingga ke tingkat di mana hard disk normal lebih cepat daripada yang mahal SSD. Untuk perangkat berbasis SandForce, ada solusi yang lebih baik: Perangkat itu melakukan enkripsi AES secara default dan kunci akan dihapus ketika Anda menggunakan fitur hapus aman ATA, membuat semua data tidak dapat diakses kecuali penyerang dapat memecahkan AES (128bit untuk saat ini, 256bit untuk drive baru yang dirilis pada Maret 2011).

c089
sumber
1
Namun, sepertinya tidak ada solutio untuk menghapus beberapa file dengan aman. Anda harus menghapus seluruh disk.
c089
3

Seperti yang Anda pikirkan, menghapus semua ruang kosong untuk memastikan bahwa semua blok yang dulu berisi data dihapus adalah satu-satunya cara untuk memastikan. Nah, selain mengambil situs nuklir dari orbit ...

Ini akan sangat memakan waktu, dan akan mengurangi masa pakai chip flash, jika Anda menggunakan multi-pass shred.

Cara lain untuk melindungi data yang dihapus adalah dengan menyimpannya dienkripsi di tempat pertama menggunakan sistem file terenkripsi menggunakan sesuatu seperti truecrypt.

David Spillett
sumber