fecha - ¿Cuáles son los peligros de utilizar OpenID para su sitio web?
openid login (6)
¡La clave aquí que me asusta no es solo tener su cuenta en un sitio web, sino en cada sitio web que usa openID!
Digamos que creo un sitio web como StackOverFlow y decido usar OpenID. ¿Qué es para evitar que yo, o cualquier otra persona para el caso, phishing los ID? Es decir, ¿cómo se puede saber realmente que cualquier sitio web utiliza OpenID y no pretende hacerlo? ¿Y cómo me proteges de esto?
Ampliando esto, digamos que un sitio comprometió sus credenciales openID, ¿no podrían usarlo en cualquier otro sitio usando openID (un truco global de contraseñas)? Entonces, ¿la seguridad de su openID no sería tan fuerte como el sitio web / proveedor más débil?
El sistema OpenID es muy seguro y gana mucho terreno gracias a él.
La principal desventaja que veo es que si el proveedor de OpenID de muchos de tus usuarios se ve afectado, estos usuarios quedarán bloqueados fuera de tu sitio. Por lo tanto, debe tener un plan de respaldo de nombre de usuario / contraseña, almacenar su dirección de correo electrónico después de validarla para poder enviarles una contraseña en caso de emergencia / catástrofe.
Historia divertida. Encontré un exploit en SO que me permitió cambiar el perfil de alguien por completo. Si Jeff hubiera estado usando el correo electrónico + contraseña, podría haber sido dueño de su cuenta, pero debido a que SO usa OpenID, no había nada que hacer más que cambiar su Gavitar por algo gracioso.
El error en cuestión fue reportado, reparado, y todavía estoy esperando mi credencial Hacker. :PAG
Para los usuarios que saben muy poco sobre cómo funciona OpenID, puede crear algunas páginas falsas que se parecen a los sitios web para los que es OpenID (como, por ejemplo, cualquiera de los proveedores de correo electrónico gratuitos que manejan OpenID). Si se olvidan de verificar el dominio en el que se encuentran antes de ingresar su nombre de usuario y contraseña, entonces evildomain ahora tiene su nombre de usuario y contraseña de OpenID.
En el lado del servidor, confía en sitios externos para la verificación de identidad. Entonces, si resulta que hay un agujero en el formulario de autenticación OpenID del proveedor XYZ que permite que la contraseña "pez espada" funcione en cualquier cuenta, cualquiera puede suplantar a los usuarios de ese proveedor en cualquier lugar que acepte OpenID.
allesklar hizo una buena observación mientras escribía esto, que sigue muy bien mi último punto: si mezclas usuarios locales y remotos, de repente necesitas dos listas de prohibición en lugar de una; la segunda lista de prohibición para proveedores "malos" de OpenID configurados por personas para crear lotes de cuentas ... o que autoricen automáticamente el nombre de cuenta que se les haya asignado.
Todo lo que ingresa es la ID, sin contraseña. La ID es pública, por lo tanto, "phishing" no es un problema de seguridad. Algunos proveedores incluso usan la misma ID para todos los usuarios, por ejemplo, la ID de una cuenta de Google siempre es https://www.google.com/accounts/o8/id
. Vea el artículo de Wikipedia para una explicación más detallada.
Cuando alguien ingresa una identificación abierta en su sitio, usted autentica al usuario preguntando al sitio donde vive el OpenID del usuario (y solo ese sitio) si este usuario está de acuerdo. AOL no puede validar un Yahoo OpenID, por ejemplo.
Si el usuario aún no está autenticado en ese sitio, la autenticación falla y debe redireccionar a la página de inicio de sesión de ese sitio. Aún es necesario que se realice una autenticación real, pero siempre ocurre con el proveedor de OpenID para ese usuario. Como usuario, está protegido porque solo debería ver la página de inicio de sesión con la que está familiarizado. Un sitio malicioso tendrá dificultades para desviar las credenciales de OpenID, ya que los usuarios nunca les dan a esos sitios sus contraseñas directamente.
Una vez que el usuario se autentica con su proveedor (o si son desde el principio), el proveedor informará de esto a su sitio web. Lo que cambia para OpenID es que su sitio ahora necesita confiar en otros sitios, que informará con precisión el estado de sus usuarios.
Alguien podría configurar un proveedor de identificador abierto "malicioso" y tratar de extraer los nuevos identificadores de esa manera, pero eso es entre un usuario y el proveedor. Dado que esta autenticación tiene que ver con la reputación, la idea es que dicho proveedor no permanezca en el negocio por mucho tiempo. Si nada más, los sitios pueden poner en una lista negra a esos proveedores. Un proveedor malicioso no podría suplantar identificadores abiertos que están registrados con otros proveedores.
Otra posibilidad para un proveedor malicioso es configurar un servicio OpenID que simplemente siempre confirma cualquier identificación que se le transfiera para su autenticación (o le permite a un administrador configurar una puerta trasera para sus usuarios). Sin embargo, eso solo afectaría a los usuarios que se registraron con ese proveedor. Una vez más, los sitios podrían poner en una lista negra a estos proveedores, y como se apoyan en la reputación, la idea de que no permanecería en el negocio todavía se mantiene.