36 votos

¿Cómo algunos apps de Android recuerdan que esta no es la primera vez que se instalan?

Algunas aplicaciones de Android pueden recordar si fueron instaladas anteriormente en el mismo dispositivo. Supongamos que desinstalaste una aplicación hace un año. Después de un año, si vuelves a instalar esa misma aplicación, esa app será capaz de reconocer que fue instalada antes en el mismo teléfono.

Esta técnica es utilizada por aplicaciones en línea para prohibir permanentemente a los usuarios que han sido prohibidos una vez de utilizar el servicio a que creen una nueva cuenta. Cuando estos usuarios crean una nueva cuenta reinstalando la aplicación más tarde, estas apps son capaces de detectar su "primera presencia" y enviar esta información a los servidores para que el usuario pueda ser prohibido nuevamente.

¿Cómo lo hacen incluso después de borrar sus datos y desinstalarlas por completo? Significa que mantienen algún archivo en algún lugar del teléfono, que no se borra después de la desinstalación. ¿Cómo puedo desactivar esta detección?

0 votos

¿Por qué quieres borrar esta información? ¿Los creadores de aplicaciones tienen derechos? No espero que este comentario sea popular, pero considera si has dedicado el tiempo y el esfuerzo para crear una aplicación.

7 votos

@S.Mitchell Hoy en día, algunos desarrolladores de aplicaciones y grandes empresas de publicidad intentan acceder a detalles innecesarios de usuarios inocentes. No solo quieren la dirección MAC, sino que también quieren conocer tu SSID de wifi. Google les dio una buena lección al implementar qué permisos no quieres darles en Android 6. Pero los anunciantes no se detienen aquí, siempre encuentran una forma de evadirlo. Quiero asegurar este sistema de privacidad.

1 votos

@S.Mitchell Hola Mitchell. Es posible que me estés juzgando mal por mi pregunta. No, no estoy prohibido de ningún servicio social u en línea, ni de stack exchange si tienes dudas al respecto. Pero para mí, saber es aprender. No estoy realizando ningún trabajo práctico con las respuestas que he recibido aquí. Pero definitivamente ayudan a uno a entender cómo funcionan las cosas. No se puede crear seguridad contra el hackeo si uno no sabe cómo hackear. La misma analogía aplica aquí. Si no puedo aprender cómo funcionan las aplicaciones, no tiene sentido que pueda crear una.

34voto

GiantTree Puntos 1234

Hay múltiples formas de identificar un dispositivo único o su usuario:

  1. Mantener un archivo en algún directorio (no predeterminado): Ya mencionaste esto; las aplicaciones a menudo pueden escribir en el almacenamiento interno de un dispositivo. Este método es fácil, funciona sin conexión y no es el más fácil de detectar (coloca el archivo en algún directorio similar al sistema y nadie se molestará en eliminarlo).
  2. Seguimiento del ANDROID_ID único de un dispositivo (único por instalación nueva): este método es simple pero requiere acceso a internet, al menos en el primer uso. No es muy intrusivo y no persiste en caso de un restablecimiento de fábrica. También es único por usuario. Ver esta información.
  3. IMEI: Muy intrusivo, inmodificable pero requiere un dispositivo con capacidad SIM. El IMEI es único para cada dispositivo, no se puede cambiar y no sigue al usuario, lo que significa que si vendes tu dispositivo, el nuevo propietario verá una pantalla que le dirá que la aplicación ya estaba en el teléfono.
  4. Seguir la cuenta de Google de un usuario: Esto es casi lo mismo que el enfoque del ANDROID_ID pero requiere permiso explícito (Android 6.0+) del usuario para acceder. Las aplicaciones que aprovechan el ecosistema de cuentas de Google (por ejemplo, puntuaciones y logros en juegos) pueden seguir a un usuario específico y obtener más información que solo si la aplicación ha sido instalada o no.

2, 3 y 4 requieren una conexión de red y un servidor en el lado del desarrollador.

0 votos

Puedo gestionar la 2ª, 3ª y 4ª parte usando Xprivacy. Falsificaré cada una de ellas. Pero la primera, esa no es fácil de detectar. ¿Hay alguna manera de detectar esta vulnerabilidad?

3 votos

No es una vulnerabilidad, solo una característica abusada. Al igual que las aplicaciones que guardan archivos en el registro. No hay mucho que puedas hacer aparte de revisar todos los directorios en el almacenamiento interno de tu teléfono y buscar archivos sospechosos.

0 votos

Revisar todos los directorios será imposible porque nunca sabrás qué nombre de archivo estás buscando, cuál es su extensión de archivo, tamaño de archivo. E incluso si encuentras uno y lo eliminas y luego te das cuenta de que el archivo no era el archivo real que estás buscando entonces terminarás con un fallo del sistema. Espero que haya una aplicación de administrador que pueda detectar a qué aplicación está asociado cada archivo.

2voto

Devin Ersoy Puntos 60

No está conectado al almacenamiento, sino a la nube. Así es como se recuerda aunque borres tus datos. Para desactivar esto, ve a la aplicación de ajustes de tu dispositivo, toca en cuentas de Google dentro de personal (toca en la cuenta que quieras si tienes múltiples cuentas), luego desactiva las aplicaciones que no quieras que se sincronicen automáticamente.

0 votos

La sincronización automática no es el problema principal. Los servidores de terceros se aseguran de que su aplicación sea capaz de recopilar su dirección MAC, IMEI, ID de dispositivo, ID de publicidad y almacenar esta información en servidores para detectar el dispositivo nuevamente en el futuro. Falsificar estos detalles mantendrá su privacidad, pero si una aplicación está escribiendo "entradas de registro" como en Windows, el problema será indetectable.

2voto

Neil Puntos 11

La respuesta de GiantTree lo explica mejor, pero hay otro punto a tener en cuenta. Sería claramente un "patrón oscuro", pero esta identificación también podría hacerse a través de huellas digitales de ciertos datos de usuario, lo que se podría ver como una variante de su primer punto ("mantener un archivo"), pero sería más difícil de detectar y menos conveniente de evitar.

La resistencia de esto dependería de los datos elegidos. El método más obvio sería buscar detalles de contacto y usar alguna forma de huella digital de estos; una alternativa podría ser el uso de marcas de tiempo de fotos y otros metadatos. Claramente, estos cambian con el tiempo, por lo que sea que se utilice debe seguir dando una respuesta cercana después de la modificación (por lo que difiere de una función hash tradicional). Además, no hay garantía de que un usuario no simplemente borre los datos rastreados, pero en muchos casos las personas preferirán no hacerlo.

Puede que desees investigar sobre la huella digital del navegador para tener una idea de cómo funciona esto, aunque va a ser algo diferente porque el hardware del teléfono es típicamente más uniforme que el hardware de la PC. Dicho esto, la adición de ciertos detalles del teléfono podría ayudar a reducir un poco la huella digital.

Donde este enfoque falla en particular es si un usuario cambia de teléfono y lleva consigo sus detalles a un nuevo teléfono, en este caso (a menos que los detalles del teléfono vayan en la huella digital) el nuevo teléfono podría ser detectado como si ya hubiera tenido una instalación, como la pregunta planteada. Sin embargo, parece bastante probable que en un escenario donde una aplicación está tratando de prohibir a un usuario, esto podría ser en realidad un resultado deseado (en lugar de prohibir al teléfono específico en sí mismo)

Ten en cuenta: En ningún caso estoy diciendo que esto sea correcto o "bueno" como forma de operar si estás escribiendo aplicaciones, pero parece razonable discutirlo ya que solo a través de la discusión las personas descubrirán si están lo suficientemente preocupadas como para hacer algo al respecto y qué podría ser eso.

1voto

David Bennett Puntos 11

Hay una clase SharedPreferences - https://developer.android.com/reference/android/content/SharedPreferences.html - que algunas aplicaciones utilizan para almacenar datos de preferencias. Estos datos no se eliminan cuando se desinstala la aplicación. Si la aplicación se vuelve a instalar más tarde, las claves SharedPreferences guardadas previamente siguen estando disponibles para ella.

10 votos

SharedPreferences en realidad son eliminadas cuando se desinstala la aplicación. Hay formas para que los desarrolladores configuren copias de seguridad, pero por defecto se eliminan al desinstalar. (Fuente: Como desarrollador, desinstalo mis aplicaciones para borrar las preferencias. También ver: stackoverflow.com/a/9815641/1438733)

1voto

computingfreak Puntos 11

Otra posibilidad es el uso de cookies persistentes con un "tiempo de expiración" muy grande. Supongo que así es como múltiples aplicaciones del mismo desarrollador solían compartir credenciales tradicionalmente, cuando almacenar credenciales a través de la función de cuentas no era tan abierta/conocida por el público.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X