La confiance n’exclut pas le contrôle


Étant récemment à la recherche d’une application de prise de note sur téléphone, je suis tombé sur l’application Joplin, bien notée et jouissant d’un nombre de téléchargements important.

Un critère important pour choisir une telle application était la possibilité d’effectuer du chiffrement local des notes rédigées, il me fallait donc vérifier si Joplin disposait de cette fonctionnalité.

Le panneau principal de l’application donne accès à un menu « configuration », dans lequel on peut configurer des paramètres de synchronisation :

Ce panneau permet de configurer le chiffrement des notes :

La configuration du chiffrement consiste essentiellement à choisir un mot de passe :

Une fois que c’est fait, le chiffrement est activé !

Maintenant que le chiffrement est activé, prenons une note :

Quel est l’effet du chiffrement sur cette note ?

Un test élémentaire est de rechercher dans la sandbox de l’application une éventuelle apparition d’un terme présent dans la note, recherche qui ne devrait rien donner… sauf que des occurrences de mots de la note sont bien trouvées dans le fichier joplin.sqlite :

lynx:/ # grep -re "chutchut" /data/user/0/net.cozic.joplin/
Binary file /data/user/0/net.cozic.joplin/databases/joplin.sqlite matches
Binary file /data/user/0/net.cozic.joplin/databases/joplin.sqlite matches
Binary file /data/user/0/net.cozic.joplin/databases/joplin.sqlite matches
Binary file /data/user/0/net.cozic.joplin/databases/joplin.sqlite matches
lynx:/ #

Copions le fichier dans un endroit accessible à l’utilisateur adb :

lynx:/ # cp /data/user/0/net.cozic.joplin/databases/joplin.sqlite /data/local/tmp/ ; chmod 777 /data/local/tmp/joplin.sqlite

Puis récupérons-le :

$ adb pull /data/local/tmp/joplin.sqlite
/data/local/tmp/joplin.sqlite: 1 file pulled. 17.5 MB/s (475136 bytes in 0.026s)

On retrouve dans la table settings le mot de passe utilisé lors de l’étape dans configuration du chiffrement :

Et la note elle-même dans la table notes :

Les notes ne font donc l’objet d’aucun chiffrement !

Alors, fonctionnalité mensongère ?

Pas si vite ! Si le panneau de configuration mentionné plus haut peut prêter à confusion, les discussions internes (et publiques !) du site de l’application (https://discourse.joplinapp.org/t/requesting-encryption-of-local-joplin-data-at-rest-encryption/15145 ou https://github.com/laurent22/joplin/issues/13573) ne font pas de mystère quant au fait que cette fonctionnalité sert à chiffrer les communications en transit, et non lors de leur stockage.

Quoiqu’il en soit, cette petite vérification peu coûteuse aura évité un sentiment de sécurité injustifié.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *