Pourquoi il ne faut pas faire confiance à la protection en écriture des cartes SD

Avez-vous déjà essayé de protéger une carte SD ? Sur la majorité des cartes SD, vous avez en effet un petit interrupteur qui permet de « protéger » la carte. Mais dans la réalité, c’est comme si vous demandiez à votre voisin de fermer la porte à double tour sans aller vérifier.

La norme SD permet en théorie de protéger réellement une carte SD, mais c’est optionnel. L’interrupteur présent sur les cartes SD, c’est une sorte de leurre, qui ne dépend pas de la carte SD en tant que tel, mais d’une sorte de relation de confiance entre le lecteur de cartes et votre système d’exploitation.

Comment ça marche ?

Premièrement, ça ne dépend absolument pas de l’électronique de la carte. Le contrôleur de la carte SD n’a aucun moyen de savoir si la carte est bloquée. La protection dépend de deux choses : le lecteur et le système d’exploitation.

Pour le premier point, c’est assez simple : le lecteur doit intégrer un système (souvent mécanique) pour vérifier la position de l’interrupteur. La majorité des lecteurs en possède un, souvent avec une broche qui est enfoncé quand une carte est placée dans le lecteur. C’est assez visible sur la majorité des lecteurs, et ceux présents dans les ordinateurs Apple ont bien le dispositif.

On voit le contacteur dans l'emplacement

On voit le contacteur dans l’emplacement

Ensuite, il faut que le système d’exploitation prenne en compte la valeur renvoyée par le lecteur. Mac OS X le fait, quand le lecteur l’envoie. Dans ce cas-là, le système de fichier est monté en lecture seule. Mais si le lecteur n’envoie pas l’état de l’interrupteur, Mac OS X ne peut pas deviner que la carte est protégée, et elle est donc montée en lecture/écriture.

Une carte protégée

Une carte protégée

En dehors du fait qu’il est possible sur certains systèmes de monter la carte en écriture, le fonctionnement même du système est dangereux : il implique de faire confiance au lecteur de cartes et au système d’exploitation.

Pour prouver ça, rien de plus simple : j’ai commandé un lecteur de cartes sur eBay pour moins de 2 $ (1,35 $ livré). Et, comme prévu, le lecteur n’est tout simplement pas capable de vérifier la position de l’interrupteur. Conséquence directe, Mac OS X ne protège pas la carte en écriture quand elle est insérée.

La position n'est pas prise en compte

La position n’est pas prise en compte

Ce que ça implique au final, c’est qu’une carte SD « protégée » pour éviter les effacements accidentels ne l’est pas réellement, même si l’interrupteur est dans la bonne position. Même si c’est assez rare de tomber sur un lecteur qui n’intègre pas les composants, ça peut arriver, donc méfiance.

Pour les vieux, il est d’ailleurs possible de tromper la protection de la même façon que sur les disquettes : en mettant un bout de scotch sur la carte. Quand on casse le petit morceau de plastique, c’est toujours bon à savoir…

Enfin, pour terminer, un truc intéressant : il est possible, techniquement, de protéger la carte au niveau de l’électronique. Certaines cartes supportent les commandes nécessaires, mais ça demande du matériel un peu particulier. On peut soit bloquer la carte en écriture temporairement, soit de façon permanente. Il est aussi possible de fixer un mot de passe. Visiblement, en dehors du matériel nécessaire, c’est assez mal supporté par les OS classiques, qui ne voient pas que la carte est protégée.