Terminal pogryzł człowieka: scrub
Jakiś czas temu poruszałem już kwestię skutecznego zamazywania zawartości nośnika magnetycznego. Wszystko w celu uniemożliwienia skutecznego odzyskania z takiego nośnika danych, którymi nie chcemy się z nikim dzielić. Wydawać by się mogło, że temat został zamknięty – jest program, wymazuje dysk, nadpisuje zawartość, koniec kropka. Jednak dla koneserów to zaledwie początek tematu, bowiem nawet taki niuans jak schemat danych jakimi nadpisujemy nośnik ma znaczenie. Czego przykładem może być program scrub.
Program scrub zainstalujemy wprost z repozytoriów. W czym tkwi całe zamieszanie z tym kasowaniem danych? Jeżeli wierzyć przeróżnym technikom odzyskiwania danych (w tym technikom śledczym), parafrazując klasykę ‘nic nie wiesz, użytkowniku’. Dlatego w celu uzyskania przewagi nad lepiej zorientowanymi od nas, scrub zawiera w sobie kilka algorytmów organizujących nadpisywanie w różnoraki sposób. Do dyspozycji mamy:
- nnsa – U.S. NNSA Policy Letter NAP-14.1-C
- dod – U.S. DoD 5220.22-M
- usarmy – U.S. Army AR380-19
- bsi – German Center of Security in Information Technologies
- gutmann – 35-pass algorithm from Peter Gutmann’s 1996 paper
- schneier – algorithm described in Bruce Schneier’s Applied Cryptography (1996)
- pfitzner7 – Roy Pfitzner’s 7-random-pass method
- pfitzner33 – Roy Pfitzner’s 33-random-pass method
Brzmi abstrakcyjnie? Poczekajcie, to nie koniec:
SCRUB METHODS
nnsa 4-pass NNSA Policy Letter NAP-14.1-C (XVI-8) for sanitizing
removable and non-removable hard disks, which requires
overwriting all locations with a pseudorandom pattern twice and
then with a known pattern: random(x2), 0x00, verify.
dod 4-pass DoD 5220.22-M section 8-306 procedure (d) for sanitizing
removable and non-removable rigid disks which requires
overwriting all addressable locations with a character, its
complement, a random character, then verify. NOTE: scrub
performs the random pass first to make verification easier:
random, 0x00, 0xff, verify.
bsi 9-pass method recommended by the German Center of Security in
Information Technologies (http://www.bsi.bund.de): 0xff, 0xfe,
0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f.
gutmann
The canonical 35-pass sequence described in Gutmann's paper
cited below.
schneier
7-pass method described by Bruce Schneier in "Applied
Cryptography" (1996): 0x00, 0xff, random(x5)
pfitzner7
Roy Pfitzner's 7-random-pass method: random(x7).
pfitzner33
Roy Pfitzner's 33-random-pass method: random(x33).
usarmy US Army AR380-19 method: 0x00, 0xff, random. (Note: identical
to DoD 522.22-M section 8-306 procedure (e) for sanitizing
magnetic core memory).
fillzero
1-pass pattern: 0x00.
fillff 1-pass pattern: 0xff.
random 1-pass pattern: random(x1).
random2
2-pass pattern: random(x2).
old 6-pass pre-version 1.7 scrub method: 0x00, 0xff, 0xaa, 0x00,
0x55, verify.
fastold
5-pass pattern: 0x00, 0xff, 0xaa, 0x55, verify.
custom=string
1-pass custom pattern. String may contain C-style numerical
escapes: \nnn (octal) or \xnn (hex).
Jak widać, algorytmy różnią się ilością zapisywanych danych, ich kolejnością, ułożeniem bitów/bajtów oraz ilością powtórzeń. To ma zagwarantować, że późniejsze próby odtworzenia zawartości, nawet w specjalizowanych laboratoriach będą skrajnie utrudnione. Lecz nie do końca niemożliwe, o czym z radością informują twórcy scruba i w przypadku pełnej ochrony zalecają… Fizyczne uszkodzenie nośnika. Program pozwala na kasowanie pojedynczego pliku, jak też całego wskazanego nośnika/partycji.
A jeżeli nie wiem, czy ten cały ambaras z kasowaniem jest nam do czegoś potrzebny, możemy oczywiście poprzestać na złudnym i zwykłym formacie nośnika.