Loupe - une app iOS montrant les surfaces de fingerprinting d’appareil visibles par les apps iOS natives
(github.com/mysk-research)- Loupe est une app iOS·iPadOS qui lit les valeurs réelles depuis les API iOS publiques et les affiche sous forme brute, permettant de vérifier directement les valeurs exposées par l’appareil via les API qu’une app tierce peut appeler
- Même sans nom, e-mail ni localisation, plusieurs valeurs lues peuvent se combiner pour former une empreinte capable de réidentifier un utilisateur à travers des apps et des sites web
- Les valeurs lues sont regroupées en trois niveaux selon le coût d’accès
- Passive : locale, fuseau horaire, écran, batterie, etc., visibles par toutes les apps sans invite
- Needs Permission : valeurs comme contacts, photos, localisation et calendriers, qui déclenchent une invite iOS
- Advanced : usage de canaux auxiliaires d’API publiques comme le probing de schémas d’URL via
canOpenURLou la persistance dans le Trousseau après réinstallation
- Les valeurs lues par Loupe ne quittent pas l’appareil sauf export explicite, sont affichées sous forme brute sans agrégation ni hachage, et ne sont ni téléversées, ni synchronisées, ni partagées
- La compilation nécessite Xcode 26 ou supérieur ; il faut ouvrir
code/Loupe.xcodeproj, renseignerDEVELOPMENT_TEAMet l’identifiant de bundle dansSigning.local.xcconfig, puis compiler et lancer sur un appareil ou dans le simulateur - En utilisant les buildable folders de Xcode, les nouveaux fichiers Swift sont pris en compte automatiquement sans modification du fichier projet ; la compilation pour macOS est aussi possible, mais la version Mac demande encore quelques travaux avant d’être vraiment finalisée
- Loupe est un projet open source gratuit ; le source code est distribué sous licence MIT, mais le nom Loupe, le logo, l’icône de l’app, les images, les icônes et les fichiers source de design ne sont pas couverts par la licence MIT
1 commentaires
Avis sur Hacker News
Je ne comprends pas pourquoi l’accès à Internet des apps n’est pas bloqué par défaut avec autorisation au cas par cas
Empêcher l’exfiltration de données réduirait largement ce genre de dégâts, et beaucoup d’apps n’ont de toute façon pas besoin d’accéder à Internet
Je ne vois pas pourquoi je devrais créer un compte GE pour lire ma tension, et au moins là on voit qu’on se sert de moi, alors qu’ici c’est clairement un abus
La plupart des apps ont aussi une raison légitime d’avoir accès au réseau, donc une simple permission oui/non n’aurait sans doute pas beaucoup d’effet
Ce serait bien d’avoir un journal détaillé de toutes les requêtes réseau, des domaines ciblés et des données envoyées
Les options sont désactivé, WLAN uniquement, ou WLAN et données cellulaires [0]
[0] https://old.reddit.com/r/ios/comments/aib10i/in_china_ios_al...
Je n’ai pas essayé GrapheneOS donc je ne sais pas, mais Android le prend complètement en charge, et je ne comprends pas pourquoi la plupart des fabricants retirent cette permission de leur ROM
Cela dit, je suis d’accord pour dire que cette fonction devrait exister partout
Correction par rapport à certains commentaires ici : les apps iOS ne peuvent pas lister toutes les apps installées
Elles ne peuvent vérifier que des apps/schémas précis qu’elles déclarent dans LSApplicationQueriesSchemes pour tester leur présence ou tenter de les ouvrir
Si on y met une longue liste d’apps sans rapport entre elles, l’app est rejetée lors de la revue Apple
Apple a ajouté cette restriction parce qu’une liste d’apps installées peut servir au fingerprinting et à un profilage intrusif
Et les data brokers ou agrégateurs peuvent acheter ces données auprès de milliers d’apps, les regrouper puis les revendre
Une petite liste très discriminante peut déjà apporter assez d’entropie supplémentaire pour identifier une personne de façon unique en la combinant avec d’autres données fuitées
On peut voir cette liste où ?
L’info “iPhone last setup or erased on ...” est vraiment perverse
Qu’est-ce qu’un utilisateur est censé pouvoir faire contre ça ? Il faudrait que l’OS brouille cette valeur d’une manière ou d’une autre
La seule protection consiste à éviter d’installer des apps et à utiliser le navigateur web quand c’est possible
La date de création du volume est assez grave
Je ne vois pas pourquoi cette valeur, ni le changeCount du presse-papiers, devraient être aussi précis
La fuite “Installed Apps Probe” était déjà surprenante, mais c’est quand même mieux que l’état actuel d’Android
Et rien n’empêche non plus de le réinitialiser chaque jour
Excellent
Ce genre de chose montre à quel point on a besoin d’outils qui rendent ça visible
J’ai fait quelque chose de similaire pour le web : https://neberej.github.io/exposedbydefault/
Github : https://github.com/neberej/exposedbydefault
Pour ceux qui n’ont pas d’iPhone ou ne veulent pas installer l’app, on peut voir une démo ici
Ce sont différentes versions de la même vidéo selon la plateforme
https://odysee.com/@techlore:3/permission-not-required-the-o...
https://www.youtube.com/watch?v=_n_SpEWtqog
https://inv.nadeko.net/watch?v=_n_SpEWtqog
https://techlore.tv/w/d7dh4P7y4dVngNoL7u7s3B
Je ne comprends pas pourquoi une app quelconque, sans permission spéciale, peut accéder à autant d’informations, ni pourquoi Apple n’informe pas les utilisateurs de ces données importantes
Apple ne pourrait pas créer une longue liste de cases à cocher pour autoriser/bloquer ça par catégorie et par app ?
Par exemple, je ne savais pas qu’une app à qui on n’a accordé aucune permission pouvait immédiatement avoir la liste de toutes les apps installées sur l’appareil, puis déduire de la présence de Tinder/Bumble/Hinge si quelqu’un fréquente quelqu’un, voire le trompe
Rien qu’avec ça, on dirait qu’un acteur malveillant pourrait monétiser un service du type « vérifiez si votre partenaire vous trompe » à 10 $ en vendant une réponse probabiliste
Comment comptes-tu installer une app « vérifiez si votre partenaire vous trompe » sur le téléphone de la personne en question ?
Il existe déjà quelque chose de similaire pour les téléphones Android ?
Aujourd’hui, j’ai simplement renoncé à essayer de ne pas partager mes données personnelles
À la place, je bloque toutes les pubs, et je n’utilise pas les apps/sites web inutilisables sans bloqueur de pub
Ils ont peut-être plein d’infos sur moi, jusqu’à des détails comme mon parfum de glace préféré, mais comme je ne vois aucune pub, ça m’importe assez peu
Bien sûr, ce serait mieux que personne n’ait ces informations, mais dans cette société affreuse il faut bien rester pragmatique
C’est pour ça que j’évite d’installer des apps et que je n’en garde pas beaucoup