Riesgos de usar UUID para identificar al usuario en la aplicación móvil

3

Tengo una base de clientes existente. Un cliente tiene citas. Actualmente no pueden acceder o cambiar sus citas sin contactarme directamente.

Quiero ofrecerles una forma de acceder y cambiar sus próximas citas, con la menor molestia posible (más esfuerzo para el cliente significa menos posibilidades de que lo usen y menos beneficios).

Mi pensamiento es este: genere un UUID (lo más aleatorio posible) y envíeles un SMS con instrucciones para instalar una aplicación (Android / iOS) y una URL de aplicación asociada (app: // UUID).

Al abrir la aplicación con esta URL, almacena el UUID y lo utiliza para realizar solicitudes a través de la aplicación a mi servicio web con HTTPS, que luego recupera sus citas y posiblemente cambia sus citas (esta es la única operación de "escritura").

Dado que la aplicación no estará disponible a través de un navegador web normal, estoy pensando que proporcionar el UUID en una aplicación-URL evitará que las personas "dejen" su URL en todos los navegadores aleatorios, solo tendrán que usar el URL una vez, y controlo que todas las solicitudes de servicio web se realizan a través de la aplicación en HTTPS para que el UUID no se derrame de esa manera.

Mientras estoy pensando en hacer que este UUID "dure para siempre", agregaré una opción para que los clientes informen su identificación como perdida y soliciten una nueva identificación (invalidando la anterior).

Dado este esquema, estoy pensando que:

  • Perder su teléfono significa perder su identidad (almacenada en la aplicación)

  • Reenviar / perder el SMS / URL significa perder su identidad (no debería ser necesario más que para la apertura inicial de la aplicación para guardar la identidad, pero no espero que la mayoría de la gente se moleste en eliminarlo incluso si dicho a)

  • Débil si se puede adivinar UUID

¿En qué escollos y situaciones de seguridad no he pensado? Tenga en cuenta que la facilidad de uso para los clientes es importante (preferiblemente no rellenar nada / mucho), y si bien la información se considera privada, no tiene un valor muy alto.

Comentarios sobre el uso de UN / PW:

Dado que la base de clientes existe, necesito saber qué cliente tiene qué inicio de sesión. Estoy pensando que tendrían que crearlo ellos mismos en la oficina (lo que me gustaría evitar tener la menor cantidad de información posible), o darles algún UN / PW generado que puedan usar (pero luego nuevamente Lo estoy distribuyendo), o lo crean en línea y de alguna manera proporcionan suficiente información para identificarse y conectarse.

En general, me gustaría algún esquema donde el punto de partida sea que puedan identificarse sin ningún problema, dada la información que luego sé que son ellos. Estoy abierto a sugerencias, ya que puedo esperar demasiado de muy poca información.

    
pregunta TragedyStruck 21.06.2016 - 13:00
fuente

1 respuesta

2

El riesgo principal es la exposición posterior del enlace si se filtra el mensaje original.

Una estrategia similar de usar un token único es bastante estándar para restablecer contraseñas olvidadas o cuentas generadas previamente en sitios web, con las siguientes advertencias:

  • el token no se puede adivinar (un UUID generado de forma segura debería estar bien aquí)
  • el uuid / link es un uso (exitoso) solo
  • el uuid / link expira después de cierta cantidad de tiempo (la duración exacta es un compromiso entre la conveniencia del usuario y la posible exposición)

Consulte enlace para obtener más detalles sobre las estrategias para restablecer la contraseña.

Para su enfoque, una vez que se descarga la aplicación, deberá generar una segunda clave para un acceso futuro y almacenarla localmente. Significaría que debe volver a emitir el enlace con un nuevo UUID de manera ocasional si un usuario obtiene un teléfono nuevo o se olvidó de usarlo la primera vez.

En lugar de una aplicación, le sugiero que realice un sitio web con un / pw y luego cree previamente las cuentas y envíe los enlaces de registro con un UUID a cada usuario (es decir, configuran UN / PW en el primer acceso). De esa manera, puede tener un dominio y un sitio web (con suerte fácil de recordar) al que es fácil acceder. También significa que los enlaces de registro no se pueden reutilizar más tarde y pueden caducar.

    
respondido por el Jack 14.05.2018 - 04:54
fuente

Lea otras preguntas en las etiquetas