¿Se debe borrar el campo de la contraseña después de un intento de inicio de sesión fallido?

10

Asumamos el siguiente flujo de trabajo para iniciar sesión

a) En un dispositivo con teclado:

  1. escribo mi nombre de usuario y contraseña
  2. presiona enter
  3. [realización] hice un error tipográfico
  4. El campo de contraseña se borra: no es un gran problema , puedo escribir razonablemente rápido

b) En un dispositivo con pantalla táctil

  1. escribo mi nombre de usuario y contraseña
  2. Presiona "iniciar sesión"
  3. [realización] Mi contraseña es "password2013", no "password2012"
  4. Se borra el campo de contraseña: ahora estamos hablando : prefiero tener mis valores * * * * * para poder corregir un solo carácter en lugar de escribir la contraseña completa de nuevo, en algunas ocasiones incluso mi el nombre de usuario se borra, lo que es una completa pérdida de tiempo

Algunas preguntas aquí:

  • ¿Es un punto de experiencia de usuario válido para tener asteriscos retenidos en el campo de contraseña?
  • ¿Hay alguna razón para borrar los valores del campo o es simplemente una pereza no devolverlos después del viaje de ida y vuelta al servidor?
  • Al utilizar formularios AJAX, ¿conservaría o borraría los valores?
  • ¿Tiene sentido utilizar un enfoque híbrido: conservar los valores y borrarlos después de un tiempo de espera arbitrario?

¿Existe un riesgo de seguridad al dejar la contraseña como * * * * *?

Dejo mi computadora, el atacante ve mi pestaña abierta y puedo recuperar mi contraseña mal escrita: enlace PERO [la lógica entra en juego ] si un atacante tiene acceso a mi computadora, hay formas más eficientes de dañarme que de buscar la contraseña incorrecta :)

Ejemplos existentes:

  • Pantalla de inicio de sesión de Windows 7: la contraseña se borra
  • Pantalla de inicio de sesión de Mac OS X: la contraseña se conserva

¿Se debe borrar el campo de la contraseña después de un intento fallido de inicio de sesión?

    
pregunta Michal Stefanow 11.07.2013 - 12:41
fuente

3 respuestas

7

Se debe borrar.

No es una situación poco común en la que un usuario ingresa la contraseña, hace clic en "iniciar sesión" y se desvía un poco, haciendo otras cosas. Sin duda, me ha ocurrido en el que intenté iniciar sesión en GMail y una hora más tarde conocer el inicio de sesión fallido. También hay sistemas ( sudo apt-get -y install me viene a la mente, aunque en este caso el intento de contraseña fallida no es recuperable) en el que solo necesita autenticarse y luego olvidarse de él -

En la situación de GMail mencionada anteriormente, alguien podría obtener fácilmente la contraseña de texto simple (bueno, la versión tipográfica, pero generalmente es fácil de arreglar eso) si me levanté de mi computadora en esa hora.

  

si un atacante tiene acceso a mi computadora, hay formas más eficientes de dañarme

Hay mucho más caos que puede ser causado si un atacante conoce la contraseña que en el caso en el que el atacante acaba de iniciar sesión, por lo general.

Sin embargo, esto realmente depende del sistema. Para una pantalla de inicio de sesión de escritorio, no importa mucho mientras el campo de la contraseña no sea copiable. Para los servicios en línea, importa mucho más.

    
respondido por el Manishearth 11.07.2013 - 15:23
fuente
5

No borrar el campo de contraseña tiene los desafortunados efectos secundarios de que algún usuario simplemente asumirá que "meh, no funcionó esta vez" y volverá a enviar la contraseña, sin modificar. Es parte de la psique humana promedio que cuando algo sale mal, el usuario primero pensará que es culpa de otra persona, es decir, que si el inicio de sesión falló, entonces el servidor es responsable, no su propia contraseña.

Este comportamiento implica más trabajo en el servidor (si el servidor almacena hashes de contraseña con hash lento, como debería , entonces esto aumenta la carga computacional en el servidor) y está en desacuerdo con algunas políticas de bloqueo automático (cuando se ingresan demasiadas contraseñas incorrectas, la cuenta está bloqueada o al menos desactivado por unos minutos, como protección contra ataques de diccionario en línea).

Los

Seguridad con las contraseñas reflejadas son lo que @Manishearth analiza : en un genérico De esta manera, una contraseña es sensible y, por lo tanto, se considera mejor si el usuario puede controlar la vida útil de cualquier copia escrita de su contraseña. Si el servidor le devuelve la contraseña al cliente en algunos casos, entonces el usuario ya no puede asegurarse de que no se pueda acceder a una copia escrita de su contraseña en algún momento. Este no es un problema muy serio (se necesita una situación especial para que se convierta en relevante), pero vale la pena pensar en ello.

Por estas razones, recomiendo borrar el campo de contraseña. Malditos sean los usuarios de pantallas táctiles; nadie los obligó a comprar un iPad.

    
respondido por el Tom Leek 11.07.2013 - 18:03
fuente
2

No creo que haga falta un "pirata informático" terriblemente sofisticado para descubrir que document.forms["login"]["password"].value; es una excelente manera de robar una contraseña que aún está escrita. Concedido, hay cosas peores que podrían hacer con tu computadora de esa manera, pero yo diría que es tu responsabilidad como usuario tomar esa decisión; el operador del sitio debe hacer las cosas lo más seguras posible.

Además, si estás en un sitio web bancario, no hay muchas otras cosas que alguien pueda hacer que empeoren la vida ...

    
respondido por el ilinamorato 11.07.2013 - 15:18
fuente

Lea otras preguntas en las etiquetas