¿Alguien está desarrollando una tecnología que pueda decirle si su nombre de usuario o contraseña son incorrectos?

Como otros han señalado correctamente, lo que está viendo es el resultado de un diseño deliberado para dificultar que los atacantes “adivinen” las credenciales de inicio de sesión. Me gustaría agregar tres puntos.

Intimidad

Supongamos que alguien, por ejemplo, Ann Smith cuyo correo electrónico está [email protected] , tiene una cuenta en ISecretlyLoveNickleback.org . Tenga en cuenta el “Secretamente” en el nombre de dominio. Ann es vanidosa y no quiere que la gente conozca su pequeño secreto horrible.

Ahora supongamos que su enemigo mortal, Oscar, está por destruir la reputación de Ann. Intenta iniciar sesión en ISecretlyLoveNickleback.org utilizando la dirección de correo electrónico [email protected] y alguna contraseña u otra (pero no se espera que obtenga la contraseña correcta). Si le dicen que el nombre de usuario es correcto pero la contraseña es incorrecta, ahora conoce el secreto de Ann incluso sin entrar en su cuenta.

Oscar descubre si Ann tiene una cuenta en ese sistema, e incluso si ese conocimiento no lo ayuda a entrar en la cuenta, puede ser legítimamente información que Ann no quiere revelar.

Hora de mentir (o revelar la verdad)

En los viejos tiempos (principios de los 80 o finales de los 70), cuando los sistemas comenzaron a seguir la práctica de no decir si el nombre de usuario o la contraseña eran incorrectos, hubo un pequeño error en el diseño. Fue mucho más rápido para una computadora ver que un usuario no estaba en el sistema, entonces fue para que la computadora procesara y probara una contraseña.

Entonces, si midió cuánto tiempo le tomó al sistema decir que el nombre de usuario o la contraseña eran incorrectos, aún podría saber si el nombre de usuario estaba en el sistema. Si tomó tiempo (digamos 100 milisegundos), el nombre de usuario estaba en el sistema, y ​​si tomó mucho menos tiempo (digamos 5 milisegundos), el usuario no estaba en el sistema.

Después de que este sistema de descubrimiento procesara las contraseñas y realizara todos los cálculos, lo haría para un uso real, incluso cuando no hubiera dicho usuario.

Los identificadores no son secretos

Aunque existen algunos beneficios de seguridad al no revelar si existe un nombre de usuario en el sistema, no cometa el error de pensar que debe intentar usar nombres de usuario secretos. Los nombres de usuario se denominan “identificadores” (que no están diseñados para mantenerse en secreto o para usarse como secretos) y las contraseñas son “secretos de autenticación”. A pesar de la tentación de buscar la seguridad adicional de mantener en secreto su nombre de usuario, usar el conocimiento de los identificadores como secretos de autenticación puede llevar al desastre.

Debido a que los identificadores no están diseñados para mantenerse como secretos, son mucho más fáciles de descubrir que las cosas que están diseñadas para ser secretos, y por lo general son más difíciles de cambiar. Cambiar su contraseña puede ser una molestia, pero no tanto como cambiar su nombre.

Mencioné los desastres. Los números de la Seguridad Social en los Estados Unidos nunca fueron diseñados para ser secretos. Estos son identificadores. Es solo cuando la banca telefónica se convirtió por primera vez en algo que algunos bancos comenzaron a conocer los números de la Seguridad Social como secreto de autenticación. Ese mal uso condujo a la terrible situación que tenemos hoy. Los SSN tienen que vivir en muchos lugares semipúblicos para hacer su trabajo. Nunca fueron construidos para ser secretos. Pero desde que los bancos comenzaron a tratar el conocimiento de los SSN como secretos, se abrió la puerta al fraude y al robo de identidad.

Un caso similar es con los números de tarjeta de crédito. Estos eran simplemente números de cuenta para que los procesadores supieran de qué cuenta se estaba hablando. Nunca fueron destinados a ser secretos. En su forma original, la autenticación se realizó mediante una firma física y la visualización de algún tipo de identificación con foto (como una licencia de conducir en los EE. UU.). Solo cuando comenzaron las compras por teléfono, los comerciantes comenzaron a utilizar el conocimiento de un número de tarjeta de crédito como prueba de identidad. Y eso ha llevado a un sistema que ha permitido un enorme fraude. Nuevamente es porque los números de tarjeta de crédito (y los sistemas que los manejan) nunca fueron diseñados para ser secretos.

Como otros decían, es una medida de seguridad deliberada revelar lo menos posible acerca de qué tan cerca está de iniciar sesión. Suponga que tiene una identificación de usuario de 4 dígitos y un PIN de 4 dígitos. Juntos, eso es 8 dígitos o 256 posibilidades; Le llevaría en promedio 128 intentos de adivinar. Si se le permite adivinar la ID por separado, son 8 intentos de adivinar la ID y luego 8 para adivinar el PIN, o 16 en total en lugar de 128.

Por lo tanto, desde el punto de vista de la seguridad, las ID de usuario deben ser aleatorias para fortalecer las credenciales. Pero hoy en día muchos sitios usan una dirección de correo electrónico como ID, que es reconocible, por lo que los usuarios deben hacer su contraseña correspondientemente más fuerte para compensar.

En muchos sitios, marcar “Olvidé mi contraseña” te dirá si una dirección de correo electrónico está registrada o no.

Cualquier programa podría decirle cuál es, por razones de seguridad se deja ambiguo. No está DELIBERADAMENTE claro, por lo que las personas que intentan descifrar la seguridad no saben cuándo tienen una contraseña o un correo electrónico válidos y solo tienen que buscar la otra parte.

Bueno, no hay necesidad de tecnología especial para eso. Cualquier sitio web podría hacer eso, pero no lo harán porque es como una medida de seguridad. Entonces, otras personas cuando intentan robar o adivinar su contraseña o incluso correo electrónico. El sitio web no le dirá qué acertó y cuál se equivocó.