vendredi 23 mai 2014

Pidgin & Forensics

/!\ Attention, article foireux. /!\

Dans un post précédent qui critiquait une non-info comme quoi Skype gardait en local des données personnelles en clair, je faisais allusion à des données similaires stockées par un autre produit de messagerie instantanée : Pidgin (attention, je ne compare pas les deux non plus).

Je ne vais pas faire un historique du projet, Wikipedia fait très bien l'affaire, mais en gros, Pidgin utilise la bibliothèque "libpurple", qui permet de gérer tout un tas de protocoles de messagerie, allant d'IRC à ICQ en passant par XMPP (ouais, Pidgin c'est juste un gros front-end en fait...). C'est donc pour cette raison qu'on ne trouvera pas de dossier .pidgin dans le "home" d'un utilisateur de pidgin. En revanche, on trouvera un ".purple", qui contient plus ou moins ces entrées :

meik@blabla:~/.purple$ ls -l
total 132
-rw-r--r-- 1 meik meik  6175 mai    7 21:20 accels
-rw------- 1 meik meik 12145 mai    7 20:06 accounts.xml
-rw------- 1 meik meik 47114 mai    7 21:46 blist.xml
drwx------ 3 meik meik  4096 juil.  1  2013 certificates
drwx------ 2 meik meik  4096 mai    7 21:43 icons
drwx------ 3 meik meik  4096 juil.  1  2013 logs
-rw------- 1 meik meik 26384 mai    7 21:00 prefs.xml
drwx------ 2 meik meik  4096 juil.  1  2013 smileys
-rw------- 1 meik meik   401 juil.  1  2013 status.xml
-rw------- 1 meik meik 14581 avril  2 11:33 xmpp-caps.xml

Je ne me suis pas attardé trop longtemps sur Skype (je sais juste que sur une session Skype ouverte depuis plusieurs mois sur un PC dont l'uptime est de 297 jours, et qui a été déconnecté d'Internet un certain nombre de fois, et dont le mot de passe de mon nom d'utilisateur Skype a été changé sans que ce changement ne soit répercuté sur le PC en question, Skype arrive toujours à s'authentifier...), mais il ne me semble pas que ce dernier stocke un quelconque mot de passe quelque part, ou du moins, pas en clair (ensuite, si quelqu'un sait, ça m'intéresse). Je suppose qu'il stocke plutot un token quelque part dans ~/.Skype (ensuite, en cas de changement du mot de passe, ce dernier devrait alors être révoqué côté serveur, afin d'empêcher qu'une session authentifiée avant changement de mot de passe ne puisse se réauthentifier avec le même token sans avoir à fournir une preuve de la connaissance du nouveau mot de passe...m'enfin un truc m'échappe peut-être). Bon, avec toutes ces conneries je me perds, je voulais juste dire que le fichier "accounts.xml" de Pidgin contient...des identifiants...en clair !

<account version='1.0'>
<account>
<protocol>prpl-jabber</protocol>
<name>moi@server/</name>
<password>[censuré]</password>

On peut ensuite s'amuser à consulter le contenu du dossier ~/.purple/logs/ qui contient un sous-dossier par type de compte (jabber, irc, etc), et encore une sous-arborescence par compte et ensuite par contact à qui l'on a parlé. Je ne vais pas reproduire ici d'extrait de conversation, mais voilà donc le genre d'infos qu'il est possible de récupérer.

Alors ensuite je veux bien que Skype ça soit le mal, mais si les logiciels libres font pareil, il y a bien une raison (c'est ce que je disais dans le post précédent : si un pirate prend le contrôle du PC de sa victime, il peut faire la même chose que lui, y compris lire ses logs; car même si ce dernier les chiffre, lorsqu'il souhaitera y accéder pour retrouver un numéro de téléphone super important, les données seront en clair à un endroit dans la mémoire de la machine, accessible par l'utilisateur ET le pirate).

2 commentaires:

Kahllan a dit…

Le chiffrement du mot de passe stocké sur le disque dur d'une application qui se connecte seule (c'est à dire sans avoir à entrer à nouveau de mot de passe) est complètement inutile.
Le mot de passe s'il est chiffré doit être déchiffré par le système avant de s'authentifier auprès du serveur distant. *
Donc, la clé de chiffrement du mot de passe doit être accessible au système et elle l'est aussi au potentiel hacker.
Ca rajoute une étape pour récupérer le mot de passe mais c'est négligeable.

Si on stocke un hash ça veut dire que l'authentification accepte la présentation de ce hash directement et donc ça revient au mot de passe en clair.


En bref, enregistrer vos identifiants/mot de passe sur votre machine pour pouvoir vous connecter à vos services préférés sans jamais devoir rentrer à nouveau de mot de passe, équivaut à stocker ces mots de passe en clair sur votre PC et donc les laisser à la portée de quelqu'un qui prendra la main sur ce PC.

MeiK a dit…

Oui, c'est en substance ce que je disais dans l'article, ainsi que le précédent (sur skype) en citant l'équipe sécurité de Chrome qui explique, de leur point de vue, en quoi c'est inutile de chiffrer les mots de passe du navigateur.