35 votes

Comment certaines applications Android peuvent-elles se souvenir que ce n'est pas la première fois qu'elles sont installées ?

Certaines applications Android sont capables de se souvenir si elles ont été installées sur le même appareil auparavant. Supposons que vous ayez désinstallé une application il y a un an. Au bout d'un an, si vous réinstallez cette même application, celle-ci sera capable de reconnaître qu'elle a été installée auparavant sur le même téléphone.

Cette technique est utilisée par les applications en ligne pour interdire définitivement aux utilisateurs de créer à nouveau un nouveau compte s'ils ont été interdits d'utiliser le service une fois. Lorsque ces utilisateurs créent un nouveau compte en réinstallant l'application ultérieurement, ces applications sont capables de détecter leur "première présence" et d'envoyer cette information aux serveurs afin que l'utilisateur puisse être à nouveau interdit.

Comment font-ils, même après avoir effacé leurs données et les avoir désinstallés complètement ? Cela signifie qu'ils conservent un fichier quelque part dans le téléphone, qui n'est pas supprimé après la désinstallation. Comment désactiver cette détection ?

0 votes

Pourquoi voulez-vous supprimer ces informations ? Les créateurs d'applications ont-ils des droits ? Je ne m'attends pas à ce que ce commentaire soit populaire, mais demandez-vous si vous avez pris le temps et la peine de créer une application.

7 votes

@S.Mitchell Aujourd'hui, certains développeurs d'applications et de grandes sociétés de publicité essaient d'accéder à des détails inutiles d'utilisateurs innocents. Non seulement ils veulent l'adresse MAC mais ils veulent aussi connaître votre SSID wifi.Google leur a donné une bonne leçon en mettant en place les permissions que vous ne voulez pas leur donner dans Android 6. Mais les annonceurs ne s'arrêtent pas là, ils trouvent toujours un moyen de contourner. Je veux garantir ce système de confidentialité.

1 votes

@S.Mitchell Bonjour Mitchell. Vous me jugez peut-être mal en raison de ma question. Non, je ne suis pas banni des services sociaux ou en ligne, ni de stack exchange si vous en doutez. Mais pour moi, savoir c'est apprendre. Je ne fais pas de travail pratique avec les réponses que j'ai reçues ici. Mais il est certain qu'elles aident à comprendre comment les choses fonctionnent. On ne peut pas créer une sécurité anti-piratage si on ne sait pas comment pirater. La même analogie s'applique ici. Si je ne peux pas apprendre comment fonctionnent les applications, il n'y a aucune chance que je sois capable d'en créer une.

34voto

GiantTree Points 4016

Il existe de multiples façons d'identifier un appareil unique ou son utilisateur :

  1. Conserver un fichier dans un répertoire (non par défaut) : Vous l'avez déjà dit ; les applications peuvent souvent écrire sur le stockage interne d'un appareil. Cette méthode est facile, fonctionne hors ligne et n'est pas la plus facile à repérer (placer le fichier dans un endroit quelconque). de type système et personne ne prendra la peine de le supprimer).
  2. Garder la trace d'un dispositif unique ANDROID_ID (unique par nouvelle installation) Cette méthode est simple mais nécessite un accès à Internet, au moins lors de la première utilisation. Elle n'est pas très intrusive et ne persiste pas en cas de réinitialisation d'usine. Elle est également unique par utilisateur. Voir cette information .
  3. IMEI : Très intrusif, non modifiable mais nécessite un appareil compatible avec la carte SIM. L'IMEI est unique pour chaque appareil, ne peut être modifié et ne suit pas l'utilisateur, ce qui signifie que si vous vendez votre appareil, le nouveau propriétaire sera accueilli par un écran lui indiquant que l'application était déjà sur le téléphone.
  4. Suivre le compte Google d'un utilisateur : C'est à peu près la même chose que le ANDROID_ID mais nécessite l'autorisation explicite de l'utilisateur (Android 6.0+) pour y accéder. Les applications qui tirent parti de l'écosystème des comptes Google (par exemple, les scores élevés et les réalisations dans les jeux) peuvent ainsi suivre un utilisateur spécifique et obtenir plus d'informations que le simple fait de savoir si l'application a été installée ou non.

2, 3 et 4 nécessitent une connexion réseau et un serveur du côté du développeur.

0 votes

Je peux gérer les parties 2, 3 et 4 en utilisant Xprivacy. Je vais usurper chacun d'entre eux. Mais la première, ce n'est pas facile à repérer. Y a-t-il un moyen de détecter cette vulnérabilité ?

3 votes

Ce n'est pas une vulnérabilité, juste une fonctionnalité abusive. Tout comme les applications qui conservent des fichiers dans le registre. Il n'y a pas grand-chose que vous puissiez faire, à part parcourir tous les répertoires du stockage interne de votre téléphone et rechercher des fichiers suspects.

0 votes

Il est impossible de parcourir tous les répertoires car vous ne saurez jamais quel nom de fichier vous recherchez, quelle est son extension et quelle est sa taille. Et même si vous en trouvez un et le supprimez et que vous vous rendez compte que ce fichier n'est pas celui que vous recherchez, vous finirez par planter le système. J'espère qu'il y a une application administrateur qui peut détecter quel fichier est associé à quelle application.

2voto

Devin Ersoy Points 611

Il n'est pas relié au stockage, mais au nuage. C'est ainsi qu'il se souvient même si vous avez supprimé vos données. Pour désactiver cette fonction, allez dans l'application Paramètres de votre appareil, appuyez sur Comptes Google sous Personnel (appuyez sur le compte de votre choix si vous avez plusieurs comptes), puis désactivez les applications que vous ne voulez pas synchroniser automatiquement.

0 votes

La synchronisation automatique n'est pas le problème principal. Les serveurs tiers s'assurent que leur application est capable de collecter votre adresse MAC, IMEI, ID de l'appareil, ID de la publicité et de les stocker sur des serveurs pour détecter à nouveau l'appareil à l'avenir. L'usurpation de ces détails préservera votre vie privée, mais si une application écrit des "entrées de registre" comme dans Windows, le problème sera indétectable.

2voto

Neil Points 121

La réponse de GiantTree est la meilleure, mais il y a un autre point à prendre en compte. Ce serait clairement un " motif sombre "mais cette identification peut aussi se faire par prise d'empreintes digitales certaines données de l'utilisateur - ceci peut être considéré comme une variante de son premier point ("conserver un fichier") mais il serait plus difficile à détecter et moins pratique à éviter.

Le degré de résilience dépend des données choisies. La méthode la plus évidente consisterait à examiner les coordonnées et à utiliser une forme d'empreinte digitale ; une autre solution pourrait consister à utiliser l'horodatage des photos et d'autres métadonnées. Il est clair que ces données changent au fil du temps et que la méthode utilisée, quelle qu'elle soit, doit continuer à donner une réponse précise après modification (ce qui la différencie d'une fonction de hachage traditionnelle). De plus, rien ne garantit qu'un utilisateur n'efface pas simplement les données suivies, mais dans de nombreux cas, les gens préféreront ne pas le faire.

Vous pouvez vous pencher sur l'empreinte digitale du navigateur pour avoir une idée de la manière dont cela fonctionne, même si cela sera quelque peu différent car le matériel des téléphones est généralement plus uniforme que celui des PC. Cela dit, l'ajout de certains détails du téléphone puede aider à réduire un peu l'empreinte digitale.

Dans ce cas (à moins que les données du téléphone ne soient intégrées à l'empreinte digitale), le nouveau téléphone pourrait être détecté comme ayant déjà été installé, comme le demande la question. Cependant, il semble assez probable que dans un scénario où une application tente de bannir un utilisateur, cela puisse être le résultat souhaité (plutôt que de bannir le téléphone lui-même).

Veuillez noter : Je ne dis en aucun cas que c'est une façon correcte ou "bonne" d'opérer si vous écrivez des applications, mais il semble raisonnable d'en discuter car ce n'est que par la discussion que les gens sauront s'ils sont suffisamment concernés pour faire quelque chose à ce sujet et ce que cela pourrait être.

1voto

David Bennett Points 11

Il existe une classe SharedPreferences - https://developer.Android.com/reference/Android/content/SharedPreferences.html - que certaines applications utilisent pour stocker les données de préférence. Ces données ne sont pas supprimées lorsque l'application est désinstallée. Si l'application est réinstallée par la suite, toutes les clés SharedPreferences enregistrées précédemment sont toujours disponibles.

10 votes

SharedPreferences sont en fait supprimé lorsque l'application est désinstallée. Il existe des moyens pour les développeurs de mettre en place des sauvegardes, mais par défaut, elles sont supprimées lors de la désinstallation. (Source : En tant que développeur, je désinstalle mes applications pour effacer les préférences. Voir aussi : stackoverflow.com/a/9815641/1438733 )

1voto

computingfreak Points 141

Il y a une autre possibilité - l'utilisation de cookies persistants Je suppose que c'est ainsi que plusieurs applications du même développeur partageaient traditionnellement les informations d'identification, lorsque les informations d'identification stockées via la fonctionnalité des comptes n'étaient pas aussi ouvertes/connues du public.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X