Mémoire Flash et aimant font-ils bon ménage ?
Je me baladais dans une grande surface informatique lorsque j'ai entendu un vendeur raconter, sûr de lui, que la proximité d'un aimant et d'une mémoire flash aurait des conséquences dramatiques pour cette dernière, à savoir une perte de données irrémédiable.
Quelques temps auparavant m'était justement arrivé cette mésaventure, je cherchais ma clef usb que j'avais fini par retrouver collée...à un aimant et cela, sans le moindre dégâts sur les données.
Je repartis du magasin en me disant qu'il serait bon de savoir si, oui ou non, les aimants étaient dangereux pour nos précieuses données contenues dans des mémoires flash, en théorie non, mais à force d'entendre cette légende, j'ai pensé qu'il serait bon de tester, c'est le but de cet article...
Procédure de test
Afin de vérifier le danger ou non d'un aimant à côté d'une mémoire de type Flash, nous allons mettre un aimant à proximité immédiate d'une carte Flash pendant des durées croissantes en contrôlant à chaque étape l'intégrité des données.
Les protagonistes sont les suivants, tout d'abord, les cartes mémoires :
Deux aimants « collés » l'un sur l'autre, petits mais costauds, je n'ai pas mesuré l'intensité de ces aimants mais pour essayer de vous donner une idée, je peux vous dire qu'il est très dur, voir impossible, de les séparer à la force des mains une fois l'un sur l'autre...
Pour s'assurer de l'état des données après chaque phase de test, une lecture sera faite dans la carte et une comparaison de md5 sera faite sur l'intégralité de la carte.
Afin d'avoir un rendu plus lisible, le contenu de la carte sera une image au format TGA et c'est Léonard de Vinci qui nous prêtera son auto-portrait, la détérioration du contenu altérera visiblement l'image ainsi, il sera possible, en cas de détérioration de la mémoire flash, de voir visuellement les zones abimées.
Pour simplifier les tests, j'ai créé 2 scripts :
- fl_create_ref : Créer les fichiers de référence
Liste des arguments :- d : Le périphérique (ex: -d /dev/sda1)
- f : Identifiant de la flash (voir les numéros collés sur les clefs)
Le script exécute les actions suivantes :
- Charge les données de l'image (sans l'en-tête) dans le périphérique
- Dumpe la mémoire flash du périphérique et stocke le contenu dans un fichier, ce dernier servira de référence
- Calcule le Md5 de la référence
- fl_test : Exécute un test du périphérique
Liste des arguments :- d : Le périphérique (ex: -d /dev/sda1)
- f : Identifiant de la flash (voir les numéros collés sur les clefs)
- s : Étape (step), c'est à dire, le premier test, le second, etc...
Test
Tout d'abord, il faut remplir les mémoires et créer les références pour chaque périphérique, cela est fait grâce au script fl_create_ref :
./fl_create -d /dev/xxx -f 1
./fl_create -d /dev/yyy -f 2
./fl_create -d /dev/zzz -f 3
Une fois cette étape effectuée, il faut mettre à l'épreuve les mémoires, pour cela, j'ai mis en contact direct l'aimant avec la puce durant un temps déterminé.
Voici les différentes étapes durant lesquelles les mémoires flash ont été en contact direct avec l'aimant :
- 10 min
- 3 h
- 13 h
- 240 h
À la fin de chaque test, j'ai utilisé le script fl_test de cette manière :
./fl_test -d /dev/xxx -f 1 -s 2
Le paramètre -s correspondant bien sûr au numéro de l'étape (1 pour 10min, 3 pour 3h...)
Ainsi, à chaque étape, nous avons un dump complet pour chaque mémoire ainsi que les sommes Md5 associées.
Voici l'arborescence des fichiers une fois tous les tests réalisés :
$ tree
|-- README
|-- fl_create_ref
|-- fl_test
|-- flash
|-- 1
| |-- leonard.data
| |-- leonard.md5
| |-- log
| |-- out-1.dump
| |-- out-2.dump
| |-- out-3.dump
| `-- out-4.dump
|-- 2
| |-- leonard.data
| |-- leonard.md5
| |-- log
| |-- out-1.dump
| |-- out-2.dump
| |-- out-3.dump
| `-- out-4.dump
|-- 3
| |-- leonard.data
| |-- leonard.md5
| |-- log
| |-- out-1.dump
| |-- out-2.dump
| |-- out-3.dump
| `-- out-4.dump
`-- log
C'est donc avec l'oeil averti de Léonard que les tests se sont succédés.
Résultats
Les résultats sont clairs, nets et précis, l'aimant (immobile) placé à proximité immédiate des mémoires flash n'a en rien altéré les données présentes dans les puces.
Les sommes Md5 sont restés invariables et cela, aussi bien pour 10 minutes que pour 10 jours.
L'aimant n'a donc pas réussi à faire broncher le regard de Léonard...Rien de vraiment étonnant en considérant le fonctionnement interne d'une mémoire flash, l'étape suivante serait donc de tester les mémoires flash à proximité de champs magnétiques fluctuants (moteurs, antennes d'émissions...)
Annexe
Vous trouverez en pièces jointes une archive contenant les scripts décrits ci-dessus et les fichiers images qui ont été mis dans les mémoires.






Commentaires
En mettant les aimants l'un sur l'autre tu as peut être annulé le champ magnétique de ces derniers refait tes test avec un seul aimant. (Nord et Sud s'attire, une fois ensemble le champ est égale a ZERO). Quand on fait une expérience il faut les faire dans des conditions optimal, ici ce n'est pas le cas, ton experience ne peut pas etre validée.
Silk: absolument pas, chaque aimant à un pôle nord et un pôle sud, en les collant ensemble, je forme un aimant plus gros, tout simplement plus puissant, qui possède de nouveau, un pôle nord et un pôle sud.
À aucun moment, les 2 aimants ne s'annulent...
Les memoires étant faites à base de transistors mos, comment un champ magnetique pourrait il altérer le contenu des données ?
Seul un champ électrique assez costaud peut peut-être altérer des données en modifiant le potentiel de la grille flottante du transistor...
Seb: je te le fait pas dire...
Sujet tres interressant Hugo, bien réalisé... La suite (champ magnétique variable) existe-t-elle ?
Je suis tombé sur ton sujet en cherchant l'effet d'un champ magnétique sur une mémoire flash. On lit beaucoup de c___ choses...
Ton article tient parfaitement debout, c'est meme le seul que j'ai trouvé qui tienne la route.
Meme si Silk est en retard de 24 jours pour faire des blagues, le commentaire de Seb vient parfaire la chose, et la je me permet d'intervenir (3 ans apres je sais je sais).
Le fait est qu'un champ magnétique peut créer un courant éléctrique dans un conducteur (Cf : dynamo). De la à creer un champ electrique il n'y a qu'un pas, et les MOS aiment pas ca....
Toutefois il faut effectivement qu'il y ait variation du champ magnétique pour créer le moindre déplacement de quoi que ce soit (éléctrons...). D'ou la question du début.
Une clé USB collée sur un aimant, pas de variation. => integrité des donnees
Une clé posée pres d'un aimant, variations peu probables.
Une clé dans une poche qui contient un aimant :
-en test actuellement sur trois clés de differentes générations (4, 4 et 16 GB) qui sont dans la meme poche de mon blouson qu'un tournevis aimanté.... Le "blouson" en question etant porté chaque jour avec mouvements et tout...
Pour l'instant, pas de pertes de donnees.
J'ai pas essayé de secouer une clé devant un aimant.
EXTENSION : effet des ondes electromagnétiques sur les clés USB (mémoire flash etc) : IDEM pour une télécommande de portail (ondes decametriques).
NE ME DEMANDEZ PAS SI LE FAIT DE FOUTRE SA CLé USB DANS LE FOUR A MICRO ONDES RISQUE DE DETERIORER LES DONNEES.
Bon blog je mets en fav !
Salut Gobot,
merci pour tes remarques... ;)
il est vrai qu'on peut lire tout et n'importe quoi sur Internet à ce sujet, des personnes tout à fait sûr d'elle affirme des choses totalement aberrantes...
Je n'ai pas encore fait le test de mémoire flash à proximité d'un champs magnétique variable, je le mets de côté quand j'aurai un peu de temps mais j'ai déjà une petite idée : plaqué sur un vieux moteur de machine à laver, ça doit rayonner pas mal... ;)
Sinon, j'ai d'autres idées de test : le chaud, le froid, etc...
Tiens moi au courant de ton expérimetation dans ta poche, il est bon d'avoir diverses sources...
@++
Bonjour Hugo,
Content d'avoir trouver enfin un article qui tienne la route sur les effets d'un champ magnétique sur une clé USB.
Ton test verifie le non effet d'un champ magnétique sur une mémoire qui n'est pas en fonctionnement puis de tester son intégralité.
Souhaitant monter ma mémoire dans un boitier ayant des aimants, j'ai donc réaliser un test un peu similaire au tien. Mettre la cle entre deux aimants, mais cela durant son utilisation.
J'ai réalisé mon test avec une image d'un CD de 715Mo, et en faisant des contrôles de MD5.
Conclusion, les MD5 sont tout le temps modifiés c'est bien le signe que la présence des aimants perturbent complètement le transfert des données.
La présence des aimants a également causé, j'imagine (parce que je ne suis pas spécialiste), des petits problèmes dans les "références des fichiers". Il m'est arrivé de trouver sur la clé mon image pesant 0Ko et impossible de la supprimer, seul remède trouver le formatage.
Cette info pourra surement servir a d'autre.
Merci encore pour ton experience.
Blog favorisé ;)
@+
Salut AnX,
Merci pour ton retour d'info
ok, as-tu réalisé ton test avec plusieurs clefs histoire de généraliser un peu plus le test ?
++