Cómo podría estar pasando esto
Cuando voy al Yahoo! página de cuenta y cambiar mi contraseña, se me pide que proporcione mis contraseñas actuales y nuevas:
En este caso, determinar si mi nueva contraseña es “demasiado similar” a mi contraseña anterior es computacionalmente muy fácil: Yahoo solo necesita calcular la distancia de edición entre estas dos cadenas de entrada. Cómo escribir un corrector ortográfico de Peter Norvig proporciona una muy buena introducción a la herramienta de “ejemplo de trabajo real” para “editar distancia”. La idea es que es computacionalmente bastante fácil determinar, dadas dos cadenas, cuántas eliminaciones / adiciones / transposiciones tiene que hacer para pasar de una a otra.
Estoy a punto de comenzar a inventar cosas sin conocimiento interno y sé que esto te frustrará, pero ::
Si se le pide que cambie su contraseña y no haya proporcionado su contraseña anterior muy recientemente (en la misma página o en una página muy reciente), esto sugiere que Yahoo no tiene acceso a su contraseña anterior cuando le pide que establezca ¡uno nuevo, que es genial! ¿Puedes mostrar una captura de pantalla de este flujo de trabajo? (¿Escribe su contraseña anterior correctamente en la página anterior inmediata?).
- Cómo mantener mi computadora a salvo del ransomware Wannacry
- ¿Vale la pena obtener 1 contraseña?
- ¿La seguridad cibernética siempre será básicamente una carrera armamentista?
- ¿Cuál es la diferencia entre las certificaciones CSA + y CompTIA Security +?
- ¿Podría 'la nube' fallar alguna vez? ¿Hay algo menos que las explosiones EMP que puedan derribarlo?
Una forma en que esta verificación de similitud podría suceder computacionalmente se basa en el hecho de que conoce la “nueva contraseña” y aún puede iniciar sesión con la “contraseña anterior” actual:
- Enumere todas las cadenas de distancia de edición 3 desde la “nueva contraseña” que acaba de escribir.
- Para cada una de esas cadenas, verifique si es su contraseña actual (utilizando los mismos métodos de inicio de sesión, por ejemplo, comparando un hash de esta cadena con el hash almacenado de su contraseña actual).
- Si esta verificación tiene éxito para cualquiera de las cadenas generadas, entonces su nueva contraseña es demasiado similar a su contraseña anterior.
Para una cadena corta (decenas de caracteres), este es un conjunto bastante pequeño de hashes para calcular y verificar. Suponiendo que hay 256 caracteres distintos permitidos en una contraseña, entonces creo que según el informe de Norvig sobre los correctores ortográficos hay [math] 514n + 255 [/ math] cadenas distintas que editan la distancia 1 desde una contraseña de longitud n.
Entonces, por ejemplo, hay unas 470,505 cadenas que son editadas a distancia 2 de una contraseña de treinta caracteres. Dependiendo de cómo se almacenan internamente las contraseñas hash, a Yahoo le tomaría una pequeña fracción de segundo generar todas estas suposiciones y validarlas con su contraseña actual. (Los hash de contraseña se pueden verificar a una velocidad de miles de millones por segundo con hardware y software modernos).
(No publican una lista completa de caracteres de contraseña permitidos, pero dicen que permiten letras, números y símbolos y requieren una longitud de 8–32 caracteres: requisitos de contraseña de Yahoo).
¿Por qué la gente se molesta en hacer esto?
La similitud con las contraseñas antiguas es un indicador común de una contraseña “débil” en el sentido de que aumenta las probabilidades de que alguien que no sea usted obtenga acceso a su cuenta.
Es bastante común en los sistemas Unix que le digan “su contraseña es muy similar a la actual, intente otra cosa”. Esto se puede atribuir a los sistemas que invocan el comportamiento del módulo estándar pam_cracklib para verificar que la contraseña sea “segura” ( no se parece mucho a una palabra del diccionario o la contraseña anterior, entre otras verificaciones). La distancia de edición predeterminada es 5 (inserciones, eliminaciones o sustituciones de cinco caracteres).
Decirle a la gente “su contraseña es muy similar a la que ya ha usado” evita el siguiente ataque:
- Su cuenta en algún otro sitio web se ve comprometida y su nombre de usuario y contraseña, “timmy” y “mypass”, son robados.
- Recuerdas que usas el mismo nombre de usuario y contraseña en Yahoo, así que vas a Yahoo y cambias tu contraseña. Para que no tenga que recordar nada nuevo, cambie su contraseña a “mypass1”.
- Alguien compra su nombre de usuario y contraseña del atacante que robó credenciales en masa, y decide que quiere apuntar a su cuenta específicamente para comprometerla. Trabajando a partir de sus últimas credenciales conocidas (nombre de usuario “timmy” y contraseña “mypass”) primero prueban la contraseña “mypass”, luego “mypassA”, luego “mypass1” y acceden a su cuenta.
Otro posible problema que esta restricción de contraseña intenta resolver es “clingy ex conoce tus contraseñas antiguas, así que las cambias pero no mucho”
Personalmente, estoy de acuerdo con el que hace la pregunta de que este tipo de requisitos estrictos de contraseña son una gran molestia cuando se combinan con eventos que no indican que su contraseña ha sido comprometida.
Si su contraseña se ha filtrado por un compromiso del sitio de Gawker, claro, lo suficientemente justo, también podría asegurarse de que la nueva sea segura. Pero si solo se ve obligado a cambiar la contraseña porque la equivocó y la escribió tres veces, es una gran molestia tener que elegir una nueva contraseña y obligar a las personas a hacerlo garantiza que elegirán contraseñas menos seguras que pueden recordar y escribir con mayor facilidad que apenas cumplen con los requisitos de seguridad relevantes.