Bir başparmak sürücüsünün içeriğini nasıl güvenle silebilirim ki veriler kurtarılamaz.


32

Veriler kurtarılamıyorsa, eğer mümkünse USB flash sürücüyü terminalden nasıl sileceğimi bilmek istiyorum.


31
Bir flash sürücü? Açık olan şeyi açın, yeşil devre kartındaki tüm cipsleri dikkatlice kaldırın ve onları sıcak, parlak, küçük parçalara ayırın, sonra başka bir tane alın. Fiziksel yıkım, gerçekten emin olmanın tek yolu, 'çünkü tüm aşınma seviyelerinin tespiti ve benzeri şeyler. Gelecekte, tam disk şifrelemesini kullanın ve artık istemediğinizde | şifresini kaybettiniz.
Blacklight'ta

1
@BlacklightShining - Bu gerçekten tek cevap. Ucuz çubukların çoğu da geri dönüşümlüdür.
mikeserv

1
@BlacklightShining Plazmaya dönüştürülmesi de iyi sonuç verir.
PyRulez

3
Verilerin kurtarılamaz olması sizin için önemliyse, tek "güvenli" çözüm fiziksel imhadır. Kurtarılması sadece zor olmak için yeterliyse, biçimlendirmek / üzerine yazmaktan daha fazlasına gerek yoktur.
Sobrique

Tüm parçaların kırmızı bir ısıya ulaşmasını sağlayarak kömür ateşinde yakınız.
Ben

Yanıtlar:


47

TL / DR: Doğru cihaz adını aldığınızdan, takılı olmadığından emin olun ve karşılayabileceğiniz kadar rastgele üzerine yazma yapın. Son zamanlarda yeterli bir dağıtımdaysanız, flash donanım için tasarlanmış bir silme komutuyla bunu takip edebilirsiniz. Bu kontrollerde her zaman sürücüyü (/ dev / sd h gibi ) kullanın ve bölüm adını (/ dev / sd h1 olacaktır ) kullanın

# dmesg|grep sdXX
[3600.000001] sd 6:0:0:0: [sdXX] 125106176 512-byte logical blocks: (64.0 GB/59.6 GiB)
# blkid|grep sdXX
/dev/sdXX1: PARTUUID="88a03bb2-ced8-4bb2-9883-0a51b4d460a8"
# df|grep /dev/sdXX
# shred -vzn8 /dev/sdXX
shred: /dev/sdXX: pass 1/9 (random)...
shred: /dev/sdXX: pass 1/9 (random)...46MiB/3.8GiB 1%
...
shred: /dev/sdXX: pass 9/9 (000000)...3.8GiB/3.8GiB 100%
# blkdiscard -s /dev/sdXX
blkdiscard: /dev/sdXX: BLKSECDISCARD ioctl failed: Operation not supported
# blkdiscard /dev/sdXX
blkdiscard: /dev/sdXX: BLKDISCARD ioctl failed: Operation not supported
#

Teoride, sıfır ile üzerine yazma ddsadece iyi. Bununla birlikte, bir flash sürücünün dahili yapısının nasıl oluşturulduğuna bağlı olarak, tek bir üzerine yazma geçişi kullanırsanız, hala kalan bilgileri depolayan gerçek blokların arkasına gizlenmiş birkaç veri katmanı olabilir.

Genellikle flaş depolamanın bir kısmı arızalıdır ve üretim sırasında böyle işaretlenir. Yanlış gidebilecek başka şeyler de vardır (değiştirilemez, ayarlanamaz ya da anlaşılmaz hale gelebilir), bu parçaların kullanım ömrü boyunca hatalı olarak işaretlenmesi gerekir. Bu bilgiler, verilerinizle aynı çiplerde ayrılmış bir alanda saklanır. Bu, 4GB'lık bir parmak sürücünün 2 ^ 32 bayt kapasite göstermemesinin birkaç nedeninden biridir.

Flash depolama ayrıca dahili olarak daha büyük bloklarda, bazen sürücüde çalışan dosya sistemlerinden daha büyük olarak düzenlenir. Tipik bir dosya sistemi blok boyutu 4KB'dir ve bir seferde silinebilecek flaş segmentleri 64KB ile birkaç megabayt arasında değişebilir. Bu büyük bloklar yalnızca tümüyle silinebilir, bu tüm bloğu bilinen bir duruma (tümü veya tümü 0'ları) sıfırlar. Daha sonra bir veri yazımı bitlerin herhangi birini değiştirebilir (gerektiğinde varsayılan 1'leri 0s olarak değiştirin veya varsayılan 0'ları 1s olarak değiştirin), ancak yalnızca bir kez . Bitlerden herhangi birini varsayılana döndürmek için, tüm bölümlerin yeniden silinmesi gerekir!

Bu nedenle, 4 KB'lık bir bloğu değiştirmek istediğinizde (dosya sistemindeki bir dosyanın ortasındaki tek bir karakteri değiştirmesi istenir), flaş denetleyicisinin eski verilerin tüm 64 KB'sini okuması ve arabelleğe alması, hepsini silmesi ve yeni içerikleri geri yazar. Bu çok yavaş olacaktır, segmentleri silmek en yavaş işlemdir. Ayrıca, bir bölüm sınırlı bir süre içinde silinebilir (onbinlerce tipik), bu nedenle tek bir dosyada çok fazla değişiklik yaparsanız sürücüyü hızlı bir şekilde bozabilir.

Ama bu böyle yapılmadı. Akıllı flaş denetleyicileri, 4KB yeni verileri başka bir yere yazabilir ve eski bloğun ortasındaki bu 4KB veriyi yeniden yönlendirmeyi not eder. Yönlendirmeler hakkındaki bu bilgiyi saklayamadığımızdan daha fazla alana ihtiyaçları var. Ayrıca, verileri depolamak için erişilebilir tüm bölümleri geçtiklerinden emin olmaya çalışırlar, buna aşınma dengeleme denir .

Bu, tipik olarak eski verilerin hala sürücüde bir yerde olduğu anlamına gelir ! Erişilebilir tüm blokları yeni sildiyseniz, tüm gizli bloklar hala verilerin oldukça yeni bir sürümünü tutar. Buna, verilerinizin korunmasını istediğiniz bir saldırganın erişip erişemeyeceği, farklı bir sorudur.

Yeterince yeni bir dağıtımınız varsa ve USB sürücüsü bir flash sürücü olduğunu gösterecek şekilde programlanmışsa, yukarıda bahsettiğimiz bölümü sildiğimiz blkdiscardtemel TRIMişlemi kullanabilir . Ayrıca görünmeyen gizli verilerin bile donanım tarafından tamamen silindiğinden emin olmak için ek bir bayrağa sahiptir:

# blkdiscard -s /dev/myusbdevice

-s, --secure Güvenli bir atma gerçekleştirin. Güvenli bir atma, atılan blokların, muhtemelen çöp toplama işlemi tarafından oluşturulan tüm kopyalarının da silinmesi gerektiği haricinde, normal bir atma ile aynıdır. Bu cihazdan destek gerektirir.

Yukarıda gösterildiği gibi, mutlaka çalışmayacak. Operation not supportedÇekirdeğiniz, yardımcı programlarınız veya USB ağ geçidi çipini (flaş denetleyicisinin USB üzerinden bir sürücüye benzemesine izin verir) alırsanız pass TRIMkomutunu desteklemez . (Flaş kontrol cihazı hala segmentleri kendi başına silebilmelidir). Sürücünüzün satıcısı tarafından destekleniyorsa, bu en güvenli yoldur.

Eski verilerin daha az bir yerde dolaşmasına izin verdiğinizden emin olmanın daha az güvenli bir yolu, mümkünse rastgele değerlerle birkaç kez üzerine yazmaktır.

Neden rastgele soruyorsun? USB sürücüsünün çok akıllı bir şekilde yapıldığını ve bir sektörü temizlemek istediğinizi algıladığınızı hayal edin ve bir bitmapte bu sektörün artık ücretsiz olduğu ve daha sonra temizlenmesi gerekebileceğini değiştirdi. Bu, sıfır yazmalarını hızlandırabileceği anlamına geldiğinden, daha verimli görünen bir pendrive yapar , değil mi? Sürücünün bunu yapıp yapmadığını, söylemesi zor.

En uçta sürücü, başlattığınız başlangıçtan ne kadarını hatırlayabiliyordu ve saklaması gereken tek şey, bunu yapmak için yaklaşık 4 baytlık bilgi olduğunu ve yok etmek istediğiniz verilerden hiçbir şeyi temizlememesi. Hepsi çok hızlı görünebilsin diye.

Verilerin üzerine rastgele, öngörülemeyen değerlerin üzerine yazıyorsanız, bu iyileştirmeler mümkün değildir. Bu nedenle, sürücünün flash fişlerinin içinde depolanan verilerin sona erdiğinden emin olması gerekir. Ancak, daha önce kullanılmış olan sektörlerden bazılarının hala eski verilerinizle birlikte bulunmadığını yine de ekarte edemezsiniz, ancak sürücü normalde erişilemediğinden, henüz silmek için önemli sayılmadı. TRIMBunu yalnızca gerçek komut garanti edebilir.

Üzerine yazma işlemini rasgele değerlerle otomatikleştirmek için aşağıdakileri kullanarak aramak isteyebilirsiniz shred:

# shred -vzn88 /dev/myusbdrive

Kullanılan seçenekler:

  • -v ilerlemesini göstermek için
  • -z son aşamada sıfırlamak
  • -n8, 8 rasgele üzerine yazma işlemi yapar

Mümkünse, hem kullanımı blkdiscardve shredeğer blkdiscard -ssürücünüze tarafından destekleniyor olmasına rağmen, optimal çözüm yok ama bir yapmaya zarar veremezler shredfirmware hataları ekarte etmek önceden.

Oh, ve temizlemeye çalıştığınız cihazı daima üç kez kontrol edin! dmesg, en son takılan cihazın ne olduğunu görmeye yardımcı olabilir ve ayrıca ls -alcihaz düğümü numaraları için bile temizlemek istediğiniz cihaz adını ve blkidçıkış yapmak için hangi bölümlerin mevcut olabileceğini görmek için çıktıyı kontrol etmekte fayda var temizlemek istiyorum

Bu komutları hiçbir zaman kullanmayacağınız bir dahili sürücüde kullanmayın - blkdiscardyalnızca yarıiletken sürücülerde çalışır, ancak veri kaybetmeyi denemez!

Teknoloji ilerledikçe verileri güvenli bir şekilde temizlemenin başka yolları da olabilir.

Bahsedilen diğer bir yol, komutlarla SECURITY ERASEverilebilecek ATA komutudur hdparm. Benim tecrübeme göre, flash sürücülerde gerçekten desteklenmiyor. Kurumsal sabit sürücüler için tasarlanmıştır ve özellik her zaman en düşük maliyetli depolama aygıtlarında uygulanmaz.

TRIM/ DISCARDOperasyon daha çok daha yeni SECURITY ERASEkomuta ve hatta ucuz USB sürücüler de, uygulanmakta olan çok daha yüksek bir şansı var, bu yüzden flaş özelliklerine yanıt olarak oluşturuldu, ama yine de her yerde değil. Bir USB dongle'daki bir SD / mikro SD kartı silmek ve blkdiscarddesteklenmediğini bildirmek istiyorsanız, farklı bir dongle / kart okuyucusu denemek ve / veya doğrudan SD / MMC yuvası olan bir makinede yapmak isteyebilirsiniz .


Son bilgiler için teşekkür ederim. blkdiscardDebian Jessie'de ve Ubuntu'nun en yeni iki sürümünde yer alıyor, ancak Ubuntu LTS 14.04'te değil. 2.23 blkdiscardpaket util-linuxsürümüne eklendi .
RobertL

@Zhenech'in başka bir yorumdaki çözümü blkdiscardkarşılaştırdığını biliyor musunuz (özellikle link: ata.wiki.kernel.org/index.php/ATA_Secure_Erase ). hdparm
RobertL

Bunun flash sürücüler için de geçerli olup olmadığından emin değilim, ancak bu howtogeek.com/234683/…
hhaslam11

1
@RobertL Eşit, kötü bir şekilde. Çoğu ucuz flash sürücü ne ATA Secure Erase, ne de TRIM kullanır, bu nedenle her iki yöntem de başarısız olur.
duskwuff

27

Bunun gerçekten sorunuza bir cevap olmadığını fark ettim, ancak en basit yöntem sürücüyü fiziksel olarak imha etmektir (genellikle bir balyozla tekrar tekrar kırmak hile yapar, ancak endüstriyel parçalama veya yakma da seçeneklerdir). Verilerin kurtarılamayacağından emin olmak için güvenlik konusunda yeterince endişeliyseniz, bu verilerin değeri muhtemelen sürücünün maliyetinden çok daha fazladır ve fiziksel yöntem ucuz ve güvenilirdir.


5
Ucuz, değiştirilebilir bir flash sürücü ise, kesinlikle fiziksel yıkım ile gidin. Bir çekiç kullanıyorsanız, asıl depolama yongasını aldığınızdan emin olun. Birkaç hafta önce eğlenmek için eski bir flash sürücüyü açtım ve fiziksel hacminin çoğu aslında hava ve sandıktı.
Blacklight

1
Cevabımın yanı sıra, tamamen katılıyorum - onları ssh erişimi aracılığıyla parçalara ayırmak çok zor :) Bu dongle'ların veri depolaması için ne kadar güvenilmez olduğu göz önüne alındığında, aslında aynı verilerden kurtulmaları şaşırtıcı bir şekilde zor.
chexum

Kabul edildi - Verilerin kurtarılamaz olması sizin için önemliyse, fiziksel imha tek seçenek. Verilerin ticari değeriyle karşılaştırıldığında, en pahalı sürücüler bile o kadar önemli değil. Bu önemli değilse , neredeyse her silme / üzerine yazma 'yeterince iyidir'.
Sobrique

1
Bu yöntem sadece en etkili değil aynı zamanda en eğlenceli olanıdır. Bir balyoz kullanma ve parasını alma fırsatını asla kaçırmayın.
zetetic

2

Kullanılabilir güvenli silme işlevlerinin hemen hemen tamamı, bilgisayarın dosya için kullanılan blokların fiziksel konumlarını [1] belirleyebildiği ve aynı blokların üzerine yazabildiği manyetik medyayı döndürmek için tasarlanmıştır. Katı hal depolama denetleyici yongaları, verinin fiziksel konumunu sistemden soyutlar ve hareket ettirmeyi sever.

Sorunuz gerçekten verilerinizden sonra kimin gittiğine bağlı. Rastgele kayıp veya gündelik hırsızlık konusunda endişeleriniz varsa normal bir format iyi olacaktır. Yüksek motive edici, teknik açıdan yetkin bir kullanıcının emrinde [2] önemli kaynaklara sahip olma konusunda endişe duyuyorsanız, sürücüyü yakınız ve yeni bir sürücüye 10 $ harcayınız.

  1. evet, mantıksal blok eşleme var. Ancak mantıksal A bloğu daima fiziksel B bloğuna eşlenir.

  2. bu kişi sürücüyü açar, denetleyiciyi atlayarak doğrudan bellek çipini karttan çeker ve flash belleği doğrudan okurdu.


1

Bildiğim en basit ve en hızlı yol tüm sürücüye sıfır (0) yazmaktır:

dd if=/dev/zero of=/dev/sdX

/dev/sdXbaşparmak sürücünüzün aygıt düğümü nerede ?

Bazıları, daha fazla yineleme ve diğer desenlerle daha ayrıntılı bir işlem önerebilir. Bunu yapmak için belirli yardımcı programlar mevcuttur. GNU coreutils paketi, shredözellikle bu amaç için komutu içerir . badblocks -wE2fsprogs paketinin bir parçası olan birçok kişi de kullanır . FreeBSD'de shredyardımcı program aranır gshredve /usr/ports/sysutils/coreutilsya /usr/ports/sysutils/fileutilsportlarda ya da portlarda mevcut olmalıdır .


Bu güvenli bir temizlik yapmak için gerçekten yeterli değil. En az 20 seri rastgele malzeme dizisine gidecektim. Hepsinden iyisi, örneğin parçalamak gibi güvenli silme için bir araç kullanırdım. Bazı insanlar bunun anlamsız olduğunu ve sıfırlamanın yeterli olduğunu söylemesine rağmen - buna güvenmezdim.
monsune

4
@ monsune Bu sadece bir şehir efsanesi. İken bazı standartlar gerektiren herhangi pratik bir saldırı olacaksa görünmüyor oluyor.
Gilles 'SO- kötülük

Flash sürücüler, flaş hücrelerini çok hızlı tahrip etmemek için aşınma dengeleme kullanır. Şöyle düşünün: Sürücüde 1200 hücre var ancak yalnızca 1000 olduğunu söylüyor ve denetleyici gerçekte hangi hücreye yazacağını seçtiğini söylüyor. Bu yüzden bir dd'den sonra 1000 hücreyi sildiniz ancak 200 rezervi değil ve gerçek flaşı rezervsiz bir kontrol cihazına takarak okunabilir. DD'den sonra güvenli bir silme işlemi öneririm, ancak tüm flaş medya bunu desteklemiyor.
zhenech

@zhenech, "güvenli silme" nedir?
RobertL


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.