- L’API HotspotHelper, disponible depuis iOS 9, permet aux apps de recevoir des informations sur les points d’accès Wi‑Fi à proximité, ce qui peut ouvrir une voie de suivi de la position sans consentement de l’utilisateur
- Les apps peuvent lire les SSID et BSSID des réseaux voisins dans un callback enregistré, puis les envoyer au serveur pour alimenter une logique d’estimation de position
- Comme les points d’accès Wi‑Fi sont généralement fixes, il devient possible de faire une estimation de position basée sur le Wi‑Fi en combinant ces données avec des services publics comme Precisely ou Google Geolocation API
- Ce comportement ne se produit pas uniquement pendant l’utilisation de l’écran des réglages : il peut aussi survenir lorsque l’appareil scanne les Wi‑Fi alentour alors qu’il est verrouillé, sans que l’utilisateur puisse le savoir ni le désactiver
- Des apps à très large diffusion comme WeChat et Alipay implémentent aussi cette fonctionnalité, d’où des appels à ce qu’Apple propose une option explicite d’autorisation ou de refus comme pour la localisation ou les notifications
Informations Wi‑Fi exposées par l’API HotspotHelper
- Apple fournit l’API HotspotHelper depuis iOS 9, afin de permettre aux apps de demander des fonctions aidant le système à se connecter aux points d’accès Wi‑Fi
- Le code d’exemple montre, via
NEHotspotHelper.register, le flux par lequel une app reçoit les informations sur les réseaux Wi‑Fi- récupération de la liste des réseaux à proximité via
command.networkList - lecture de
network.ssidetnetwork.bssidpour chaque réseau - transmission de ces valeurs à une logique de suivi de position comme
trackLocation(withSSID:andMACAddress:)
- récupération de la liste des réseaux à proximité via
- Même si l’objectif initial est sans doute de faciliter la connexion, une app peut aussi utiliser les SSID et BSSID reçus comme données de suivi de position
Une voie permettant d’estimer la position sans consentement de l’utilisateur
- Les informations sur les points d’accès Wi‑Fi alentour peuvent servir de repères pour estimer la position d’un utilisateur
- la plupart des points d’accès Wi‑Fi ne bougent pas une fois installés
- la liste des points d’accès voisins peut être utilisée pour trianguler ou estimer la position actuelle de l’utilisateur
- Exemples d’API publiques : Precisely Location By Wi-fi Access Point et Google's Geolocation API
- Cette fonctionnalité ne s’active pas seulement quand l’utilisateur manipule explicitement l’écran des réglages
- une app enregistrée peut être exécutée lorsque l’appareil scanne les points d’accès Wi‑Fi alentour
- y compris lorsque l’appareil est verrouillé et dans la poche de l’utilisateur
- Une app peut récupérer les SSID et adresses MAC des environs et les envoyer au serveur ; si le développeur le souhaite, un suivi de position quasi en temps réel devient possible
- Il est difficile pour l’utilisateur de savoir que ce processus est en cours à l’écran, et aucune option ne lui permet de désactiver cette fonctionnalité
Les cas de WeChat et Alipay
- WeChat et Alipay sont cités parmi les principales apps ayant déjà implémenté cette fonctionnalité
- Les deux apps sont extrêmement utilisées en Chine continentale et interviennent dans de nombreux aspects de la vie quotidienne
- Si des apps aussi répandues peuvent suivre la position sans consentement de l’utilisateur, l’ampleur de l’impact augmente fortement
- Même si la collecte de données peut viser à améliorer l’expérience utilisateur ou à faciliter la connexion au Wi‑Fi alentour, l’opacité de la logique côté serveur laisse subsister des problèmes de transparence et de responsabilité
Réponse d’Apple et modèle d’autorisation nécessaire
- Le problème a été découvert il y a environ deux ans et partagé sous forme de vidéo sur Bilibili, mais il est resté relativement peu connu publiquement
- Les inquiétudes ont aussi été transmises à Apple, qui a répondu par email, sans mise à jour supplémentaire par la suite
- Apple devrait proposer une option permettant aux utilisateurs de désactiver cette fonctionnalité, comme pour les réglages de confidentialité liés à la localisation ou aux notifications
- Avant qu’une app puisse accéder à cette fonctionnalité, elle devrait demander explicitement l’autorisation, et l’utilisateur devrait pouvoir autoriser ou refuser l’accès pendant l’utilisation de l’app
- HotspotHelper reste un point de controverse entre les promesses d’Apple en matière de respect de la vie privée et la protection effective des données utilisateur
3 commentaires
Avis sur Hacker News
En lisant la documentation liée, cet API semble servir à aider les apps créées par les propriétaires de hotspots Wi‑Fi à connecter les utilisateurs à ces hotspots : https://developer.apple.com/documentation/networkextension/h...
NEHotspotHelperpermet à une app de participer au processus d’authentification des réseaux Wi‑Fi, c’est‑à‑dire des hotspots, lorsque l’utilisateur doit interagir avec le réseau pour accéder à l’Internet au sens largeIl est aussi indiqué qu’il n’est utile que pour l’intégration de hotspots, qu’il existe des restrictions techniques et commerciales pour d’autres usages comme l’intégration d’accessoires ou la localisation basée sur le Wi‑Fi, et qu’il faut obtenir l’approbation d’Apple pour le droit spécial
com.apple.developer.networking.HotspotHelperavant utilisationDu coup, on peut se demander pourquoi des apps comme WeChat ou Alipay ont reçu cette autorisation
L’usage d’un tel API devrait afficher une boîte de dialogue de permission visible par l’utilisateur avant qu’une app puisse recevoir des notifications en arrière-plan, et l’utilisateur devrait pouvoir choisir entre « autoriser une seule fois », « autoriser pendant l’utilisation », « autoriser en arrière-plan » ou « ne pas autoriser »
L’activité de l’app devrait aussi apparaître dans le rapport de confidentialité de l’app
WeChat est une « super app » et peut sans doute prétendre servir aussi à la connexion à des hotspots Wi‑Fi, mais pour Alipay je ne vois pas bien l’explication
CoreLocationet a reçu l’autorisation d’accéder à la localisation précise de l’utilisateur. Cela paraît anodin puisqu’elle a déjà accès à la localisation préciseNEHotspotConfiguration. Cela semble correspondre exactement au périmètre de cet articleNEDNSSettingsManagerinstallée. Je ne sais pas exactement ce que c’est, mais cela ressemble à quelque chose de proche du côté VPNÀ noter qu’il faut une autorisation spéciale pour utiliser cet API, et qu’il faut la demander à Apple en justifiant son usage
Ce n’est pas un API générique accessible à n’importe quelle app
Certes, ce sont des « super apps » et les services de hotspot Wi‑Fi peuvent faire partie de leurs fonctionnalités, mais justement, cela devrait être une autorisation accordée par l’utilisateur, comme « accès au réseau local »
Si les fonctions de hotspot ne m’intéressent pas, je ne veux pas que l’app ait cette capacité
Sans tester soi-même une app utilisant cette autorisation, difficile de savoir si c’est aussi le cas ici, mais à mon avis il devrait y avoir une demande de consentement à l’utilisateur
Je me demande si Apple analyse l’usage de cette autorisation et la retire en cas d’abus
De façon comparable, je crois me souvenir qu’au moment du « scandale » du VPN de Facebook, Apple avait révoqué le certificat de signature entreprise de Facebook
Cela ressemble à : « ne t’inquiète pas, ni toi ni moi ne pouvons en abuser, seuls les grandes entreprises et les collecteurs de données le peuvent »
L’auteur semble chinois et se préoccupe donc de WeChat et d’Alipay, mais je me demande ce qu’il en est de Facebook et Google
Je pensais déjà que l’utilisateur recevait une invite pour autoriser cette permission
De nos jours, il est assez courant que des apps demandent si elles peuvent accéder au « réseau local », et j’ai presque toujours refusé en pensant que cela signifiait pouvoir voir les hotspots Wi‑Fi locaux
Après avoir lu cet article, je l’ai aussi désactivée pour Spotify
Mais la plupart des utilisateurs ne savent pas que ces informations peuvent servir à déduire leur position, donc la boîte de dialogue de permission devrait être améliorée
D’abord, l’implémentation est maladroite. Contrairement aux autres permissions, il n’existe aucun moyen d’afficher explicitement l’invite, et elle surgit soudainement quand Apple juge que c’est le bon moment
Même lorsqu’elle est nécessaire à une fonction essentielle, il n’y a pas de moyen naturel de l’expliquer, et il n’existe pas non plus de moyen de vérifier si la permission a été accordée
Ensuite, et c’est plus important, les apps d’Apple elles-mêmes n’affichent pas cet avertissement, ce qui crée une concurrence déloyale
AirPlay et d’autres fonctions marchent de façon fluide, mais pas les technologies concurrentes, et comme les développeurs ne peuvent pas connaître l’état de la permission, l’expérience utilisateur se dégrade
Si Apple introduit une restriction, elle doit aussi s’appliquer à ses propres apps. AirPlay et AirDrop devraient chacun demander l’accès au Bluetooth et au réseau local, l’app Photos devrait afficher au lancement une invite « sélectionner des photos, tout autoriser, refuser », et l’app Camera ne devrait pas non plus pouvoir écrire dans la photothèque sans la même invite
Ainsi, Apple aurait aussi intérêt à bien concevoir l’expérience utilisateur autour de ces restrictions, et chercherait des solutions plus créatives au lieu de boîtes de dialogue confuses
Pour l’instant, il n’y a aucune incitation à bien faire. Tout développeur iOS ayant travaillé avec ces API sait que leur conception est médiocre à cause de restrictions arbitraires et imprévisibles
AirPlay n’a pas besoin de cette permission
Documentation : https://developer.apple.com/documentation/technotes/tn3111-i...
La revue bloquera probablement les petites apps de spam, mais comme l’auteur et d’autres l’ont dit, elle ne semble pas pouvoir bloquer les gros acteurs
En revanche, il n’est toujours pas clair si, lorsque cette permission existe, une invite s’affiche pour permettre à l’utilisateur de refuser l’usage de l’API
Existe-t-il un moyen de vérifier quelles apps populaires utilisent cela ?
Comme la plupart ici, je n’ai ni WeChat ni Alipay installés, mais je me demande pour des apps comme Instagram, Facebook, WhatsApp, Twitter, TikTok, Snapchat, Chrome, Firefox, Photoshop ou Lightroom
On ne devrait pas avoir à télécharger et installer une app juste pour voir quel comportement elle va tenter
L’App Store connaît déjà ces informations, et il serait très facile de les afficher dans la fiche de l’app avant le téléchargement
Il faut aussi parler du problème d’iOS/macOS qui réactive le Wi‑Fi et le Bluetooth à chaque mise à jour système
Contrairement à la berceuse racontée par le marketing, cela donne l’impression d’un appareil conçu délibérément pour maximiser la surveillance
Ils ont probablement choisi de ne pas suivre l’état de ces réglages parce que 99 % des gens les utilisent ou en ont besoin, et Apple aime aussi les claviers et souris Bluetooth
Maintenant je me demande : quelles autres apps ont cette permission ?
Existe-t-il un moyen de savoir quelles apps installées sur mon téléphone disposent de cette permission ?
C’est l’un des gros problèmes d’une plateforme totalement verrouillée
La garantie que le propriétaire de la plateforme respectera la vie privée et empêchera les abus des autres ne repose finalement que sur une promesse sur l’honneur
La sécurité des plateformes informatiques a toujours été difficile, et la vie privée, en particulier, est culturellement définie de façon bien plus floue que la sécurité informatique classique, généralement définie par des contournements de contrôles d’accès techniques
La vraie question est de savoir si Apple veut jouer un rôle de curator en contrôlant l’écosystème
Par le passé, l’entreprise est allée jusqu’à un bras de fer pour stopper Uber quand elle faisait des choses douteuses
Bien sûr, avec Alipay et WeChat, cela peut être plus difficile pour Apple vu l’importance énorme du marché chinois dans son succès actuel
Il sera intéressant de voir comment Apple s’adaptera à cela dans les années à venir
Les plateformes ouvertes ont aussi ce problème, et reposent peut-être encore davantage sur des promesses sur l’honneur
À moins que l’idée ne soit « si ce problème ne sera pas résolu, alors autant préférer une plateforme ouverte », je vois mal le propos
Le problème de cette logique, c’est qu’il s’agit seulement d’un exemple d’échec parmi plusieurs problèmes, qui pourrait être résolu plus tard, tandis que les plateformes ouvertes ont ce problème ainsi que bien d’autres encore non résolus
J’ai entendu des plaintes disant que ce titre est exagéré, et s’il y a une meilleure proposition, plus précise et plus neutre, on peut la changer
Je n’en suis pas certain, mais après lecture de l’article, le titre actuel ne donne pas vraiment l’impression d’être factuel
L’utilisation de
NEHotspotHelpernécessite une autorisation spéciale à demander,com.apple.developer.networking.HotspotHelper, et Apple ne l’accordera probablement pas si l’app n’a pas de besoin légitimeCela semble toutefois montrer l’incompatibilité entre la stratégie de protection de la vie privée d’Apple et les super-apps comme WeChat ou Alipay
Quand une seule entreprise entasse toutes les fonctions dans une seule app, cette app se retrouve soudain avec toutes les autorisations, et il devient difficile de savoir quand et comment les données sensibles sont utilisées
En Occident, on ne conçoit généralement pas les apps de cette façon. Par exemple, Comcast a une app séparée, « WiFi Hotspots »
Ce qui est amusant, c’est qu’ils ont annoncé il y a deux jours intégrer cette fonction dans l’app principale Xfinity, donc l’Occident est peut-être en train de rattraper son retard
Y a-t-il un moyen, pour l’utilisateur final, de voir quelles apps disposent de cette autorisation ?
Facebook aussi est une super-app. Pendant des années, il y a eu une fonction recherche de hotspots Wi‑Fi dans l’app
Je déteste vraiment quand, dès le lancement de l’app, les demandes d’accès à l’appareil photo, au micro, aux contacts, etc. pleuvent
Je refuse immédiatement, et si cela casse les fonctions de l’app, je supprime aussi l’app
Je refuse aussi quand Google Maps insiste pour activer la localisation précise, demande si je suis en train de faire de la navigation plutôt que de chercher un ami, et veut que j’autorise l’accès aux contacts
Où peut-on révoquer
com.apple.developer.networking.HotspotHelpersur iOS ?Réglages → Confidentialité et sécurité → Réseau local, ou bien ailleurs ?
Donc, au final, c’est Apple qui décide quelles entreprises peuvent récupérer mes données de localisation. Génial.
Une entreprise qui fait de la confidentialité un argument de vente détourne en coulisses les notifications et les données de localisation des utilisateurs.
Je croyais que cette fonctionnalité étant bloquée, les alertes de montée et de descente dans le métro étaient impossibles, mais en fait elle existait déjà. Alors pourquoi ça ne marche que sur iPhone...