security login usability shibboleth

security - Mejores prácticas para páginas de inicio de sesión



login usability (12)

Lo mejor que he visto hasta ahora en un intento de detener el phishing es la interfaz de inicio de sesión de un banco. El inicio de sesión se realiza en 3 partes, primero el usuario ingresa su número de cuenta (número de tarjeta de débito, tarjeta de crédito ...), el segundo paso enumerará al azar 1 de las 3 preguntas especificadas por un usuario (por ejemplo: ¿Qué escuela secundaria asistió? para el grado 10), la última parte, si las dos primeras son exitosas, es mostrar una imagen y un texto especificado por el usuario al registrarse, con el campo de contraseña a continuación.

Estoy trabajando en una página de inicio de sesión único con Shibboleth que se utilizará para una variedad de aplicaciones web. Obviamente, nos gustaría hacer que esta página sea lo más segura y utilizable posible mientras se limitan los efectos de las estafas de phishing.

¿Cuáles son las mejores prácticas a tener en cuenta al diseñar una página de inicio de sesión?

Algunas preguntas que han surgido alrededor de este tema:

  • ¿Es importante que la página de inicio de sesión siempre se vea igual en todas las pantallas?
  • Por el contrario, ¿sería beneficioso para la página de inicio de sesión tener un diseño aleatorio?
  • ¿Es mejor que la página de inicio de sesión tenga el mismo aspecto que todas las otras páginas o debería tener su propio diseño único?
  • Si la página de inicio de sesión tiene su propio diseño único, ¿debería incorporar otros elementos constantes del diseño de su sitio (como la navegación global)?
  • ¿Es la página de inicio de sesión un lugar apropiado para proporcionar al usuario contenido adicional (como las últimas noticias)?
  • ¿Hay alguna característica de seguridad adicional que deba incluirse para ayudar a mantener a las personas seguras?

No importa lo que diseñe, un Phisher podrá imitarlo. Prevenir el phishing por completo es un problema difícil. En esencia, tendrá que contar con algún medio para identificar a sus usuarios antes de iniciar sesión. Algunos bancos hacen esto ahora. Ingrese su nombre, y luego le muestran una imagen que usted mismo ha seleccionado, y luego, una vez que está seguro de que es la misma imagen, ingrese su contraseña. Esto puede ser un mayor nivel de complejidad que lo que su sitio requiere.

En el aspecto técnico, Bank Of America logra esto mediante el uso de un objeto compartido local de Flash llamado PassMark. Su navegador envía silenciosamente esta información identificándose al Banco. Si elimina el LSO, no se le mostrará su imagen porque BofA no puede identificarlo. Incluso esto es aún vulnerable a los ataques de hombre en el medio.


Notas de usabilidad:

Personalmente, odio que los sitios pongan los enlaces "olvidó la contraseña" o "olvidé el nombre de usuario" o "ayuda" entre el campo de la contraseña y el botón Iniciar sesión. Como usuario de teclado, no debería tener que marcar TAB sobre ellos para acceder al botón Enviar.

Mejor aún, también capture la tecla Enter en el campo de contraseña para que pueda enviarla automáticamente con la tecla Intro.


Otra cosa de "no duh" que todavía veo en muchas aplicaciones a las que voy, si las credenciales especificadas no son válidas, no indican cuál es inválida. Simplemente diga algo como "combinación de usuario / contraseña inválida" en lugar de "contraseña no válida" que evitará que las personas de ingeniería social conozcan una base de usuarios que acceda a su sitio.


Parece una obviedad, pero usa HTTPS si la aplicación lo requiere. Diablos, incluso si no lo justifica porque las personas tienden a reutilizar las mismas contraseñas. Puede obtener un certificado SSL barato estos días. Si levantan una contraseña de su sitio, pueden intentarlo en otra parte. Incluso muchos bancos no tienen la página de inicio de sesión en una línea segura. Se publica en una página HTTPS, pero todavía no hay protección de un hombre en el ataque de tipo medio.

Estoy de acuerdo con Omniwombat. El phishing es un problema difícil de resolver y aparentemente imposible de resolver por completo.


Tenga en cuenta que su usuario va a pasar los 10 segundos en esa página en general, realmente no importa lo que parece, siempre que sea obvio dónde colocar su identificación de usuario y contraseña. Aparte de eso, no seas uno de esos sitios que ofrece enviarme mi contraseña si la olvido. Al menos déjame creer que está escondido en un bonito hash salado en algún lugar donde no puedes recuperarlo nunca.


Un consejo útil para las circunstancias actuales: puede desactivar el ahorro de contraseña del lado del cliente agregando autocompletar = "off" al campo de contraseña.

Eso no funciona en todos los navegadores (si mal no recuerdo, IE 6+ y Firefox 3+)


mantener el mismo diseño en su página de inicio de sesión le permitirá saber a los usuarios que intentan iniciar sesión en su página si el cambio de diseño al azar puede ser que el usuario piense que el sitio se ha movido o que está siendo víctima de errores. así que le recomiendo que siga las mismas pautas que sus páginas de contenido



@Joe Lencioni y todos los demás interesados ​​en Shibboleth

Las páginas de su sitio deben tener el mismo aspecto general en cada página.

En cuanto a Shibboleth, y SSO. Es importante tener en cuenta a qué función está asociada su organización. ¿Es usted un Proveedor de Identidad - IdP (autenticando al usuario y luego enviando la respuesta al SP), o es el Proveedor de Servicios - SP (que otorgará la autenticación en función de la respuesta y los atributos enviados por el IdP).

Si usted es un SP, tiene la flexibilidad que desee para vincular a sus usuarios con un IdP para que inicien sesión. Muchos SP crean su propia página WAYF (Where Are You From) que redirigirá al usuario a la página de inicio de sesión del IdP.

Si es un IdP, debe tener una página de inicio de sesión que le resulte familiar al usuario para que pueda iniciar sesión y luego ser redireccionado al SP con los atributos necesarios para que el SP otorgue el acceso adecuado.

En lo que respecta a las estafas de phishing, es importante mantener actualizados los metadatos de Shibboleth. Creo que muchas Federaciones recomiendan descargar metadatos cada (1) hora.

Muchas preguntas Shibboleth se pueden responder aquí: https://spaces.internet2.edu/display/SHIB2/Home

Espero que esto te ayude.



Piensa como un usuario y como un guardia de seguridad: si haces que hagan un captcha cada vez que inicies sesión, se van a cansar bastante.

Si está tratando de evitar la denegación de servicio, entonces tal vez haga aparecer un captcha solo después de que haya suficientes intentos de inicio de sesión (¿fallado?) En un determinado período de tiempo.

Considere usar NTLM, OpenID o Shibboleth para hacer que el inicio de sesión sea lo más automático posible para la mayoría de los usuarios.

No haga que las personas vayan a una página separada para registrarse. Presumiblemente, tendrá campos de nombre de usuario y contraseña, y un botón de inicio de sesión / envío. Simplemente agregue también un botón "registrarse como nuevo usuario", para que los nuevos usuarios puedan usar los campos de nombre de usuario / contraseña existentes. Si necesita recopilar detalles adicionales para usuarios nuevos, despliegue un formulario (usando DHTML, no una ventana emergente) para recopilarlos.