¿Es seguro crear una cuenta de usuario utilizando el id_token proporcionado por el inicio de sesión de google?

2

Tengo una extensión de Chrome que permite a los usuarios iniciar sesión exclusivamente con Google y ningún otro proveedor.

En mi (nodo + couchdb) backend, necesito crear una cuenta de usuario a partir de la Respuesta de autenticación proporcionada por la API de oauth2 de Google. Estaba pensando en usar un hash del id_token como contraseña después de verificar el token utilizando el tokeninfo api

Me doy cuenta de que el id_token cambia de vez en cuando. En ese caso, esperaba actualizar la contraseña del usuario automáticamente.

Aquí está el flujo que tenía en mente:

  1. El usuario inicia sesión en el front-end y obtiene un id_token de google
  2. El token de identificación se envía al servidor y se verifica mediante la API de tokeninfo
  3. Si se verifica, se crea una cuenta de usuario con una contraseña que es el hash del id_token.

¿Ve algún agujero de seguridad con este flujo? Si es así, ¿cuáles son las alternativas?

    
pregunta dipole_moment 03.08.2015 - 16:00
fuente

1 respuesta

1

Probablemente no.

La información proporcionada por ese punto final es de naturaleza bastante determinista, por lo que cualquier persona con suficiente motivación (por ejemplo, tiene 20 minutos para matar) puede adivinar los detalles y generar la misma contraseña que usted para ese usuario. Además, ese hash fallará cada vez (o con suficiente frecuencia) que se emita un token nuevo, por lo que siempre debe mantener el registro actualizado.

El proceso básico de registro del usuario funciona razonablemente bien, pero lo que debe hacer es generar la contraseña de manera aleatoria, averiguar cómo almacenarla de manera segura y enviarla al cliente para que la use.

Ahora, si puede hacer que CouchDB verifique el token en forma literal, entonces podría enviarlo, pero supongo que no tiene la capacidad de hacerlo.

    
respondido por el Steve 03.08.2015 - 17:16
fuente

Lea otras preguntas en las etiquetas