Par Adrien Ferron / lacapsule.org / Fédération régionale des reconditionneurs bretons OGO 2024
[TOC]
La plupart (tous?) Les SSD sont chiffrés par conception. Ce chiffrement n'est pas destiné à sauvegarder vos données au sens traditionnel du terme. Le seul but du chiffrement est de permettre un effacement de toutes les données en supprimant simplement la clé de chiffrement et en laissant derrière elle les données chiffrées. C'est pour cette raison que l'effacement est si rapide.
Il est avant tout nécessaire de connaître le type du support afin de choisir le bon utilitaire à utiliser pour le traiter.
Un bon utilitaire à utiliser pour se faire de par sa simplicité, sa rapidité et son efficacité, est lsscsi
Pour l'installer :
sudo apt update
sudo apt upgrade
sudo apt install lsscsi
Une fois installé, nous pouvons tester sa bonne installation en tapant la commande suivante :
sudo lsscsi
Le retour de cette commande doit ressembler à peu près au suivant :
[0:0:0:0] disk ATA ST1000LM024 HN-M 0001 /dev/sda
[N:0:2:1] disk SAMSUNG MZVLW256HEHP-000L7__1 /dev/nvme0n1
Si ce n'est pas le cas, la commande a été mal orthographiée, le paquet n'est tout simplement pas présent ou encore aucun disque n'est détecté.
Afin de manipuler les disques ATA/PATA/SATA, il sera nécessaire d'utiliser l'utilitaire hdparm
Installer hdparm :
sudo apt update
sudo apt upgrade
sudo apt install hdparm
Vérifier la présence du paquet :
sudo hdparm -h
Le retour de cette commande doit être un ensemble d'options définies ligne par ligne ainsi qu'un exemple d'utilisation. Si ce n'est pas le cas, la commande a été mal orthographiée ou le paquet n'est tout simplement pas présent.
Afin de manipuler les disques NVME, il sera nécessaire d'utiliser l'utilitaire nvme-cli
Installer nvme-cli :
sudo apt update
sudo apt upgrade
sudo apt install nvme-cli
Vérifier la présence du paquet :
sudo nvme -h
Le retour de cette commande doit être un ensemble d'options définies ligne par ligne ainsi qu'un exemple d'utilisation. Si ce n'est pas le cas, la commande a été mal orthographiée ou le paquet n'est tout simplement pas présent.
Il sera nécessaire d'installer le paquet smartmontools
sudo apt update
sudo apt upgrade
sudo apt install smartmontools
Par la suite, il est possible d'obtenir l'état S.M.A.R.T. du support par la commande :
sudo smartctl -a /dev/xxx
Ce qui doit donner un résultat à peu près semblable au suivant :
=== START OF INFORMATION SECTION ===
Model Number: SAMSUNG MZVLW256HEHP-000L7
Serial Number: S35ENX0K349187
Firmware Version: 4L7QCXB7
PCI Vendor/Subsystem ID: 0x144d
IEEE OUI Identifier: 0x002538
Total NVM Capacity: 256 060 514 304 [256 GB]
Unallocated NVM Capacity: 0
Controller ID: 2
NVMe Version: 1.2
Number of Namespaces: 1
Namespace 1 Size/Capacity: 256 060 514 304 [256 GB]
Namespace 1 Utilization: 63 449 567 232 [63,4 GB]
Namespace 1 Formatted LBA Size: 512
Sur disque SATA, la commande suivante retourne l'ensemble des informations du support :
sudo hdparm -I /dev/sdx
Exemple de retour :
Security:
Master password revision code = 65534
supported
not enabled
not locked
not frozen
not expired: security count
supported: enhanced erase
4min for SECURITY ERASE UNIT. 8min for ENHANCED SECURITY ERASE UNIT.
Sur disque NVME, la commande suivante retourne l'ensemble des informations du support :
sudo nvme id-ctrl /dev/nvme0nX
Exemple de retour :
NVME Identify Controller:
vid : 0x144d
ssvid : 0x144d
sn : S35ENX0K349187
mn : SAMSUNG MZVLW256HEHP-000L7
fr : 4L7QCXB7
rab : 2
ieee : 002538
...
Le site beta.bios-pw.org est conçu pour aider à effacer les mots de passe inconnus des BIOS. Cela peut éviter d'avoir recours à un flashage intégral du microprogramme interne.
Lorsqu'un mot de passe bloque l'accès au support, un code est délivré dans le message d'erreur. Il sera alors nécessaire de reporter ce code dans le champs d'entrée présent sur le site beta.bios-pw.org.
Ceci fait, vous obtenez le code de déblocage à reporter dans le champs d'entrée de la machine bloquée.
NB: le clavier est en QWERTY et il sera préférable de valider la frappe avec ctrl+enter.
Dans certains cas, il sera nécessaire de débrancher la pile setup afin de vider la ROM de sa configuation et ainsi réinitialiser le mot de passe protégeant l'accès au BIOS.
Dans d'autres cas, l'extraction de la pile ne suffit pas car la configuration est stocké dans une puce EEPROM. Il s'agit d'une mémoire non volatile utilisée dans les dispositifs qui doivent contenir de petites quantités de données dans un circuit.
Il sera donc nécessaire de réaliser un court-circuit entre deux pattes de la puce. Ceci peut être réalisé à l'aide d'un outil métallique fin, cependant, cette technique est à haut risque car en cas de dérapage, il est possible de 'briquer' le matériel.
Cette technique nécessite donc certaines compétences en électronique et en programmation car en cas d'échec, il sera obligatoire de changer certains micro-composants, parfois même en effectuant une reprogrammation bas niveau.
Pour effectuer une reprogrammation bas niveau ou flash de la puce, il sera nécessaire d'utiliser un CH341A en direct sur la puce ou en dessoudant celle-ci afin de la positionner sur le socket du CH341A.
Assurez-vous de bien choisir votre CH341A !
Il sera nécessaire :
- d'installer les drivers
- de sauvegarder la configuration actuelle
- de trouver la bonne version du BIOS
- de remplir la puce d'octets vides
- d'injecter la bonne version du BIOS dans la puce
Si le disque est frozen, vous devriez obtenir la sortie suivant via la commande sudo hdparm -I /dev/sdx
Security:
Master password revision code = 65534
supported
not enabled
not locked
frozen
not expired: security count
supported: enhanced erase
4min for SECURITY ERASE UNIT. 8min for ENHANCED SECURITY ERASE UNIT.
il faudra utiliser les commandes suivantes :
sudo chown $USER:$USER /sys/power/state
Cette commande permettra d'obtenir les droit sur state
Il sera ensuite nécessaire de forcer la mise en veille pour sortir le support du modefrozen
:
sudo echo -n mem > /sys/power/state
afin de sortir le système de veille, il sera souvent nécessaire d'appuyer sur le bouton d'alimentation de la machine.
Si vous avez accès au disque et qu'il n'est pas gelé, nous pouvons alors lancer le protocole suivant :
sudo hdparm --user-master u --security-set-pass PASS /dev/sdX (ajouter un mot de passe)
sudo hdparm --user-master u --security-erase PASS /dev/sdX (effacer le mot de passe)
sudo hdparm --user-master u --security-erase-enhanced p /dev/sdX (si supporté par le disque)
sudo hdparm --user-master m --security-disable PASS /dev/sdX (désactiver le mot de passe)
sudo dd if=/dev/sda bs=1M count=5 (lecture des premiers bits)
Nous pourrons valider l'effacement si les résultat de cette commande donnent tous 5+0 de cette manière :
5+0 records in
5+0 records out
5242880 bytes (5.2 MB, 5.0 MiB) copied, 0.000025 s, 209 MB/s
sudo nvme format /dev/nvmeXnY --ses=2 (Si le disque prend en charge crypto-erase)
sudo nvme format /dev/nvmeXnY --ses=1 (Si le disque ne prend pas en charge crypto-erase)
Vérification
sudo nvme list
Cette commande doit retourner une liste n'affichant pas le support effacé. L'absence du support dans la liste valide son effacement.
Vérifions s'il y a une HPA (zone protégée par l'hôte). Il s'agit d'une zone protégée qui ne sera pas effacée si nous écrasons l'ensemble du disque.
sudo hdparm -N /dev/sdX
Nous verrons quelque chose comme ceci si la HPA est désactivée:
/dev/sdX:
max sectors = 1565152896/1565152896, HPA is disabled
Sur le côté droit, nous avons la limite réelle du secteur matériel du disque, sur le côté gauche, nous voyons la valeur fixée pour l'HPA. Ici, les nombres sont les mêmes qui indiquent que HPA est désactivé.
Que faisons-nous donc si les chiffres ne correspondent pas ?
Nous modifions la valeur par rapport au nombre maximal réel de secteurs.
sudo hdparm –N 1565152896 /dev/sdx
Il est à noter que cela n'est pas permanent et qu'il sera restauré après le démarrage. Utilisation :
sudo hdparm –N p1565152896
si vous voulez rendre cela permanent.
Pour voir le DCO, utilisez la commande HDPARM suivante.
sudo hdparm --dco-identify /dev/sdX
Le fabriquant utilise DCO pour définir les modes de transfert de données admissibles (MDMA, UDMA), la taille réelle du lecteur (secteurs max), et les commandes ATA/SATA qui peuvent être désactivées.
Si vous voulez essayer de remettre le DCO par défaut, vous pouvez utiliser la commande HDPARM suivante:
sudo hdparm --dco-restore /dev/sdX
Selon les instructions, vous ajoutez le commutateur suivant "J'accepte les conséquences":
sudo hdparm --yes-i-know-what-i-am-doing --dco-restore /dev/sdX
En cas d'erreur sb[]array, il convient de bien identifier le périphérique et de télécharger l'outil suivant :
sudo apt update
sudo apt upgrade
sudo apt install sg3-utils
Nous pourrons ensuite convertir le code héxa en anglais afin de mieux comprendre l'erreur et trouver de l'aide plus facilement :
sudo sg_decode_sense [le code hexa]
Ceci rendra le code erreur compréhensible.