2012-02-06 32 views
9

Cuando ingreso mi contraseña para privilegios de superusuario o para iniciar sesión en mi caja Linux, si la ingreso correctamente, se devuelve inmediatamente, lo que me otorga acceso. Sin embargo, si hago algún error tipográfico, hay una larga espera antes de que me diga que mi contraseña es incorrecta. Por lo general, me doy cuenta de que me equivoqué mucho antes de que la computadora lo haga.¿Por qué `sudo` es lento cuando la contraseña es incorrecta?

¿Por qué es este el caso? Según entiendo, las contraseñas de los usuarios se cifran y almacenan en /etc/shadow, por lo que parece que mi entrada solo debe cifrarse y compararse con lo que está en ese archivo para mi nombre de usuario --- lo que tomaría más o menos el mismo tiempo si ingresé el correcto contraseña o no ¿Hay alguna razón algorítmica, como que tiene que comprobar en un montón de lugares adicionales antes de que pueda confirmar que es incorrecta? O tal vez el sistema sabe que es una contraseña incorrecta rápidamente, pero tiene que hacer un montón de trabajo para realizar un seguimiento de los intentos de inicio de sesión incorrectos. O tal vez solo está tratando de castigarme por arruinarme.

+0

Espero que esta pregunta sea apropiada para SO. Sé que no está estrictamente relacionado con la programación, pero esperaba aprender algo sobre los algoritmos de cifrado o las mejores prácticas de seguridad. –

+1

Probablemente sea a propósito para desacelerar las conjeturas automatizadas .. –

+0

Me he dado cuenta de que hace unos meses, pero no era lo suficientemente curioso como para preguntar. Espero que se pueda dar una respuesta! –

Respuesta

5

Esto se hace totalmente a propósito: el motivo es que es imposible adivinar una contraseña mediante un ataque de diccionario.

El cambio rápido es crucial para un ataque de diccionario. Reducir las contraseñas incorrectas es una forma de reducir la velocidad del ataque a un rastreo, lo que hace que sea imposible ejecutarlo en un intervalo de tiempo significativo.

+1

Dicho esto, ¿hay alguna manera de reducir el tiempo de espera? –

+3

@Shurane Sinceramente espero que la respuesta sea "no". – dasblinkenlight

+5

Puede que no sea el caso, pero Doug Gwyn dijo que 'UNIX no fue diseñado para evitar que hagas cosas estúpidas, porque eso también te impediría hacer cosas inteligentes.' No me importa dispararme en el pie. –

2

No estoy seguro de si esta pregunta es relevante aquí .. Tampoco estoy seguro de la exactitud de mi respuesta, pero creo que es por seguridad. Hacerlo n más lento significaría que un ataque de fuerza bruta tomaría n veces más tiempo.

1

La respuesta lenta de sudo cuando ingresa una contraseña errónea es para que si está montando un ataque bruto de fuerza bruta 'intente y adivine la contraseña' con sudo, se ralentice cada vez que adivine mal, de modo que la el ataque toma más tiempo. Aquellos que lo están usando legítimamente no tienen motivo de queja. Si comete un error de ortografía de vez en cuando, no le importará. Si realmente no puede escribir su propia contraseña, podría ser hora de cambiarla a algo (seguro) que pueda escribir.

+0

* "Si comete un error de ortografía de vez en cuando, no le importará". * Bueno, esa es exactamente la razón por la que estoy aquí. – Luc

1

Consola o SSH El inicio de sesión también es lento. Todo lo que requiere una contraseña es "ralentizado" para detener los ataques de fuerza bruta.

Cuestiones relacionadas