Wipe NVMs /SATA SSD hogyan

Sziasztok!

Egy HP laptop NVMe-s SSD-t kell szakszerűen törölnöm, ezt a HP bejegyzést találtam

Industry-standard disk sanitation

To securely erase all user data from an SSD and restore the drive to a fresh-out-of-box
(FOB) performance state, the National Institute of Standards Technology (NIST) supports
the following commands that meets the minimum guideline for media sanitization of
SSDs (NIST SP800- 88 Rev. 1).

Block Erase is a function enabled only in SATA SSDs. Using the ATA command BLOCK
ERASE EXT. Block Erase will instruct the SSDs controller to apply an erase voltage to all

NAND cells of the device (including any cells which form blocks that have been retired,
re-allocated, involved in garbage collection or over-provisioning or are part of a reserved
pool of spare blocks). This functionality provides a very fast, complete and robust
erasure of the SSD.

Ez a Secure Erase-t megcsináltam a BIOS-ban, mondta, hogy kb 8 perc lesz, de végzett 1 mp alatt. Így aztán kétségeim vannak, hogy tényleg megtörtént-e, plusz itt SATA SSD-től van szó nem NVMe-ről.

Szóval hogyan is kellene ezt csinálni?

Hozzászólások

Linux live CD-ről bootolás, shred parancs használata?

trey @ gépház

Másolj rá egy halom érdektelen adatot, amíg be nem telik :)

Szerkesztve: 2022. 08. 29., h – 19:00

Futtatni tudsz fstrim-et is (ez általában az util-linux csomagban van, és szinte minden disztrón fent van alaptelepítésben), bár ahhoz fájlrendszernek is kell lennie rajta, és fel is kell lennie csatolva. Hasonló a blkdiscard parancs, ahhoz nem kell fájlrendszer, meg felcsatolás, közvetlenül az eszközön működik. SATA/AHCI SSD-t a hdparm-mal (hdparm csomagot kell feltenni hozzá) tudsz secure erase alá vetni, NVMe SSD-t az nvme format -s paranccsal, ehhez az nvme-cli csomagot kell telepíteni, ha nem lenne fent. Linux alatt értve. Windowson meg lehet próbálni a gyártó saját programját, azokban is szokott lenni secure erase funkció, esetleg még játszik az is, hogy egy üres fájlrendszert létrehozol rajta, és azt a beépített defrag-gal végigszántod. A Windows felismeri, hogy SSD-ről van szó, nem tényleges defrag-ot hajt végre rajta, hanem végigtrimezi a szektorokat, ami alapállapotba állítja a NAND cellákat, magyarán törli, de ennek a módszernek a hátránya, hogy ez a tartalék/overprovisioning terüeltet nem törli, csak az aktívan használható user-területet, de szerintem ez is elég jó a gyakorlatban.

Amit idéztél a nyitó hozzászólásban, a BLOCK ERASE ATA parancs, az csak SATA/AHCI SSD-khez jó, az NVMe-ken máshogy hívják, más protokoll teljesen, más parancsokkal.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

A 8 perc mindenképp baromság. Legalábbis normál méretű, konzumer SSD-n, értsd: 16 MB – 2 TB között. Én még nem láttam olyan SSD-t, amin a teljes törlés, teljes TRIM/discard, teljes secure erase tovább tartott volna 1 percnél, de kisebb SSD-ken meg egyenesen néhány másodperc csak. Vigyázz, az SSD gyors, törléskor nem kell a vezérlőnek kiolvasni meg bemeneti adatokat bufferelni, meg eleve több chip között párhuzamosítja a műveleteket a vezérlő, stb., így baromi gyorsan végez. Ez nem HDD-d, hogy natív írási sebességgel végig kelljen írni. Igen, elsőre meglepő, hogy ilyen gyors, az ember azt hiszi, hogy valami humbug csak, ilyen gyors nem lehet, pedig de.

Sőt, azok az SSD-k, amik tudnak hardveres öntitkosítást, azok tudnak még egy ennél is gyorsabb, quick secure erase-t, amikor csak a meghajtó elején lévő titkosított vagy titkosítatlan titkosítási kulcsot (amivel az egész meghajtó automatikusan titkosítva van, akkor is, ha nem akarod) lecserélik egy másikra, ezzel csak 1-2 NAND cellát írnak át, a többi adat onnan használhatatlan lesz, és máris megvan a törölt meghajtód, mintha végigírtad volna /dev/random-mal. Ezzel kb. 0,00001 mp. alatt végeznek természetesen.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Szerkesztve: 2022. 08. 30., k – 16:56

a már említett 'blkdiscard -s' sokkal jobb út, és ez is 'gyors'.

De ha számodra csak azért gyanús mert gyors... az azért lehet, mert a régi HDD-ket csak lassan lehetett wipe-olni.

Gyakorlatban többszöri szektoronkénti újraírással.

 

Az újraírás, mint módszer nem működik az SSD-k esetében, mert a firmware nem enged 'direkt' hozzáférést a valódi szektorokhoz.

(+ lassú is, és 'elhasználja' a diszkedet)

 

Ha hiszel - és bízol - a gyártóban, akkor a beépített 'secure erase' elegendő neked.

 

Ha nem, akkor magad csinálod, pl blkdiscard, vagy bármelyik hasonló szoftverrel. Természetesen, itt is nagyban függ az eredmény a gyártótól, hiszen ezek egy firmware-ben implementált megoldást triggerelnek (pont úgy ahogy a BIOS-is)

 

Ha előre gondolkodtál, és full disk titkosítást használtál, akkor elég 'elfelejteni' a jelszót és/vagy felülírni a diszk elejét, ahol a titkosításra vonatkozó dolgokat tárolja.

 

Ha ez sem elég tuti, akkor simán ne adj ki a kezedből használt adattároló eszközt. ;)

 

szerintem.

Én nem javasolnám az ilyen-olyan sima blokk műveletes irogatást, kutyagumit nem érnek, egy rakás wear leveling belső memória van egy mai ssd-n, ami nem érhető el az oprendszer szintjéről.

Egy normális ssd alapból titkosit minden adatot, akkor is, ha nem állitasz be bios szinten jelszót hozzá, ehhez generál egy jó hosszú véletlen kódot, azzal kódol mindent, majd ezt a kódot - bios jelszó hijján - cleartext lementi egy adott helyre. (ha beállitasz jelszót, akkor ezt nem cleartext menti, hanem a bios jóelszóval elkódolva, innentől lesz biztonságos)

Ezt a kis kitérőt csak azért irtam, hogy az 1 mp-es törlés önmagában semmit nem jelent, normális esetben pontosan ennyi egy normális ssd törlése, teljesen mindegy, hogy hány TB-os, mivel csak azt a párszáz byte-os kulcsot kell törölni és onnantól az összes adat visszanyerhetetlen róla, hiába van ott, mivel titkositva van.

És pontosan ezt csinálja a gyári windows-os szoftver, ha secure erase-t kérsz ill. van egy elfelejtett jelszó is, mikor is ezt a leátrolt kulcsot törli ki és újra használható az eszköz csak éppen "üres" lesz.

Egy normális ssd alapból titkosit minden adatot, akkor is, ha nem állitasz be bios szinten jelszót hozzá, ehhez generál egy jó hosszú véletlen kódot, azzal kódol mindent, majd ezt a kódot - bios jelszó hijján - cleartext lementi egy adott helyre. (ha beállitasz jelszót, akkor ezt nem cleartext menti, hanem a bios jóelszóval elkódolva, innentől lesz biztonságos)

 

Ez szerintem(!) inkább akkor igaz, ha self-encrypting drive (SED) firmware van rajta. Ha nem SED-es a drive, nem biztos h. eltitkosítva van rajta az adat (még ha a titkosító kulcs a <EMPTY STRING> is lenne). Ezeket mind SATA emlékek alapján írom. Vagy NVME-n már mandatory a SED működésű firmware?

PASS=$(tr -cd '[:alnum:]' < /dev/urandom | head -c128)

openssl enc -aes-256-ctr -pass pass:"$PASS" -nosalt </dev/zero | dd obs=64K ibs=4K of=$DEVICE oflag=direct status=progress