¿Honeywords agrega alguna seguridad real?

11

Este documento propone el concepto de honeywords para detectar si una base de datos de contraseñas se ha comprometido.

Según tengo entendido, funciona así:

Guarda n hashes de contraseña para cada usuario, uno que realmente contiene la contraseña real y n-1 que contiene las llamadas palabras clave (contraseñas falsas). El hash de contraseña correcto se almacena en un índice aleatorio entre esos hashes de palabras clave.

Si ahora se usa una de estas palabras clave en un intento de inicio de sesión en lugar de la contraseña real, el servidor puede prohibir la cuenta, desencadenar una alerta silenciosa o redirigir al atacante a un honeypot de algún tipo. De cualquier manera, el servidor sabrá que la base de datos de contraseñas se ha comprometido.

Para verificar si la contraseña es real, el servidor determina el índice del hash de contraseña dado y contacta con otro servidor "seguro" que confirma si este es el índice correcto para este usuario (o un índice de palabras clave).

¿Este método realmente agrega algún beneficio de seguridad de la vida real?

Este es el escenario de ataque del documento, donde se supone que los honeywords deben ayudar:

  

Archivos robados de hashes de contraseñas: un adversario puede de alguna manera robar los archivos de hashes de contraseñas y resolver muchas contraseñas usando el cómputo de fuerza bruta sin conexión. En general, es posible que pueda robar los archivos hash de contraseñas en muchos sistemas o en un sistema en diferentes momentos.

En este escenario, el atacante obviamente ya ha obtenido acceso al sistema.

  • ¿Realmente necesitaría los datos de la contraseña?
  • Si pudo acceder al almacén de contraseñas, ¿no podría también acceder al índice "seguro", lo que identifica las contraseñas reales? La distribución de la autenticación en dos servidores no me parece mucho más segura.
  • Si el sistema comprometido puede descubrir cuál es el índice correcto, seguramente el atacante también puede.

Tal vez me esté faltando algo en el concepto, pero ¿no sería más útil asegurarse de que las contraseñas estén bien ocultas y que la primera capa de seguridad mantenga al atacante afuera en primer lugar?

¿Merece la pena considerar las palabras clave para ponerlas en una aplicación web de la vida real?

    
pregunta magnattic 07.05.2013 - 19:59
fuente

4 respuestas

8

Estás leyendo la propuesta un poco mal. Esto no pretende ser una garantía para detectar una intrusión en un sistema ya comprometido, sino como un medio para detectar la base de datos del sistema comprometido. Este es un escenario completamente diferente, en el que el atacante ya no habría obtenido acceso al sistema al conocer la contraseña de usuario final, pero de alguna manera (copia de seguridad descartada incorrectamente, robo físico, ...) puso sus manos en una base de datos de usuarios filtrados que almacena contraseñas de hash.

La suposición es que el atacante no sabría qué hash forzado por fuerza bruta coincide con la contraseña real de un usuario individual, y podría activar la alarma al usar la contraseña honeyword en su lugar. Es un método bastante sensato, por mucho que lo haya leído hasta ahora, pero aún no he visto ninguna implementación en la vida real (la sobrecarga de cómputo es considerable en el hashing adecuado usando algoritmos lentos). También es un poco cuestionable debido a las capacidades limitadas del propio honeypot para evitar intentos de inicio de sesión adicionales por parte de otras IP que el atacante podría usar una vez que la IP anterior ya estaba en la lista negra (esto es trivial de hacer para un posible atacante), pero la detección No obstante, el mecanismo es el sonido.

La pregunta es qué sucederá después, después de que se detecte dicho intento. La solución más obvia es deshabilitar la cuenta de usuario en cuestión (la que el atacante trató de piratear), pero ¿qué sucede cuando un verdadero usuario ingresa a una de esas honeywords por error? Estas palabras deben ser sustancialmente diferentes a lo que el propio usuario eligió como contraseña, y existen otras restricciones, como por ejemplo, en qué lugar de la base de datos se coloca la contraseña real en relación con las de honeyword

Aún así, estas preguntas pueden ser triviales de abordar adecuadamente y baratas en comparación con lo que sucedería sin tales salvaguardas en su lugar. Dicho esto, la respuesta a tu pregunta es: sí, definitivamente.

    
respondido por el TildalWave 07.05.2013 - 20:26
fuente
1

Lo principal que veo que hace que esto no funcione es que un atacante inteligente rápidamente va a descubrir qué es si obtiene el volcado de base de datos y luego sabe que tiene que obtener la selección de hash válida de otro servidor. Añade otro nivel de dificultad, pero no esperaría que un pirata informático lo activara, ya que es bastante obvio lo que sucede si tienes 50 hashes de contraseña para 1 usuario.

En realidad, es lo mismo que tener todas las contraseñas almacenadas sin un enlace al usuario en su base de datos principal y tener un segundo servidor que le indique al servidor qué hash de contraseña se debe usar cada vez, aunque quizás haya una mayor probabilidad de falsificación. aspectos positivos en ese caso, ya que las personas pueden usar contraseñas similares y, por lo tanto, usar accidentalmente la contraseña de otra persona. Buscar múltiples intentos de contraseñas incorrectas para coincidir con diferentes usuarios sería una buena manera de descubrir rápidamente que alguien estaba tratando de hacerlos coincidir y sería un poco más difícil para el atacante saber qué estaba sucediendo. (Aunque todavía verían que su base de datos principal no vincula los nombres de usuario con los PW y buscaría esa información).

    
respondido por el AJ Henderson 07.05.2013 - 21:47
fuente
0
  • el documento dice que las contraseñas de la trampa deberían ser más fáciles de descifrar que las reales. Entonces:
    • también significa que si un intruso puede obtener contraseñas de seguridad, de ninguna manera dice que la verdadera contraseña está a riesgo;
    • Si pongo una contraseña de 'qwe123' 'complejidad', no hay necesidad de ningún método nuevo para predecir que dicha contraseña se descifre pronto, dado que el proceso de inicio de sesión está disponible para el atacante.

Este método parece enfatizar el modelo de "seguridad a través de la oscuridad": se asegura de que sus contraseñas estén seguras siempre que nadie intente descifrarlas. También tenga en cuenta los recursos necesarios para implementar dicho esquema (¿Alguien le pide a Bill que cambie el modelo de seguridad de Windows?) Y hace que este documento sea un ejercicio de pensamiento / académico interesante en lugar de algo práctico, OMI. Y por la forma en que esta idea compromete la práctica fundamental de la miel, cualquier cosa, no hace que su producción sea más vulnerable para ningún propósito.
Las redes de red son buenas porque se pueden aislar completamente de la producción, así que incluso si el compromiso real sucede, no se hace daño. Aquí, ¿qué pasa si el atacante compromete dicha contraseña de acceso antes de lo que se puede notar? ¿Y qué pasa si esta contraseña fácil de usar debido a un error humano al configurar proporciona un acceso real a nivel de usuario?

    
respondido por el Yuri 07.05.2013 - 20:46
fuente
0

Sí, aporta cierto valor de seguridad.

Esta es una medida de seguridad que podría compararse con CCTV, es un control de detección y puede permitirle tomar medidas antes de que las cosas se vayan de las manos. Deshabilite las cuentas / restablezca las contraseñas de las cuentas de los usuarios / notifique a los usuarios con prontitud en caso de que reutilicen las contraseñas.

¿Realmente necesitaría los datos de la contraseña?

No necesariamente para este sistema, pero es probable que pruebe esta combinación de correo electrónico / contraseña en otros sitios para reutilizar la contraseña.

    
respondido por el jubberq 08.05.2013 - 10:02
fuente

Lea otras preguntas en las etiquetas