¿Realmente necesitamos una contraseña larga y complicada para los sitios web?

66

La mayoría de los sitios web que manejan información importante (por ejemplo, Gmail) tienen algún tipo de protección de fuerza bruta. A veces, si lo intentas más de X veces, se bloqueará la cuenta o al menos te dará un captcha para resolver.

Actualmente, todos los expertos en seguridad siguen diciendo lo mismo: crear caracteres largos y mixtos, contraseñas de alta entropía. Esto tiene mucho sentido si piensas en una clave RSA, o algo que podría ser descifrado fuera de línea, pero ¿es realmente importante cuando hablamos de contraseñas de cuentas en línea?

Por ejemplo, creamos una contraseña para Gmail usando solo 6 letras del alfabeto inglés. Esto es aproximadamente 26 ^ 6 = 309 millones de combinaciones. Si consideramos que podemos probar 1 contraseña por segundo (lo cual creo que es más rápido de lo que realmente podemos, si tiene en cuenta los captchas de Gmail), necesitaremos hasta 10 años para romper y 5 años en promedio.

Puntos a considerar:

  • Si usa la misma contraseña en un sitio web diferente, otro sitio web podría ser hackeado y su contraseña expuesta. Supongo que la contraseña es única. Solo se utiliza con Gmail.
  • Si alguien puede tomar la base de datos, podría forzar el hash de tu contraseña sin conexión. Supongo que el sitio web utiliza al menos un hash con sal (muy poco probable que el pirata informático intente romper todas las contraseñas) y / o es muy poco probable que la base de datos sea hackeada (es una suposición justa con Gmail)
  • También asumo que su contraseña no es una palabra del diccionario o algo fácil de adivinar. Esto debería descartar la fuerza bruta de varias cuentas (por ejemplo, probar la misma contraseña común en varias cuentas).

¿Es seguro asumir que no necesitamos una contraseña realmente larga para los sitios web tan pronto como seguimos las demás medidas de seguridad? Si sugerimos que las personas utilicen una contraseña larga simplemente porque normalmente no siguen los otros consejos de seguridad (use la misma contraseña en todas las cuentas, etc.). ¿No estamos realmente tratando de corregir los síntomas y no la causa?

PS: Algunas otras preguntas abordan casi lo mismo, pero las respuestas siempre consideran que la persona está utilizando la misma contraseña en todos los sitios web o que la base de datos del sitio web es fácilmente robada.

    
pregunta drpexe 05.11.2014 - 13:16
fuente

12 respuestas

35

Lo siguiente realmente no le hace justicia, pero en resumen ...

En un mundo ideal, no se requieren contraseñas complicadas para los recursos en línea.

Pero, en ese mundo ideal dependemos de los administradores del sistema para fortalecer los sistemas y evitar el acceso no autorizado al 'archivo de contraseñas', lo siguiente minimizará el riesgo:

  • Configure la infraestructura de forma segura;
  • Aplique los parches rápidamente;
  • Tener algún tipo de monitoreo para identificar un compromiso en el caso de un escenario de explotación de día cero (para que los usuarios puedan "cambiarse" de cambiar sus contraseñas);
  • Tener y seguir metodologías de programación / desarrollo 'seguras';
  • Emplea solo a individuos confiables.

La combinación completa de la cual es improbable para muchos sitios.

Las debilidades en la lista anterior pueden resultar en explotaciones que permiten que las contraseñas se omitan por completo, pero independientemente de la naturaleza de una explotación exitosa, es una apuesta segura que, después de obtener acceso no autorizado a un sistema los atacantes intentarán exfiltrar el archivo de contraseñas y, posteriormente, utilizarlo de forma bruta para ayudar a que otros sistemas se comprometan (explotando el reciclaje de contraseñas).

Entonces, si bien no hay garantía de que una contraseña segura (er) evite todas las cosas malas, puede ayudar a mitigar las debilidades en las soluciones de los proveedores (ya sean conocidas o no).

Para evitar dudas, también dependemos del proveedor de servicios para hacer lo siguiente:

  • Aplique hashing y salazón a las contraseñas;
  • Asegúrese de que la contraseña nunca se cambie en texto sin cifrar.

Supongo que para la mayoría de los usuarios finales, la decisión sobre la complejidad y la longitud de la contraseña dependerá de la información a la que el sitio (y por lo tanto la contraseña) le da acceso.

Mi recomendación es: si es algo importante, use una contraseña compleja para que, en el caso de un sistema, se puedan descubrir primero las contraseñas de otras personas. Pero si algo más trivial y conveniente es más importante, arriesgue una contraseña más débil, pero acepte que un pirateo podría provocar la pérdida de acceso a la cuenta y / o la liberación de información de la cuenta.

Para muchos propietarios de sitios, sospecho que la decisión de requerir contraseñas complejas es una combinación de FUD y el deseo de minimizar el impacto de una falla crítica de los controles al aumentar la cantidad de tiempo para las contraseñas de fuerza bruta, lo que da más tiempo para rectificar y minimizar el compromiso real de la cuenta de usuario (aunque si un atacante tiene acceso a los hashes de contraseña, es probable que tenga suficiente acceso al sistema para comprometer el sistema de cualquier otra manera).

    
respondido por el R15 05.11.2014 - 14:30
fuente
33

La recomendación de contraseña larga es proteger las contraseñas para evitar que sean crackeadas si alguien tiene acceso al hash de esa contraseña.

Herramientas como hashcat pueden fácilmente (usando gpu) probar 93800M c / s md5 hashes

Como usuario, por lo general, no sabe cómo almacena su contraseña el sitio, por lo que es mejor usar una contraseña larga para mitigar esos ataques.

    
respondido por el DaniloNC 05.11.2014 - 13:36
fuente
31

Escoger buenas contraseñas es difícil. Los humanos y nuestra inclinación por los patrones simplemente no son muy buenos en eso. Multiplique eso por las docenas de cuentas que acumulamos a lo largo del tiempo, y esta es la raíz del problema.

Entonces, sí, eliminar las contraseñas incorrectas y la reutilización de contraseñas puede resolver el problema de crear objetivos blandos, pero no resuelve el problema raíz de mantener todas esas cuentas y contraseñas, que es lo que conduce a las contraseñas incorrectas y la reutilización de contraseñas en primer lugar. Por lo tanto, es bueno y bueno decir "solo siga las buenas políticas de seguridad de contraseñas" y estará seguro, pero sin abordar el problema de la administración de cuentas, no ha resuelto nada.

Entonces, ¿cuál es la respuesta? Utilice un administrador de contraseñas. Esto resuelve el problema. Cuando descarga el problema de creación y administración de contraseñas en una herramienta que fue diseñada específicamente para ese propósito, obtiene contraseñas seguras de forma predeterminada y nunca más debe volver a usar una contraseña. No es una solución perfecta (nada lo es) pero es lo mejor que tenemos en este momento y hace que las preguntas sobre la complejidad y la duración de las contraseñas sean irrelevantes, porque cuando no es usted quien tiene que crear y recordar la contraseña, ya no le importa. lo complejo y largo que es, solo que se genera con suficiente entropía para hacerlo fuerte, y un administrador de contraseñas le da eso.

    
respondido por el Xander 05.11.2014 - 15:37
fuente
11

Las únicas suposiciones sane para cualquier desarrollador web que utilicen la autenticación de contraseña local son:

  1. que sus usuarios van a utilizar la misma contraseña para todo;

  2. que el sitio ya se ha comprometido, incluso si aún no han terminado de escribirlo; y

  3. habrá una responsabilidad legal realmente costosa relacionada con las consecuencias de ese compromiso.

(Tenga en cuenta que no estoy insinuando, ni estoy sugiriendo, que todos, o incluso cualquiera , los desarrolladores web están en su sano juicio o saben lo suficiente sobre lo que están haciendo para darse cuenta de lo que están haciendo. sería insano si supieran lo que estaban haciendo. Los hashes simples, ya sean simples o salados, son computacionalmente lo suficientemente cercanos al texto plano como para no hacerles caso a estos días, y sin embargo, uno todavía encuentra texto simple. MD5 sin sal, etc. dispersos por toda la web en los llamados "tutoriales" que las personas están copiando y pegando en la producción en servidores de todo el mundo.)

Esas suposiciones significan que incluso si estoy ejecutando un sitio con una aplicación extremadamente local dedicada a permitir que las personas hagan una lista de recomendaciones para las golosinas de hámster sin gluten cultivadas localmente, orgánicas, de rango libre, tengo que tratar su contraseña como si fueron sus cuentas de PayPal, eBay y de correo electrónico todas combinadas (porque existe una gran posibilidad de que efectivamente lo sea). Y eso significa que para proteger mi propio trasero bastante precioso, tengo que tomar al menos algunos pasos mínimos para proteger a su precioso trasero, le guste o no. Idealmente, eso significa hacer que su contraseña sea algo que no se pueda forzar con fuerza bruta (utilizando una sal cripto-aleatoria y una función de derivación de clave costosa) y poner un límite inferior absoluto en el recuento de caracteres (idealmente sin límite superior, dentro de la razón ), mientras aún te permite usar algo que es fácil de recordar (nada de eso debe usar al menos un personaje acentuado, un emoji y un hiragana "sin sentido"). En otras palabras, permitirle usar una contraseña realmente corta expone mis nalgas personales a peligros injustificados, así que no espere que lo permita. Y eso es si mi sitio no guarda ningún secreto excepto su contraseña. Si hay datos personales reales asociados con usted de los que soy responsable, espere mi paranoia en su nombre para aumentar dramáticamente.

    
respondido por el Stan Rogers 06.11.2014 - 13:46
fuente
5

Hay problemas con un par de tus suposiciones.

309 millones es un número ridículamente pequeño si hay un ataque fuera de línea. Y en un ataque fuera de línea, incluso con una buena sal, el atacante perseguirá primero a la fruta que cuelga. Es decir. encuentre las contraseñas que están en el diccionario, luego las contraseñas cortas, luego otras contraseñas simples. Sin embargo, es discutible la cantidad de problemas que esto tiene, ya que existe la posibilidad de que un atacante que acceda a la base de datos de contraseñas también tenga acceso a cualquier otra cosa que busque. - Esto supone que no se está reutilizando la contraseña.

309 millones es, como observas, un espacio de búsqueda demasiado grande para la fuerza bruta en un ataque en línea. Sin embargo, sus suposiciones que conducen a este número son dudosas. Nosotros, como especie, somos notoriamente pobres en dos tareas relevantes; Próximamente con secuencias genuinamente aleatorias y recordando secuencias aleatorias. Esto significa que su entropía es significativamente menor si seleccionó una contraseña de 6 caracteres. Esto se puede evitar si usa un administrador de contraseñas o una utilidad similar, pero en ese caso, también puede usar una contraseña más larga para protegerse contra ataques sin conexión.

En conclusión; obtener una buena entropía en su contraseña depende del carácter de la entropía pr y la longitud de su contraseña. - Si tienes una buena entropía por personaje puedes aceptar una contraseña más corta. Sin embargo, ese es un enfoque poco adecuado para la mayoría de los humanos, ya que recordamos cadenas más largas con una entropía más baja por caracteres, más que cadenas más cortas con una entropía alta por cada carácter. Nosotros también generamos cadenas aleatorias, y el consejo que usted cita es para las personas que no usan administradores de contraseñas para generar contraseñas.

    
respondido por el Taemyr 06.11.2014 - 16:04
fuente
5

Usar una contraseña compleja para un solo sitio seguro es como usar una cerradura especial en la puerta de su apartamento, lo que hace que abrir la puerta tarde más tiempo y lo protege mejor del 1% de todos los ladrones

La mayoría de las respuestas tratan con todo tipo de escenarios de ataque, lo que podría comprometer su contraseña, pero para decidir si una contraseña más pequeña (6 caracteres) es suficiente si la usa solo en 1 sitio con una seguridad razonablemente buena, solo tenemos que comparar un solo número:

¿Cuántos ataques funcionan significativamente mejor con una contraseña débil que con una contraseña segura?

Si la protección en línea de la fuerza bruta es lo suficientemente fuerte (una premisa en la pregunta), el único escenario de ataque relevante es el de fuerza bruta sin conexión. En todos los demás escenarios de ataque (lectura de contraseña en texto sin formato, robo de sesión, ingeniería social, phishing, falsificación del usuario), la complejidad de la contraseña no juega ningún papel (si no es una contraseña estándar)

Entonces, ¿cuál es el porcentaje de ataques en su cuenta o en gmail que probablemente usará un forzado sin conexión de su contraseña? Probablemente al lado de ninguno. La fuerza bruta solo funcionará contra un hash o una versión encriptada de su contraseña. En cualquier otro lugar, su contraseña está en texto sin formato (por lo que la complejidad es irrelevante) o no es relevante en absoluto (por ejemplo, id de sesión, acceso directo desde un usuario interno al servidor de almacenamiento de correo)

Las únicas instancias en las que su contraseña está cifrada o con hash son 1. hash con sal en la base de datos y 2. transferencia de su contraseña a través de HTTPS

  1. Hash salado en la base de datos Si el pirata informático obtuvo acceso a la base de datos donde se almacenan todas las contraseñas de usuario (probablemente uno de los mejores puntos seguros de la infraestructura) pero no puede acceder a ningún otro servicio (como un identificador de sesión activo o acceso directo a la cuenta). un ataque fuera de línea contra tu hash salado con un ataque de fuerza bruta manejaría rápidamente tu contraseña.

  2. Transferencia HTTP Muy improbable, ya que el atacante tendría que forzar bruscamente su transmisión HTTPS para aislar su contraseña, por lo que es muy probable que la longitud de la contraseña no importe mucho.

Por lo tanto, el único escenario en el que una contraseña larga realmente lo protege es si alguien obtiene acceso al (probablemente) más seguro almacenamiento de datos de la infraestructura sin que nadie lo note, y sin el acceso suficiente para obtener un acceso más fácil a su cuenta. Diría que este escenario es realmente improbable, porque en la gran cantidad de vulnerabilidades y ataques contra su cuenta, este es solo un tipo de ataque poco probable.

    
respondido por el Falco 07.11.2014 - 14:39
fuente
4

Mi respuesta es simplemente sí. No se puede asumir que los sitios utilizan métodos hash con sal. Por ejemplo, MD5 todavía se usa en la naturaleza y la gente piensa que es perfectamente aceptable.

Pero con un mecanismo de hash con mucha sal, simplemente no hay manera de que alguien pueda acceder a la contraseña real, incluso si se trata de un pase de baja char. Especialmente hablando si su servidor está bien asegurado y su API toma las precauciones adecuadas para los ataques de fuerza bruta.

    
respondido por el James_1x0 06.11.2014 - 15:33
fuente
4

Si bien es más seguro crear contraseñas complicadas, siempre recomiendo que sean fáciles al mismo tiempo, y que también tengan una singularidad por sitio web. La única forma en que esto podría ser una vulnerabilidad es que caiga en una estafa de suplantación de identidad (phishing), por lo que es importante tener varias formas de recuperar su dirección de correo electrónico, ya que su correo electrónico es su forma de recuperar otras cuentas.

Aquí están las reglas que uso personalmente:

  • Al menos 8 o 10 caracteres, preferiblemente 12 o más
  • Usa algo que signifique algo para ti
  • Las abreviaturas o el uso de un número en lugar de una letra pueden ser fáciles pero efectivos
  • Si lo desea, puede usar un prefijo o sufijo para mantener las contraseñas únicas

Así, por ejemplo: ThisIsMyPassword14si

Usos: mayúsculas, números y el sufijo de si para el intercambio de pila, y tiene un año de algo que significa algo personalmente. Este tipo de contraseña por lo general siempre se muestra como una contraseña segura.

También hay más servicios que le permiten iniciar sesión con otro servicio basado en token. Creo que esta es una gran idea, porque puede cerrar la sesión cada vez que quiera eliminar cualquier acceso, y no necesita una contraseña para cada servicio (asumiendo que los desarrolladores hayan diseñado el proceso correctamente). SIN EMBARGO, debe ser más cuidadoso con la contraseña de ese servicio y tener múltiples opciones de recuperación en caso de que la pierda por cualquier motivo.

Creo que Google va en la dirección correcta aquí, al tener múltiples opciones de recuperación y autenticación de 2 factores. El problema es que casi cualquier cosa puede ser falsificada si no presta atención a la página real que solicita su información.

Esperemos que en el futuro, haya un dispositivo que esté sobre usted, como un teléfono móvil, que pueda actuar como autorización de seguridad para los servicios web. Las aplicaciones son controladas por el distribuidor, por lo que tener una aplicación por plataforma para obtener la solicitud de acceso y solicitar su permiso será la manera correcta de manejarla en el futuro, por lo que no debemos preocuparnos por esta contraseña individual para Todo sin sentido.

... un día ...

    
respondido por el Mark 07.11.2014 - 17:23
fuente
2

No olvidemos que alguien no necesita fuerza bruta contra un objetivo. Pueden probar la misma contraseña con muchos objetivos, lo que hace que los usuarios con las contraseñas más comunes sean vulnerables.

    
respondido por el dibble 06.11.2014 - 07:06
fuente
2

¡Olvidaste el ataque físico local! Una contraseña larga y compleja hace que la detección de hombros sea mucho menos probable que tenga éxito. Incluso si alguien mira mi teclado, no obtendrá mis contraseñas a menos que sea Rainman. (No puedo comentar)

    
respondido por el Irving Poe 08.11.2014 - 11:36
fuente
2

Cuando se usa un sistema confiable de autenticación de dos factores, usar una contraseña menos segura es razonable. Aún es mejor usar una contraseña difícil generada por un generador de contraseñas que use mayúsculas y minúsculas, números y símbolos.

Pero la gente que no implementará una contraseña tan segura; en el caso de un servicio que ofrece autenticación de dos factores, esa gente puede sentirse razonablemente segura.

    
respondido por el Shai 09.11.2014 - 06:15
fuente
-6

No puede asegurar su contraseña usando una combinación a gran escala. Para eso tiene que cifrar su contraseña. Algunos algos de cripta comunes son md5, SHA-1, SHA-256 stc.Pero aún no es 100% seguro. El atacante puede descifrar su contraseña usando herramientas como hash cat con GPU alta como se mencionó anteriormente.

Entonces, en una cáscara de nuez, nada es 100% seguro. Pero puedes generar un mecanismo de contraseña fuerte usando sales con los algos de cripta existentes. Aquí hay algunos algos de cripta famosos.

enlace

    
respondido por el Amaresh Pattanayak 06.11.2014 - 09:36
fuente

Lea otras preguntas en las etiquetas