SSD sürücüsündeki dosyaları güvenli bir şekilde nasıl silebilirim?


14

SSD'leri güvenli bir şekilde silmeye çalışırken, birkaç sorunumuz var:

  • SSD'ler sınırlı miktarda silme çevriminden sonra aşınır
  • SSD'lerde, aşınmayı dengelemek için LBA'ları (sistem tarafından diske erişmek için kullanılan mantıksal blok adresleri) dinamik olarak eşleyen bir denetleyici bulunur; dosyası, diğer yedek blokların üzerine yazılmasına neden olabilir.
  • SSD'ler, ölmekte olan depolama hücrelerini telafi etmek ve aşınmayı azaltmak için kullanılan önemli bir rezerv kapasitesine sahiptir. Sistem tarafından görülemezler ve eski veri parçalarını tutabilirler.

Şimdi SSD'leri güvenli bir şekilde silmek için Ubuntu içinden hangi seçeneklere sahibiz?

Bazı yeni SSD'lerin kendilerini güvenli bir şekilde silebilmesi gerektiğini duydum, ancak SSD'min bunu yapıp yapamayacağını ve nasıl tetikleyeceğimi nasıl öğrenebilirim?
Ayrıca bir ATA güvenli silme komutu olmalı, bunun desteklenip desteklenmediğini nasıl öğrenebilirim ve bunu nasıl tetiklerim?

Yalnızca belirli bir dosyayı veya yalnızca kullanılmayan alanı güvenli bir şekilde silmenin yolları da var mı?
Tüm bölümlerin bir yedeğini almak, tüm diski güvenli bir şekilde silmek ve daha sonra yedeklemeyi geri yüklemek mümkün olabilir, ancak kulağa çok karmaşık geliyor ve pratik olması çok uzun sürüyor. Başka alternatifler var mı? Değilse, zaten silinmiş dosyaları da yedeklemeden bölümleri yedeklemek için hangi araçları kullanabilirim?

Elbette , yukarıda açıklanan noktalar için standart araçlar gibi shredveya wipekullanılamaz. Sadece bir dosyanın üzerine yazarlar (aşınma seviyelendirme kontrolörü nedeniyle aynı flaş hücrelerine sürekli olarak işaret etmeyen LBA'lara bağlı olan dosya sistemi kümelerinin üzerine yazarak).



Bunu çekirdeğe dönüştüren akademik çalışmaları biliyorum, bkz. Lwn.net/Articles/480269
noleti

Yanıtlar:


9

Şu anda , tüm sürücünün içeriğini silmeden veya SSD'nin ürün yazılımına erişmeden SSD'deki dosyaları güvenli bir şekilde silmenin bir yolu yoktur .

  • SSD'nin mantıksal bir bloğun önceki kopyalarını nerede saklayabileceğini bilmek imkansızdır.

  • Daha da kötüsü, dosya sisteminin günlük kaydı ve yazma üzerine kopyalama mekanizmaları nedeniyle, hangi mantıksal blokların belirli bir dosyanın önceki bir kopyasını tutabileceğini bilmek imkansız olabilir.

Silinen dosyaların sürücüye doğrudan erişimi olan birine sızmasını önlemenin tek yolu, onları ilk etapta şifrelemek ve şifreleme anahtarını meraklı gözlerden korumaktır.

Zeyilname:

Biraz araştırma yaptım ve genellikle mümkün olan ve bazı dosya sistemi araçları tarafından sunulan (örneğin ext * ailesi için) bir dosya sisteminin boş olan tüm sektörlerini öğrenmeyi başarırsanız, önceden silinen tüm dosyaları silebileceğinizi öğrendim. ) ve daha sonra bunları tekrar kullanılana ve işlemin üzerine yazılana kadar çöp toplama bloklarını döndüren bunları (örn . bağlantılı soruya verilen cevapta belirtildiği gibi ) atın .blkdiscard(8)

Bu, flash hücrelere doğrudan erişemeyen herkese karşı güvenlidir, bu yüzden

  • uygun bir flash hücre okuma cihazı yok ve
  • sürücü sabit yazılımını atanmamış blokların içeriğini açığa çıkaramaz (bu, standart bir yol olmadığı için çoğu durumda sabit yazılımda ve özel ATA komutlarında anlamlı bir değişiklik gerektirir).

Lütfen kilit noktaları ve bu bağlantıdaki talimatların bir özetini cevabınıza ekler misiniz?
Byte Komutanı

Eşdeğer bir AU sorusuna bağlandım. Umarım bu daha iyidir.
David Foerster

Önyükleme üzerindeki boş alanı güvenli bir şekilde silmek uygun bir seçenek olabilir mi?
user4493605

1
@ user4493605: “Canlı” ne demek istiyorsun? Kesinlikle mümkün. Yeni veya takip eden bir sorunuz varsa lütfen yeni bir soru açabilir misiniz ? Yorum bölümü yeni sorular veya genişletilmiş tartışma için uygun veya uygun değildir. Dikkatimi çekmek için bana bildirimde bulunan bir yorum gönderebilirsiniz. Teşekkürler.
David Foerster

3

Uyarı: Zaten net değilse, sürücünün güvenli bir şekilde silinmesi sürücüdeki tüm verileri ortadan kaldıracak ve kurtarılmasını imkansız hale getirecektir. Tüm kritik bilgileri yedeklemelisiniz.

Sürücünüzün güvenli silmeyi destekleyip desteklemediğini belirlemenin en kolay yolu sormaktır: Aşağıdaki örneklerde / dev / sdX kullandım . Çalıştığınız cihaza uyacak şekilde dikkatli bir şekilde değiştirmeniz gerekir:

Kaynaklar:

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

SSD'mde bu şöyle sonuçlanır:

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

Güvenli silme cihazınız tarafından destekleniyorsa, tetikleme işlemi 2 veya 3 adımlık bir işlemdir.

  1. Cihaz buna sudo hdparm -I /dev/sdXbenzer bir çıktıyla belirtildiği gibi donmuş olduğunu bildiriyorsa :
not   enabled
not   locked
      frozen
not   expired: security count
supported: enhanced erase

Sisteminizi askıya alarak ve devam ettirerek açın. Bunu sudo systemctl suspend sistem devam edene kadar imleci hareket ettirerek yaptım .

  1. Güvenli silme kullanmak için bir şifre belirlemeniz gerekir, bu durumda foobar'ı şifre olarak kullanıyorum , geçici olarak istediğiniz boş olmayan şifreyi kullanabilirsiniz.

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

  2. Parola seti ile sürücüyü güvenli bir şekilde silmek için artık kullanabilirsiniz:

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

Sürücünüz destekliyorsa ve bunu istiyorsanız, aşağıdakiler yerine gelişmiş güvenlik silmeyi kullanmayı tercih edebilirsiniz:

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.