Effacement d'un disque

Mise à jour : Debian 10.0 Buster

Trois méthodes d'effacement de disque sont utilisables pour effacer les données d'un disque et les rendre irrécupérables.

Sommaire

1 - Préalable

1.1 - Précautions

L'effacement prévu étant irréversible, il est important avant de démarrer l'opération

1.2 - Identifiant

$ lsscsi 
[2:0:0:0] disk ATA KINGSTON SHSS37A 02.H /dev/sda
[3:0:0:0] disk KINGSTON SHSS37A240G 0223 /dev/sdb
[4:0:0:0] disk WD 1600BEV External 1.05 /dev/sdc
[5:0:0:0] disk USB Flash Disk 1100 /dev/sdd
[N:0:4:1] disk Samsung SSD 970 EVO 250GB__1 /dev/nvme0n1

Dans l'exemple, ci-dessus 5 "disques" sont connectés, relever l'identifiant /dev/xxx du disque à effacer

1.3 - Visualisation

sudo dd if=/dev/sda count=1 bs=1G status=none |hexdump -C
$ sudo dd if=/dev/sdc count=1 bs=1G status=none |hexdump -C
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
40000000

2 - Effacement par recopie

L'effacement par recopie est la méthode préférentielle pour les mémoires Flash connectées par USB, ou lorsque seulement une partition doit être effacée, ou lorsque le disque ne supporte pas la commande "Secure Erase"

$ sudo dd if=/dev/zero of=/dev/sdd bs=512 conv=fdatasync status=progress
$ sudo dd if=/dev/urandom of=/dev/sdd bs=512 conv=fdatasync status=progress

3 - Effacement par suppression de l'en-tête luks

Voir Chiffrage partition

4 - Effacement par Secure Erase

4.1 - Cas d'un périphérique SATA

$ sudo hdparm -I /dev/sda |grep Model
Model Number: KINGSTON SHSS37A480G
$ sudo hdparm -I /dev/sdc |grep -i erase
supported: enhanced erase
54min for SECURITY ERASE UNIT. 54min for ENHANCED SECURITY ERASE UNIT.
$ sudo hdparm -I /dev/sda |grep -i erase
supported: enhanced erase
2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.

Dans les deux exemples, les deux modes d'effacement sont disponibles : le mode standard et le mode avancé

$ sudo hdparm -I /dev/sda |grep frozen
not frozen

S'il est gelé

$ sudo systemctl suspend

puis réveiller le système

Ci-dessous le mot de passe utilisé est secret

$ sudo hdparm --user-master u --security-set-pass secret /dev/sdc
$ sudo hdparm --user-master u --security-erase  secret /dev/sdc

ou bien

$ sudo hdparm --user-master u --security-erase-enhanced secret /dev/sdc 

4.2 - Cas d'un périphérique PCIE

$ sudo aptitude install nvme-cli
$ sudo nvme list
Node SN Model Namespace Usage Format FW Rev
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1 S465xxxxxxx76V Samsung SSD 970 EVO 250GB 1 47,11 GB / 250,06 GB 512 B + 0 B 2B2QEXE7
$ sudo nvme id-ctrl -H /dev/nvme0n1 |grep "mn "
mn : Samsung SSD 970 EVO 250GB
$ sudo nvme id-ctrl -H /dev/nvme0n1 |grep -i "secure"
[2:2] : 0x1 Crypto Erase Supported as part of Secure Erase
$ sudo nvme id-ctrl -H /dev/nvme0n1 |grep -i "Format NVM"
[1:1] : 0x1 Format NVM Supported
$ sudo nvme format /dev/nvme0n1 --ses=1
$ sudo nvme format /dev/nvme0n1 --ses=2

La signification de l'option "--ses=" est indiquée dans l'aide de la commande nvme format :

$ sudo nvme help format
....
-s <ses>, --ses=<ses>
Secure Erase Settings: This field specifies whether a secure erase
should be performed as part of the format and the type of the secure erase operation. The erase applies to all user data, regardless of location (e.g., within an exposed LBA, within a cache, within deallocated LBAs, etc). Defaults to 0.
Value Definition
0 No secure erase operation requested

1 User Data Erase: All user data shall be erased, contents of the user data after the erase is indeterminate (e.g., the user data may be zero filled, one filled, etc). The controller may perform a cryptographic erase when a User Data Erase is requested if all user data is encrypted.
2 Cryptographic Erase: All user data shall be erased cryptographically.
This is accomplished by deleting the encryption key.
3-7 Reserved