Facebook : c'est du propre

Au détour de la configuration de mon proxy je me suis rendu compte d'une chose plutôt étrange .... Sans épiloguer sur ma soirée et son déroulement, j’étais en train d'échanger avec un ami à travers mon client Pidgin. J'ai configuré ce dernier pour qu'il puisse utiliser mon compte facebook et ainsi accéder, sans utiliser l'interface, à la liste de mes contacts( pour faire plus court, j'utilise le service XMPP de facebook à travers mon client :)). J'avais donc une conversation que nous pourrions qualifier de privée. Je précise tout cela pour avoir une idée du contexte.
Au détour de la conversation je lui envoie un lien pointant vers un des sites que j’héberge sur un serveur.
Il se trouve que j'avais un fichier de log ouvert en arrière plan, je vois donc la trace de la requête de mon interlocuteur déclenchée au clic du lien que je lui ai écris précédemment.
Et là très grosse surprise... Le lien ne correspondait absolument pas à celui que j'avais renseigné...

ainsi, là où j'avais indiqué une adresse de type http://domaine.com, mon interlocuteur a reçu pour sa part ce lien http://domaine.com (l'idéal étant de copier/coller les 2 liens dans un bloc-note pour apprécier la différence).
Il est à noter que pour mon exemple j'ai utilisé un champ h aléatoire ne sachant pas à quoi il correspond mais semblant lié à mon profil personnel. Pour cette raison le résultat ici, est d'être redirigé vers une alerte facebook vous informant d'un rebond vers un autre site. Dans le cas d'un champ h valide; la redirection se fait en totale transparence. le premier champ u correspondant à l'adresse du site à atteindre, h semble correspondre à une sorte de hash entre le profil et quelque chose d'autre (ou pas). Il semble même possible de réutiliser la variable "h" en modifiant le contenu de "u".
C'est à s'y méprendre les mêmes me direz-vous. Et pourtant, l'un pointe directement chez moi, tandis que l'autre fait un petit détour par facebook pour enfin revenir chez moi. Tout ceci je le rappelle se passe sans utiliser l'interface web de facebook.
. Voici ici le protocole de tests utilisé :

Test 1

Objectif :
  • identification et tentative de localisation d'une réécriture
Contexte :
  • Les 2 clients utilisent l'interface web facebook
Validation du test :
  • client A écrit manuellement un lien et l'envoi à client B
  • client B copie/colle le lien au format texte pour visualiser le lien présent dans le href généré
  • client A copie/colle le lien au format texte pour visualiser le lien présent dans le href généré
Résultat attendu :
  • le lien reçu par client B est réécrit.
  • le lien affiché par client A n'est pas réécrit.
interprétation si le test est valide :
  • Il y a réécriture des url au travers du service Facebook semblant intervenir au moment de la réception de par client B. En effet le lien affiché dans la fenêtre de conversation du client émetteur du message n'est pas modifié.

Test 2

Objectif :
  • localisation de la réécriture.
Contexte :
  • Client A utilise un client XMPP et accède au service avec son compte Facebook.
  • Client B utilise l'interface web facebook
validation du test :
  • Client A envoie un message a client B
  • Client B envoie un message a client A
Résultat attendu :
  • le lien reçu par client A n'est pas réécrit
  • le lien reçu par client B est réécrit
interprétation si le test n'est pas valide :
  • Il y a réécriture des url et ce uniquement au travers de l'interface web facebook.

MITIGATION : Il suffit donc d'utiliser directement le service XMPP sans passer par l'interface web facebook pour ne plus subir cette réécriture d'URL.

Bien évidement, il s'agit la de collecter une fois de plus des données, on ne sait pour quel usage. Mais bon comme dirais l'autre : "t'as signé, c'est pour en chier !" :). Une des implication de la pression de la touche "Accepter" en bas de page d'inscription de votre fournisseur de service préféré...
Personnellement, ce qui me dérange ici le plus c'est qu'il s'agit clairement d'une manipulation de mon message pour en réécrire la substance... Bref encore un truc qui m’énerve ! Méchant ! Méchant facebook! Pas beau va !

Pour la solution de contournement, elle est simple :) : chiffrez vos échanges ! on ne le répétera jamais assez. Il ne s'agit pas là d'une quelconque psychose ou je ne sait quel autre argument en bois, (ah j'oubliais l’éternel "j'ai rien à cacher" ou l'excellent "tu fais des trucs pas clairs"), mais belle et bien d'une réelle alternative à toutes ces problématiques de protection des données, ou encore le respect de la vie privée ou je ne sais quoi.
Il s'agit ici de s'assurer que le service effectue son travail de fournisseur en toute neutralité, et que nous conservions la maîtrise de notre contenu. Notez bien que le principe s'applique de façon relativement transparente sur les mails ainsi que la messagerie instantané.
Utilisons donc le service que nous souhaitons, qu'il s'agisse du numéro un mondial ou de votre serveur dans votre placard, mais arrêtons de dépendre de la faiblesse de ce fournisseur. La mise en place prend certes un poil plus de temps, mais le gain est immense !
Pour faire cela,avec les outils de messagerie instantané, j'utilise le client multi protocole Pidgin avec son excellent plugin pidgin-encryption. ça prend 5 minutes à installer et c'est transparent dans l'usage quotidien. Foncez !! :D

Liens connexes :

Commentaires

1. Le mardi, 13 mars 2012, 12:06 par NiK

Mon conseil : adresser ton billet à Facebook (leur redirection n'est certainement arrivée là par magie) et leur demander une réponse détaillée. Ne pas oublier de mettre la CNIL en copie.
On s'aperçoit souvent que pour les acteurs majeurs, la stratégie est "ne pas se faire attraper; si on se fait attraper, on dit 'oups !' et on corrige en plaidant l'erreur d'inattention"...

2. Le mardi, 13 mars 2012, 23:09 par Lupus Michaelis

Est-ce que ton correspondant utilisait l'interface web de FB pour te parler ? Si c'est le cas, certainement que FB transforme l'URL pour « son bien », permettant ainsi de censurer les contenus inappropriés, considérés comme spam, etc

Un peut comme quand Microsoft refuse les messages contenant un lien en .info, à travers son protocole MS et ces serveurs.

3. Le mercredi, 14 mars 2012, 11:46 par flo|va-nu-pied

@Nik : effectivement il pourrait être intéressant de prendre contact avec eux afin de voir si ce traitement est cadré et connu de la CNIL qui étaient pourtant passée leur faire un p'tit coucou il y a peu de temps :
http://blog.tools-fm.com/index.php?...
@Lupus : en effet l'utilisateur en face utilisait l'interface web et j'ai également pensé à une contre mesure d'anti hameçonnage, je dois pousser un peu plus les tests pour définir de façon précise le contexte. Cependant, et si c'est le but premier de ce traitement que de protéger l'utilisateur, il semble extrêmement mal fait (rapport au Hash qui ne prend pas en compte le couple utilisateur+url)

4. Le mercredi, 14 mars 2012, 21:24 par racoon97

Bravo flo|va-nu-pied pour ta vigilance sur ce réseau démoniaque et totalitaire que représente Facebook. Heureux de faire parti de tes amis sans être sur Facebook ;)

5. Le mardi, 1 mai 2012, 17:32 par broyeur à café

Pas mal l'article