iKnow - Ce que votre Mac sait de votre famille
Sous macOS, 2 chercheurs nommés Dario Pasquini et Michał Bazyli ont trouvé une variable mystérieuse nommée photosPersonPosteriorProbabilityGivenSaturdayNight qui fait partie des 144 entrées de deux modèles CoreML livrés avec macOS (EntityTagging_Family et EntityTagging_FamilyAndFriends). Ces classificateurs XGBoost indique pour chaque personne la probabilité qu'elle soit de votre famille ou de votre cercle d'amis.
Sur ces 144 variables, 20 portent sur l'identité (même nom, même adresse, membre du Partage familial), 40 sur vos échanges et 84 sur les photos où vous apparaissez ensemble... Le reste étant décliné ensuite par jour, par moment de la journée et par lieu. Et vos échanges avec ces personnes sont transcrits en tant que métadonnées : qui, quand, par quel canal.
Ces scores atterrissent ensuite dans une base à part, entityTagging.db. Dans le dossier ~/Library/IntelligencePlatform, on trouve aussi deux daemons, knowledgeconstructiond et intelligenceplatformd, qui remplissent à eux seuls +50 bases SQLite bien bien stockées en clair .
Dans le graphe lui-même, graph.db, entrent ensuite vos contacts, les visages extraits de l'app Photos, le Calendrier, le Partage familial avec l'âge de chacun des membres, le contact d'urgence de la fiche médicale de Santé, ainsi que les événements et contacts que les suggestions de Siri repèrent dans Mail et Messages. À côté, il y a aussi d'autres petites tables qui conservent un journal des communications (qui, quand, quelle app, dans quel sens, mais sans le contenu) et tous vos déplacements.
Voilà... ça fait beaucoup de données privées collectées par nos appareils Apple qu'on peut maintenant explorer tranquillement grâce à cette méthode d'Alexis Brigoni et un outil que je vous propose d'installer :
Regarder votre propre graphe avec iKnow
Les auteurs du papier de recherche ont publié iKnow , dispo sous licence Apache 2.0 qui est un petit serveur en Python 3, sans dépendance, qui n'écoute que sur 127.0.0.1 et ouvre en lecture seule le graphe, mais aussi Messages, Photos, Calendrier et Contacts.
Pour que ça fonctionne, il faudra que votre terminal ait un accès complet au disque donc pensez bien à l'activer dans les Réglages Système, Confidentialité et sécurité, Accès complet au disque. Ajoutez Terminal (ou iTerm, ou votre éditeur), puis quittez-le complètement et relancez-le, puisque la permission n'est prise en compte qu'au lancement.
Terminal coché dans Accès complet au disque
Relancez ensuite Terminal vous-même et tapez les lignes de commande suivantes :
git clone https://github.com/8rank/iKnow.git
cd iKnow
python3 server.py
Au lancement, le serveur marque ok ou DENY à côté de chaque base. Il affiche ensuite un lien du type http://127.0.0.1:8765/?token=… avec un jeton neuf à chaque lancement. Ouvrez ce lien.
Le serveur démarré : ok partout, sauf Contacts, faute de compte sur cette machine de test
Comme j'étais sur une VM, il n'y avait pas de compte iCloud ni Google configuré, donc il ne m'a pas sorti directement mes contacts, etc. Par contre, j'ai fini par l'installer directement sur ma machine de tous les jours. Là, j'ai bien récupéré les datas.
La page d'accueil d'iKnow, rendue avec des données inventées : aucun nom n'y est réel
Dans la barre latérale d'iKnow, notez qu'il y a un switch qui permet de masquer visuellement les données perso, ce qui m'a permis de faire sereinement mes captures d'écran.
Sur mon ordi, le graphe a été créé initialement le 19 septembre 2024 et compte actuellement 35 953 faits, sur 3 876 entités dont 3 038 personnes et 712 logiciels. La table des scores de parenté indique l'existence de 3 052 personnes et l'outil y compte aussi 214 relations précises sur 27 personnes.
Mon graphe c'est 35 953 faits sur 3 876 entités, dont 78 % de personnes
La table des scores de parenté, avec les noms remplacés par des substituts
La page Who else reads it est peut-être la plus parlante puisque chez moi, 31 vues dérivées sont abonnées à mon graphe personnel. Cela veut dire que d'autres appareils chez moi accèdent à ce graph.
Qui d'autre lit le graphe sur mon Mac : 31 vues abonnées, 9 autres appareils
Apple en sait donc beaucoup plus sur notre identité et nos liens inter-humains que ce qu'on pourrait penser, et iKnow nous permet d'en prendre conscience en nous permettant d'aller fouiller dans tous ces graphs présents sur nos iPhones et nos Mac.
Certes, l'application est un peu complexe parce qu'il y a beaucoup de données, et ce serait rigolo, je trouve, d'en faire quelque chose de beaucoup plus accessible qui finalement listerait un peu qui sont nos VRAIS amis et qui n'est pas notre VRAIE famille puisqu'Apple, apparemment, sait mieux que nous avec qui nous tissons des liens plus ou moins forts.


