Le niveau de la batterie est exploité pour traquer les utilisateurs
En assignant des empreintes uniques pour chaque appareil

Le , par Coriolan

21PARTAGES

11  0 
L'API de statut de la batterie, souvent mentionnée sous le nom Battery API, fournit des informations sur le niveau de charge du système et envoie des notifications lors du changement du niveau de charge de la batterie. Cela peut être utilisé pour ajuster la consommation d'une application et la réduire lorsque la batterie est faible ou encore de sauvegarder les données quand la batterie est bientôt vide. Cette API peu connue a été introduite avec le HTML5, la dernière révision majeure du HTML (format de données conçu pour représenter les pages web).

Une nouvelle étude de deux chercheurs de l’Université de Princeton a révélé que cette API est utilisée pour traquer les utilisateurs. Et pour cause, elle permet aux administrateurs de sites web d’avoir accès à des informations sur le niveau de la batterie ou le temps de charge et le temps de décharge, des informations entre autres qui ont soulevé dès le début des questions de confidentialité. Dès son lancement dans les navigateurs Firefox, Chrome et Opéra, des chercheurs avaient mis en garde contre une éventuelle possibilité d’utilisation de l’API pour trouver des combinaisons uniques du niveau de la batterie restant ainsi que sa capacité, ce qui permet d’assigner une empreinte digitale unique pour identifier chaque appareil. Autrement dit, l’API pourrait aider à démasquer l’identité des utilisateurs en ligne.

C’est ce que viennent de confirmer les deux chercheurs de Princeton. En ayant recours à un navigateur modifié, ils ont pu trouver deux scripts qui exploitent cette API pour traquer les utilisateurs. Un de ces deux scripts se charge d’enregistrer le niveau de charge de la batterie et combine cette information avec d’autres données comme l’adresse IP locale. Le deuxième script retrouve le statut de charge de la batterie, c'est-à-dire le temps restant pour la décharger ou la recharger. En exploitant les informations fournies par l’API, il devient possible d’assigner des empreintes spécifiques pour chaque appareil, ce qui permet de traquer les utilisateurs. Il faut noter que cette empreinte est quasi unique et sa chance de se reproduire est très minime (une chance sur 14 millions).

Un autre chercheur nommé Lukasz Olejnik a souligné que cette API pourrait être exploitée pour d’autres fins en dehors de l’espionnage des utilisateurs. Le chercheur a constaté que les gens ont tendance à agir différemment lorsque la batterie de leur appareil est sur le point de mourir. Olejnik explique que les acteurs sans scrupule peuvent exploiter cette API pour adapter les prix au niveau de la batterie par exemple. « Quelques firmes pourraient analyser la possibilité de monétiser l’accès au niveau de la batterie », écrit-il. « Quand la batterie est faible, les gens sont susceptibles de prendre des décisions différentes. Dans quelques cas, les gens acceptent de payer plus pour un service ».

Source : Randomwalker - Blog.lukaszolejnik

Et vous ?

Qu'en pensez-vous ?

Voir aussi :

Forum Sécurité

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de RyzenOC
Inactif https://www.developpez.com
Le 03/08/2016 à 20:04
Qu'en pensez-vous ?
On le fait déjà avec le cpu, la protection Denuvo utilise ce procédé. Chaque cpu est unique.
0  1 
Avatar de NSKis
En attente de confirmation mail https://www.developpez.com
Le 03/08/2016 à 20:41
Une nouvelle étude de deux chercheurs de l’Université de Princeton a révélé que cette API est utilisée pour traquer les utilisateurs.
J'en pense que "traquer les utilisateurs" devient une méchante habitude qui commence à me "gonfler"!!!
3  0 
Avatar de Tagashy
Membre averti https://www.developpez.com
Le 03/08/2016 à 20:57
J'ai une question.
Est il possible de ne pas supporter HTML5 (ou du moins les fonctionnalités a problème ) tout en gardant un navigateur sécurisé ?
entre les DRM intégré, cette nouvelle manière de tracking, l'accées au periferique USB ( euh WTF) cette norme m'en...erde de plus en plus
2  0 
Avatar de jackk
Membre actif https://www.developpez.com
Le 03/08/2016 à 22:29
Une chose m'échappe dans cet article: comment peut-on déterminer une empreinte d'une machine à l'aide du niveau de charge, paramètre on ne peut plus aléatoire d'un moment à un autre?
2  0 
Avatar de
https://www.developpez.com
Le 03/08/2016 à 22:46
Les scientifiques ont de quoi marquer les animaux sauvage pour un meilleur suivi de leurs habitudes.
Qui sait, le tout puissant n'utilise rien de tous sa.
0  3 
Avatar de Chauve souris
Membre émérite https://www.developpez.com
Le 04/08/2016 à 4:41
Citation Envoyé par NSKis Voir le message
J'en pense que "traquer les utilisateurs" devient une méchante habitude qui commence à me "gonfler"!!!
Je propose une petite chanson qui commencerait par "Allons enfants de la batterie".
4  0 
Avatar de TiranusKBX
Expert confirmé https://www.developpez.com
Le 04/08/2016 à 10:10
dire que à elle seule cette API permet le tracking est totalement IDIOT !
premièrement en cas de PC fixe ou PC portable toujours branché ça te renvois 100% 0 temps de chargement, comment veut tu en déduire la capacité du Terminal ?
puis après l'état d'une batterie peut parfois se détériorer rapidement rendant impossible le suivit sans test précieux cookies
enfin je pense que même le temps de charge n'est pas une donnée fiable car en fonction de l'utilisation du terminal ce temps peut varier(je parle de l'évolution du temps à un instant T)

Bref trop de biais sont présents pour que l'affirmation de cette étude soit prise au sérieux
0  0 
Avatar de
https://www.developpez.com
Le 04/08/2016 à 12:13
Sérieusement...
Eicar à un équivalent dans se domaine ? (savoir si on est correctement traqué)
0  1 
Avatar de Orionos
Membre habitué https://www.developpez.com
Le 04/08/2016 à 17:36
Citation Envoyé par jackk Voir le message
Une chose m'échappe dans cet article: comment peut-on déterminer une empreinte d'une machine à l'aide du niveau de charge, paramètre on ne peut plus aléatoire d'un moment à un autre?
Les infos disponibles sont les suivantes :

charging (boolean) : le statut de la batterie
chargingTime (double) : le temps restant, en secondes, avant que la batterie ne soit chargée
dischargingTime (double) : le temps restant, en secondes, avant que la batterie ne soit déchargée
level (double) : le niveau de la batterie compris entre 0 et 1.0

Une batterie c'est un peu particulier. C'est un composant qui (je suppose) présente déjà des caractéristique UNIQUES à sa sortie d'usine. Une batterie peut être plus ou moins performante, suivant les modèles de batterie bien-sur, mais aussi suivant son usure.

Un cas ou tu peux te servir du niveau de batterie pour identifier un utilisateur :

Imagine tu es admin sur developpez.net. Tu commence par logger les 4 infos ci-dessus pour chaque utilisateur authentifié pendant une semaine.
La semaine d'après, tu prends les infos associées au compte de Madame Michou, tu les recoupe avec d'autres infos simples comme le jour de la semaine, l'heure, pour avoir quelque chose comme :

"Le lundi midi, Madame Michou se connecte en général une heure, et a tendance à brancher sa batterie quand elle est a 10%. De plus je sais que les carac de sa batterie (chargingTime et dischargingTime) sont : X et Y"

Le lundi midi, tu regarde logs (niveaux de batterie) des utilisateurs qui ne sont pas authentifiés. Tu te rends compte qu'une connexion colle vraiment bien au modèle que tu as établi et découvre que l'ambassadrice C# qu'est Madame Michou regarde en fait des posts sur le Java !!! Scandale diplomatique d'envergure.

Si tu n'a pas de section authentifié pas grave, tu n'as pas de nom, mais si tu sais que Utilisateur1 à consulté des jeux de société lors de sa dernière visite, tu va innocemment lui en proposer ça risque de l’intéresser.

Plus largement, toute info qui varie d'un utilisateur à un autre permet de l'identifier. En recoupant le maximum d'infos et en établissant un modèle, on peut retrouver, ou simplement se donner une idée de qui est derrière l'écran. Un exemple tout bête, l'utilisateur qui ne se sert que de l’ascenseur à droite pour monter naviguer dans une grande page a de forts risques d'avoir plus de 50 ans. Donc a mon avis fausse polémique ici, le problème est plus large que ça. Mais c'est toujours bien d'être au courant
0  0 
Avatar de jackk
Membre actif https://www.developpez.com
Le 04/08/2016 à 18:35
La semaine d'après, tu prends les infos associées au compte de Madame Michou, tu les recoupe avec d'autres infos simples comme le jour de la semaine, l'heure, pour avoir quelque chose comme :

"Le lundi midi, Madame Michou se connecte en général une heure, et a tendance à brancher sa batterie quand elle est a 10%. De plus je sais que les carac de sa batterie (chargingTime et dischargingTime) sont : X et Y"
J'avais bien compris l'utilisation qui pouvait être faite de la charge de la batterie. Mais tu fais le postulat que Mme Michou a été identifiée et que l'on collecte les données de la batterie APRES identification.
Moi, ce que je ne comprends pas, et ce que semble indiquer l'article, c'est que le niveau de batterie permettrait d'identifier Mme Michou: je cite
En exploitant les informations fournies par l’API, il devient possible d’assigner des empreintes spécifiques pour chaque appareil, ce qui permet de traquer les utilisateurs. Il faut noter que cette empreinte est quasi unique et sa chance de se reproduire est très minime (une chance sur 14 millions).
0  0 
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web