Czy istnieje jakiś szybszy sposób niż losowy / dev / [u]? Czasami muszę robić takie rzeczy jak
cat / dev / urandom> / dev / sdb
Losowe urządzenia są „zbyt” bezpieczne i niestety zbyt wolne na to. Wiem, że istnieją wipe
i podobne narzędzia do bezpiecznego usuwania, ale przypuszczam, że istnieją również pewne wbudowane środki do tego w Linuksie.
Odpowiedzi:
Jeśli chcesz wykonać „bezpieczne” usunięcie dysku twardego (lub pliku), powinieneś spojrzeć na narzędzie do niszczenia.
Jak podkreślają poprzednie plakaty, losowe urządzenia / dev / * mają być używane jako źródło małych porcji losowych danych.
źródło
Niestety Linux ma złą implementację urandomu. Możesz użyć aes256-ctr z losowym kluczem i uzyskać kilkaset megabajtów pseudolosowości na sekundę, jeśli twój procesor obsługuje AES-NI (przyspieszenie sprzętowe). Z niecierpliwością czekam na bezmyślne przejście na nowoczesne podejście.
Szczeniak robi 1,0 GB / s na moim pudełku (w porównaniu do 14 MB / s / dev / urandom). Używa urandom tylko do utworzenia losowego hasła, a następnie wykonuje bardzo szybkie szyfrowanie / dev / zero przy użyciu tego klucza. To powinien być kryptograficznie bezpieczny PRNG, ale nie dam gwarancji.
źródło
pv
aby uzyskać ładny wskaźnik postępu.openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero | pv -pterb > /dev/sdb
.pv
zaleceń, można by rurapv -pterb -s $(blockdev --getsize64 /dev/sdb) >/sdb
abypv
pokazać postęp w kierunku ukończenia zapisu.W szybkim teście pod Ubuntu 8.04 na Thinkpad T60p z procesorem T2500, 1 GB losowych danych
openssl rand
było 3-4 razy szybszych niż/dev/urandom
. To jest,było około 4 minut, podczas gdy ...
... było nieco ponad 1 minutę.
Nie jestem pewien, czy jest jakaś różnica w jakości losowej, ale jedno z nich prawdopodobnie nadaje się do wycierania w jakości HD.
źródło
Widzę wiele odpowiedzi, które mówią, że używanie losowych danych nie jest ważne. To prawie prawda, jeśli wszystko, co próbujesz zrobić, to wyczyścić dysk, ale nie tak bardzo, jeśli czyścisz go w celu przygotowania do szyfrowania dysku.
Jeśli wypełnisz urządzenie nieprzypadkowymi danymi, umieść na nim zaszyfrowaną partycję, co może powodować problemy. Część dysku, na której przechowywane są zaszyfrowane dane, będzie się wyróżniać od reszty dysku, ponieważ zaszyfrowane dane będą wyglądać losowo, a reszta nie. Można to wykorzystać do ustalenia informacji o dysku kryptograficznym, który mógłby zostać wykorzystany do jego złamania. Poniższy link wyjaśnia teorię, w jaki sposób działają niektóre z bardziej powszechnych ataków i jak się przed nimi bronić (w każdym razie w Linuksie).
Ustawienia szyfrowania dysku twardego w systemie Linux
źródło
Jeśli chcesz bezpiecznie wyczyścić HD, istnieje jedno bardzo potężne narzędzie : DBAN
źródło
Jeśli chcesz skasować ogromne urządzenie blokowe, uważam, że jest bardziej niezawodne w użyciu
dd
i mapowaniu urządzeń zamiast wyjściowego przekierowywania losowych danych. Poniższe będzie mapowane/dev/sdb
na/dev/mapper/deviceToBeErased
szyfrowanie i deszyfrowanie w sposób przezroczysty pomiędzy nimi. Aby wypełnić urządzenie na zaszyfrowanym końcu, zera są kopiowane na stronę tekstową mapera (/dev/mapper/deviceToBeErased
).Zaszyfrowane dane na
/dev/sdb
pewno są nie do odróżnienia od danych losowych, jeśli nie ma poważnego osłabienia w AES. Używany klucz jest pobierany/dev/random
(nie martw się - używa tylko 32 bajtów).źródło
sprawdź frandom
http://billauer.co.il/frandom.html
według mojego testu jest najszybszy
źródło
Im szybsze narzędzie, tym mniej bezpieczny będzie wynik. Generowanie dobrej losowości wymaga czasu.
W każdym razie możesz użyć czegoś takiego jak dd, jeśli = / dev / zero of = / dev / sdb , ale oczywiście nie będzie to przypadkowe, po prostu skasuje się znacznie szybciej.
Inną opcją może być użycie tej metody / sbin / badblocks -c 10240 -s -w -t random -v / dev / sdb , jest szybszy niż urandom, ale badblocks PRNG jest mniej losowy.
źródło
/dev/random
zużywa dużo entropii systemowej, a zatem generuje tylko wolny strumień danych./dev/urandom
jest mniej bezpieczny i szybszy, ale nadal jest ukierunkowany na mniejsze porcje danych - nie ma na celu zapewnienia ciągłego strumienia dużych liczb losowych.Powinieneś zrobić PRNG według własnego projektu i zaszczepić go czymś z
/dev/random
lub/dev/urandom
. Jeśli potrzebujesz go trochę bardziej losowo, wysiewaj go okresowo - co kilka MB (lub niezależnie od długości twojego pliku PRng). Pobieranie 4 bajtów (wartość 32-bitowa) z losowego lub losowego jest wystarczająco szybkie, abyś mógł to zrobić co 1k danych (ponownie ładował twój prng co 1k) i uzyskać bardzo losowe wyniki, idąc bardzo, bardzo, bardzo szybko.-Adam
źródło
Jeśli chcesz szybko wyczyścić dysk twardy, zapisz na nim nielosowe dane. Jest to nie mniej bezpieczne niż używanie losowych danych. Tak czy inaczej, po podłączeniu do komputera nie można odczytać oryginalnych danych. Nadpisywanie danych na dysku twardym: Wielka kontrowersja dotycząca wymazywania pokazuje, że oryginalnych danych nie można odczytać za pomocą mikroskopu.
źródło
Sformatuj za pomocą LUKS i dd na zaszyfrowanym woluminie. Następnie użyj / dev / urandom, aby wyczyścić nagłówek LUKS.
Jeśli masz sprzętową obsługę AES, jest to bardzo szybkie rozwiązanie.
Krótko:
gotowy!
Zobacz mój blog: szybko zapełnij dysk losowymi bitami (bez / dev / urandom)
źródło
Jeśli chcesz skasować dysk twardy, dd nie usuwa zawartości przeniesionych sektorów i jest bardzo powolny, jeśli dysk twardy umiera. Zamiast tego można użyć wbudowanej funkcji wymazywania dysków, która była standaryzowana od dłuższego czasu.
W tym przykładzie kasuję mechaniczny dysk twardy o pojemności 500 GB w zaledwie 102 minuty. Nawet jeśli jest pełna realokowanych sektorów:
Możesz zobaczyć więcej szczegółów na stronie ata.wiki.kernel.org , jednak w ich przykładzie nie użyto opcji --security-erase-ulepszone, co jest konieczne do usunięcia wcześniej wymienionych ponownie przeniesionych sektorów.
źródło
W praktyce prawdopodobnie nie ma potrzeby inicjowania całego dysku z jednego, losowego strumienia.
Możesz utworzyć skrawek losowych danych o niewielkich rozmiarach, a następnie powtarzać je w kółko.
Upewnij się tylko, że ten fragment danych nie jest wielokrotnością normalnego rozmiaru bloku dysku, aby nie dopuścić do nadpisania skorelowanych bloków danych dokładnie tym samym bitem losowych danych. Wielkość porcji, która jest liczbą pierwszą w zakresie ~ 1 MB, powinna być dobra.
Aby zwiększyć bezpieczeństwo, zrób to jeszcze kilka razy, za każdym razem używając innego rozmiaru porcji.
źródło
Narzędzie „niszczenia” jest łatwe i szybkie. Jeśli atrybuty SMART napędu wskazują zero ponownie przydzielonych sektorów, „niszczenie” jest prawdopodobnie wystarczająco bezpieczne.
Jeśli jednak dysk ma ponownie przydzielone sektory, dane dotyczące uszkodzonych sektorów nie zostaną zastąpione. Jeśli uszkodzone lokalizacje zawierały poufne dane przed ich ponownym przydzieleniem, „niszczenie” może nie być wystarczająco dobre. „Złe” sektory można odczytać, resetując mapę alokacji dysku i (wielokrotnie) czytając je.
Możliwość zresetowania mapy alokacji złych sektorów różni się w zależności od producenta i modelu napędu.
źródło
Jeśli wszystko, co chcesz zrobić, to zastąpić dysk, to nie ma znaczenia, czego użyjesz, ponieważ cokolwiek w ogóle pobije wszystko poza laboratorium kryminalistycznym, a ja nie ufałbym niczego, gdyby nie wkurzyć dysku, aby zatrzymać ten poziom zasobów .
Wystarczy użyć nieprzypadkowego źródła, takiego jak wszystkie zera lub zera, lub powtarzającego się wzoru, takiego jak (myślę, że to zadziała)
źródło