Localiser un téléphone sans utiliser le GPS

Nos smartphones sont des outils formidables, avec tous les capteurs qu’ils possèdent ils sont capables de déterminer un nombre incalculable de choses sur nous et notre environnement proche. Ces données peuvent évidemment servir à nous espionner à notre insu. On a tendance à directement penser au micro et au(x) caméra(s) qui peuvent nous écouter et nous observer sans qu’on ait la possibilité de la savoir si une application malicieuse est installée dans ce but sur l’appareil.

Ce n’est par contre pas le cas de la géolocalisation, en effet sur Android lorsque le GPS est activé il y a une icône qui apparaît dans la barre de notification. Et il est très facile de le désactiver et de le réactiver. On a ainsi le sentiment d’avoir le contrôle. Sauf que le GPS n’est pas la seule manière de géolocaliser un smartphone, il est possible de déterminer votre position approximative sans que vous puissiez faire quoique ce soit.

Localiser à l’aide des bornes téléphonique

Je m’explique, le but principal d’un téléphone est de téléphoner, pour cela l’appareil doit se connecter à une borne chargée de couvrir en réseau une zone géographique. Chacune de ses bornes possèdent des informations uniques dont le téléphone à besoin d’accéder pour être en mesure de déterminer plusieurs variables comme l’opérateur téléphonique qui gère la borne ou le pays où elle est par exemple. Ces informations lui permettent entre autre de choisir une borne supportée par l’opérateur de l’utilisateur.

Une application Android possédant la permission « ACCESS_COARSE_LOCATION » (Localisation approximative) peut accéder aux identifiants unique de la borne sur laquelle l’appareil est connecter. Elle peut alors croiser ces identifiants à une base de données regroupant les positions GPS des bornes et leur portée.

A partir de là l’application est en mesure de vous localiser avec une précision variant d’une quelques centaines de mètres à plusieurs kilomètres. Cela peut déjà suffire pour déterminer la ville où se trouve un individu ou le trajet suivi s’il parcourt de moyennes à longues distances, mais la précision n’est pas suffisante pour un suivi plus précis.

Localiser à l’aide des points d’accès Wi-Fi

Il est alors possible de l’améliorer en utilisant une autre fonctionnalité du téléphone que l’on utilise tout autant, le Wi-Fi. Chaque borne Wi-Fi est aussi identifié par des informations qui, couplées ensemble deviennent relativement unique. Ces informations peuvent être entre autres: le nom du point d’accès, la fréquence ou l’adresse MAC.

Dans le cas du Wi-Fi pas besoin d’être connecté à la borne pour que Android vous laisse accéder aux informations. Ce qui permet à l’application d’utiliser les informations de tous les Wi-Fi que le téléphone capte. Et puis là pareil elle peut croiser ces informations pour localiser l’appareil.

Avantages et inconvénients

Pour être en mesure de localiser un appareil avec toutes ces informations il faut avoir accès à une telle base de données. Il en existe plusieurs en ligne, l’entreprise Unwired Labs donne notamment accès à une API permettant d’obtenir entre autre la position GPS ainsi que la précision en fonction de la borne sur laquelle il est connecté et les réseaux Wi-Fi qu’il capte.

En utilisant les informations de la borne téléphonique et des réseaux Wi-Fi il est possible d’obtenir une meilleure précision qu’avec la localisation GPS dans certains cas (localisation dans un bâtiment, en sous sol) mais en revanche à partir du moment ou les réseaux Wi-Fi environnent ne sont pas référencées ou qu’il n’y en a pas, la précision redevient très mauvaise.

Cette méthode est très efficace en milieu urbain et apporte comme principal avantage de ne pas alerter l’utilisateur.

Afin de vérifier ces assertions j’ai décidé de développer une application pour mon téléphone afin de constater la puissance de cette méthode de localisation.

Mise en pratique

J’ai donc développé d’une part une application Android sur mon appareil qui, toutes les 5 minutes environ récupère les informations de la borne téléphonique et des réseaux Wi-Fi. Et d’autres part, une application Web me permettant de visualiser les coordonnées sur une carte.

Périodiquement l’application récupère les informations de la borne téléphonique sur laquelle est connectée l’appareil, procède à un scan des réseaux Wi-Fi et sauvegarde sur chacun d’eux de quoi les identifier. Puis elle stocke le tout dans un fichier texte sur le téléphone avec la date, l’heure et les secondes correspondant aux données.

De temps en temps je transférerai le fichier texte sur mon ordinateur et je le ferai traiter par un script qui se chargera d’associer les informations à des coordonnées GPS ainsi qu’à un rayon de précision à l’aide de l’API de Unwired Labs. Elles seront ainsi rentrées dans une base de données qui les associera à une empreinte temporelle.

Je peux ainsi visualiser sur une carte les endroits par lequel le téléphone était au cours de la prise de mesure.

La prise de mesure à durer une semaine pendant laquelle je suis allé en cours à différents endroits et pendant laquelle je me suis rendu en congrès dans une autre ville à quelques heures de chez moi.

Au cours de cette semaine il est arrivé que l’application “oubli” de prendre des mesures c’était notamment le cas lorsque le téléphone était en veille depuis quelques heures.

Voici quelques résultats obtenus:

Sur la semaine de prise de mesure, la précision des mesures a énormément variée allant de la dizaine de mètres au kilomètre.
A partir de cette mesure il est très facile de conclure que j’attendais le tramway à cet arrêt à une heure précise. Sur plusieurs jours de mesure il ainsi possible de tracer précisément les déplacements habituels d’une personne.
Ces mesures montrent l’endroit où j’ai dormi avec une précision inquiétante.

Il est évidemment possible d’adapter cette méthode pour rendre possible une localisation en temps réel.

Conclusion

Cette méthode donne des résultats très variables en précision mais, qui pour des fins publicitaires ou de renseignement sont tout de même exploitable. Il est possible de déterminer sur plusieurs jours, voir sur plusieurs mois un profil assez d’un individu: où il habite, où et quand il travaille, où et quand il sort… Ainsi que plein d’autres informations qui peuvent servir.

Elle a déjà été utilisée dans le cadre de la publicité ciblé, on peut par exemple parler de l’application Izly servant aux étudiants à payer leurs repas dans les restaurants universitaires qui envoyait fréquemment la géolocalisation de ses utilisateurs.

Dans le cas où une personne chercherai à épier tous vos déplacements dans un but de harcèlement cette méthode est amplement suffisante pour savoir quand et où vous serez. Et le pire dans tout ça c’est que vous n’auriez aucun moyen de le remarquer.