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.
flash-memory
data-destruction
utilisateur
la source
la source
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 )
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: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 deTRIM
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:Les options utilisées:
Si possible, utilisez les deux
blkdiscard
etshred
, siblkdiscard -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 lablkid
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 deshdparm
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 laSECURITY 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 etblkdiscard
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. .la source
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 paquetutil-linux
version 2.23.blkdiscard
compare à lahdparm
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.
la source
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
la source
Le moyen le plus simple et le plus rapide que je connaisse consiste à écrire des zéros (0) sur l'intégralité du lecteur:
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 égalementbadblocks -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
.la source
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 ...
la source