descifrado de contraseñas: tiempo vs costo

4

A menudo veo personas que se refieren a argumentos como: Una contraseña (con hash) se descifra en 1.000 años si usa una computadora de escritorio normal, pero si usa 100.000 computadoras (botnet), se descifrará en menos de 4 días. La contraseña de "1.000 años" parece estar bien, pero los 4 días no. Creo que el modelo del "tiempo" es engañoso.

¿No deberíamos encontrar un modelo mejor para las contraseñas seguras? Podríamos estimar el costo en dólares?

¿Qué es una buena métrica para la seguridad de la contraseña?

    
pregunta honze 14.03.2016 - 15:39
fuente

3 respuestas

4

La definición técnica de la fuerza de la contraseña ya existe en términos de bits de entropía . Esencialmente, es el número de conjeturas necesarias para llegar a una contraseña determinada. Una contraseña con 4 dígitos de longitud tiene 10,000 valores posibles, por lo que solo se requerirán 10,000 conjeturas o menos para adivinarla. Estos se expresan en potencias de 2; 10,000 es aproximadamente 2 ^ 14, por lo que diríamos que tiene 14 bits de entropía.

14 bits de entropía no son muchos; Una contraseña que puede ser breve puede ser forzada bruscamente en javascript en un navegador en solo unos momentos. En general, es cierto que los ataques de hasta 2 ^ 48 se pueden lograr fácilmente con una computadora de escritorio moderna; Más si el atacante tiene hardware personalizado. En 2012, alguien albergó 25 tarjetas gráficas en una PC y pudo mantener 348 mil millones de cálculos de hash por segundo. Por motivos de seguridad, debemos asumir que los atacantes mejoran con el tiempo a medida que mejora su hardware.

Pero los hashes informáticos no son toda la historia. Más allá de eso, hay formas en que los propietarios de sistemas mejoran la seguridad al usar un mejor algoritmo de hash, un mejor protocolo como PBDKF2 o bcrypt, aplicando sal, estimaciones de hardware, hardware personalizado, etc. La limitación de la tasa es muy efectiva si controla el hardware: un iPhone el código de acceso tiene solo 2 ^ 14 bits de resistencia, pero el chip personalizado construido dentro de la máquina destruirá sus claves de cifrado incrustadas secretas si se ingresa el código de acceso incorrecto 10 veces.

En el otro extremo de la escala, 2 ^ 80 bits de entropía se acercan a los límites de los ataques imaginables. Parece improbable hoy en día que alguien pueda violar una contraseña de 80 bits en su hogar; Parece casi impensable que cualquier entidad pueda alguna vez dañar bruscamente una clave de 128 bits. El iPhone que está estudiando el FBI usa claves de cifrado que tienen 256 bits de entropía, y de esto no sabemos cómo forzarlos bruscamente. Sin embargo, los avances en matemáticas y la investigación criptográfica, y los avances en hardware (como la computación cuántica), han demostrado una y otra vez que no se debe declarar que nada se puede descifrar.

Y la defensa es solo la mitad de la imagen. Hay formas en que los atacantes pueden mejorar sus ataques además de la paralelización personalizada mencionada anteriormente: pueden usar listas de palabras y herramientas como John the Ripper para priorizar contraseñas de adivinación basadas en el idioma del usuario, las tablas de arco iris se descargan fácilmente, colisiones, malware, investigación en el El objetivo, los zombis en una red de bots cautiva y otras técnicas pueden reducir el espacio de búsqueda. Todo esto depende de las capacidades y la dedicación de su adversario previsto.

Dado que tanto la ofensiva como la defensa no están definidas de forma estática, cada combinación de implementación y modelo de amenaza es específica y no es realmente comparable a ninguna otra instalación. Eso hace que sea difícil asignar una estimación fija de costo o tiempo sobre una base que sea comparable entre diferentes implementaciones de contraseñas. Las cosas más precisas que podemos decir son "este algoritmo tiene x bits de fuerza", "esta implementación multiplica el esfuerzo del atacante por 60,000", etc.

    
respondido por el John Deters 14.03.2016 - 22:11
fuente
3

El tiempo y los dólares son muy variables según el rendimiento de la computadora. En 1995, la compra de una computadora que podría realizar tantos cálculos de hash MD5 como una computadora promedio en 2016 costaría miles. Incluso la compra de un dispositivo con la misma potencia que una Raspberry Pi 3 hubiera costado miles. Incluso hoy en día, puede elegir cómo gastar el dinero para obtener el mejor retorno de su inversión: algunos hash se agrietarán más rápidamente si construye una plataforma de craqueo basada en GPU dedicada, mientras que otros funcionarán mejor si se escala en múltiples máquinas de baja velocidad. / p>

Del mismo modo, es fácil alquilar tiempo en AWS u otros proveedores de la nube, lo que puede proporcionar grandes cantidades de potencia de cómputo, pero no tienen costos fijos. Si paga por adelantado una carga de tiempo de servidor, pagará mucho menos que si acumula crédito en un mes y luego lo paga. ¿Qué método debería usar un cálculo?

Para cálculos a gran escala, a veces es mejor olvidarse de la implementación en el mundo real y trabajar en una abstracción. Una que parece funcionar bastante bien es suponer que cada prueba de hash toma un tiempo fijo (por ejemplo, 1 por microsegundo da 1 millón de hashes probados en cada segundo, 1 por nanosegundo da 1 billón de hashes por segundo), luego calculando el tiempo que duraría. tome para cubrir todo el espacio clave del hash, para SHA-256, que es varias veces la edad del universo (no importa qué definición se use, ¡es un gran espacio clave)! No olvide que el tiempo promedio será menor: este es el peor escenario. Esto evita el enlace a la potencia de la computadora y se escala como se esperaba, mientras se mantiene independiente de los cambios de precio o velocidad variables.

    
respondido por el Matthew 14.03.2016 - 16:15
fuente
2

Creo que su sugerencia es excelente, y de hecho ya ha sido aplicada por investigadores de seguridad del mundo real. El reciente ataque DROWN calculó que solo tomaría $ 440 del tiempo de Amazon EC2 para realizar los análisis matemáticos.

Mathew trae una pregunta interesante. ¿Cómo calculamos los costos, ya que son variables? Afortunadamente esto tiene una respuesta fácil, lo que sea más barato.

Los costos generalmente disminuyen con este tipo de ataques. Esto también es relevante para la situación y debería tenerse en cuenta. Hace 20 años, el ataque DROWN habría sido mucho más costoso. Una estimación aproximada utilizando la ley de Moore sugeriría 20 años / 18 meses = 13 duplicaciones, o 8,192 * 440 = 3.6 millones de dólares. (En ese momento, dentro de las capacidades de la NSA, pero fuera de las capacidades de la mayoría de los demás, excepto los ultra ricos).

También se debe tener en cuenta que no se requieren cifras exactas. Incluso un factor de 2 da la idea general de los costos. Si el ataque anterior costara $ 880 de EC2, ¿realmente importaría? Lo incorrecto es relativo, y las estimaciones solo tienen que ser lo suficientemente precisas para transmitir el campo de juego.

La mayoría de la gente de negocios ya está familiarizada con el pensamiento en dinero, y se presta naturalmente a los tomadores de decisiones. Si les dice que alguien puede romper su seguridad por $ 440, escucharán.

    
respondido por el Steve Sether 14.03.2016 - 20:58
fuente

Lea otras preguntas en las etiquetas