¿Qué tan confiables son las ID de dispositivo proporcionadas por PhoneGap en Android e iOS?

10

Tengo una aplicación web que permite a los usuarios agregar dispositivos móviles a sus cuentas (mediante la aplicación móvil).

Cada dispositivo es referenciado de forma única por su UUID . El cliente móvil se desarrolla utilizando PhoneGap, por lo que utiliza device.uuid variable para este propósito. Una aplicación escrita en PhoneGap se puede ejecutar en muchos sistemas, pero mi aplicación está orientada solo a Android e iOS.

La pregunta: Cómo debería reaccionar mi sistema (tanto el servidor como el cliente móvil) cuando detecta que la nueva cuenta de usuario (nuevo inicio de sesión y pase) está intentando agregar un dispositivo, cuyo UUID ya existe en una base de datos ¿Está actualmente vinculado a otra cuenta de usuario?

¿Puedo asumir (en el mundo actual, en iOS y Android) que el UUID de cualquier dispositivo en particular?

  • es único sin dudas (dos dispositivos no pueden tener el mismo UUID),
  • es seguro (no se puede cambiar ni falsificar).

En otras palabras: ¿mi servicio puede "volver a vincular" un dispositivo particular (UUID) a otra cuenta de usuario, en la situación descrita anteriormente? ¿Puedo suponer que no hay dos dispositivos con el mismo UUID y no hay formas demasiado fáciles de suplantar el UUID?

¿O debería introducir alguna lógica "más segura" en tales situaciones? ¿Te gusta algún tipo de desregistro de dispositivos (desde la primera cuenta) y volver a registrarte (en una cuenta nueva)? ¿Y rechazar el usuario (cuenta de usuario) para agregar / registrar un nuevo dispositivo, si el mismo UUID ya está registrado con otra cuenta de usuario?

No lo negaré, soy un lego en materia de seguridad. Entonces, supongo que los UUID son únicos y lo suficientemente resistentes a la suplantación de identidad para introducir el nuevo registro del dispositivo automático (UUID) mencionado en la situación mencionada.

    
pregunta trejder 07.11.2013 - 14:48
fuente

2 respuestas

6

No, se puede falsificar UUID al informar desde un cliente. No asuma que demuestra nada sobre la identidad de un dispositivo y no asuma que es el mismo dispositivo que la última vez que lo vio. Si realmente necesita verificar un dispositivo, la mejor opción es hacer un certificado que pueda almacenar en el dispositivo y solicitar ese certificado cuando lo mire.

Si están realmente informando, deberían ser universalmente únicos (lo que significa la UU) pero es totalmente posible que alguien lo obligue a informar un valor no único de su elección en muchos (si no la mayoría) casos. Incluso se puede hacer con aplicaciones simples disponibles en la tienda de aplicaciones en Android.

    
respondido por el AJ Henderson 07.11.2013 - 15:27
fuente
1

Es posible tener dos dispositivos con el mismo UUID. He logrado clonar algunos sticks de TV (nandroid backup), con la misma aplicación (hecha con phonegap). Dentro del código, se solicita al dispositivo que proporcione UUID y, gracias al servicio web comm con servidor, he demostrado que todos tienen UUID idénticos.

    
respondido por el Puma 14.01.2014 - 21:10
fuente

Lea otras preguntas en las etiquetas