Comment effacer en toute sécurité les fichiers du lecteur SSD?

14

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 shredou wipene 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).

Byte Commander
la source
Il peut y avoir des informations intéressantes ici wiki.archlinux.org/index.php/SSD_memory_cell_clearing
Byte Commander
Je connais des travaux universitaires à ce sujet qui ont fait partie du noyau, voir lwn.net/Articles/480269
noleti

Réponses:

9

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

  • n'a pas de dispositif de lecture de cellule flash approprié et
  • ne peut pas convaincre le micrologiciel du lecteur de révéler le contenu des blocs non attribués (ce qui nécessiterait une modification significative du micrologiciel dans la plupart des cas et des commandes ATA personnalisées car il n'y a pas de méthode standardisée).
David Foerster
la source
Pourriez-vous s'il vous plaît inclure les points clés et un résumé des instructions de ce lien dans votre réponse?
Byte Commander
J'ai lié à une question équivalente de l'UA. J'espère que c'est mieux.
David Foerster
L'effacement sécurisé de l'espace libre au démarrage serait-il une option viable?
user4493605
1
@ user4493605: Que voulez-vous dire par "viable"? C'est certainement possible. Pourriez-vous s'il vous plaît ouvrir une nouvelle question si vous avez une nouvelle question ou une question de suivi? La section des commentaires ne convient pas ou n'est pas destinée aux nouvelles questions ou aux discussions prolongées. Vous êtes invités à m'envoyer un commentaire avec une notification pour attirer mon attention dessus. Merci.
David Foerster
3

Avertissement: si ce n'est pas déjà clair, l'effacement sécurisé du disque éliminera toutes les données présentes sur le disque et devrait rendre la récupération impossible. Vous devez sauvegarder toutes les informations critiques.

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

$ sudo hdparm -I /dev/sdX | grep -i erase

Sur mon SSD, cela se traduit par:

supported: enhanced erase
2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.

Si l'effacement sécurisé est pris en charge par votre appareil, le déclenchement est un processus en 2 ou 3 étapes.

  1. Si l'appareil signale qu'il est figé comme indiqué par une sortie sudo hdparm -I /dev/sdXsimilaire à celle-ci:
not   enabled
not   locked
      frozen
not   expired: security count
supported: enhanced erase

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.

  1. 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

  2. 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

Elder Geek
la source