Cuando se fuerza de forma bruta una clave privada almacenada como binario, ¿cómo sabe que encontró una solución?

3

Dado el siguiente escenario:

  • el usuario tiene una contraseña y PBKDF2 o bcrypt derivan una clave simétrica
  • una clave RSA privada está protegida por la clave simétrica anterior
  • la clave privada cifrada en formato binario está disponible para el atacante
  • todos los detalles del algoritmo KDF están disponibles para el atacante (salt, no de iteraciones, código fuente)

Tengo entendido que un atacante que quiera descifrar la clave privada puede realizar un ataque de fuerza bruta adivinando contraseñas y aplicando el KDF.

¿Cómo sabría el atacante si una suposición es exitosa?

Además de la fuerza bruta, ¿existen otros métodos para descifrar la clave privada dada la información anterior?

¿Hay diferencias significativas entre PBKDF2 y bcrypt en este escenario?

¡Gracias!

    
pregunta vidi 10.02.2017 - 22:29
fuente

3 respuestas

2
  

¿Cómo sabría el atacante si una suposición es exitosa?

Hay tantos formatos en los que se almacenan las claves privadas. Como atacante, si pudiera suponer que no almacenó su clave privada en su propio formato, solo vería si mi suposición de fuerza bruta descifraba la clave privada a cualquiera de los formatos que había esperar una clave privada en.

Por ejemplo, si asumiera que su clave privada era una clave PGP con armadura ASCII, simplemente verificaría si los primeros bytes se descifraban

-----BEGIN PGP PRIVATE KEY BLOCK-----

y viceversa para otros formatos.

Si el atacante tuviera una lista de posibles candidatos de clave pública para la clave privada, también podría comparar el módulo de la clave privada desencriptada resultante con el módulo de las claves públicas y si una coincide, sabría que tenía una correcto descifrado.

  

Además de la fuerza bruta, ¿existen otros métodos para descifrar la clave privada dada la información anterior?

Ninguna que yo sepa, siempre y cuando uses un cifrado simétrico fuerte. Otras vías de ataque significarían que había graves debilidades en el cifrado simétrico que usas para cifrar la clave privada.

  

¿Hay diferencias significativas entre PBKDF2 y bcrypt en este escenario?

Probablemente no. Ambos se consideran fuertes para la derivación clave, aunque las opiniones difieren sobre las ventajas y desventajas exactas. Una desventaja que ambos comparten es que no usan mucha memoria para derivar claves, por lo que pueden implementarse en procesadores muy rápidos y altamente paralelos (piense en las GPU y FPGA).

(editar: agregó la parte sobre la comparación con el módulo de clave pública para confirmar un descifrado correcto)

    
respondido por el Pascal 10.02.2017 - 22:59
fuente
1

Depende. ¿Cómo es exactamente la clave RSA privada protegida por la clave simétrica?

Si el procedimiento de cifrado protege la integridad, también habrá una etiqueta de autenticación o mac. Si este mac se calcula a partir de la clave simétrica simple, revelará la solución correcta. Sin embargo, los procedimientos modernos utilizan encrypt-than-mac, donde el texto cifrado está descifrado, por lo tanto, no se revela información sobre la solución.

En el otro lado, si el atacante conoce la clave pública, puede verificar cada clave privada si coincide con la clave pública. El conocimiento de la clave pública es un supuesto razonable dado todo el concepto de criptografía asimétrica.

Tenga en cuenta que en ambos casos se deben realizar cálculos adicionales para verificar si un candidato es una solución. Esto es probablemente más costoso para la información del segundo lugar, ya que la criptografía asimétrica suele ser más exigente que el hash. Por lo tanto, tiene sentido utilizar un procedimiento de cifrado adecuado.

    
respondido por el fzgregor 10.02.2017 - 23:17
fuente
1

Busca la clave pública

Una clave privada RSA incluye la clave pública RSA (consulte esta respuesta para un ejemplo XML). Entonces, si el pirata informático conoce la clave pública, este ataque se vuelve muy similar a un ataque de texto simple conocido , excepto solo una parte de el texto en claro es conocido.

Por lo tanto, el pirata informático simplemente tendría que seguir revisando las claves simétricas y verificando la salida para ver si contiene una secuencia de bytes que sea la clave pública.

Existe una posibilidad muy, muy, muy pequeña de que la secuencia de bytes de la clave pública aparezca con un falso positivo, pero el pirata informático solo tendría que cifrar y descifrar una pequeña referencia para verificar que es una coincidencia correcta.

    
respondido por el John Wu 11.02.2017 - 00:35
fuente

Lea otras preguntas en las etiquetas