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.