it-swarm-es.com

¿Usabilidad y seguridad para el acceso de usuarios y el manejo de contraseñas en una aplicación web?

Estoy buscando armar un sitio web dirigido a usuarios comunes que manejen datos personales que no quiero comprometer. ¿Cómo puedo hacer que el sitio sea seguro pero también utilizable?

Parece que la mayoría de los sitios usan un identificador de usuario (la dirección de correo electrónico parece mejor) y una contraseña, que se entiende bastante bien.

Algunos sitios bancarios van más allá al tener un PIN o preguntas de seguridad que siguen a partir de los identificadores estándar o que reemplazan la contraseña. Me interesaría saber sobre cualquier alternativa que haya resultado exitosa a este respecto .

También he oído hablar de permitir a los usuarios elegir su propio esquema de colores o buscar y sentir un sitio una vez que se identifican para que sea más difícil suplantar los detalles de la cuenta. ¿Alguien sabe de sitios que usan esto y qué tan bien funciona?

La verdadera debilidad en la mayoría de los sistemas me parece ser la función de restablecimiento de contraseña. Debido a que los usuarios olvidan sus contraseñas todo el tiempo, necesitamos tener algo para ayudarlos aquí, pero parece realmente difícil lograr un equilibrio entre lo útil y lo horriblemente inseguro. Nuevamente, el enfoque de preguntas de seguridad del usuario parece ser ampliamente utilizado aquí, pero los dos lados de esto que he encontrado han tenido una pregunta que el usuario formula y proporciona una respuesta o tienen algunas preguntas inmutables sobre el usuario.

Con una pregunta proporcionada por el usuario, no confío en que no hagan la pregunta "¿Qué es 1 + 1"? No importa cuánto intente decirles que esto es muy importante.

Con preguntas inmutables, y si le preguntas las opiniones de un usuario sobre cosas en lugar de hechos simples, es más probable que cambien, tienden a convertirse en el tipo de cosas (nombre de los padres, primera mascota) que en realidad es bastante fácil de encontrar si estás apuntando a un usuario para que ataque.

Me doy cuenta de que siempre habrá un compromiso entre lo que es seguro y lo que es fácil de usar, pero debe ser posible hacerlo mejor que la mayoría de los sitios ahora. ¿Puede sugerir enfoques menos convencionales pero confiables para la seguridad de la cuenta de usuario? He oído hablar de cuadrículas de imágenes, captchas personalizadas, etc., ¿alguna experiencia en la práctica? ¿Hay sitios que manejen esto particularmente bien y si muestran cómo/por qué funcionan?

10
glenatron

Buena pregunta.

Versión corta

Hay varias opciones que van más allá del nombre de usuario/correo electrónico/contraseña como lo hacen la mayoría de los sitios. No puede resolver el último problema de seguridad, pero puede educar. Hay alternativas a los captchas. La seguridad frente a la facilidad de uso es un debate interminable y saludable.

Opciones de seguridad adicionales durante el inicio de sesión

  • Yahoo! utiliza el concepto " sello de inicio de sesión ", donde puede elegir texto o una imagen, y esa personalización se almacenará en una cookie y se mostrará en la página de inicio de sesión cuando regrese. La idea aquí es que ayuda a prevenir ataques de phishing: en lugar de explicar los detalles técnicos del phishing a los usuarios, y esperar que recuerden cosas como "asegúrese de que la URL comience con https://www.yahoo.com ", simplemente le dice al usuario que busque su texto o imagen personalizada en la página. Si no está allí, no está en el sitio correcto, así que no proporcione sus credenciales de inicio de sesión.

  • World of Warcraft utiliza Blizzard Authenticator , que es un dispositivo que puede pedir y que le hemos enviado, o una aplicación para iPhone/Android. Ambos generan un código único vinculado a su cuenta cada minuto. Cuando inicie sesión, debe proporcionar su dirección de correo electrónico registrada en Battle.net, la contraseña de la cuenta y ese código de Autenticador de Blizzard. Aunque es un juego, World of Warcraft es un continente de phishing propio, este enfoque ha demostrado ser extremadamente efectivo para reducir la cantidad de cuentas pirateadas a través del phishing (ya que incluso si piratea la cuenta de correo electrónico de alguien y recupera o cambia su contraseña de World of Warcraft , no puede iniciar sesión a menos que tenga ese código de autenticación sincronizado específico real). Vale la pena señalar que el autenticador es teóricamente pirateable, pero requiere mucho más trabajo hacerlo.

  • myOpenID utiliza un sello de inicio de sesión similar a Yahoo! llamado "su icono personal". Dado que OpenID tiene implicaciones de seguridad adicionales (por ejemplo, si obtiene acceso a mi OpenID, ahora potencialmente tiene acceso a todos los sitios que uso con ese OpenID), cualquier opción para una mayor protección ayuda mucho. Sin embargo, no creo que la mayoría de los usuarios no técnicos tengan cuentas OpenID con proveedores de OpenID, por lo que esto podría ser menos importante. Aún así, bueno en JanRain por hacer un esfuerzo adicional.

Qué hacer cuando los usuarios proporcionan preguntas y respuestas de seguridad obvias

Este es un problema que no puede resolver, y no es realmente su responsabilidad. En lo que debe enfocarse es en promover el comportamiento correcto en sus usuarios al educarlos sobre a qué deben prestar atención. Dependiendo del tipo de base de usuarios que tenga, puede ser más o menos agresivo al respecto, por ejemplo, Yahoo! y Blizzard son muy agresivos y también implementan una asistencia de seguridad más proactiva, como se mencionó anteriormente.

Algunas cosas que puedes hacer:

  • Recuerde a los usuarios que utilicen una contraseña única que consista no solo en caracteres alfanuméricos
  • Explique que las contraseñas deben estar hechas de palabras inexistentes y ayude a explicar cómo crear una contraseña memorable que se ajuste a ese molde.
  • Utilice una copia clara durante el flujo donde los usuarios crean una pregunta de restablecimiento de contraseña de seguridad y subraye la importancia de hacer preguntas no triviales para que otras personas no sepan la respuesta
  • Proporcione ejemplos de preguntas que las personas puedan usar ( ¡no proporcione ejemplos como "apellido de soltera de la madre", que se puede encontrar fácilmente en Facebook en estos días
  • Escriba un FAQ) proporcionando consejos sobre cómo proteger su cuenta. Dado que el correo web es un agujero de seguridad que se utiliza con frecuencia, brinde consejos básicos sobre cómo proteger su cuenta de correo electrónico y cómo vigilar los intentos de phishing

Ser un propietario responsable del sitio web. Lo comparo con las estaciones de tren que tienen letreros que dicen "cuidado con los carteristas": es su responsabilidad como individuo no tener su billetera a la vista y luego quejarse cuando se la roban. Pero es bueno que la administración de la estación les recuerde a las personas que tengan en cuenta las cosas. El problema en la Web es que muchas personas no saben qué buscar o cómo identificar amenazas. Podemos ayudar educando constantemente y constantemente a todas las personas con las que tenemos contacto.

Captchas y alternativas

Las captchas existen por dos razones: una, para evitar que su sitio se DDOSed y dos, para evitar que los hackers ejecuten ataques de diccionario. Pero la desventaja es que, en la mayoría de los casos, son muy hostiles y no son completamente " No me hagas pensar ".

Si desea evitar, o al menos disuadir, los ataques de diccionario, considere agregar un temporizador a la pantalla de inicio de sesión que aumente por cada intento (después de un cierto número). La mayoría de los usuarios entrarán después de, digamos, 5 intentos, y más que eso es un comportamiento dudoso. Haga que los ataques de diccionario sean molestos de ejecutar al causar problemas a los delincuentes, no a los usuarios habituales.

Seguridad versus facilidad de uso

Jakob Nielsen causó un gran revuelo el año pasado cuando escribió que los campos de contraseña presentan un problema de usabilidad y deberían dejar de enmascarar su entrada . Argumentó que enmascarar la entrada solo previene fugas de seguridad cuando alguien está parado directamente detrás de usted, y ese no es el caso el 99% del tiempo, entonces, ¿por qué hacer las cosas más difíciles de usar solo para un caso Edge? Como experto en usabilidad, es difícil discutir con él. Y el experto en seguridad Bruce Schneier incluso de acuerdo con él!

Por lo tanto, la seguridad frente a la facilidad de uso es un tema controvertido que realmente no se puede resolver. Y es un argumento saludable: si las cosas se balancearan demasiado en cualquier dirección, eso no sería bueno para los usuarios finales. Como diseñador de UI, es importante reconocer los argumentos de los expertos en seguridad y tenerlos en cuenta al diseñar la experiencia de su usuario.

9
Rahul

En realidad, con la mayoría de los proveedores que ofrecen API de inicio de sesión (generalmente basadas en Open Auth), ni siquiera necesita lidiar con los problemas de inicio de sesión/autenticación del usuario. Simplemente haga que sus usuarios inicien sesión con Facebook, Google, Yahoo, Twitter, etc. Creo que Google, Microsoft, Yahoo, et. Alabama. hará un mejor trabajo para asegurar las credenciales de inicio de sesión y tratar con los restablecimientos de contraseña de lo que lo haré. Este es realmente el mejor caso para sus usuarios porque no necesitan recordar un nuevo conjunto de credenciales y, en la mayoría de los casos, si ya han iniciado sesión en su correo, no volverán a ingresar la contraseña nuevamente. Es un inicio de sesión perfecto con un solo clic (sin escribir).

Hay dos pequeñas trampas para hacer que esto funcione. (1) Debe admitir una cantidad relativamente grande de proveedores de inicio de sesión para asegurarse de capturar a todos sus usuarios sin molestarlos. (2) Debe respaldar y fomentar la vinculación de cuentas para que los usuarios puedan agregar múltiples proveedores de inicio de sesión a su cuenta en su sitio porque los proveedores pueden (y a menudo lo hacen sin previo aviso) cambiar su API o abandonar el mantenimiento bloqueando efectivamente a esos usuarios de tu sitio.

En el lado positivo, generalmente puede recuperar los parámetros del usuario directamente del proveedor para que el usuario no tenga que ingresar información como dirección de correo electrónico, nombre, teléfono, etc.

1
Jonathan

Para ser honesto, como programador, realmente no me gustan los pasos personales de seguridad de preguntas/respuestas ya que las respuestas podrían ingresarse incorrectamente desde un punto de vista estrictamente de programación. Qué sucede si su respuesta fue un nombre, pero no recuerdan si pusieron el nombre completo o solo su nombre corto o solo su nombre de pila, o si pierden un apóstrofe y no se dan cuenta.

Por otro lado, las captchas (de distintos tipos) requieren una respuesta en blanco y negro. Es válido o no lo es. Dicho esto, la legibilidad del captcha a veces presenta problemas para los usuarios. La mayoría son legibles, pero algunas son simplemente ilegibles.

Creo que el método de requerir verificación por correo electrónico al restablecer la contraseña siempre me ha parecido bastante seguro, ya que claramente requiere que conozca mis datos de inicio de sesión para que un sistema segundo (mi cuenta de correo) acceda el enlace volver al sitio para solicitar una nueva contraseña.

0
Nick Bedford