Je voudrais savoir comment supprimer un lecteur flash USB via le terminal si possible afin que les données ne puissent pas être récupérées.
Je voudrais savoir comment supprimer un lecteur flash USB via le terminal si possible afin que les données ne puissent pas être récupérées.
Réponses:
TL / DR: Assurez-vous que vous avez le bon nom de périphérique, assurez-vous qu’il n’est pas monté et faites autant de remplacements aléatoires que vous pouvez vous permettre. Vous pouvez la suivre avec une commande d'effacement conçue pour le matériel Flash, si votre distribution est suffisamment récente. Dans ces vérifications, utilisez toujours le lecteur (comme / dev / sd h ) et non le nom de la partition (qui serait / dev / sd h1 )
# dmesg|grep sdXX
[3600.000001] sd 6:0:0:0: [sdXX] 125106176 512-byte logical blocks: (64.0 GB/59.6 GiB)
# blkid|grep sdXX
/dev/sdXX1: PARTUUID="88a03bb2-ced8-4bb2-9883-0a51b4d460a8"
# df|grep /dev/sdXX
# shred -vzn8 /dev/sdXX
shred: /dev/sdXX: pass 1/9 (random)...
shred: /dev/sdXX: pass 1/9 (random)...46MiB/3.8GiB 1%
...
shred: /dev/sdXX: pass 9/9 (000000)...3.8GiB/3.8GiB 100%
# blkdiscard -s /dev/sdXX
blkdiscard: /dev/sdXX: BLKSECDISCARD ioctl failed: Operation not supported
# blkdiscard /dev/sdXX
blkdiscard: /dev/sdXX: BLKDISCARD ioctl failed: Operation not supported
#
En théorie, écraser avec zéro avec dd
est très bien. Toutefois, en raison de la construction des composants internes d'un lecteur flash, si vous utilisez une seule passe de réécriture, plusieurs couches de données masquées derrière les blocs réels stockent toujours les informations restantes.
Généralement, une partie du stockage flash est défectueuse et elle est marquée lors de la fabrication. Il y a aussi d'autres bits qui peuvent mal tourner (devenir immuables, non remplaçables ou insolubles), ces pièces doivent également être marquées comme étant défectueuses pendant leur durée de vie. Ces informations sont stockées dans un espace réservé, sur les mêmes puces que vos données. C’est l’une des nombreuses raisons pour lesquelles une clé USB de 4 Go n’affiche pas une capacité de 2 ^ 32 octets.
Le stockage Flash est également organisé en interne en blocs plus grands, parfois beaucoup plus volumineux que les systèmes de fichiers fonctionnant sur le lecteur. Une taille de bloc de système de fichiers typique est de 4 Ko, et les segments flash pouvant être effacés en une fois peuvent aller de 64 Ko à plusieurs mégaoctets. Ces gros blocs ne peuvent être effacés que dans leur totalité, ce qui réinitialise tous les blocs à un état connu (tous les 1 ou tous les 0). Ensuite, une écriture de données peut modifier l’un des bits (modifiez les 1 par défaut en 0 si nécessaire ou les 0 par défaut), mais une seule fois . Pour modifier des bits de retour dans la valeur par défaut, tous les besoins du segment à effacer à nouveau!
Ainsi, lorsque vous souhaitez modifier un bloc de 4 Ko (le système de fichiers est invité à modifier un seul caractère au milieu d'un fichier), le contrôleur de mémoire flash doit lire et mettre en mémoire tampon les 64 Ko des anciennes données, les effacer entièrement et réécrivez le nouveau contenu. Ce serait très lent, effacer des segments est l'opération la plus lente. En outre, un segment ne peut être effacé que par un laps de temps limité (des dizaines de milliers est typique), donc si vous apportez trop de modifications à un seul fichier, cela peut rapidement détériorer le lecteur.
Mais ce n'est pas comme ça que ça se passe. Les contrôleurs de flash intelligents écrivent simplement les nouvelles données de 4 Ko ailleurs et notent la redirection des lectures vers ces 4 Ko de données au milieu de l'ancien bloc. Ils ont besoin de plus d'espace, que nous ne pouvons pas voir pour stocker ces informations sur les redirections. Ils essaient également de s’assurer qu’ils parcourent tous les segments accessibles pour stocker les données, on parle alors de nivellement par usure .
Cela signifie que les anciennes données sont toujours sur le disque quelque part! Si vous venez d'effacer tous les blocs accessibles, tous les blocs masqués conservent une version assez récente des données. La question est de savoir si cela est accessible à un attaquant contre lequel vous souhaitez que vos données soient protégées.
Si vous avez une distribution assez récente et que le lecteur USB est programmé pour indiquer qu'il s'agit d'un lecteur flash, vous blkdiscard
pouvez utiliser l' TRIM
opération sous-jacente , qui est l'effacement de segment dont nous avons parlé ci-dessus. Il comporte également un indicateur supplémentaire pour s'assurer que même les données cachées invisibles sont entièrement effacées par le matériel:
# blkdiscard -s /dev/myusbdevice
-s, --secure Effectue une suppression sécurisée. Une suppression sécurisée est identique à une suppression normale, sauf que toutes les copies des blocs supprimés éventuellement créées par le nettoyage de la mémoire doivent également être effacées. Cela nécessite l'assistance de l'appareil.
Cela ne fonctionnera pas nécessairement, comme je l'ai démontré ci-dessus. Si vous obtenez Operation not supported
, votre noyau, vos utilitaires ou la puce de passerelle USB (qui permet au contrôleur flash de ressembler à un lecteur via USB) ne prend pas en charge le passage de TRIM
commande. (Le contrôleur de flash doit toujours pouvoir effacer lui-même des segments). S'il est pris en charge par le fournisseur de votre lecteur, il s'agit du moyen le plus sûr.
Un autre moyen, moins sûr, de vous assurer que vous laissez moins de données anciennes s’attarder quelque part est de l’écraser plusieurs fois, avec des valeurs aléatoires, si possible.
Pourquoi au hasard, vous demandez? Imaginez si la clé USB était trop intelligente et si elle détectait que vous vouliez effacer un secteur et apportiez une modification à une image bitmap que ce secteur est maintenant libre et devra être effacé ultérieurement. Comme cela signifie que cela peut accélérer les écritures de zéros, il en résulte une clé USB qui semble plus efficace, non? Difficile à dire si votre lecteur le fait.
À l'extrême, le lecteur peut simplement se rappeler combien vous avez effacé depuis le début. Il lui suffit de stocker environ 4 octets d'informations pour le faire, sans rien effacer des données que vous souhaitez supprimer. Tout cela pour que ça puisse paraître très vite.
Si vous écrasez les données avec des valeurs aléatoires et imprévisibles, ces optimisations sont impossibles. Le lecteur doit donc s'assurer que les données sont stockées dans les puces flash. Mais vous ne pourrez toujours pas exclure que certains des secteurs précédemment utilisés sont toujours là avec vos anciennes données, mais le lecteur n'a pas jugé important de l'effacer pour l'instant, car il n'est pas accessible normalement. Seule la TRIM
commande réelle peut le garantir.
Pour automatiser le remplacement avec des valeurs aléatoires, vous pouvez envisager d’utiliser shred
, par exemple:
# shred -vzn88 /dev/myusbdrive
Les options utilisées:
Si possible, utilisez les deux blkdiscard
et shred
, si blkdiscard -s
votre lecteur le prend en charge, c'est la solution optimale, mais vous ne pouvez pas nuire à l' shred
avance pour éliminer les erreurs de microprogramme.
Oh, et toujours double-triple-vérifier l'appareil que vous essayez d'effacer! dmesg peut vous aider à voir quel est le dernier périphérique inséré, et il est également intéressant de vérifier le nom du périphérique avec lequel vous voulez effacer ls -al
, même pour les numéros de nœud des périphériques, ainsi que la blkid
sortie permettant de voir quelles partitions sont disponibles et que vous N'AVEZ PAS vouloir effacer.
N'utilisez jamais ces commandes sur un disque interne que vous souhaitez continuer à utiliser - blkdiscard
cela ne fonctionnera que sur des disques SSD, mais cela ne vaut pas la peine d'essayer de perdre des données!
Il peut y avoir d'autres moyens d'effacer les données en toute sécurité à mesure que la technologie progresse.
Une autre manière mentionnée est la SECURITY ERASE
commande ATA qui peut être émise via des hdparm
commandes. D'après mon expérience, ce n'est pas vraiment pris en charge sur les lecteurs flash. Il a été conçu pour les disques durs d'entreprise et la fonctionnalité n'est pas toujours implémentée dans les périphériques de stockage les moins coûteux.
L' opération TRIM
/ DISCARD
est beaucoup plus récente que la SECURITY ERASE
commande et a été créée en réponse aux fonctions flash. Elle a donc beaucoup plus de chances d'être implémentée, même sur des clés USB bon marché, mais elle n'est pas encore omniprésente. Si vous souhaitez effacer une carte SD / micro SD insérée dans un dongle USB et blkdiscard
signalez qu’elle n’est pas prise en charge, vous pouvez essayer un autre lecteur / dongle de carte et / ou le faire sur un ordinateur doté d’un logement SD / MMC direct. .
blkdiscard
est dans Debian Jessie, et seulement dans les deux dernières versions d’Ubuntu, mais pas dans Ubuntu LTS 14.04. blkdiscard
a été ajouté au paquet util-linux
version 2.23.
blkdiscard
compare à la hdparm
solution dans un autre commentaire de @zhenech (en particulier le lien: ata.wiki.kernel.org/index.php/ATA_Secure_Erase ).
Je réalise que ce n’est pas vraiment une réponse à votre question, mais le moyen le plus simple est de détruire physiquement le disque dur (le briser de façon répétée avec un marteau de forge suffit généralement, mais le broyage industriel ou l’incinération sont également des options). Si vous êtes suffisamment préoccupé par la sécurité pour vouloir vous assurer que les données sont irrécupérables, leur valeur est probablement bien plus que le coût du lecteur lui-même, et la méthode physique est économique et fiable.
Presque toutes les fonctions de suppression sécurisée disponibles ont été conçues pour des supports magnétiques en rotation, l'ordinateur permettant généralement de déterminer l'emplacement physique [1] des blocs utilisés pour le fichier et d'écrire sur ces mêmes blocs. Les puces de contrôleur de stockage à semi-conducteurs extraient l'emplacement physique des données du système et aiment les déplacer.
Votre question dépend vraiment de qui va après vos données. Si vous êtes préoccupé par une perte aléatoire ou un vol occasionnel, un format standard conviendra. Si vous craignez d'être ciblé par un utilisateur hautement motivé, techniquement compétent et disposant de ressources importantes [2], incinérez simplement le disque et dépensez 10 dollars pour un nouveau.
oui, il existe un mappage de bloc logique. Mais le bloc logique A mappera toujours sur le bloc physique B.
cette personne ouvrirait le lecteur, retirerait la puce mémoire de la carte et lirait la mémoire flash directement, en contournant le contrôleur
Le moyen le plus simple et le plus rapide que je connaisse consiste à écrire des zéros (0) sur l'intégralité du lecteur:
dd if=/dev/zero of=/dev/sdX
où /dev/sdX
est le nœud de périphérique de votre clé USB.
Certains suggèrent un processus plus complet avec plus d'itérations et d'autres modèles. Des utilitaires spécifiques sont disponibles pour cela. Le paquet GNU coreutils contient la shred
commande spécifiquement à cette fin. Beaucoup de gens utilisent également badblocks -w
, qui fait partie du paquet e2fsprogs. Sur FreeBSD, l' shred
utilitaire est appelé gshred
et devrait être disponible dans les ports /usr/ports/sysutils/coreutils
ou /usr/ports/sysutils/fileutils
.
Cela devrait pouvoir effacer votre clé USB en toute sécurité si vous envisagez de la réutiliser: http://linux.die.net/man/1/scrub Sinon, faites-la fondre ...