Effacer de manière sécurisée un disque dur
Table des matières
Cet article présente différentes façons d'effacer un disque dur de manière sûre.
Avant toute chose, relever le nom du disque via la commande
Ici, je prendrai comme exemple sdb :
On peut effacer un disque dur avec la commande dd.
On peut utiliser en entrée soit /dev/zero pour n'écrire que des zéros, soit /dev/urandom pour écrire des données aléatoires.
Évidemment, en effaçant avec des zéros, c'est plus rapide, mais moins efficace.
Avec des zéros :
Avec des données aléatoires :
Tout le disque est écrasé quand la commande arrive à la fin :
Relancer la commande autant de fois qu'on souhaite écrire sur le disque, où utiliser une petite boucle for (exemple ici avec 3 fois) :
Si on veut avoir une progression on peut utiliser comme alternative dcfldd ou piper dans pv :
Qui affiche la progression :
Qui affiche la progression :
Cette méthode n'est pas très rapide.
Avec mes tests : 16Mo/s avec des zéros, 12Mo/s avec urandom.
Nwipe est une commande qui efface de manière sécurisée des disques durs en utilisant diverses méthodes.
L'outil s'installe depuis les dépôts de la distribution.
Lancer l'outil avec la commande nwipe.
Naviguer avec les flèches haut et bas pour naviguer entre les disques et appuyer sur espace pour valider le disque à écraser. Le mot "wipe" apparait. On peut sélectionner plusieurs disques.
Une barre d'aide des commandes en bas s'affiche.
M permet de choisir une autre méthode :
Naviguer avec les flèches haut et bas pour changer la méthode (les détails s'affichent sur le volet de droite), espace pour valider le choix. (Ici j'ai choisi ce que j'utilise toujours : Gutmann Wipe
De la même façon, on peux choisir le nombre de fois où on veut effectuer la tâche (avec R), etc ...
Pour débuter l'effacement, on appuie sur S :
On voit ici que c'est rapide avec 95Mo/s, la rapidité maximale du disque dur physique (ou presque).
La commande shred permet d'écrire sur un fichier pour cacher son contenu et l'effacer.
On peut l'utiliser également pour supprimer de manière sécurisée un disque dur.
L'outil est installé par défaut avec la plupart des distributions puisqu'il est inclus dans le paquetage coreutils.
Pour effacer un disque on utilise la commande ainsi
Par défaut, 3 passages sont effecutés.
Un point sur les options :
Si on veut effectuer plus de passages (par exemple 5) on utilise l'option -n :
Voici un exemple de progression :
Introduction
Cet article présente différentes façons d'effacer un disque dur de manière sûre.
Les outils et méthodes
Avant toute chose, relever le nom du disque via la commande
Code BASH :
fdisk -l
Ici, je prendrai comme exemple sdb :
Code BASH :
Disque /dev/sdb : 8 GB, 8589934592 bytes
Avec dd
On peut effacer un disque dur avec la commande dd.
On peut utiliser en entrée soit /dev/zero pour n'écrire que des zéros, soit /dev/urandom pour écrire des données aléatoires.
Évidemment, en effaçant avec des zéros, c'est plus rapide, mais moins efficace.
Avec des zéros :
Code BASH :
dd if=/dev/zero of=/dev/sdb
Avec des données aléatoires :
Code BASH :
dd if=/dev/urandom of=/dev/sdb
Tout le disque est écrasé quand la commande arrive à la fin :
Code BASH :
dd: écriture vers « /dev/sdb »: Aucun espace disponible sur le périphérique
Relancer la commande autant de fois qu'on souhaite écrire sur le disque, où utiliser une petite boucle for (exemple ici avec 3 fois) :
Code BASH :
for i in $(seq 3) do dd if=/dev/urandom of=/dev/sdb done
Si on veut avoir une progression on peut utiliser comme alternative dcfldd ou piper dans pv :
Code BASH :
dcfldd if=/dev/urandom of=/dev/sdb
Qui affiche la progression :
Code BASH :
1280 blocks (40Mb) written.
Code BASH :
cat /dev/urandom | pv | dd of=/dev/sdb
Qui affiche la progression :
Code BASH :
78MiO 0:00:03 [12.4MiB/s] [ <=> ]
Cette méthode n'est pas très rapide.
Avec mes tests : 16Mo/s avec des zéros, 12Mo/s avec urandom.
Avec nwipe
Nwipe est une commande qui efface de manière sécurisée des disques durs en utilisant diverses méthodes.
L'outil s'installe depuis les dépôts de la distribution.
Lancer l'outil avec la commande nwipe.
Naviguer avec les flèches haut et bas pour naviguer entre les disques et appuyer sur espace pour valider le disque à écraser. Le mot "wipe" apparait. On peut sélectionner plusieurs disques.
Code TEXT :
nwipe 0.17 (based on DBAN's dwipe - Darik's Wipe) +---------------- Options -----------------++----------- Statistics -----------+ |Entropy: Linu| Kernel (urandom) ||Runtime: | |PRNG: Mersenne Twister (mt19937ar-cok) ||Remaining: | |Method: DoD Short ||Load Averages: | |Verify: Last Pass ||Throughput: | |Rounds: 1 (plus blanking pass) ||Errors: | +------------------------------------------++----------------------------------+ +---------------------------- Disks and Partitions ----------------------------+ | | | [ ] 1. /dev/sda - ATA VBOX HARDDISK (32212254720 bytes) | | > [wipe] 2. /dev/sdb - ATA VBOX HARDDISK (8589934592 bytes) | | [ ] 3. /dev/mapper/centos_atelier--coagul-swap - Linu| device-mapper (li| | [ ] 4. /dev/mapper/centos_atelier--coagul-root - Linu| device-mapper (li| |ar) (29490151424 bytes) | | | | | | | | | | | | | | | +------------------------------------------------------------------------------+ Ctrl-C=Quit S=Start M=Method P=PRNG V=Verify R=Rounds B=Blanking-pass Space=Sele
Une barre d'aide des commandes en bas s'affiche.
M permet de choisir une autre méthode :
Code BASH :
nwipe 0.17 (based on DBAN's dwipe - Darik's Wipe) +---------------- Options ----------------q++----------q Statistics ----------q+ |Entropy: Linu| Kernel (urandom) ||Runtime: | |PRNG: Mersenne Twister (mt19937ar-cok) ||Remaining: | |Method: DoD Short ||Load Averages: | |Verify: Last Pass ||Throughput: | |Rounds: 1 (plus blanking pass) ||Errors: | +------------------------------------------++----------------------------------+ +-------------------------------- Wipe Method ---------------------------------+ | | | Quick Erase syslinux.cfg: nuke="nwipe --method gutmann" | | RCMP TSSIT OPS-II Security Level: High (35 passes) | | DoD Short | | DoD 5220.22-M | | > Gutmann Wipe | | PRNG Stream | | | | The American Department of Defense 5220.22-M short wipe. | | This method is composed of passes 1,2,7 from the standard wipe. | | | | | | | +------------------------------------------------------------------------------+ J=Up K=Down Space=Select
Naviguer avec les flèches haut et bas pour changer la méthode (les détails s'affichent sur le volet de droite), espace pour valider le choix. (Ici j'ai choisi ce que j'utilise toujours : Gutmann Wipe
De la même façon, on peux choisir le nombre de fois où on veut effectuer la tâche (avec R), etc ...
Pour débuter l'effacement, on appuie sur S :
Code BASH :
nwipe 0.17 (based on DBAN's dwipe - Darik's Wipe) +---------------- Options -----------------++----------- Statistics -----------+ |Entropy: Linux Kernel (urandom) ||Runtime: 00:00:18 | |PRNG: Mersenne Twister (mt19937ar-cok) ||Remaining: 00:55:26 | |Method: Gutmann Wipe ||Load Averages: 0.89 0.30 0.17 | |Verify: Last Pass ||Throughput: 762160 KB/s | |Rounds: 1 (plus blanking pass) ||Errors: 0 | +------------------------------------------++----------------------------------+ +------------------------------------------------------------------------------+ | | | /dev/sdb - ATA VBOX HARDDISK | | [00.40%, round 1 of 1, pass 1 of 35] [writing] [95270 KB/s] | | | | | | | | | | | | | | | | | | | | | +------------------------------------------------------------------------------+ B=Blank screen, ctrl-c=Quit
On voit ici que c'est rapide avec 95Mo/s, la rapidité maximale du disque dur physique (ou presque).
Avec shred
La commande shred permet d'écrire sur un fichier pour cacher son contenu et l'effacer.
On peut l'utiliser également pour supprimer de manière sécurisée un disque dur.
L'outil est installé par défaut avec la plupart des distributions puisqu'il est inclus dans le paquetage coreutils.
Pour effacer un disque on utilise la commande ainsi
Code BASH :
shred -zvf /dev/sdb
Par défaut, 3 passages sont effecutés.
Un point sur les options :
- -z : ajoute des zéros à la fin de l'opération d'effacement
- -v : affiche la progression de l'opération (mode verbeux)
- -f : force les permissions si nécessaire
Si on veut effectuer plus de passages (par exemple 5) on utilise l'option -n :
Code BASH :
shred -zvf -n 5 /dev/sdb
Voici un exemple de progression :
Code TEXT :
shred: /dev/sdb : passe 1/6 (random)… shred: /dev/sdb : passe 1/6 (random)…35MiB/8,0GiB 0 % shred: /dev/sdb : passe 1/6 (random)…70MiB/8,0GiB 0 % shred: /dev/sdb : passe 1/6 (random)…103MiB/8,0GiB 1 % shred: /dev/sdb : passe 1/6 (random)…139MiB/8,0GiB 1 % shred: /dev/sdb : passe 1/6 (random)…225MiB/8,0GiB 2 %