Le système InfoSplit permet de situer géographiquement les utilisateurs du réseau et de leur fournir une information adaptée... Seul inconvénient : il est très facile à tromper.
Dans leur procès contre Yahoo, l’UEJF et la Licra mettent en avant un système nommé InfoSplit qui permet de déterminer la localisation géographique de ceux qui visitent un site Web. Ce système permet, grâce à cette localisation, de proposer à chacun une information adaptée, soit culturellement, soit légalement. Aux Italiens, le site évitera ainsi de faire l’apologie des nouilles alsaciennes (ce qu’ils pourraient très mal prendre) ; aux Français ce même site évitera de faire l’apologie des crimes contre l’humanité.
Argument de l’UEJF et de la Licra : Yahoo dispose avec ce système d’un moyen de filtrage « à la source » de ce qu’il met en ligne. Les Européens n’auraient ainsi plus accès aux ventes d’objets nazis ni à la rubrique « White Supremacy ». En revanche, les Américains, eux, pourraient continuer de visiter ces pages.
Sans vouloir occulter l’importance du débat sur les implications politiques de cette application et les dangers de rétablir des frontières sur un réseau qui aurait pu devenir un facteur de démocratisation (pour le dire crûment : « si vous voulez participer au commerce mondial, alors vous devez utiliser l’internet, et le discours démocratique qui va avec, parce que vous ne pouvez pas filtrer la démocratie sans filtrer le commerce »), on s’est rapidement intéressé à la fiabilité de ce système.
Et, comme souvent sur l’internet, les analyses techniques ramènent aux valeurs bien humaines qu’elles entraînent. InfoSplit n’échappe pas à la règle : comprendre comment fonctionne ce système permet de comprendre, ipso facto, qu’il ne peut s’agir d’un outil juridique. Car InfoSplit est tout juste un intéressant outil de marketing à l’usage des marchands.
Désolé pour les récalcitrants à la technique, mais vous ne couperez pas ici à quelques détails sur le fonctionnement du réseau...
La puce à l’oreille
En préparant cet article, j’ai bien entendu visité la page de démonstration d’InfoSplit. Je cherchais, en particulier, un moyen simple de vous montrer à quel point il est facile à contourner. Là, je me suis heurté à quelques roueries de marchand, qui m’interdisent de faire un article très simple.
Premier constat : sur la page d’InfoSplit, si la ville où vous habitez s’affiche (avec un certain succès), cette ville n’est pas écrite en mode texte, il s’agit d’une image. Tiens tiens... Pourquoi pas du texte, tout simplement, ça serait aussi simple, et plus rapide à charger ? Explication : les outils relativement simples qui permettent de contourner InfoSplit supportent mal les images (Lynx, Agora... j’y reviendrai).
Second constat : si vous désactivez JavaScript, votre butineur n’affiche plus cette image. Sans JavaScript, vous ne savez plus où vous habitez. Curieux, tout de même... En y regardant de plus près, on constate que ce JavaScript n’est d’aucune utilité dans le système de localisation géographique lui-même. Intérêt cependant : le système très simple que j’aurais pu programmer pour vous faire, à tous, contourner InfoSplit (une page Web qui sert d’intermédiaire entre vous et ce serveur) ne fonctionne plus.
Bref, voilà deux particularités de la page de démonstration d’InfoSplit, qui n’ont rigoureusement aucune utilité dans le mode de localisation géographique, et qui n’offrent comme avantage que d’interdire une démonstration simple de son inefficacité.
Bizarre bizarre, voilà qui met la puce à l’oreille, n’est-ce pas... On peut déjà trouver étonnant de présenter à un juge une telle solution technique pour « sauver la démocratie », alors qu’elle se caractérise au premier abord par quelques dissimulations.
Du coup, je n’ai d’autre choix que de faire une démonstration technique un peu lourde, puisque ces deux caractéristiques servent justement à interdire une démonstration simple par l’exemple.
Le problème à résoudre : localiser géographiquement un utilisateur
Le but d’InfoSplit est de répondre à un besoin assez répandu : déterminer la position géographique de l’utilisateur. Or, lors de l’échange entre un client (l’utilisateur) et un serveur (le site visité), aucune information géographique n’est fournie : le serveur ne reçoit qu’une demande de la part d’une adresse IP, sans aucune autre information ; pas de territoire géographique, même pas de fuseau horaire, et encore moins un nom d’utilisateur.
Le but du jeu, donc, va consister à travailler à partir des rares informations échangées entre le client et le serveur pour localiser l’utilisateur. Donc, faire correspondre un lieu géographique à une adresse IP.
Tracer les routeurs
Comme le savez certainement, la structure du réseau internet repose sur un maillage de lignes de communication qui relient des machines entre elles. Pour connecter un client (l’utilisateur) à un serveur (le site qu’il visite), on n’a donc pas un unique gros tuyaux qui relie directement l’un à l’autre, mais un trajet constitué de différents tronçons, chaque tronçon étant connecté au suivant par une machine (que l’on nomme un routeur).
Voici par exemple ce que cela donne lorsque je visite le site de Yahoo, aux États-Unis, depuis mon ordinateur installé en banlieue parisienne. La connexion passe par Paris, puis un gros routeur aux alentours de Lyon, puis traverse l’Atlantique pour aboutir aux États-Unis. (Les images sont réalisées avec le logiciel WhatRoute pour Macinstosh). Seules sont indiquées ici les plus grosses machines (les principaux routeurs) traversés sur le trajet.
Toutes les machines, sur le réseau, sont identifiées par une adresse IP (pour plus d’explications, voyez « Cékoidonc, Internet »). Il est possible, par une fonction très simple, de connaître toutes les adresses IP des routeurs me reliant à Yahoo. Au moment de mon essai, voici les adresses de toutes les machines traversées (ci-contre). En haut, localhost est ma machine ; viennent ensuite une série d’adresses de mon fournisseur d’accès (via l’ADSL) ; ensuite des routeurs français, puis américains ; et enfin, tout en bas, l’adresse de la machine de Yahoo.
Si je peux le faire chez moi lorsque je consulte Yahoo, Yahoo peut également le faire dans l’autre sens.
À ce stade, Yahoo peut donc connaître l’adresse IP des routeurs traversés pour me relier à lui. (Bien entendu, la liste des routeurs varie en fonction de chaque utilisateur ; et même pour un même utilisateur, cette liste peut varier dans le temps.) Des adresses IP, mais toujours pas d’adresses physiques.
Nouvelle étape : connaître la localisation géographique des routeurs.
Où se trouvent les routeurs ?
Existe-t-il des services qui connaissent la position géographique des adresses IP ? Des « annuaires » qui, à chaque adresse IP, donnent une adresse physique ? Oui ! On a presque terminé...
Est-ce que mon adresse IP, celle de ma propre machine, correspond à une adresse physique connue ? Non. D’abord parce que mon adresse IP ne m’appartient pas, elle n’est pas fixe dans le temps : elle « appartient » à mon fournisseur d’accès, qui en a réservé une collection, et m’en attribue une à chaque fois que je me connecte (une adresse prise dans sa propre collection, donc). À l’adresse IP que j’utilise au moment où je me connecte, ne correspond au mieux que l’adresse de mon fournisseur d’accès (en cas d’enquête de police, il est bien entendu possible de remonter jusqu’à moi, car mon fournisseur sait, lui, à qui il a « prêté » telle adresse IP à tel instant).
Donc, à moins que je ne dispose d’une connexion permanente avec une adresse « à moi », on ne peut déterminer instantanément mon adresse physique (c’est pas plus mal, n’est-ce pas ?).
Est-ce qu’au moins on connaît l’adresse de mon fournisseur d’accès ? Celui-ci se trouve forcément près de chez moi, si je ne veux pas payer des factures téléphoniques faramineuses. Si on connaît l’adresse de la machine de mon fournisseur, on sait que j’habite dans la même région (précision de l’ordre du département). Pour beaucoup de fournisseurs, la réponse est oui. Pour d’autres, c’est non. Il y a les très gros fournisseurs, qui couvrent des régions européennes, et déclarent comme adresse physique l’adresse de leur siège (et non celle de chacune de leurs machines « locales ») ; de cette façon, certains utilisateurs parisiens se sont retrouvés domiciliés par InfoSplit à Londres (pour certains, carrément aux États-Unis !). Et surtout, la localisation géographique d’une machine dépend de la déclaration faite par le propriétaire de la machine ; les erreurs et les imprécisions compromettent la localisation ; enfin, sur le réseau, on déménage souvent ses machines, auquel cas on signale à l’autorité de nommage le déménagement d’adresse IP, sans changer son adresse géographique.
Donc, souvent l’adresse du fournisseur est fiable. Parfois pas du tout. Bref, le taux de réussite d’InfoSplit ou de tout système de localisation chute.
En revanche, ce qui ne change pas, ce sont les adresses des très gros routeurs, ceux qui structurent le réseau (ces routeurs sont installés sur les très grosses lignes de communication qui constituent les backbones, l’épine dorsale, du réseau). Ceux-là, on ne va pas s’amuser à les déclarer n’importe où et à les déménager tous les jours. Là, l’adresse est viable. En revanche, la précision géographique est en chute libre (ça peut être de l’ordre du pays ou, pour les zones défavorisées, des régions multinationales).
Désormais nous avons le processus suivant :
à partir des adresses IP des deux extrêmités du trajet, nous avons déterminé les adresses IP de tous les routeurs traversés ;
on peut faire correspondre ces différentes adresses IP à des localisations géographiques : on peut déterminer celle du « gros » routeur le plus proche de l’utilisateur, souvent celle de son fournisseur d’accès, dans certains cas très spécifiques, l’adresse de la machine de l’utilisateur.
Et les résultats, s’ils ne sont pas forcément très précis, sont généralement aussi fiables.
Pourquoi InfoSplit ?
Puisque le procédé est connu, pourquoi nous vendre les services de la société infoSplit ?
Parce que le procédé, tel qu’expliqué précédemment, est relativement long. Faire correspondre une adresse IP à une adresse physique revient à interroger un service qui se nomme WhoIs (un annuaire technique de l’internet), et à recommencer plusieurs fois jusqu’à obtenir la précision, la finesse de la localisation, espérée. C’est long (et pendant ce temps, la page que vous demandez ne s’affiche pas...) et cela utilise beaucoup de bande passante. Bref, tel quel, inapplicable pour un site, surtout aussi fréquenté que Yahoo.
L’idée va être, tout simplement, de rapatrier le catalogue des services WhoIs dans une base de données interne. La société InfoSplit centralise ce processus : lorsqu’elle rencontre une adresse IP qu’elle a déjà incluse dans sa propre base de données, elle répond immédiatement sans interroger les annuaires techniques ; si cette adresse ne figure pas dans sa base, alors elle interroge l’annuaire, puis ajoute le résultat à sa propre base. Le processus est alors accéléré, puisque Yahoo, au lieu d’interroger à chaque visite les annuaires, consulte directement la base de données fournie par InfoSplit. (C’est le principe général : le système d’InfoSplit n’étant pas du domaine du libre, personne ne saurait préciser exactement les subtilités de son fonctionnement. En réalité, il semble que le véritable argument commercial d’InfoSplit, c’est la fourniture d’outils permettant de gérer les déclinaisons, les adaptations du site visité en fonction de l’information géographique : gérer les langues, les bandeaux publicitaires... des outils de gestion dynamique du site, la localisation géographique n’étant que le point de départ d’un gamme de services.)
Notez d’ailleurs que, pour commencer, on peut se contenter de stocker les adresses des gros routeurs, ils sont en effet peu nombreux. Mais au fur et à mesure, on ajoute les adresses des gros fournisseurs d’accès. Et ensuite, de plus en plus finement.
Conclusion : vu comme ça, ça fonctionne plutôt bien. Les résultats sont globalement assez fiables.
De là à savoir si cela répond au problème de l’UEJF et de la Licra, c’est une autre histoire...
Un outil marketing
InfoSplit, sur son propre site Web, ne se présente pas comme un outil d’application de la loi, mais tout au plus comme un outil de marketing à l’usage des sites marchands. Ces sites, en effet, n’ont pas besoin d’un outil incontournable avec des résultats fiables à 100%. Si, dans 80% des cas, ils peuvent présenter à leurs visiteurs une information commerciale adaptée à leur culture ou à leur langue (ou au circuit de distribution le plus proche), c’est tout à fait suffisant.
Mais dès lors que l’utilisateur cherche à contourner le système, alors il y parvient sans aucune difficulté. Pas besoin ici d’utiliser des procédés de cryptage, d’anonymisation ultra-complexes et paramilitaires, pas besoin de connaissances techniques monstrueuses : il suffit d’utiliser les outils normaux que l’on utilise d’ordinaire sur le réseau.
L’utilisateur lambda, qui se connecte depuis chez lui avec son modem et son navigateur, sans chercher plus loin, sera localisé d’une manière relativement fiable. Mais l’utilisateur qui va vouloir contourner le système pourra le faire, immédiatement, et sans difficulté.
Pour le marketing, donc, très bien. Le but des sites marchand étant de présenter une information commerciale adaptée, le système est nickel. Mais quid d’un outil de police, de filtrage, d’application de la loi, que l’on peut contourner facilement ? Imaginez les impôts conçus sur ce principe : si tu veux payer, tu paies ; si tu ne veux pas payer, tu ne paies pas...
Comment contourner InfoSplit ?
C’est très simple. Et il n’est pas nécessaire d’utiliser des outils sophistiqués ; ce ne sont même pas des outils dont l’utilisation pourraient suggérer qu’on a quelque chose à cacher... (pour reprendre la rhétorique Licra : ce ne sont pas des outils pour « libertaires » !).
Quel est le principe ? Il suffit de ne pas se connecter directement sur le site que l’on veut visiter, mais de passer par une machine intermédiaire. Dans le principe expliqué ci-devant, on a tracé le trajet entre A et B, ce qui a permis de déterminer toutes les adresses IP entre ces deux machines. Plaçons maintenant une troisième machine C entre A et B : l’information est d’abord rapatriée du serveur B vers la machine intermédiaire C, et ensuite seulement envoyée de C vers l’utilisateur A.
Rappelons-le, le système de localisation est installé sur le site visité, c’est-à-dire ici sur la machine B. Que voit-elle désormais ? Elle voit une machine, installée en C, avec donc une certaine adresse IP, qu’elle va réussir à localiser, ici en Californie. L’information est ensuite renvoyée par C vers A, et cette information est donc adaptée ou censurée en fonction de la localisation de l’intermédiaire C (en Californie) et non de A (en région parisienne).
Le serveur B n’a aucun moyen de savoir que l’information n’est pas utilisée en C, mais en A. Rigoureusement aucun moyen... (En revanche, en cas d’enquête de police, il suffira de consulter les fichiers de C pour faire le lien et remonter jusqu’à A. Mais cela signifie une intervention humaine et une commission rogatoire.)
Cette manipulation est-elle compliquée ? Non. Nécessite-t-elle des outils de protection particuliers ? Non. Il existe plusieurs méthodes très simples de procéder :
la première est de disposer d’un compte sur une machine C (c’est mon cas, par exemple, puisque je fais héberger un de mes sites aux États-Unis) ; sur cette machine, on installe un navigateur Web, et c’est par lui que l’on « visite » le Web (en l’occurence : Lynx, et je me connecte en Telnet) ;
passer par un site Web qui sert à cela... on peut d’ailleurs se programmer assez simplement en PHP un tel outils (par exemple, pour l’action « Flicage sur le Net », l’outils de flicage faisait exactement cette opération, et toutes les pages visitées semblaient alors visitées depuis la Californie) ; on trouvera de nombreuses pages sur le Web, sous l’appellation anonymous web surfing (par exemple, Secret Surfer) ;
en se faisant envoyer des pages Web par email, avec ces services désormais oubliés que sont les serveurs Agora.
Tous ces outils sont relativement simples d’utilisation (surtout ceux qui permettent de surfer anonymement via le Web) et sont des outils parfaitement légaux et standards, voire indispensables à la bonne maintenance de l’internet.
Avec ces outils, c’est imparable : les InfoSplit ou tout autre système similaire sont totalement plantés. Quiconque les utilise reste dans la plus stricte légalité, n’a même pas de raison d’attirer sur lui la suspicion policière, et obtient les informations destinées à un autre pays (le plus souvent : les États-Unis).
Revenons un instant à notre puce à l’oreille.
J’ai évoqué des caractéristiques bizarres de la page de démonstration d’InfoSplit : l’image et le JavaScript. Aucune utilité dans le fonctionnement du système mais, comme je l’ai indiqué, qui permettent d’interdire la démonstration simple et évidente (par la pratique) que l’on peut le contourner.
L’image, tout d’abord : si vous utilisez les procédés de contournement via Lynx ou en vous faisant envoyer la page par email, les images n’apparaissent pas. Donc la page que vous recevez, même si le serveur est « trompé » (et c’est certain, il l’est), vous n’obtenez pas la mention falsifiée. La mention fausse serait une image, et vous ne lisez pas les images avec ces procédés...
Le JavaScript : là c’est plus subtile. Si vous utilisez une page Web qui joue les intermédiaires, elle n’interprétera pas le JavaScript. Aussi la page d’InfoSplit ne vous enverra pas non plus l’image incriminée. Si vous visitez InfoSplit par ce rerouteur, voyez par vous même, il est indiqué « You are in :», mais le nom de la ville n’apparaît pas.
Conclusion
InfoSplit est sans doute un bon outil marketing pour les sites commerciaux. Il assure à ces derniers une localisation géographique relativement fiable de chaque utilisateur, afin de lui présenter une information marchande adaptée. Tant qu’on ne lui demande pas d’effectuer des tâches de police, c’est nickel.
En revanche, comme outil destiné à traquer le crime et interdire l’accès aux contenus illégaux, c’est une très mauvaise réponse. Il suffit de vouloir le contourner pour y réussir.
Dans le cas qui nous intéresse : il permettra de filtrer grossièrement l’accès pour ceux qui, déjà, n’ont rigoureusement aucune envie de taper « Objets de cultes néo-nazis » dans les ventes aux enchères, ni « White supremacy » dans Yahoo ; alors que ceux que, justement, ça intéresse, y auront toujours accès.
Cela reviendrait à obliger à brider le moteur des voitures des seuls conducteurs qui respectent les limitations de vitesse, tout en laissant ceux qui veulent exploser les limites avec des voitures surpuissantes. On aurait au final un débat houleux et très médiatisé sur les limitations de vitesse, pour obtenir une décision sans aucune conséquence pratique sur la sécurité routière.