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.