Memotong sebagai alternatif untuk menghapus SSD dengan aman

6

Cara yang disarankan untuk menghapus SSD dengan aman adalah Hapus aman ATA . Sebagian besar BIOS menonaktifkan fungsi ini dengan membekukan drive. Beberapa trik di sekitar pembekuan BIOS ada dan mungkin atau mungkin tidak berfungsi tergantung pada pengaturan. Ini membuat ATA secure erase sulit digunakan.

Bisakah triming disalahgunakan sebagai alternatif untuk menghapus SSD dengan aman?

Seseorang dapat menghapus tabel partisi yang ada dan membuat GPT baru dengan satu partisi ext4 yang mengisi seluruh SSD. Triming partisi ext4 akan menyebabkan SSD menghapus semua blok logis pada SSD tetapi blok memegang GPT dan blok super ext4. Blok cadangan yang tidak ditugaskan ke blok logis dihapus oleh definisi. Dengan cara ini semua blok fisik akan dihapus atau mengandung informasi meta GPT / ext4 yang tidak berguna.

Apakah Anda melihat ada cacat dalam rencana ini?

Tolong jangan jawab bahwa ATA secure erase harus digunakan untuk menghapus SSD dengan aman, ini bukan pertanyaannya.

Stéphane Tréboux
sumber
Dalam pertanyaan saya ya :-). Menurut Shimpi, Anand Lal. (2009-03-18). hal. 10 .: "Pemangkasan memungkinkan SSD menangani overhead pengumpulan sampah, yang sebelumnya akan secara signifikan memperlambat operasi penulisan di masa depan ke blok yang terlibat, di muka." (ditemukan pada Wikipedia ). Kebetulan mempersiapkan flash untuk operasi penulisan di masa depan melibatkan menghapusnya; bisa juga sebaliknya dengan teknologi memori lainnya.
Stéphane Tréboux

Jawaban:

6

Mari kita begini:

Yang benar adalah, di sebagian besar, jika tidak semua, SSD, ATA Secure Erase adalah ekuivalen dengan TRIM perangkat lengkap. Kecuali mereka yang memiliki "enkripsi perangkat keras", di mana ATA Enhanced Secure Erase pada dasarnya adalah regenerasi kunci enkripsi. Jadi setelah semua ATA Secure Erase di SSD tidak benar-benar aman, kecuali milik Anda mendukung "enkripsi perangkat keras".

Di samping itu, fstrim bukan satu-satunya cara untuk TRIM perangkat. Kamu bisa memakai blkdiscard untuk menghapus seluruh perangkat blok (disk / partisi) termasuk GPT dan superblok dan apa pun.

Namun, perlu diketahui bahwa implementasi TRIM di beberapa disk memiliki "persyaratan" dalam perintah TRIM yang dikeluarkan, jadi hanya ketika terpenuhi, semua blok pada drive kemudian akan "membaca nol" setelah TRIM.

Sebagai contoh, Intel 530 SSD mengharuskan rentang blok TRIM harus "sejajar" menjadi 8 blok. Jadi ketika saya ingin menghapusnya dengan bersih blkdiscard atau hdparm, Saya perlu memastikan bahwa tidak ada "unit minimum" "tertutup" oleh dua rentang TRIM.

Dengan blkdiscard, Saya harus menentukan -p 33550336 (65528 blok * 512 byte, di mana 65528 = 65535 (jumlah maksimum blok dalam rentang tunggal) - 65535% 8), dengan asumsi offset awal adalah 0 (atau kelipatan [8 * 512]), jika tidak akan ada blok sisa yang tidak akan dihapus. Ini dapat diperiksa dengan sesuatu seperti hexdump setelah TRIM.

Lihat perbedaan Intel 530 saya ( sda ) dan Silicon Power S70 ( sdb ):

enter image description here

dan perbedaan ketika rentang tidak selaras dan selaras:

enter image description here

(Masih ada sisa di akhir karena 65535 * 2 = 131070 bukan kelipatan 8, tetapi Anda dapat melihat bahwa 131064 blok [0x3FFF000 / 512] terus-menerus dihapus.)

Tidak ada kecurangan:

enter image description here

P.S. Saya juga melihat drive dari SanDisk bahwa "head" dan "tail" tidak dapat dihapus dengan perintah TRIM dalam bentuk apa pun. "Unit minimum" itu adalah 256 blok.

Tom Yan
sumber
Komentar bukan untuk diskusi panjang; percakapan ini telah dipindahkan ke obrolan .
Sathyajith Bhat
3

Jika keamanan data menjadi perhatian Anda, harus dicatat bahwa SECURE_ERASE maupun TRIM tidak benar-benar menghapus sel-sel flash. Firmware SSD menyimpan daftar sel mana yang dialokasikan dan mana yang tidak. TRIM hanya menandai sel sebagai tidak teralokasi dengan cara yang sama menghapus file menyebabkan sistem file menandai sebuah cluster sebagai tidak teralokasi. Tidak ada upaya yang dilakukan untuk benar-benar menghapus data. Permintaan baca dari sel yang tidak terisi hanya menyebabkan perangkat mengembalikan 0x00 (atau pola bit lainnya) tanpa benar-benar memeriksa konten sel.

Tidak ada cara yang efektif untuk menyeka SSD dengan aman. Alat forensik yang dapat berinteraksi dengan firmware secara langsung dapat melihat konten sel. Juga, ada lebih banyak penyimpanan pada perangkat daripada apa yang dapat diakses dari ruang pengguna. Sel ekstra ini digunakan dalam pengumpulan sampah. Pengumpulan sampah dapat merealokasi sel saat bepergian dan masih dapat bekerja bahkan pada drive yang 100% penuh. SECURE_ERASE mungkin (mungkin memang) TRIM sel-sel itu, tetapi a blkdiscard atau fstrim tentu tidak akan, karena mereka menggunakan nomor sektor untuk mengidentifikasi area yang akan TRIMmed.

Satu-satunya cara untuk menghapus SSD dengan aman adalah dengan menghancurkannya. Ini adalah kebijakan sebagian besar perusahaan di bidang perawatan kesehatan, perbankan, dan pemerintah ketika menjual peralatan.

Wes Sayeed
sumber
Penghapusan aman diperlukan untuk benar-benar menghapus media, bukan hanya tabel terjemahan blok.
psusi
1
Ini adalah jawaban yang sangat menarik yang menimbulkan banyak pertanyaan. Apa arti dari penghapusan aman menurut spesifikasi ATA? Bisakah Anda mengutip sumber? Saya mengerti bahwa pemangkasan mungkin tidak langsung menyebabkan penghapusan sel. Masih setelah beberapa waktu tertentu (mungkin tidak terlalu lama) sel yang dipangkas perlu dihapus secara fisik; jika tidak, setelah periode waktu ini, penurunan kinerja penulisan akan terlihat karena SSD akan kehabisan sel baru (seperti pada SSD tanpa dukungan trim). Apa yang kamu pikirkan?
Stéphane Tréboux
Lebih jauh lagi saya mengerti bahwa ada banyak spekulasi dan tebakan dalam alasan saya; untuk data yang sangat masuk akal, sebuah organisasi besar akan lebih memilih penghancuran fisik untuk menyingkirkan risiko backdoor atau bug dalam firmware SSD. Kekhawatiran saya lebih pada konsumen normal yang menjual kembali drive-nya.
Stéphane Tréboux
Saya menemukan draft lama spesifikasi ATA di sini (Anda harus membayar untuk hal yang sebenarnya): t13.org/Documents/UploadedDocuments/docs2008/… . Itu tidak menyebutkan pemangkasan (mungkin untuk yang lama). Menurut dokumen ini, mode hapus normal dan aman yang ditingkatkan diharapkan benar-benar menghapus data pengguna dengan menggantinya dengan data lain. Ngomong-ngomong itu berarti bahwa SSD tidak serta-merta membuat sel dalam keadaan terhapus setelah erase aman. Seperti yang disebutkan sebelumnya, pengguna masih harus mempercayai perangkatnya karena tidak ada bug atau backdoor di firmware. Bagian-bagian yang relevan adalah:
Stéphane Tréboux
Ketika mode Normal Erase ditentukan, perintah SECURITY ERASE UNIT akan mengganti konten LBA 0 ke LBA yang dilaporkan oleh READ NATIVE MAX atau READ NATIVE MAX EXT yang lebih besar dengan semua nol biner atau semua biner. Jika perangkat mengganti konten alamat maks asli + 1 ke LBA Maksimum yang dilaporkan dalam PERANGKAT IDENTIFIKASI PERANGKAT kata kata data 3-6 itu harus menggunakan pola data yang sama yang ditemukan dalam LBA waktu yang dibutuhkan untuk menyelesaikan penghapusan.
Stéphane Tréboux