¿Hay algún punto en el uso de contraseñas "seguras"?

39

Digamos que estoy configurando una nueva cuenta en un sitio web. ¿Debo molestarme en usar una contraseña segura? Mi razonamiento es el siguiente:

La fortaleza de la contraseña es una medida aproximada de cuánto tiempo tomaría la fuerza bruta de mi contraseña desde un hash. Forzar incluso una contraseña 'débil' es difícil a través del punto final de autenticación del sitio web: es demasiado lento y las limitaciones en el número de intentos de contraseña incorrecta son habituales. Las contraseñas brutales incluso forzadas se están convirtiendo en trivial cuando tengas el hash de contraseña, y esta situación solo empeorará. En la situación en que los hashes de contraseña se filtran de un sitio web, las contraseñas se restablecen de todos modos.

Me parece que no hay diferencia entre usar la contraseña fredleyyyy o 7p27mXSo4%TIMZonmAJIVaFvr5wW0%mV4KK1p6Gh al final del día.

    
pregunta fredley 10.09.2013 - 11:30
fuente

10 respuestas

78
  

Las contraseñas incluso 'fuertes' de fuerza bruta se están volviendo triviales cuando se tiene el hash de contraseña, y esta situación solo empeorará.

Esto es no verdadero. Una contraseña altamente aleatoria es casi imposible de aplicar a la fuerza bruta dado que la aplicación web en cuestión está utilizando un algoritmo de hashing fuerte como bcrypt o pbkdf2 . Por otro lado, las contraseñas débiles son ridículamente fáciles de usar para la fuerza bruta, incluso si se usa un algoritmo de hashing fuerte.

Entonces, sí, hay mérito de usar una contraseña segura.

    
respondido por el Ayrx 10.09.2013 - 11:34
fuente
14

Ninguna contraseña es irrompible, pero no tienen que ser irrompibles. Solo tienen que superar la paciencia de un atacante. Incluso cuando alguien roba los hashes, por lo general deciden después del primer millón que tienen suficientes contraseñas, y si la suya no ha sido resquebrajada para entonces, sigue siendo segura.

Eso es lo que pasa con las contraseñas seguras. La única medida de fortaleza que realmente necesita es que tiene que ser más fuerte que las contraseñas que todos los demás están usando. Pero como no tienes idea de lo que eso podría significar (porque no conoces las contraseñas de otros usuarios), la mejor manera de hacerlo es hacer que la tuya sea lo más fuerte posible.

    
respondido por el The Spooniest 10.09.2013 - 13:27
fuente
4

Cuando una contraseña segura también es una contraseña larga, tiene la ventaja de que es difícil navegar por los hombros.

Algunos sitios y servicios tienen API que consumen credenciales de cuenta de usuario, a menos que estén también limitados en la tasa y protegidos de la falsificación de IP, se conviertan en otro canal de ataque con una tasa de forzamiento de la fuerza bruta más rápida.

Es probable que si utiliza una contraseña corta, no provenga de un generador de contraseñas, lo que significa que la contraseña no va a ser muy aleatoria. Los humanos son terribles al escoger números al azar.

Si los administradores de contraseñas normales son un poco lentos para navegar con el mouse y el teclado; hay huella digital y proximidad dispositivos de inicio de sesión automático en el mercado.

Si el sitio web es spam y de poco valor para usted, puede optar por una contraseña débil y memorable. Pero puede ser muy difícil anticipar el valor futuro de cualquier información o servicio que haya fusionado con el sitio web. Algunos sitios web pueden tener Términos de Servicio que responsabilizan a los usuarios por los daños ocasionados por infracciones debido a una contraseña débil (suponiendo que lo supieran).

    
respondido por el LateralFractal 10.09.2013 - 12:02
fuente
3

Está asumiendo que la única forma en que alguien podría comprometer su contraseña es obtener el hash. Las contraseñas seguras también son valiosas porque son mucho más difíciles de romper sin el hash. PizzaTime es mucho más fácil de adivinar, dado mi amor de Ninja por las tortugas de los discos bready que rpqwe; fdlaskje [] @ # 4094fd93.

    
respondido por el gjmulhol 10.09.2013 - 11:43
fuente
2

He pasado mucho tiempo trabajando con marcos de autenticación, estándares e implementaciones de importancia nacional, por lo que no es una respuesta sencilla, lo siento.

Las contraseñas por sí solas no compran mucho, pero tampoco lo hace ningún control por sí mismo. Una contraseña que requiere más cómputo para adivinar que una que toma menos es obviamente mejor contra un ataque de diccionario o fuerza bruta. La sal y la cantidad de rondas utilizadas en PKDF2 le permiten al operador del sistema ajustar el costo de la fuerza bruta computacional, pero los ataques de contraseña basados en el diccionario siempre aparecerán en un arsenal de atacantes donde no hay controles mínimos para prevenir los ataques de fuerza bruta (por ejemplo, obtener una copia del hash de contraseña con sal en el que se monta un ataque de diccionario / fuerza bruta) ya sea fuera de línea o en línea.

Es típico bloquear una cuenta después de alcanzar cierta velocidad de intentos no válidos. Este es un ejemplo de un control que hace que las contraseñas débiles / cortas / adivinables sean aceptables, por ejemplo, cómo se utilizan los PIN de tarjetas de crédito de 4 a 6 dígitos; el enfoque de autenticación de dos factores (algo que tiene y algo que sabe) y el dispositivo confiable de ingreso de clave (teclado PIN), los controles de bloqueo de la cuenta / tarjeta, la fuerte distribución de la clave y los procesos de reinicio juntos hacen que el sistema de autenticación general sea aceptable para MUY CORTAS contraseñas. Y cuando no es aceptable, se introducen controles adicionales para controlar los riesgos, por ejemplo, dispositivos para evitar el raspado de la tarjeta, la educación del usuario para cubrir el teclado al ingresar su PIN, una mejor auditoría y monitoreo, etc. También hay factores humanos bien conocidos para considerar, por ejemplo. Las contraseñas largas / crípticas / difíciles de recordar y las personas que las olvidan o las escriben frente a las contraseñas más cortas y, con suerte, más fáciles de recordar, que no se escriben ni escriben en ninguna parte.

Entonces, en respuesta a tu pregunta, 'depende'. ¿Qué otros controles están presentes para mitigar los riesgos de una contraseña corta / adivinable y aún así hacer que el sistema resulte aceptable para su información? Si no sabe la respuesta, o si no confía en el operador del servicio, entonces solo debe confiar de manera mínima (o no confíe) en su información, SIN IMPORTAR la longitud de la contraseña.

¿Qué información está alojando o compartiendo con el proveedor de servicios?

¿Cuáles son las consecuencias de su modificación, destrucción o divulgación no autorizada?

Puede depender de qué tan creativo o entendido sea usted porque puede sorprenderse de lo que puede lograrse con un poco de información si hay una recompensa en términos que sean significativos para el agente de amenazas.

    
respondido por el Andrew Hacking 11.09.2013 - 04:48
fuente
1

La mayoría de los piratas informáticos utilizan un enfoque de fuerza bruta cuando encuentran contraseñas: intentan todas las combinaciones posibles. Este método, aunque parece estúpido, se está volviendo más efectivo a medida que las computadoras se vuelven más rápidas.

En general, debe usar una contraseña segura para retrasar ese método. Y oh chico puede retrasarse! Este sitio aquí le da una idea de qué tan segura es su contraseña contra este tipo de ataques.

Por cierto, una contraseña segura solo es efectiva contra este método. Hay otros que no dependen de su contraseña, sino de su configuración de privacidad como su caché, sesiones iniciadas entre muchas otras cosas. Debería revisar su computadora en busca de spyware y malware con regularidad para evitar estos.

    
respondido por el pavlag 10.09.2013 - 14:41
fuente
1

Tienes razón, y esta es una gran molestia. De hecho, todo este asunto de las contraseñas de hash y la elección de las que son difíciles de descifrar mediante el hashing es una farsa completamente inútil, y constituye lo que Schneier llama "teatro de seguridad".

El hash de contraseñas es irrelevante, excepto en situaciones específicas: los protocolos de autenticación que comunican los hashes en claro (lo que no debería hacerse), y las bases de datos de contraseñas que almacenan los hashes de forma que sean legibles para todo el mundo, como el clásico /etc/passwd (que ya no se hace).

En los viejos tiempos, si estaba en un sistema de Unix público con miles de usuarios, como una máquina o granja de máquinas, que proporcionaba cuentas de correo electrónico para estudiantes universitarios, las contraseñas deficientes se descifraban literalmente de izquierda a derecha. El archivo de contraseñas de dicho sistema era un gran imán para el craqueo, con grandes beneficios. Por supuesto, tal archivo de contraseña es completamente estúpido. Cualquier distribución de Linux decente en la actualidad pone hashes de contraseña en /etc/shadow .

Entonces, el punto es que si un atacante tiene acceso a los hashes, el sistema en cuestión está mal diseñado (protocolos de autenticación de red de texto casi sencillo, bases de datos de contraseña de lectura pública) o se ha comprometido hasta el punto de que el conocimiento de su contraseña de texto simple ya no es relevante, ya que el atacante necesitaba privilegios de administrador para obtener el hash.

Aún así, los hashes proporcionan una pequeña capa de seguridad adicional. Y esa capa protege a aquellos que reutilizan contraseñas entre sitios . Si un sitio es "pwned", por lo que los atacantes poseen su contraseña hash, tiene problemas si usó la misma contraseña en otro lugar y esa contraseña es fácil de descifrar.

Irónicamente, es más probable que las personas reutilicen contraseñas muy difíciles en varios sitios, porque son difíciles de recordar. En segundo lugar, es probable que reutilicen la misma contraseña difícil. Introduciendo pequeñas variaciones en él. Por ejemplo, si la contraseña original se considera lo suficientemente segura como para que un sistema la acepte, solo la utilizarán en otro sistema, pero cambiarán un 1 a un 2 o 3 y así sucesivamente. Si los atacantes descifran la contraseña con un 1 , pueden adivinar fácilmente los demás.

Es mucho más fácil generar y memorizar contraseñas relativamente fáciles, de manera que no tienen ninguna relación entre ellas.

Aquí también hay otra cosa que las personas pasan por alto: los administradores del sitio no son tus amigos de confianza. Debes sospechar no solo de los atacantes externos, sino también de los internos. En cualquier sitio donde tenga una cuenta protegida con contraseña, podría haber un administrador malvado que recopile contraseñas de texto sin formato. Ni siquiera sabes si las contraseñas están hasheadas. Suponga que no están hash, y suponga que entre los administradores de cada sitio hay una persona maliciosa que recopila contraseñas. Incluso si sabe que el software del sitio utiliza una base de datos de contraseñas hash, no puede asumir que el código no haya ha sido modificado. La propia IU de Javascript (o lo que sea) maneja las contraseñas de forma clara.

Ah, y si no ves "HTTPS" en la barra del navegador, ¡todas las apuestas están desactivadas! Alguien está recogiendo su contraseña de 32 caracteres generada de forma aleatoria, claro.

Una contraseña solo debe ser lo suficientemente difícil como para que no se pueda adivinar en varios intentos ingenuos (intento de entrada a través del mecanismo de autenticación normal). Cualquier sitio implementado de forma decente implementa la importante medida de seguridad de bloquear una cuenta que se ha adivinado demasiadas veces, de modo que el usuario legítimo tenga que tomar medidas adicionales para desbloquearla.

Si no puede adivinar su contraseña en media docena de intentos, y puede generar y recordar contraseñas completamente diferentes de este tipo para cada sitio, básicamente estará bien.

La IU de creación de contraseña que obliga a los usuarios a inventar contraseñas complicadas es molesta, contraproducente y no se basa en ningún principio de seguridad concebido racionalmente ni en la identificación correcta de posibles amenazas.

    
respondido por el Kaz 11.09.2013 - 01:15
fuente
1

Eso no es cierto. Las contraseñas no se filtran solo por su hash, y los hashes son muy diferentes en términos de fuerza.

También estás olvidando la salazón, que aumenta el tiempo de craqueo exponencial con fuerza bruta.

Como ejemplo, la mejor fuerza bruta no puede descifrar una contraseña WPA2 de 50 caracteres en un tiempo razonable, mientras que una clave alfanumérica de 8 caracteres se fuerza incluso con una computadora portátil.

    
respondido por el Max 10.09.2013 - 13:05
fuente
0

Personalmente, creo que depende de lo que haya detrás de la contraseña. Sí, las contraseñas seguras son mucho más seguras, ya que Terry hizo un excelente trabajo de articulación. Pero para mí, cuanto más fuerte sea la contraseña, más frustrante se vuelve para mí recordar cuál es la contraseña, escribir los símbolos y la caja correctamente, etc.

Hay una diferencia significativa en el mundo real entre un pequeño candado tipo maleta y un cerrojo que colocas en la puerta principal. Cada uno tiene un uso adecuado y, obviamente, cuanto menos complejo sea el bloqueo, mayor será el riesgo que esté dispuesto a aceptar.

¿Mis cuentas bancarias y de correo electrónico? Los que consiguen el cerrojo. Las cosas que no me importan particularmente tanto ... son las que tienen el candado más ligero.

    
respondido por el Pete 10.09.2013 - 16:59
fuente
0

Sí, por supuesto que debe imponer contraseñas seguras, por todas las buenas razones en las otras respuestas, pero es importante recordar que las contraseñas y sus hashes existen en un contexto y no de forma aislada. Su comentario acerca de que los hashes sean cada vez más fáciles de revertir es una buena indicación de esto: puede ser cierto, pero no es universalmente cierto que revertir los hashes es trivial si usa los controles correctos pero resalta una consideración realmente importante ... también debería En caso de que acceder a los hashes sea un proceso bien seguro.

Sin embargo, en la mayoría de los casos, las contraseñas están protegidas contra la divulgación por otras contraseñas.

Las contraseñas deben protegerse a lo largo de una cadena de flujo de datos donde cada enlace en el flujo está protegido por otra contraseña (por ejemplo) desde un formulario de entrada del navegador web, a través de un enlace cifrado (con suerte), a un servidor demonio, a una aplicación de back-end, en una biblioteca o marco para rehashing, y dentro / fuera de una base de datos.

A menudo, todos estos enlaces en la cadena están protegidos por contraseñas de alguna manera (por ejemplo, la aplicación de back-end está protegida contra el código malicioso de escuchas ilegales que se agrega con la contraseña de la cuenta de modificación del implementador o desarrollador de la aplicación), y los hashes de la base de datos están protegidos por la contraseña de la cuenta de usuario de la base de datos y la cuenta de acceso al servidor de la base de datos, etc.

Aunque las contraseñas seguras solo pueden considerarse "seguras" como la contraseña / control más débil de esta cadena, un análisis de riesgo debe confirmar que las funciones de autenticación y administración de contraseña de usuario son las más propensas a ser atacadas y, por lo tanto, debería merecer más atención, y ciertamente un umbral tan alto como el que pueda cumplir de manera confiable.

    
respondido por el David Scholefield 13.09.2013 - 08:51
fuente

Lea otras preguntas en las etiquetas