Comment constater la collecte de données ?

Aujourd'hui, l'immense majorité des applications mobiles discutent avec des serveurs via Internet. Ces serveurs émettent et reçoivent des données. Ce sont eux qui, par exemple, vont nous notifier de l'arrivée d'un nouveau message dans notre application de discussion préférée. Ce sont eux encore qui vont, par exemple, recevoir les données collectées sur notre smartphone via l'utilisation de pisteurs embarqués dans certaines applications.

Toutes ces données, qu'elles soient à caractère personnel ou non, vont transiter sur le réseau soit par wi-fi soit par 3G/4G. Aussi, lorsque le smartphone est connecté en wi-fi, il est possible de constater l'envoi de données et d'en déterminer leur contenu. Afin de faire cette observation, il est souvent nécessaire de recourir à une attaque par la personne du milieu. Ceci va permettre d'avoir accès aux contenus des échanges réalisés en HTTPS entre le smartphone et un serveur distant.

Il y a quelques semaines, @MaliciaRogue et moi-même avons entamé le projet PiRanhaLysis. Le but de ce projet est de développer des outils d'analyse permettant de déterminer la nature des données transmises par un équipement connecté (à Internet) ainsi que les serveurs destinataires. Ces outils permettent, entre autres, aux personnes développant des applications mobiles de déterminer si celles-ci n'envoient pas plus de données que ce qui a été prévu lors de la conception.

Une courte vidéo de démonstration du PiRogue montre comment réaliser simplement l'interception des communications entre un smartphone et différents serveurs distants.

Comment sommes-nous identifié·e·s ?

Dans le but de nous identifier sans nécessairement avoir recours à notre identité officielle (nom, prénom, ...), Google et Apple ont respectivement introduit l'Advertising ID et l'ID For Advertising. Ces identifiants, propres à chaque smartphone, peuvent être désactivés et réinitialisés. Ils sont initialement conçus pour les régies publicitaires. Ainsi, ces dernières sont à même d'identifier un smartphone sans pour autant connaître l'identité réelle de la personne qui l'utilise. L'objectif ici est de disposer d'un identifiant anonyme quasi invariant dans le temps.

Le fait que cet identifiant puisse changer au fil du temps semble poser des soucis à certains pisteurs qui, périodiquement ou systématiquement, vont collecter des informations supplémentaires qui ne sont pas prévues pour être réinitialisées. Je laisse ici mes observations faites sur des applications Android :

L'approche la plus commune consiste à calculer une empreinte du smartphone en collectant, par exemple, la marque, le nom du modèle, le nom et la version du firmware, la taille de l'écran, etc. Ainsi, si cet identifiant est réinitialisé, il sera fort probablement possible de l'associer à l'ancien, simplement en vérifiant l'empreinte du smartphone.

Une autre approche se base sur la collecte d'identifiants uniques non réinitialisables que sont :

  • l'adresse MAC de la puce wi-fi ;
  • l'IMEI de la puce GSM ;
  • l'android id généré par Android lors du premier démarrage du smartphone.

Il existe d'autres approches, néanmoins les deux sus-citées sont les plus couramment observées.

Comment certains pisteurs déterminent notre orientation sexuelle ?

Sur Android, n'importe quelle application peut accéder à la liste des applications installées sur notre smartphone sans devoir en demander la permission. Les applications que nous installons en disent long sur nous. En effet, les applications dédiées à certaines communautés servent de marqueurs. Par exemple, si une application de rencontre entre personnes homosexuelles est installée alors, il y a une forte probabilité pour que la personne propriétaire du smartphone soit homosexuelle. Il en va de même pour les applications de santé, avoir, par exemple, une application de suivi de glycémie peut indiquer que la personne est diabétique. Ou encore, une application de lecture d'œuvres religieuses peut révéler notre confession.

Au même titre que les recherches que nous effectuons sur un moteur de recherche en disent long sur nos questionnements, notre intimité, les applications que nous utilisons ayant chacune un usage précis, celles-ci nous dévoilent sans que nous ne disions mot.

Ai-je un compte Facebook ?

Si j'ai déjà ouvert un compte sur cette plate-forme, la réponse est oui. Néanmoins, si je n'ai jamais ouvert de compte chez Facebook, la réponse n'est pas pour autant négative.

Un grand nombre d'applications Android embarquent des pisteurs fournis par Facebook. Le comportement le plus souvent observé consiste à notifier Facebook qu'une application vient d'être ouverte sur un smartphone. Concrètement, Facebook reçoit :

  • le nom de l'application ;
  • la date et l'heure ;
  • l'Advertising ID du smartphone.

C'est ce que nous appelons les profils fantômes. Ce profil n'est lié à aucune personne physique et sa création n'émane pas de l'action d'une personne. Ces profils sont créés automatiquement par Facebook.

Un autre comportement constaté sur certaines applications Android consiste en l'envoi de données saisies directement dans l'application. Ainsi, certaines applications de suivi de grossesse, par exemple, fournissent à Facebook le prénom, le genre, la date de naissance prévue, le type d'allaitement, ... de l'enfant né ou à naître.