¿Existen riesgos de seguridad asociados con mi uso de OpenID como método de autenticación en mi sitio?

StackOverflow https://stackoverflow.com/questions/182258

  •  05-07-2019
  •  | 
  •  

Pregunta

¿Es OpenID un método seguro de autenticación de usuarios en un sitio web?

Y, de no ser así, ¿cuáles son los riesgos de seguridad asociados con OpenID?

¿Fue útil?

Solución

En realidad siempre me disgustó OpenID por varias razones.

  • Tengo que confiar en el proveedor de OpenID a quien le di mis datos. Confío en ciertos aspectos hasta cierto punto, pero solo porque confío en Stack Overflow, no confío automáticamente en ninguno de los proveedores de OpenID conocidos.

    1. Si mi contraseña de OpenID está comprometida, todos los sitios donde utilizo OpenID están comprometidos. Por lo general, elegía una contraseña diferente para cada sitio que utilizo, pero no puedo con OpenID.

    2. No me gusta el concepto de Persona en absoluto. Aunque me preguntan antes de enviar cualquier información, simplemente no parece correcto que un proveedor tenga esta información y otros servicios puedan solicitarla. Está bien, no tengo que usarlo si no me gusta, pero el concepto me parece defectuoso.

    3. Como ya se ha mencionado, los datos se envían entre un sitio y el proveedor de OpenID y nuevamente. Cada vez que se intercambian datos, pueden ser comprometidos. Ningún sistema es 100% seguro; Ni siquiera SSL (HTTPS). Es una diferencia si los datos solo viajan de mí hacia un lado y de regreso a mí mismo o si también viajan de ese lado a otro y regresan nuevamente.

    4. Si un proveedor de OpenID es hackeado y el pirata informático obtiene los datos de inicio de sesión de todos los usuarios (¡después de todo, están centralizados en un solo lugar), solo piense en el impacto!

Solo para nombrar algunos. Tampoco veo la gran ventaja de OpenID. Para el usuario que digan

  1. Más rápido & amp; Registro e inicio de sesión más fácil
    • Reducción de la frustración por el nombre de usuario / contraseña olvidados
    • Actualice los datos personales en los sitios preferidos
    • Minimizar los riesgos de seguridad de contraseña

Está bien, analicemos eso.

(1) ¿Con qué frecuencia se registra para una página al día? 200 veces? Si me registro para 2 páginas a la semana, eso ya es un montón. Por lo general, en lugar de 2 a 3 meses como máximo (en realidad, Stack Overflow, o mi proveedor de OpenID para usar Stack Overflow, fue la última página que registré y esto no fue exactamente ayer). Entonces, cuando te registras en 2 sitios al mes, ¿no tienes los 5 minutos necesarios para completar un formulario? Vamos, no seas ridículo.

(2) ¿Cómo? ¿Porque usa la misma contraseña en todas partes? "Este no es un futuro, es un error", dirían la mayoría de los expertos en seguridad. ¿O porque me permite recuperar mi contraseña por correo? Bueno, en realidad casi cualquier lado que uso me permite hacerlo. A pesar de eso, mi Firefox recuerda bastante bien mis contraseñas, las almacena encriptadas en el disco (con una contraseña maestra) y esta base de datos encriptada se respalda regularmente para no perderse.

(3) Bueno, esto es probablemente algo positivo ... sin embargo, mi nombre nunca ha cambiado hasta ahora, mi dirección de correo electrónico tampoco lo hará, ya que es uno de los dominios que uso y reenvió a una dirección real ( así que el verdadero puede cambiar, solo actualizo el reenvío y todo funciona como antes). Mi direccion de calle Bueno, algunas personas se mueven mucho. Sólo me moví una vez en toda mi vida hasta ahora. Sin embargo, la mayoría de los lados no necesitan saber mi dirección. Los sitios en los que no veo ninguna razón para que la gente conozca esta información, pero que me exijan que la complete para registrarme, solo deben obtener una falsa. Hay muy pocos sitios en todo el Internet que conocen mi dirección real (en realidad, solo aquellos que alguna vez tienen que enviarme un correo postal o donde puedo pedir productos).

(4) En realidad lo veo al revés. Maximiza el riesgo de seguridad. ¿Cómo minimizaría el riesgo?

Otros consejos

Estoy de acuerdo con muchos de los puntos que David señala arriba, así que estoy haciendo algunos puntos aquí solo por el bien de la discusión.

Para el usuario experto, diría que OpenID es una forma de autenticación segura más de la que ofrecen muchos sitios web. Ahora déjame respaldar esa afirmación. En primer lugar, ¿qué quiero decir con un usuario experto ? Definiría a esa persona como alguien que es consciente de las debilidades de OpenID y que toma medidas para mitigarlas:

  • Mantiene múltiples personas si no desean que los sitios web puedan rastrearlos de manera efectiva.
  • Registra dos o más proveedores de OpenID en sitios web donde el acceso las 24 horas del día, los 7 días de la semana, es un problema.
  • Siempre inicie sesión directamente en su proveedor de OpenID. Nunca inician sesión en una página a la que los sitios web de terceros los han redirigido.

Muchos sitios web no saben cómo mantener de forma segura las contraseñas de los usuarios . Lo realmente bueno de OpenID es que I puedo elegir mi proveedor de OpenID y, por lo tanto, el nivel de autenticación necesario para iniciar sesión en una parte de confianza. Por ejemplo, puedo elegir delegar la autenticación a Verisign o Trustbearer , que proporcionan técnicas de autenticación mucho más sólidas que la mayoría de los sitios web en la web. Preferiría confiar en una organización que se especializa en seguridad con mi contraseña que en un sitio web aleatorio en la web. Por lo tanto, argumentaría que para el usuario experto, OpenID puede ser más seguro que cada sitio web que implementa su propio sistema de autenticación.

Dicho todo esto, la mayoría de los usuarios no son conscientes de los factores de riesgo inherentes a OpenID y no toman las medidas para mitigar los riesgos.

OpenID es inherentemente inseguro. Funciona si su sitio redirige al usuario a su sitio de proveedor de ID abierto y luego acepta una ID de ese sitio. Esto proporciona inseguridades en ambas direcciones. Debe confiar en la ID que aparece (ya que no tiene forma de autenticar al usuario) y es fácil utilizar un proxy para el proveedor de ID abierto del usuario, que le permite robar su nombre de usuario y contraseña.

OpenID está bien para algo como Stack Overflow, donde realmente no importa si alguien se hace pasar por ti. El uso de OpenID para sitios con contenido más serio, a nivel personal, es extremadamente riesgoso. Si utiliza OpenID para su correo electrónico, por ejemplo, cualquier persona que robe su identificación puede acceder a su correo electrónico. Luego, a su vez, podrían enviar solicitudes de recordatorio de contraseña a otros sitios que utilice para obtener contraseñas para esos sitios. En el peor de los casos, podría usar OpenID para una cuenta bancaria o tener un banco que envíe recordatorios de contraseña a su cuenta de correo electrónico ...

Hay muchos otros problemas de seguridad con OpenID. Puede encontrar más información en " Privacidad en Internet " .

OpenID agrega otra parte al proceso de autenticación que debe tratar como un componente confiable. En este aspecto, es bastante similar a cualquier aplicación que permita la recuperación de cuentas por correo electrónico, pero si bien los mensajes de correo electrónico se transmiten en texto claro, puede comunicarse con los proveedores de OpenID solo a través de conexiones HTTPS verificadas.

Revise la sección Consideraciones de seguridad de la especificación.

Para obtener una excelente descripción de los puntos débiles en OpenID y una demostración de cómo un buen proveedor de OpenID puede brindar una experiencia mucho más segura que la contraseña tradicional de acceso fácil, consulte este video corto de Kim Cameron de su Identity Weblog .

OpenID se puede hacer más seguro si decide ignorar a todos los proveedores de OpenID que no admiten HTTPS

Creo que la principal debilidad de la mayoría de los proveedores de OpenId es que ofrecen la recuperación de contraseñas por correo electrónico. Eso reduce la seguridad de OpenId a la seguridad de mi proveedor de correo electrónico. Si alguien tiene acceso a mi cuenta de correo electrónico, puede robar mi identidad (con o sin OpenId).

El uso de OpenId para la autenticación facilita el robo de la identidad ym. Simplemente acceda a mi cuenta de correo electrónico y restablezca mi contraseña de OpenId. No hay nada más que hacer (en lugar de 100 solicitudes de restablecimiento de contraseña, una para cada una de mis cuentas en la web).

Peor aún, si el atacante cambia la contraseña de mi cuenta de correo electrónico, será muy difícil para mí demostrar que soy el propietario original de esa cuenta OpenId. El atacante podría cambiar la cuenta de correo electrónico asociada a la suya, por lo que no puedo restablecer la contraseña incluso si recupero mi cuenta de correo electrónico más tarde.

Puede ser suficiente para acceder al correo electrónico de recuperación de contraseña que mi proveedor de OpenId envía para robar mi identidad.

Los proveedores de OpenId deben ofrecer la desactivación de la recuperación de la contraseña de correo electrónico y proporcionar una forma más segura de recuperar una contraseña perdida. Algo basado en la dirección postal, el pasaporte o la cuenta bancaria (cosas en las que confío más que en una cuenta de correo electrónico).

Siempre que se pueda tomar control de una cuenta OpenId con solo obtener acceso a un solo correo electrónico, no es más que un único punto de error adicional.

Vea también: http://danielmiessler.com/blog/from-password-reset-mechanisms-to-openid-a-brief-discussion-of-online-password-security donde " El enlace más débil: Correo electrónico Mecanismos de restablecimiento de contraseña " También está dirigida.

Mientras este hilo es viejo, quise agregar mis 2 centavos. Creo que OpenId tiene un defecto que a nadie parece importarle. Cuando me autentico con Yahoo, en realidad me registra en yahoo. No debe iniciar sesión en yahoo, solo debe autenticar que tiene las credenciales adecuadas con yahoo. Cuando sales de mi aplicación, todavía estás conectado a yahoo. Si se aleja de una computadora compartida y otra persona va a yahoo, iniciará sesión ... porque cuando se autentificó con Yahoo, también iniciará sesión en su servicio. Solo deben autenticarlo, no iniciar sesión. Le conté a varias personas sobre esto e incluso lo demostré con stackoverflow.com (que tiene un terrible mecanismo de cierre de sesión, cuando presiono cerrar sesión espero estar desconectado, no haga clic en otro botón de cierre de sesión). Prueba este cierre de sesión de yahoo o gmail. Cierre todas las pestañas y luego inicie sesión en stackoverflow con yahoo / gmail. Luego cierre sesión en el desbordamiento de pila ... (asegúrese de presionar logout dos veces) .. ahora navegue a yahoo o gmail, ya inició sesión. Ahora, la respuesta de snide que recibo es " No use una computadora compartida, debe iniciar sesión fuera de Yahoo / gmail, etc " ... Todo el mundo no es un desarrollador con un título en MIS o ciencias de la computación, mi suegra pensaría cuando se desconectó de Stackoverflow, que no volvería a iniciar sesión en yahoo todavía ... Tal vez Me estoy perdiendo un parm o algo que realmente me obligue a hacer lo que quiero, ¡pero seguramente no está en la documentación que te dice lo fantástico que es OpenId!

Auch. MyOpenID reporta direcciones de correo electrónico no confirmadas, solo hice una prueba para eso. Parece que la información de correo electrónico debería ser confiable solo para algunos proveedores que figuran en la lista blanca manualmente como google / yahoo y algunos otros. Vincularé el código aquí si alguien está interesado.

Me gusta el acceso VIP de Verisign que los sitios pueden usar, y hay una pequeña aplicación para iPhone que te permitirá tener tu token generado para ingresar, de manera muy parecida a la identificación segura

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top