Inicio de sesión único: ¿es esta una forma segura de iniciar sesión?

0

Estoy jugando con una especie de procedimiento de inicio de sesión único. Digamos que hay sitio1 y sitio2 y ambos usan un certificado SSL. Los usuarios han iniciado sesión en site1. Me preguntaba qué piensan los expertos de esta manera para permitir que los usuarios inicien sesión automáticamente en site2 que está alojado en un servidor diferente:

  1. al hacer clic en un enlace en site1 se obtiene la url (en site2) y 2 códigos de una base de datos
  2. site1 redirige a la url (en site2) y envía los 2 códigos como una solicitud posterior
  3. Site2 comprueba si la página a la que se redirige es realmente de site1 y si la combinación de los códigos es correcta
  4. Si es así, site2 crea un hash, lo almacena en la base de datos y envía el resultado a site1
  5. Site1 redirige a site2 y envía el hash
  6. si el hash está en la base de datos y se recibió de site1 y dentro de poco tiempo después de crearlo, el usuario inició sesión.

¿Es esta una forma (bastante) segura para un procedimiento de firma en el procedimiento o es terriblemente inseguro? Si esto último: ¿dónde están los peligros?

    
pregunta bolvo 25.07.2014 - 12:23
fuente

1 respuesta

1

Simplemente indica que "el sitio 2 verifica si la página que se redirige es realmente el sitio 1" ... ¿cómo? No hay una buena manera de hacerlo sin la información adicional que el sitio 1 puede usar para verificar su identidad a través de un desafío del sitio 2.

Esto también parece demasiado complejo para pasar una autenticación. Todo lo que realmente debe hacerse, siempre que el sitio 1 y el sitio 2 se comuniquen entre sí y se conozcan, es para que ellos acuerden entre sí un token y redirijan al usuario con ese token para que un sitio sepa que es. el mismo usuario que estaba en el otro sitio.

No haga rodar el suyo, use OAuth o algo similar, permitirá una mejor integración con más sitios y también es un estándar bien probado y con soporte.

    
respondido por el AJ Henderson 25.07.2014 - 16:42
fuente

Lea otras preguntas en las etiquetas