Hacker la douche du camping

Salut !

Ces vacances, j’étais dans un joli camping écolo dans les Cévennes. En plus d’être écolo, ce camping se trouve dans une région sujette à la sécheresse, ce qui veut dire qu’il est judicieux d’y économiser l’eau. Pour ce faire, les gérants du camping ont mis en place plusieurs systèmes afin d’encourager cette économie, en particulier des douches spéciales. Et c’est là que nous rentrons dans le vif du sujet de cet article.

Vous avez peut-être déjà utilisé des douches à jetons avec un minuteur, particulièrement si vous avez déjà fait du camping en Suisse, où les douches sont souvent payantes. C’est ici un concept similaire, mais avec un bracelet et non des jetons. Et les douches ne sont pas payantes, mais le nombre de douches est limité à deux par jours. De même, le temps d’eau est de 4 minutes au total, sans compter les pauses donc. Et honnêtement, c’est des limites tout à fait correctes, et je ne peux que louer l’intention.

Une douche de camping grise avec une LED
La douche en question, avec une grosse LED indicatrice

Et je dois dire que le système en lui-même est bien fait. Il utilise la pression de l’eau pour produire l’électricité nécessaire à son fonctionnement et peut être installé dans des douches déjà existantes. Mais étant un peu nerd, je voulais voir les limites dudit système, et surtout les dépasser.

Pour utiliser la douche, on approche le bracelet en silicone et la LED s’allume bleue signalant le début de la douche. La LED passe ensuite du vert à l’orange, puis au rouge, pour indiquer le temps restant. Le bracelet semble tout à fait générique, j’ai donc tout de suite pensé qu’il s’agissait d’une puce NFC.

Un bracelet en silicone vert
Le bracelet sésame

Et en utilisant mon téléphone portable qui permet de lire ces puces (comme la plupart des téléphones), j’ai pu confirmer que c’était bien le cas. Maintenant, il y a deux possibilités : soit le bracelet contient un identifiant unique, soit il contient un compteur de douches. Dans le premier cas, il faudrait une base de données qui permettrait à toutes les douches de pouvoir consulter le nombre de douches restantes lié au bracelet et ça me semblait un peu compliqué. Le plus simple en effet est de simplement stocker ce nombre de douches directement dans le bracelet et de le modifier à l’utilisation. Et bien entendu, ce système utilise la deuxième option.

En utilisant une application facilement installable sur un portable Android, je peux lire les données contenues dans le bracelet et je suis agréablement surpris de voir qu’il s’agit d’un simple texte, codé en UTF-8.

Capture d’écran de l’application de lecture de puce, avec le résultat 06|08|23|04|001|20|00006||
Le résultat de la lecture du bracelet

Le texte contenu est donc 06|08|23|04|001|20|00006||. On remarque assez facilement que les trois premiers nombres sont la date de début de validité du bracelet. Ensuite, le 04 indique le temps de douche, donc ici 4 minutes. Quant aux deux nombres suivants, je ne suis pas certain de leur fonction. Ils ne sont jamais modifiés et changer leur valeur n’a pas d’impact apparent. J’imagine que le 001 est le temps de pause avant la réinitialisation de la douche. Enfin, la dernière donnée est le compteur de douche tant attendu. Il est en effet décrémenté à chaque douche jusqu’à atteindre 0.

Avec toutes ces informations, il devrait être assez simple de modifier ces données afin de rallonger le temps d’eau ou de rajouter des douches en plus. Alors c’est le moment d’essayer. La puce n’est pas protégée par un mot de passe, l’écriture est donc très simple avec la même application. Essayons de rajouter 2 douches et de doubler leur temps, donc en écrivant dans la puce 06|08|23|08|001|20|00008||.

Capture d’écran de l’application d’écriture de puce, avec le texte 06|08|23|08|001|20|00008||
L’écriture des données

Il suffit d’approcher le bracelet du téléphone et l’écriture s’effectue en un rien de temps. Il est temps de tester ça avec la vraie douche. Malgré le fait que je trouve ça un peu trop simple, la douche s’allume et elle dure bien 8 minutes. Enfin environ 6 minutes, je ne suis pas un monstre non plus. Je peux donc facilement changer mon temps de douche et m’en ajouter si nécessaire.

Je suis bien sûr très content d’avoir trouvé tout ça, même si je dois avouer me voir un peu déçu qu’il n’y ait pas plus de vérification, comme une signature. Mais en même temps, les puces NFC ne peuvent pas contenir beaucoup d’informations et l’ordinateur de la douche ne doit pas être très puissant. Et aussi, qui a assez de temps à perdre pour essayer de hacker une douche.

Merci de votre lecture !

Un lézard sur un rocher au soleil
Une photo de lézard en bonus