Bagaimana cara menghapus drive SSD dengan aman?

36

Saya cukup baru dalam teknologi SSD, jadi saya tidak tahu bagaimana cara membandingkannya dengan hard drive ketika harus menghapus drive dengan aman. Apakah cukup untuk menjalankan Disk Utility dan menghapus drive dengan opsi "menimpa dengan nol", atau ini dirancang untuk hard drive? Apakah ada tindakan lain yang harus diambil?

Saya tidak mencari keamanan tingkat NSA, hanya jenis penghapusan yang akan Anda lakukan jika Anda mengembalikan atau menjual Mac.

Rinzwind
sumber
Apakah Anda perlu menghapus data, atau Anda perlu meyakinkan orang lain bahwa data tersebut telah dihapus? Jika Anda hanya perlu meyakinkan diri sendiri bahwa data telah hilang, Anda harus mencoba perintah ATA Secure Erase. Jika Anda perlu meyakinkan orang lain maka Anda mungkin perlu menggunakan layanan merobek-robek disk.
DanBeale
Di Keamanan TI: Apakah cukup dengan hanya menghapus drive flash sekali? (26 Jul '11)
Graham Perrin

Jawaban:

45

Itu tergantung pada level paranoia Anda. Karena cara SSD menangani penulisan data, melakukan nol-sekali pada SSD tidak sebaik melakukannya pada hard drive.

Saat Anda menulis halaman data tertentu pada HD, data baru hanya ditulis di atas data lama, menggantikannya. Tulis angka nol di seluruh disk dan semua data lama akan hilang. SSD, di sisi lain, tidak bisa begitu saja menimpa halaman individual. Untuk mengganti data pada halaman, data lama harus dihapus terlebih dahulu, dan SSD tidak dapat menghapus halaman individual; mereka harus menghapus seluruh blok yang terdiri dari banyak halaman.

Jadi apa yang terjadi ketika Anda meminta SSD untuk menimpa, katakanlah, halaman # 5, adalah bahwa SSD meninggalkan data di halaman # 5 saja, tetapi menandainya sebagai tidak valid, mengalokasikan halaman lain yang saat ini kosong (katakanlah, # 2305), tulis data baru ke halaman # 2305, dan membuat catatan bahwa lain kali OS meminta halaman # 5 itu seharusnya mendapatkan # 2305. Data halaman # 5 asli duduk di sana sampai beberapa waktu kemudian, ketika drive membutuhkan lebih banyak ruang, memindahkan halaman yang tersisa yang tersisa dari blok, dan menghapusnya. SSD memiliki kapasitas memori fisik lebih banyak daripada yang diekspos ke komputer, sehingga mereka dapat menyulap blok seperti ini untuk sementara waktu sebelum benar-benar harus menghapus apa pun (dan ketika mereka benar-benar menghapus sesuatu, tidak ada cara yang baik untuk memprediksi blok data sisa yang akan dipilih untuk dihapus). Lihat ulasan AnandTech ini untuk lebih detail (peringatan: cukup panjang, dan hal-hal yang relevan tersebar di sekitar).

Hasil bersih: jika Anda menulis nol di seluruh drive "keseluruhan", Anda belum benar-benar menimpa semua data lama. Anda telah memperbarui tabel terjemahan pengendali sehingga tidak akan pernah mengembalikan data lama ke OS (semua halaman itu tidak valid). Tetapi jika seseorang cukup hardcore untuk mem-bypass controller, mereka bisa mendapatkan kembali sebagian data Anda.

Menimpa dua kali mungkin akan berhasil, tetapi itu tergantung pada strategi alokasi pengontrol. Menimpa dua kali dengan data acak ( diskutil randomDisk 2 /dev/diskN) sedikit lebih mungkin berfungsi, tetapi masih tidak dijamin. Kedua ini juga memiliki beberapa efek samping yang buruk: mereka menggunakan beberapa masa pakai drive, dan juga meningkatkan fragmentasi logis pada SSD, mengurangi kinerja penulisan.

Perhatikan bahwa versi terbaru dari Disk Utility grafis OS X menonaktifkan opsi penghapusan aman pada SSD (untuk alasan yang dibahas di atas), tetapi versi baris perintah masih memungkinkan mereka. BTW, saya juga melihat beberapa rekomendasi untuk menghapus SSD secara aman dengan mengonversinya menjadi format terenkripsi, tetapi ini (jika ada) sedikit kurang aman daripada menimpa dengan data acak.

Cara terbaik untuk menghapus-aman SSD adalah dengan mengaktifkan fitur pengaman-aman bawaan dari pengontrol. Ini seharusnya (jika perancang pengontrol melakukan tugasnya) benar-benar menghapus semua blok, dan juga memiliki efek samping dari pengaturan ulang peta halaman logis, pada dasarnya mendefragmentasi dan mengembalikan kinerja aslinya. Sayangnya, sebagian besar utilitas yang pernah saya lihat untuk melakukan ini (misalnya HDDErase CMRR ) berjalan di bawah DOS, yang tidak bisa boot pada Mac. Saya memang menemukan posting di macrumors dengan (agak rumit) instruksi untuk melakukan penghapusan aman dari CD boot GParted. Mungkin juga bisa menggunakan Parted Magic dari flash drive yang dapat di - boot , tetapi saya belum mencobanya.

Para peneliti di Non-Volatile Systems Lab di UCSD telah menguji berbagai cara membersihkan SSD dengan "menghapus" drive, kemudian membongkarnya untuk mem-bypass controller, dan memeriksa data yang tersisa ( ringkasan , kertas penuh ). Hasil mereka sebagian besar setuju dengan apa yang saya katakan di atas (dan juga menunjukkan bahwa perintah built-in secure-erase tidak selalu diterapkan dengan benar):

Hasil kami menghasilkan tiga kesimpulan: Pertama, perintah bawaan efektif, tetapi pabrikan terkadang menerapkannya secara tidak benar. Kedua, menimpa seluruh ruang alamat yang terlihat dari SSD dua kali biasanya, tetapi tidak selalu, cukup untuk membersihkan drive. Ketiga, tidak ada teknik berorientasi hard drive yang ada untuk sanitasi file individual yang efektif pada SSD.

Gordon Davisson
sumber
1
Terima kasih atas jawaban yang luas. Bukan masalah bagi saya untuk menjalankan perintah Terminal seperti yang Anda sarankan. Tetapi untuk referensi di masa mendatang: apa yang dapat dilakukan pengguna biasa yang tidak begitu nyaman dengan Terminal? Cukup gunakan opsi 7-pass Disk Utility?
Rinzwind
4
Saya tidak tahu apakah saya benar-benar dapat "merekomendasikan" salah satu opsi pada saat ini - mereka semua agak payah. Opsi penimpa mana pun akan menggunakan batas tulis seumur hidup drive, dan cenderung meningkatkan fragmentasi dan menurunkan kinerja. Yang terbaik bagi Apple adalah menambahkan ATA-secure-erase (yaitu opsi berbasis-pengontrol) sebagai opsi di Disk Utility, tetapi siapa yang tahu kapan / jika itu akan terjadi.
Gordon Davisson
2
@ Gordon - Itu adalah tanggapan yang bagus dan informatif! +1
Dolan Antenucci
Hai @GordonDvisvisson. Penasaran apakah ada yang berubah sejak Anda menulis jawaban ini (sudah ada beberapa pembaruan OS sejak itu).
samthebrand
@ SamtheBrand: Tidak banyak yang berubah. Saya menambahkan catatan bahwa Disk Utility (versi GUI) sekarang melarang penghapusan aman pada SSD (karena itu tidak benar-benar berfungsi), memperbaiki tautan ke HDDErase, dan menambahkan catatan bahwa Parted Magic mungkin berfungsi (meskipun saya belum mencobanya ).
Gordon Davisson
8

Buka terminal dan ketik perintah berikut:

df -k

Perhatikan kolom pertama yang sesuai dengan partisi SSD yang ingin Anda hapus permanen. Katakan saja begitu /dev/disk1s2.

Ketikkan perintah berikut:

dd if=/dev/zero of=/dev/rdisk1s2 bs=100k

di mana /dev/rdisk1s2perangkat mentah terkait dengan partisi Anda di SSD. Perintah ini akan sepenuhnya menulis partisi ini dari blok pertama yang tersedia hingga yang terakhir. Perintah ini akan bertahan lama (~ 1/2 jam untuk 100 Gbytes) tanpa bilah gulir kemajuan yang bagus.

Setelah perintah ini kembali kepada Anda, prompt shell Anda telah terhapus secara lengkap dan permanen. Mulai Disk Utilitydan periksa partisi ini. Ini akan memberitahu Anda itu rusak di luar segala bentuk perbaikan. Dan itu benar.

Cukup format partisi ini sesuka Anda.

Inilah yang terjadi di tingkat blok fisik:film dd & DU menghapus SSD

dan
sumber
1
Ini sama dengan opsi Disk Utility untuk menimpa dengan nol, dan tidak akan sepenuhnya aman pada SSD karena alasan yang sama. Lihat jawaban saya untuk penjelasan terperinci.
Gordon Davisson
→ Gordon: Saya membaca jawaban Anda, dan saya pikir saya memahaminya, dan saya meningkatkan kualitasnya. Jawaban saya menggunakan perangkat disk mentah dan bukan yang blok (sebagai Disk Utility). Ini harus diverifikasi pada SSD (dengan alat yang dapat dipercaya) tetapi sejauh yang saya tahu pada HD standar lama menggunakan cache, antarmuka disk mentah adalah cara mudah untuk menghindari cache ini. Perangkat SSD hanyalah sebuah disk HD di mana cache adalah kapasitas penuh, dan disk fisik dihapus.
dan
Menggunakan perangkat mentah (/ dev / rdisk *) mem-bypass cache OS, tetapi tidak mem-bypass layer terjemahan flash (yang merupakan sumber masalah yang saya jelaskan). Faktanya, tidak ada cara untuk mem-bypassnya dari OS - pengontrol perangkat tidak pernah mengekspos toko flash mentah yang benar ke bus (SATA atau apa pun), dan karena OS hanya dapat berinteraksi dengan drive di atas bus, tidak ada cara untuk itu untuk mendapatkan akses mentah-cukup untuk melakukan overwrite yang aman.
Gordon Davisson
Pas pertama ddada di sini bukan hanya untuk memotong beberapa level cache (kami tidak memiliki cara untuk mengetahui kapasitasnya), tetapi untuk melelahkan mereka sebagian (ini adalah gambar 3 keadaan). Lulus kedua benar-benar harus menemukan blok baru dan menghapusnya dengan aman.
dan
Itu masih belum cukup, karena dua alasan: pertama, ketika Disk Utility memformat disk, ia hanya akan menimpanya sedikit (tabel partisi, header volume, dll), dan tidak ada jaminan itu cukup untuk menghabiskan kapasitas ekstra. Kedua, tidak ada jaminan sama sekali bahwa penulisan tambahan yang dilakukan DU akan mengenai blok fisik yang berbeda dari apa yang telah dihapus sebelumnya - tergantung pada strategi alokasi controller, sangat mungkin Anda hanya menghapus blok fisik yang sama berulang-ulang. Itu sebabnya saya mengatakan bahwa bahkan menimpa semua ruang dua kali mungkin tidak cukup.
Gordon Davisson
7

Tombol "Opsi Keamanan ..." di Disk Utility saat ini berwarna abu-abu untuk SSD. Menurut http://support.apple.com/kb/HT3680 , menghapus SSD biasanya cukup aman:

Catatan: Dengan OS X Lion dan drive SSD, Secure Erase dan Erasing Free Space tidak tersedia di Disk Utility. Opsi ini tidak diperlukan untuk drive SSD karena penghapusan standar membuat sulit untuk memulihkan data dari SSD. Untuk keamanan lebih lanjut, pertimbangkan untuk mengaktifkan enkripsi FileVault 2 ketika Anda mulai menggunakan drive SSD.

Masih dimungkinkan untuk menjalankan sesuatu seperti diskutil secureErase freespace 4 disk0s2dari Terminal pada partisi pemulihan.

Cukup menyalakan FileVault 2 sebelum menghapus drive mungkin merupakan opsi yang lebih baik. Menurut jawaban ini , melakukan penghapusan jarak jauh juga hanya menghapus kunci enkripsi jika FileVault 2 diaktifkan:

Ya, ketika Anda menghapus komputer dari jarak jauh, komputer itu melakukan penghapusan secara aman. Apple bahkan memperingatkan Anda bahwa itu bisa memakan waktu selama sehari. Namun, jika drive Anda dienkripsi dengan FileVault 2, maka tidak perlu menghapus disk. Cukup untuk menghapus kunci enkripsi yang tersimpan pada disk dengan aman, jadi itulah yang mereka lakukan. Ini sangat cepat dan seaman sistem enkripsi yang mendasarinya, yang untuk saat ini sangat aman.

http://training.apple.com/pdf/wp_osx_security.pdf :

FileVault 2 memberi departemen TI kemampuan untuk menghapus kunci enkripsi dari Mac yang diberikan kapan saja untuk memastikan bahwa data yang dienkripsi tidak dapat diakses oleh login pengguna atau alat pemulihan data. Proses ini disebut sebagai penghapusan jarak jauh.

Lri
sumber
5
Menghidupkan enkripsi (yaitu FileVault) sebelum menyimpan data sensitif adalah pilihan yang sangat baik, tetapi terpikir oleh saya bahwa proses yang digunakan untuk "menghapus" kunci enkripsi mungkin tidak sepenuhnya aman karena alasan yang sama bahwa penghapusan aman standar tidak - - kunci enkripsi lama masih akan disimpan dalam flash, hanya di halaman yang dipetakan. Jadi seseorang yang dapat mem-bypass controller masih bisa mendapatkan kunci "terhapus" ...
Gordon Davisson
@GordonDavisson tetapi jika Anda kemudian mengaktifkan enkripsi lagi ketika memformat drive, kunci enkripsi lama harus ditimpa maka data lama aman tidak dapat diakses?
supersize
@supersize Kunci enkripsi lama mungkin ditimpa, tetapi tergantung pada halaman fisik mana yang bisa dihapus selama memformat ulang, dan itu adalah sesuatu yang dikontrol firmware drive, bukan sistem operasi.
Gordon Davisson