2 points par GN⁺ 2024-11-13 | 1 commentaires | Partager sur WhatsApp
  • Depuis iOS 18.1, les AirPods Pro 2 peuvent être utilisés comme des appareils auditifs, mais en raison de restrictions régionales, les utilisateurs malentendants en Inde ne pouvaient pas accéder immédiatement à cette fonction clé
  • Les restrictions portaient sur plusieurs axes, comme la résidence dans un pays pris en charge, iOS 18.1 ou ultérieur, et le firmware 7B19 ou ultérieur ; l’appareil pouvait déterminer sa position en combinant IP, paramètres régionaux, GPS, réseau mobile et informations de localisation WiFi
  • La manipulation via proxy et la simulation CoreLocation de Xcode ont échoué ; d’après les logs de locationd et des indices dans les réglages, la position simulée ne semblait pas utilisée pour déterminer le domaine réglementaire
  • Finalement, une expérience de cage de Faraday a été menée en imitant l’environnement WiFi de Menlo Park, en Californie, avec des données Wigle et un ESP32, puis en réduisant les signaux environnants à l’aide d’une boîte en papier aluminium et d’un four à micro-ondes
  • Une fois activée, la fonction Hearing Aid était synchronisée avec le compte iCloud et pouvait être utilisée sur d’autres appareils ; l’enjeu principal restait de mettre au point une procédure reproductible pour ouvrir cette fonction géorestreinte aux utilisateurs qui en avaient réellement besoin

Restrictions régionales de la fonction appareil auditif des AirPods Pro 2

  • Juste après la mise à jour iOS 18.1, des AirPods Pro 2 ont été achetés pour des grands-parents malentendants, mais Apple limitant la fonction Hearing Aid aux États-Unis et à quelques autres pays, elle était en pratique inutilisable en Inde
  • Les appareils auditifs classiques peuvent coûter de ₹50 000 à plus de ₹8L, selon leur capacité de correction
  • Apple met en avant le fait que la fonction appareil auditif des AirPods peut corriger l’audition jusqu’à 60dbHL, en particulier autour des fréquences de la voix
  • Pour les personnes se trouvant dans une région prise en charge, possédant des AirPods Pro 2 et utilisant iOS 18.1 ou ultérieur avec le firmware 7B19 ou ultérieur, l’écran de cette fonction apparaissait dans l’app Santé
    • En « activant » la fonction depuis un appareil sous iOS 18.1 ou ultérieur, il était possible de la pousser vers des appareils avec un firmware plus ancien, comme 7A294

Comment iOS détermine la position

  • Les premières recherches ont montré qu’un appareil iOS pouvait déterminer le pays et la région de l’utilisateur par plusieurs voies
    • En envoyant une requête GET à https://gspe1-ssl.ls.apple.com/pep/gcc pour recevoir un code pays basé sur la localisation IP
    • En vérifiant la région configurée dans l’Apple Store
    • En s’appuyant sur les paramètres régionaux, le fuseau horaire et la langue de l’appareil
  • Sur les appareils dotés du GPS et d’un réseau mobile, une détermination plus directe de la position est également possible
    • Position basée sur le signal GPS
    • Détermination de la position via le réseau mobile en comparant le MCC/MNC à une base de données interne
  • Pour réduire le périmètre de l’expérience, un iPad WiFi de 10e génération, sans connectivité cellulaire, a été utilisé
    • Usurper le GPS et les antennes-relais ne serait pas impossible en construisant une cage de Faraday, mais cela aurait demandé beaucoup plus de travail

Contournements échoués : proxy et simulation de position

  • La première approche a consisté à changer les paramètres régionaux et la région dans iOS, puis à faire passer le trafic réseau de l’appareil par un ordinateur portable en proxy afin que la réponse de l’endpoint de géolocalisation apparaisse comme US au lieu de IN
  • La fonction de simulation de position de Xcode a aussi été utilisée pour tenter d’usurper CoreLocation
  • Cette méthode n’a pas fonctionné
    • À cause du certificate pinning, plusieurs apps et écrans de réglages n’arrivaient plus à se connecter aux serveurs Apple
    • Il était possible que la connexion aux serveurs Apple nécessaire à l’activation de la fonction ait été bloquée, mais cela n’a pas pu être entièrement vérifié
  • Les logs de la console affichaient des messages laissant penser que la fonction devait être activée, mais l’écran de réglage Hearing Aid ne s’ouvrait pas réellement

Les indices révélés par locationd

  • Le lendemain, un nouvel examen des logs a montré des messages suggérant que, malgré l’usurpation de la localisation IP et des paramètres régionaux, l’appareil estimait ne pas se trouver aux États-Unis
  • Les binaires countryd et locationd ont été extraits afin d’y chercher les chaînes pertinentes
  • Dans locationd, un réglage booléen nommé AllowSimulatedLocation a été identifié, avec une valeur par défaut à 0
  • Un getter skipUpdatingRegulatoryDomain a également été découvert ; il semble être utilisé dans sendUpdateToRDIfAllowed pour décider s’il faut mettre à jour le domaine réglementaire
  • La conclusion a été que même en simulant CoreLocation avec les outils intégrés à Xcode, cela ne passait pas pour la détermination du domaine réglementaire de Hearing Aid
    • La fonction Hearing Aid peut être contrôlée depuis macOS, mais son activation devait se faire via un appareil iOS
    • Modifier le binaire sur macOS après avoir désactivé SIP afin d’activer directement la fonction restait une piste possible, mais elle n’a pas été explorée

Tromper la localisation WiFi

  • Les appareils récents peuvent trianguler une position à l’échelle d’une ville en combinant les SSID WiFi environnants, les adresses MAC des routeurs et des appareils, ainsi que le GPS
  • Si un iPad uniquement WiFi pouvait afficher une position précise dans les apps sans GPS ni cellulaire, c’était aussi grâce à la géolocalisation WiFi
  • Parmi les bases de données publiques de localisation WiFi, un compte a été créé sur Wigle afin de récupérer des données de Menlo Park, en Californie
  • Skylift a été forké et modifié, puis un ESP32 a été configuré pour diffuser rapidement en boucle des SSID WiFi
    • Le principe consiste à faire imiter à l’ESP32 l’environnement radio d’une autre région
    • Le nombre de SSID à faire tourner a été augmenté de 10 à 100
  • Comme il y avait beaucoup de vrais réseaux WiFi émis par les maisons autour de Lagrange Point, l’iPad pouvait signaler d’autres réseaux à proximité si ces signaux n’étaient pas affaiblis ou dominés

Expériences avec cage de Faraday et four à micro-ondes

  • La première cage de Faraday a été fabriquée en enveloppant une boîte en carton ondulé dans du papier aluminium
  • À l’intérieur de la boîte se trouvaient l’ESP32 diffusant les SSID californiens et l’iPad, celui-ci étant connecté à un ordinateur portable pour les logs de console et l’accès à Internet
  • En exploitant le fait que le WiFi et les fours à micro-ondes utilisent tous deux la bande 2,4 GHz, un four à micro-ondes qui fuyait a été lancé à puissance maximale pour tenter de bloquer les signaux réseau persistants aux alentours
  • Un script a été mis en place pour redémarrer l’iPad cinq minutes après l’avoir placé dans la boîte, puis activer le réseau
  • Lors du premier essai, l’iPad était toujours reconnu comme étant dans la région IN, mais après plusieurs ajustements de la cage de Faraday, des interférences du micro-ondes et de la procédure de redémarrage, le message de changement de région attendu est apparu dans la console
  • Ensuite, en sortant l’iPad et en ouvrant les AirPods, le processus de configuration Hearing Aid s’est affiché immédiatement

Procédure reproductible et projet d’activation en série

  • Une fois la preuve de concept terminée, le travail a commencé pour créer une procédure de reproduction plus fiable afin d’ouvrir la fonction aux personnes qui en ont besoin
  • Les expériences ont été répétées pendant plusieurs jours et une cage de Faraday plus permanente a été fabriquée
  • Un petit camp d’activation à Lagrange Point a été envisagé pour les personnes à Bengaluru qui pourraient bénéficier de l’usage des AirPods comme appareils auditifs
  • Les participations et mises à jour devaient être gérées via un compte X et un fil de tweets

Fonctionnement après activation

  • La fonction Hearing Aid ressemblait à un préréglage d’égaliseur poussé vers les AirPods et remplaçait le mode Transparence
  • Une fois la fonction Hearing Aid activée, le flag de fonctionnalité était synchronisé avec le compte iCloud
  • Grâce à cette synchronisation, la fonction pouvait être utilisée sans répéter la même procédure sur tous les appareils

1 commentaires

 
GN⁺ 2024-11-13
Commentaires sur Hacker News
  • La fonction Hearing Aid est en réalité un préréglage d’égaliseur poussé vers les AirPods, et semble remplacer le mode Transparence.
    Si Apple ne l’avait pas commercialisée comme une « aide auditive » ni employé de vocabulaire médical, les régulateurs ne seraient probablement pas intervenus. D’autres écouteurs true wireless dotés d’un égaliseur paramétrique et d’un mode Transparence peuvent faire la même chose.
    En contrepartie, Apple aurait perdu son avantage marketing, mais c’était peut-être en soi un gros risque calculé. Ces appareils embarquent une puissance de traitement et une flexibilité énormes. Même des produits à moins de 10 dollars utilisant le tristement célèbre SoC JieLi reviennent à avoir un ordinateur 32 bits à 160 MHz dans chaque oreille.
    Il est surprenant qu’il n’existe pas encore d’écouteurs true wireless mettant en avant un firmware open source, même s’il semble qu’il y ait eu quelques travaux de personnalisation dans les communautés chinoises et russes.

    • Le problème est bien plus important que simplement « perdre un avantage marketing ». Apple n’agit pas dans le vide : Sony et Bose visent le même marché et pousseront probablement leur propre marketing à leur manière.
      Si Apple se contente de dire que cela « fonctionne plus ou moins comme une aide auditive », elle se retrouvera nettement désavantagée face à d’autres marques qui mettront des affiches bien visibles dans les points de vente. Bien sûr, Apple peut encore gagner pour les ventes en ligne ou auprès des personnes qui n’ont pas absolument besoin d’un haut niveau de confiance.
      https://electronics.sony.com/otc-hearing-aids
    • Il y a les PineBuds Pro : https://pine64.com/product/pinebuds-pro-open-firmware-capabl...
    • Pour ceux que ça intéresse, TWS signifie apparemment « True Wireless Stereo ».
      https://audiochamps.com/what-does-tws-mean/
      Autrement dit, des écouteurs Bluetooth.
    • Ils visaient peut-être les personnes qui utilisent un FSA/HSA pour leurs dépenses médicales.
    • Si c’est la seule inquiétude, tant mieux. Il semble peu probable qu’Apple désactive cette fonctionnalité.
      Je craignais qu’il y ait d’autres problèmes réglementaires, comme le volume, mais je ne vois pas trop lesquels.
  • Il y a ce passage : « Comme le WiFi et les micro-ondes fonctionnent sur la même fréquence, 2,4 GHz, ils ont fait tourner un four à micro-ondes fuyant à puissance maximale pour bloquer les signaux réseau continus dans l’air. » Fait intéressant, le WiFi essaie justement d’éviter ce type d’interférences.
    Un four à micro-ondes n’émet pas lors des passages par zéro de l’alimentation secteur alternative, et pendant ces intervalles il n’y a pas de signal radio dans l’air susceptible de perturber les ondes. Le WiFi écoute avant d’émettre afin d’éviter les collisions avec d’autres appareils, et le signal d’un micro-ondes suffit à déclencher cette détection.
    Je ne me souviens plus si un micro-ondes fonctionne en demi-onde, créant des fenêtres de 1/120 s soixante fois par seconde, ou s’il n’y a seulement qu’une zone critique autour du passage par zéro où la puissance est trop faible pour interférer. Ici, il semble très possible que le micro-ondes n’ait en réalité pas joué un grand rôle.

    • Peu importe ce que dit l’analyse théorique, avec au moins une combinaison de micro-ondes et de routeur, j’ai pu reproduire un micro-ondes qui perturbe le signal WiFi.
      Cela dit, à d’autres moments, je n’ai pas constaté d’effet notable.
    • Je me demande pourquoi un four à micro-ondes n’émettrait pas lors du passage par zéro de l’alimentation secteur. Est-ce que, par conception, un micro-ondes module un signal à 2,4 GHz sur du 50/60 Hz ?
    • Cela veut-il dire que deux micro-ondes fuyants branchés sur des phases électriques différentes pourraient bloquer le WiFi 2,4 GHz ?
    • En théorie oui, mais dans la pratique les micro-ondes qui perturbent le WiFi sont un phénomène tellement connu qu’il apparaît même dans XKCD.
  • Quelqu’un sur Reddit a indiqué qu’il était possible d’accéder directement à la fonction de test auditif via une URL spéciale :
    x-apple-health://HearingAppPlugin.healthplugin/HearingTest
    Je me demande s’il serait possible de trouver un deeplink similaire pour activer le mode Hearing Aid.
    https://www.reddit.com/r/AirpodsPro/comments/1gftyqo/is_the_...

    • J’ai aussi creusé cette piste, mais je n’ai rien trouvé.
      Dans une certaine mesure, l’approche actuelle était simplement plus facile.
      Il y a sûrement quelque chose. Apple a changé le schéma de gestion des URL dans iOS 18, donc les anciens dépôts qui y faisaient référence ne fonctionnent plus.
  • Je suis Rithwik, l’un des auteurs. Si vous avez des questions, j’y répondrai.

    • C’est un hack vraiment génial et j’ai pris beaucoup de plaisir à le lire. Si je devais poser une question, ce serait : que comptez-vous faire ensuite avec votre nouvelle cage de Faraday ?
    • Je suis un peu perdu sur la façon dont la région est traitée. J’ai un iPhone acheté au Canada, un compte Apple canadien, une carte de crédit canadienne avec une adresse de facturation canadienne, et la localisation de l’App Store est aussi réglée sur le Canada, mais je vis en Espagne depuis plusieurs années.
      Du point de vue d’Apple, je suis toujours entièrement « canadien ». Je ne vois aucune des fonctionnalités liées aux App Store tiers limitées à l’UE, et j’ai accès à des fonctionnalités comme Apple Intelligence qui ne sont pas disponibles dans l’UE.
      La fonction d’aide auditive n’étant disponible ni au Canada ni en Espagne, je ne peux pas tester, mais je me demande en quoi la restriction régionale de l’aide auditive diffère des autres restrictions régionales et activations par région d’Apple.
    • Excellent article. Voir le comportement d’une app iOS exploré de façon aussi décontractée par le hacking donne l’impression d’entrer dans un monde complètement différent, surtout parce que je pensais qu’iOS était assez verrouillé.
      Je me demande comment vous avez commencé, et si vous avez des ressources à recommander. Et puisque vous avez dit que vous n’aviez finalement pas acheté des écouteurs très chers, je suis aussi curieux de savoir quels écouteurs vous utilisez réellement, ou lesquels vous aimeriez acheter.
    • Vraiment un super hack. J’ai été un peu surpris qu’il ait fallu aller jusqu’au spoofing de réseau WiFi, mais c’est impressionnant d’avoir fini par le découvrir.
    • Lecture très agréable. Je me demande à quel point vos grands-parents sont satisfaits de la fonction d’aide auditive. Fonctionne-t-elle vraiment bien, et qu’en est-il de l’autonomie ?
  • Je me demande si ce réglage se réinitialise au bout d’un certain temps, ou s’il suffit de le faire une seule fois.
    J’ai peur que l’iPad ou les AirPods décident qu’ils sont restés trop longtemps en Inde et retirent la fonctionnalité.

    • Je suis l’un des auteurs du billet. C’est un réglage à faire une seule fois.
      Une fois la fonctionnalité activée, un indicateur est défini sur le compte iCloud, donc elle continue de fonctionner où que vous voyagiez. En même temps, un profil d’égalisation est poussé vers le mode Transparence des AirPods, ce qui active la fonction d’aide auditive.
      Une fois l’opération terminée, cela reste en place tant que vous ne réinitialisez pas les AirPods.
      Il y a toutefois une particularité intéressante : si vous activez cette fonction sur les AirPods de quelqu’un d’autre, mais que la fonction n’est pas « disponible » sur ses appareils ou son compte, cette personne ne pourra pas ajuster les réglages depuis ses propres appareils.
  • Cet exemple montre très bien pourquoi le logiciel libre est important. Le verrouillage régional est ici une pratique hostile qui n’a aucun sens.
    Si le logiciel ou le firmware avaient été libres et ouverts, on aurait pu patcher ou désactiver le verrouillage régional. Il est même très probable qu’une telle restriction n’aurait pas été ajoutée dès le départ.

    • Dans le cas général, les restrictions régionales ont du sens.
      Dans les pays approuvés, les autorités de régulation ont probablement dû l’autoriser comme dispositif médical d’assistance. Si des dispositifs médicaux d’assistance et autres pouvaient être vendus sans approbation, des objets capables de blesser ou même de tuer des gens pourraient être commercialisés sous cette appellation.
      Le problème ici, c’est que ce cas semble être une fonction d’assistance inoffensive, ce qui rend son interdiction ridicule. Mais si la réglementation ne s’applique pas, elle ne sert à rien.
      Au final, soit les régulateurs des autres pays sont lents, soit, dans le pire des cas, Apple n’a peut-être pas demandé l’autorisation.
  • Je me demande si quelqu’un sait ce que fait réellement le mode Hearing Protection. Il n’est pas disponible en Norvège, ni en dehors de l’Amérique du Nord.
    J’ai déjà utilisé les AirPods Pro 2 comme protection auditive auparavant, et ça fonctionnait plutôt bien. Je me demande si c’est simplement parce que l’expression « Hearing Protection » ne peut être utilisée qu’aux États-Unis, ou si la fonction est réellement meilleure que la réduction de bruit habituelle des Pro 2.

    • Il est très probable que les seules nouveautés soient l’application de test auditif et le marketing. Les AirPods disposaient déjà de ce genre de fonctions.
      Quand on écoute Hearing Protection en action, ça ressemble à de la compression multibande : la plage de fréquences audibles est divisée en plusieurs bandes, et une compression est appliquée séparément à chacune. Mais j’ai l’impression que cela existait déjà avant.
  • Je me demande si c’est réellement différent du mode Transparence personnalisé dans les fonctions d’accessibilité, qui existait déjà avant l’annonce de la fonction d’aide auditive.
    On pouvait utiliser un audiogramme enregistré dans l’app Santé. Cela dit, le mode Transparence personnalisé sonnait assez mal, comme un filtre en peigne.

    • Oui. Je ne pense pas que ce soit différent. J’utilise cette fonction depuis mars.
  • Vraiment excellent. À i3Detroit, nous construisons une cage de Faraday de la taille d’un dressing. Bien sûr, comme nous sommes aux États-Unis, nous n’en avons pas besoin pour ce hack en particulier, mais il y a énormément de raisons amusantes d’en avoir une.
    La principale, c’est qu’il y a un émetteur WOMC tout près, avec une EIRP de 135 000 watts. Il s’infiltre dans toutes sortes d’équipements et complique les mesures sur d’autres fréquences radio. Quand on fait des travaux comme l’alignement d’amplificateurs, il vaut mieux commencer par établir une base solide dans un environnement calme avant d’ajouter des causes potentielles comme l’intermodulation.
    On peut déboguer du matériel sans fil, WiFi, Bluetooth, etc., sans les innombrables nœuds environnants. On peut aussi filtrer la sortie d’un sniffer, mais filtrer directement l’entrée est plus amusant.
    On peut aussi allumer un réseau mobile 1G ou 2G sans se soucier des licences de fréquences. On peut s’entraîner à des techniques WiFi agressives susceptibles de perturber le réseau existant du hackerspace.
    Dans une zone sans FCC, on peut jouer avec un spoofer GPS, ou mener des expériences amusantes qu’on veut faire de façon responsable. On peut aussi enfermer un iPhone dedans pour voir s’il redémarre tout seul.

    • Exactement. C’est presque étonnant d’avoir vécu jusqu’ici sans cage de Faraday.
      J’ai très envie d’y mettre des appareils et de remplir l’air à l’intérieur d’ondes radio, sans me soucier des licences.
      J’ai vu une cage de Faraday grandeur nature à l’Indian Institute of Science, et j’ai été content de constater que notre approche et notre structure étaient similaires.
  • Dans ce cas, le certificate pinning semble aussi assez facile à contourner. Il suffit d’utiliser un proxy ou un VPN. Cela dit, toute l’histoire autour de la cage de Faraday est plutôt cool.

    • Il faudrait expliquer en quoi un VPN résout le problème du certificate pinning. L’auteur modifiait déjà le trafic HTTP/S de l’iPhone via une connexion réseau proxifiée, et à ma connaissance un VPN ne permet pas de forger une réponse HTTPS valide avec un certificat serveur épinglé.
    • Au final, c’est aussi ce que nous avons fait. Nous avons utilisé un VPN commercial et fourni Internet à l’appareil via un câble USB.
      Un VPS quelque part avec Tailscale aurait sans doute aussi fait l’affaire.
    • Je ne vois pas en quoi utiliser un VPN rend plus facile le fait de se faire une attaque de l’homme du milieu à soi-même pour modifier la réponse de cette requête GET.