Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog
7 à voir

A la découverte des technologies

Je ne veux pas activer la localisation de mon smartphone

Je ne veux pas activer la localisation de mon smartphone

La localisation est-elle devenue tellement banale qu'on doit la donner à toutes les applications même quand elles n'en ont pas besoin ? Dans ce billet "coup de gueule", je vous raconte l'expérience malheureuse que j'ai vécu avec la localisation sous Android 6.0 et les conclusions techniques que j'en tire.

 

 

Je n'active jamais la localisation sur mon smartphone. Ça fait même des années que ça dure et je ne m'en porte pas plus mal. Bien sûr il m'arrive de l'activer lorsque j'ai besoin d'un accès ponctuel à Google Map mais je l'arrête dès que je n'en ai plus besoin. Donc: non je n'utilise pas Waze, non je ne m'attends pas à ce que mon smartphone me dise qu'il y a des embouteillages sur mon trajet du retour et non je ne veux pas qu'il me recommande les promos du resto en bas de la rue.

 

Les raisons sont multiples mais la principale est le respect de ma vie privée. L'endroit où je me trouve ne regarde que moi et je ne veux pas le partager. Je confie ma position a mon opérateur (mais  bon c'est Bouygues Telecom, c'est donc la famille :-) mais je ne veux pas la confier à Google ou à quelqu'un d'autres. Par ailleurs j'utilise Qwant comme moteur de recherche, Firefox comme navigateur et je privilégie les solutions Open Source quand je le peux.

 

C'est mon droit.

 

Enfin je croyais. Car ces derniers temps ce droit est sérieusement mise en cause par Android 6.0. Je vous raconte toute l'histoire.

 

 

Allo Nokia, j'ai un problème

 

J'utilise une montre connectée. En fait j'en ai même testé plusieurs: Pebble, Samsung Gear et en ce moment la Nokia HR (ex Withings). Une montre connectée n'a rien d'indispensable à vrai dire mais c'est pratique: j'y reçois les notifications lors d'un appel/SMS sans devoir sortir mon smartphone de ma poche et accessoirement elle comptabilise mon activité physique.

 

Mon smartphone est un Android. Assez récemment j'ai changé de téléphone et par la même occasion je suis passé de la version 5.0 d'Android à la version 7.0. Et soudainement j'ai eu droit à ce message sur mon application Nokia Health qui synchronise la montre connectée avec le téléphone:

Nokia veut votre localisation

Nokia veut votre localisation

"Votre géolocalisation est désactivée": ça je sais, c'est fait exprès.

"Pour synchroniser, mettez en marche la géolocalisation": ah bon ? Mais jusqu'à présent ça a toujours fonctionné. Pourquoi donc faudrait-il que la géolocalisation soit activée ? D'autant que l'application ne fourni aucune information géolocalisée, je ne vois donc pas en quoi la géolocalisation lui serait utile.

J'active donc la géolocalisation pour voir et en effet la synchronisation se déroule correctement. Je refais l'expérience plusieurs fois et effectivement il faut que la géolocalisation soit activée pour que la montre se connecte. Par contre, lorsqu'on arrête la géolocalisation alors que la montre est connectée, elle n'arrive pas à se synchroniser mais les autres fonctionnalités (notifications d'appels et de SMS) semblent fonctionner correctement.

Bon je me dis que je vais réussir à vivre avec ça mais dès que j'ai un peu de temps j'envoi quand même un mail au support Nokia pour m'étonner de ce fonctionnement qui me semble à ce moment là, lié à une mise à jour de l'application puisqu'en changeant de téléphone j'ai aussi mis à jour l'application Nokia Health.

 

Le support de Nokia me répond (trop) rapidement:

Réponse un peu rapide du support Nokia

Réponse un peu rapide du support Nokia

Il semble que j'ai affaire au niveau 1 du support: celui qui est toujours optimiste :-) Sa réponse est simple: non il n'y a pas besoin de la localisation. Bon quelques part ça me rassure mais en réalité moi je ne peux pas faire autrement qu'activer la localisation pour que l'application fonctionne, je leur répond donc avec la copie d'écran qui démontre que leur réponse n'est pas adaptée à mon cas. Deuxième réponse un jour plus tard.

Deuxième réponse de Nokia

Deuxième réponse de Nokia

Cette fois le support (niveau 2 surement) me dit que j'ai raison (il me semblait aussi :-) et  me renvoi vers un lien sur la page de leur site qui indique les pré-requis pour faire fonctionner les device Nokia.

La page de support de Nokia

La page de support de Nokia

Sans surprise, il est indiqué sur cette page qu'il faut que le Bluetooth soit activé sur le smartphone pour que la synchronisation fonctionne. C'est logique puisque les montres/bracelets connectées communiquent en Bluetooth avec le smartphone.

Par contre, une petite note indique en effet que sur Android 6 et supérieur, il faut que la localisation soit activée également pour que le device soit détecté.

Cette note renvoi sur le deuxième lien de la réponse de Nokia qui n'est autre que… la release note de la version 6 d'Android !

Release notes d'Android 6

Release notes d'Android 6

Ooch ! un support utilisateur qui renvoi le grand public vers un site pour les développeurs: voilà qui n'est pas banal. Et ça ressemble même à un moyen de "botter en touche" dans le genre: c'est vrai vous avez raison mais ce n'est pas de notre faute c'est la faute à Android.

 

Mais il se trouve que je suis développeur: voilà donc un problème amusant à explorer.

 

 

Où je reprends ma casquette de développeur

 

L'endroit pointé sur le site de développeur Android est une petite partie de la release note Android 6 et semble assez anodine. L'explication mentionnée n'est pas complétement claire mais en gros, elle indique que pour accéder à des périphériques Bluetooth et WiFi il faut avoir la permission localisation activée pour l'application sinon l'API va retourner une valeur bidon pour l'identifiant du device (sa Mac Address).

 

Hmmm, ça ressemble à mon problème mais pour être franc la première idée qui me vient c'est que les développeurs Android chez Nokia sont mauvais et qu'il doit forcément y avoir un contournement possible :-)

 

Je fais donc un benchmark pour voir si d'autres outils connectés ont le problème et mauvaise nouvelle: le problème semble similaire pour les montres/bracelets Fitbit comme l'indique le lien sur le support Fitbit ci-dessous.

 

Les bracelets Fitbit ont le même problème

Les bracelets Fitbit ont le même problème

Comme pour Nokia, Fitbit indique que le problème est lié à un changement opéré par Google dans Android 6.0. Au moins les sources convergent.

 

Je creuse un peu plus le sujet en recherchant sur les forums de développement Android et je tombe finalement sur un bug déclaré sur la plate-forme de déclaration d'incident de Google et qui référence explicitement le problème.

La clé du problème: un "bug" Android

La clé du problème: un "bug" Android

La lecture est très intéressante au milieu de l'étonnement/l'agacement des développeurs face à ce problème et leur demande de revenir en arrière sur cette implémentation, il faut surtout lire la réponse "officielle" de Google:

Ce n'est pas un bug, c'est une fonctionnalité

Ce n'est pas un bug, c'est une fonctionnalité

Si je traduis la réponse: "Ce n'est pas un bug c'est un comportement voulu, on ne le corrigera pas. Le fait d'avoir l'identifiant d'un objet revient à avoir sa position, il faut donc avoir l'accès à la localisation pour accéder à la recherche d'équipement Bluetooth ou WiFi".

 

Il me faut un moment pour comprendre l'implication de la réponse de Google: si on a accès à l'identifiant d'un objet via Bluetooth ou WiFi, on a accès à sa localisation. Autrement dit: si vous avez téléchargé un logiciel malveillant sur votre Android il peut déterminer votre position sans que vous ayez activé votre localisation, en utilisant uniquement le Bluetooth ou le WiFi.

 

Hmmm, intéressant. Étudions ça en détail.

 

 

Le Bluetooth vous espionne ?

 

Au Spot Bouygues nous avons développé plusieurs fois des applications utilisant la technologie iBeacon. Les iBeacons sont des petits tags qui émettent en permanence en Bluetooth (Bluetooth Low Energy précisément) un identifiant. Si on place ces petits tags à des endroits précis (dans un magasin, à côté d'un objet, …) et que l'utilisateur a installé une application qui va scanner régulièrement le Bluetooth à la recherche de ces tags, il pourra être notifié quand il arrive à proximité. Ce mécanisme a été intégré dans de nombreuses applications (y compris Facebook) pour vous alerter lorsqu'il y a des promotions d'un magasin devant lequel vous passez ou pour vous proposer plus d'informations sur un article dont vous vous approchez.

Les balises iBeacon estimote

Les balises iBeacon estimote

Plus fort: si vous avez préalablement "mappé" une pièce, c’est-à-dire positionné précisément sur un plan de la pièce chaque iBeacon, vous avez possibilité - via des calculs de triangulation fonction de l'intensité du signal reçu de chaque iBeacon - de vous localiser précisément dans une pièce.

 

Le revendeur de iBeacon estimote propose même une application spécifique qui permet de réaliser ce "mapping" (voir ci-dessous).

Localisation indoor avec estimote

Localisation indoor avec estimote

Du coup, on peut dire qu'effectivement, sous réserve que l'on dispose d'une base de données contenant l'identifiant et la position de différentes balises Bluetooth, on peut repérer la position de l'utilisateur simplement avec son Bluetooth.

Je ne veux pas activer la localisation de mon smartphone

A défaut de disposer de cette base, on peut aussi déterminer son changement de position selon ce qu'on détecte ou pas le device. Prenons par exemple, le cas d'un thermostat connecté Nest. Vous avez installé ce thermostat connecté chez vous et vous vous y connectez par Bluetooth. Pour le logiciel malveillant qui utilise le Bluetooth le simple fait de savoir que vous êtes connecté à ce thermostat permet de savoir que vous êtes chez vous.

 

Le Bluetooth est donc potentiellement une source d'information pour la localisation.

 

 

Le WiFi vous encercle

 

Est-ce le cas aussi pour le WiFi que mentionne Google dans sa réponse ?

 

Il est impressionnant lorsque vous activez le WiFi de votre smartphone de voir le nombre de réseaux autour de vous.    Peut-on imaginer que simplement en détectant les réseaux autour de vous on puisse détecter l'endroit où vous êtes ? Il suffit pour cela que l'on puisse disposer d'une carte indiquant l'endroit où se situent tous les réseaux WiFi. Et bien figurez-vous que cette carte existe.

 

Voici par exemple une carte, proposée par Wigle, de tous les réseaux WiFi autour du Spot Bouygues . Pour chaque réseau la carte indique son nom (souvent FreeWiFi, LiveBox, …) mais aussi son identifiant unique (Mac Address encore) et sa position GPS.

Carte détaillée des réseaux WiFi autour du Spot

Carte détaillée des réseaux WiFi autour du Spot

La base de données de Wigle est réalisée de manière collaborative par les utilisateurs de l'application et s'enrichi régulièrement mais il en existe beaucoup d'autres, notamment référencées ici.

 

En utilisant ce genre de base de données et en écoutant les accès WiFi autour de vous, il est donc simple pour une application malveillante de déterminer votre position approximative sans avoir accès à votre localisation.

 

 

Conclusion

 

Il est donc bien possible de géolocaliser un téléphone en utilisant du Bluetooth et/ou du WiFi. D'ailleurs, dans les versions récentes d'Android l'utilisateur peut lui-même indiquer le mode de localisation dans le paramétrage d'Android.

Je ne veux pas activer la localisation de mon smartphone

Ainsi on peut indiquer d'utiliser uniquement le WiFi, le bluetooth et les réseaux mobiles (c’est-à-dire l'emplacement des bornes réseaux des opérateurs mobile  qui est aussi accessible dans plusieurs bases de données publiques).

 

Google a-t-il pour autant raison d'imposer la géolocalisation pour synchroniser sa smartwatch ?

 

Non, car il lui suffirait de forcer les applications à demander l'accès à la localisation pour prévenir l'utilisateur du risque potentiel mais sans l'obliger à activer effectivement la localisation dans le système.

 

Non, car il est possible de faire autrement en masquant ces problématiques système à l'utilisateur. Par exemple sur iOS, lors de la 1er découverte d'un périphérique Bluetooth par l'application, le système génère un identifiant unique mais masque l'identifiant interne à l'application. Ainsi seul l'utilisateur pourra retrouver le périphérique avec cet identifiant.

 

Dois-je donc passer sur iOS pour vivre sans géolocalisation ?

Article précédent Article suivant
Retour à l'accueil
Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
T
Article très intéressant, merci pour la réflexion. Les utilisateurs des versions d'Android n'ont plus le choix dans ce cas alors puisque Google ne le corrigera pas.
Répondre
S
Article très intéressant ! Merci pour ce partage !<br /> <br /> Les nouvelles version d'Android permettent-elle de contourner le problème ?<br /> <br /> Etant moi même développeur je me dit qu'il est possible d'installer une application (sur un modèle rooter) pour biaiser les données de localisation en envoyant toujours une position factice "à l’Élysée" par exemple... êtes vous au courant de se genre pratique ?
Répondre
L
Merci pour votre retour.<br /> Oui hélas il y a peu de chance que ce comportement d'Android :-( <br /> Intéressant votre remarque la fausse position/mock position dans les options développeur (décrit ici: https://developer.android.com/studio/debug/dev-options#debugging). C'est peut être une piste à creuser effectivement.<br /> Oui pour Ubuntu Touch ou... Firefox OS pour les mêmes raisons. Pour ma part, quelques mois après cet article je suis passé sous iOS, c'est la moins mauvaise des solutions comme le suggère Tristan Nitot dans l'article que je mentionne dans un autre commentaire plus bas
A
Bonjour,<br /> Merci pour cette article au combien intéressant. J'avais déjà remarqué cela mais n'en comprenais pas la raison. Les explication de Google me semble en effet fallacieuse et ressemble plus à une manière détournée de nous forcer la main à activer notre localisation pour toujours mieux nous suivre...et donc de nous gaver de publicité ciblée.<br /> Je suis aujourd'hui sur Android 10 et vous informe que ce fonctionnement est toujours d'actualité.<br /> Pour information, via les options de développeur, il est possible de forcer une fausse position. Trouver une application s'en chargeant de façon permanent ne me semble donc pas impossible.<br /> Ma dernière surprise en date fut de constater que Google se permet de réactiver l'option d'historisation des positions dans les options Google sans en demander l'avis (ou alors en le noyant dans leurs conditions général si souvent renouvelées) via une mise à jour d'application.<br /> Je regret fortement aujourd'hui la mort prématuré de Ubuntu Touch...
L
Merci pour votre retour.<br /> <br /> A ma connaissance, il n'y a pas de changement avec les dernières versions d'Android.<br /> Oui il doit être possible de contourner le problème avec un téléphone rooté et une application spécifique ou avec une ROM custom mais je n'ai pas creusé le sujet.
C
Bonjour, merci beaucoup pour cette page.<br /> J'ai hésité à rester anonyme comme j'espérais rester non localisable comme vous ;-))<br /> Je suis outrée du comportement d'Android 6.0 et suivants.<br /> Non seulement c'est un viol de mon intimité que de me demander d'être localisée dès lors que je veux écouter de la musique sur mon casque bluetooth ou avoir la synchro avec ma montre (une tomtom) alors qu'Android 5.1 ne me demandait rien de tel. <br /> Mais en plus ça dézingue ma batterie de téléphone encore plus vite ... puisque du coup mon Galaxy A5 a la puce GPS active en continu ; certes, ce n'est pas elle qui consomme le plus, mais quand même !<br /> Normalement en mode GPS je suis par ailleurs en mode avion pour booster mon autonomie en rando, donc théoriquement "moins" traquable par nos amis les Gafas.<br /> J'envisage de reprendre un "vieux modèle" sous 5.1 ..... les évolutions Marshmallow et Nougat me semblant surtout cosmétiques et ... toujours plus intéressées par nos vies privées ........
Répondre
L
Bonjour, Merci Cécile pour ce retour.<br /> En effet, en y réfléchissant la question de reprendre un vieux modèle est pertinente. J'ai abandonné mon ancien smartphone Android 5.1 parce que la batterie commençait à faiblir après 3 ans mais à part ça, il rendait le service et effectivement Android 6 et 7 n'apportent rien de révolutionnaire.<br /> Par contre une précision sur le bluetooth, il n'y a pas de nécessité d'activer le GPS avec un casque Bluetooth, l'obligation ne concerne que les périphériques qui font du BLE (Bluetooth Low Energy) comme les montres.<br /> Sinon pour un complément sur le sujet des données partagées avec Google, je vous recommande la lecture de l'article de Tristan Nitot http://standblog.org/blog/post/2017/09/29/Payer-son-smartphone-avec-ses-donn%C3%A9es-personnelles qui apporte un éclairage intéressant sur le modèle de Google versus celui d'Apple.