Lorsque vous essayez d'effacer les SSD en toute sécurité, nous avons plusieurs problèmes:
- Les SSD s'usent après un nombre limité de cycles d'effacement
- Les SSD ont un contrôleur qui mappe dynamiquement les LBA (adresses de bloc logique utilisées par le système pour accéder au disque) aux cellules NVRAM (les cellules de mémoire flash réelles) pour équilibrer l'usure, ce qui signifie dire au disque d'écraser les blocs qui stockaient auparavant un spécifique fichier peut entraîner l'écrasement de tout autre bloc de rechange.
- Les SSD ont un pourcentage notable de capacité de réserve qui est utilisé pour compenser les cellules de stockage mourantes et réduire l'usure. Ils ne sont pas visibles pour le système et peuvent contenir d'anciens fragments de données.
Maintenant, quelles options avons-nous à l'intérieur d'Ubuntu pour effacer en toute sécurité les SSD?
J'ai entendu dire que certains nouveaux SSD devraient pouvoir s'essuyer en toute sécurité, mais comment savoir si mon SSD est capable de cela et comment pourrais-je le déclencher?
Il devrait également y avoir une commande d'effacement sécurisé ATA, comment savoir si elle est prise en charge et comment la déclencher?
Existe-t-il également des moyens d'effacer en toute sécurité uniquement un fichier donné ou uniquement l'espace inutilisé?
Je suppose que faire une sauvegarde de toutes les partitions, essuyer en toute sécurité le disque entier puis restaurer la sauvegarde serait possible mais cela semble trop compliqué et prendrait trop de temps pour être pratique. Existe-t-il d'autres alternatives? Sinon, quels outils puis-je utiliser pour sauvegarder des partitions sans sauvegarder également des fichiers déjà supprimés?
Bien sûr, les outils standard comme shred
ou wipe
ne sont pas utilisables ici pour les points décrits ci-dessus. Ils écrasent simplement un fichier (en écrasant ses clusters de système de fichiers qui sont liés aux LBA qui ne pointent pas constamment sur les mêmes cellules flash en raison du contrôleur de niveau d'usure).
la source
Réponses:
Actuellement, il n'y a aucun moyen d'effacer en toute sécurité des fichiers sur le SSD sans effacer le contenu de tout le lecteur ou accéder au firmware du SSD.
Il est impossible de savoir où le SSD peut stocker les copies précédentes d'un bloc logique.
Pour aggraver les choses, en raison des mécanismes de journalisation et de copie sur écriture du système de fichiers, il peut être impossible de savoir quels blocs logiques peuvent contenir une copie précédente d'un fichier particulier.
La seule façon d'empêcher la fuite de fichiers supprimés vers une personne ayant un accès direct au lecteur est de les crypter en premier lieu et de protéger la clé de cryptage des regards indiscrets.
Addenda:
J'ai fait quelques recherches et j'ai découvert que vous pouvez en quelque sorte effacer tous les fichiers précédemment supprimés si vous parvenez à apprendre tous les secteurs inoccupés d'un système de fichiers, ce qui est généralement possible et offert par certains outils du système de fichiers (par exemple pour la famille ext * ), puis les supprimer (par exemple,
blkdiscard(8)
comme indiqué dans cette réponse à la question liée ), qui renvoie les blocs pour la collecte des ordures jusqu'à ce qu'ils soient réutilisés et remplacés dans le processus.Ceci est sécurisé contre tous ceux qui ne peuvent pas accéder directement aux cellules flash, donc tous ceux qui
la source
La façon la plus simple de déterminer si votre lecteur prend en charge l'effacement sécurisé est de lui demander: j'ai utilisé / dev / sdX dans les exemples ci-dessous. Vous devrez le modifier soigneusement pour qu'il corresponde à l'appareil avec lequel vous travaillez:
Sources:
https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase
/superuser/1161531/how-to-un-freeze-drive-in-linux
Sur mon SSD, cela se traduit par:
Si l'effacement sécurisé est pris en charge par votre appareil, le déclenchement est un processus en 2 ou 3 étapes.
sudo hdparm -I /dev/sdX
similaire à celle-ci:Dégelez-le en suspendant et en reprenant votre système. J'ai fait cela avec la commande en
sudo systemctl suspend
déplaçant le pointeur jusqu'à la reprise du système.Vous devez définir un mot de passe pour utiliser l'effacement sécurisé dans ce cas, j'utilise foobar comme mot de passe, vous pouvez utiliser le mot de passe non vide que vous aimez car il est temporaire.
sudo hdparm --user-master u --security-set-pass foobar /dev/sdX
Avec le mot de passe défini, vous pouvez maintenant l'utiliser pour effacer le lecteur en toute sécurité:
sudo hdparm --user-master u --security-erase foobar /dev/sdX
Si votre disque le prend en charge et que vous le souhaitez, vous pouvez choisir d'utiliser l'effacement de sécurité amélioré à la place avec:
sudo hdparm --user-master u --security-erase-enhanced foobar /dev/sdX
la source