En cualquier instancia de una vulnerabilidad, el pensamiento adverso ayuda. ¿En qué escenario I encontraría útil esta vulnerabilidad si quisiera acceder maliciosamente a la cuenta de alguien?
Bueno, como administrador del sistema, tengo acceso al hash de la contraseña de todos, junto con cualquier sal y pimienta. Pero, como son hashes, todavía no puedo descifrar una contraseña que está bien elegida. No soy el único administrador de sistemas, por lo que no puedo instalar herramientas para snoop de contraseña y garantizar que no serán detectados.
Pero el usuario ha ingresado su contraseña y la ha dejado con asteriscos allí. Si se han alejado de la computadora, mientras se mantienen conectados, hay varias cosas que puedo hacer para recuperar la contraseña. Pero no lo han hecho. En cambio, me han llamado para ayudar con un problema que tienen con su navegador, teclado, mouse, lo que sea.
Bajo el disfraz de la prueba, puedo hacer clic alrededor, hacer clic en su nombre de usuario, seleccionar texto en la página, pulsar la pestaña, seleccionar el campo de contraseña, ctrl y los cursores ... o puedo iniciar sesión yo mismo, escriba mi nombre de usuario en el campo de nombre, haga clic en el final del campo de contraseña, mueva mi cursor al principio de forma natural ...
... una fracción de segundo, y he establecido que su contraseña tiene el formato "aaaa ?? aa", y mi tarea de descifrar su hash se ha vuelto mucho más fácil, porque solo necesito probar eso espacio del patrón. Suponiendo que pudieran usar cualquier carácter en un teclado, mi espacio de problemas se ha reducido de 94 ^ 8 = 6 * 10 ^ 15 posibilidades, a simplemente 62 ^ 4 * 62 ^ 2 * 32 ^ 2 = 5 * 10 ^ 13.
Lo que ya es una mejora cien veces mayor, lo que permite un rango mucho más amplio de patrones de ataque; pero lo más importante es que puedo adaptar mi ataque para probar cosas que probablemente funcionen primero: las cuatro palabras de las letras de mis diccionarios; luego dos caracteres especiales arbitrarios, probablemente una repetición, o un punto y un espacio; luego dos caracteres, los números más probables, especialmente si requerimos números en nuestra política de contraseñas.
Así que sí, se puede hacer en su cara por un técnico de soporte, y no deja rastro que un usuario experto u otro técnico de soporte pueda descubrir, como los dejados por los keyloggers o rootkits.
[Editar: Me acabo de dar cuenta de que también existe la posibilidad de que sea "???? xx ??" con ese patrón, pero eso es solo 32 ^ 6 * 62 ^ 2 = 2 * 10 ^ 12, dentro de la posibilidad de forzamiento brutal.]
[Edit2: escogí xxxx..xx como un ejemplo de dónde sería bueno saberlo, pero consideremos el paso de 8 caracteres en el peor de los casos: xxxxxxxx. Eso ha eliminado el perfil de ataque de 94 ^ 8 a 32 ^ 8 + 62 ^ 8, o 2 * 10 ^ 14, que todavía es una reducción de 30 veces. Las contraseñas más largas dan mejores reducciones, por supuesto, pero aún son más difíciles de descifrar. Pero no solo eso, podré eliminar una gran cantidad de conjuntos de reglas de mi perfil de ataque, por lo que si la contraseña no es aleatoria, la golpearé mucho antes.]