¿Cuántas posibilidades pueden verificar las computadoras de hoy (por segundo) en un hash SHA512 de una entrada aleatoria de 50 bytes? [cerrado]

1

El problema que quiero evitar es ataques de "fuerza bruta" contra una base de datos. Entonces, si agrego un sal criptográficamente aleatorio de 50 bytes a mi información (que no necesito recuperar, solo su hash), ¿es lo suficientemente seguro?

Sé que la respuesta es inexacta. Depende de si es una supercomputadora, una PC, etc. Quiero tener una idea de general : ¿puede una supercomputadora analizar 10 ^ 9 de ellos en una ¿segundo? 10 ^ 20? ¿Llevará un PC al año pasar por todas ellas? Sea vago.

EDITAR: La sal permanecerá solo en el resultado de hash.

    
pregunta ispiro 06.08.2012 - 16:30
fuente

1 respuesta

4

El propósito de una sal es no para hacer más lento el cálculo del hash, es para evitar que las tablas de arco iris sean útiles. Una sola iteración de SHA512 es manera demasiado rápida para ser útil contra ataques de fuerza bruta.

En una GPU decente, puedes hacer ~ 100M hashes / sec ( nuevo enlace ) con SHA512. Multiplique esto por sistemas con múltiples GPUs. Con un KDF lento, como bcrypt , puede modificar el número de iteraciones para que sea más adecuado. Quiere algo alrededor de ~ 0.3s / hash para un buen margen de seguridad.

Tenga en cuenta que 50 bytes son 400 bits, o un espacio de teclas de 2 ^ 400. Es casi seguro que encuentre una colisión en SHA512 si logra calcular 2 ^ 400 hashes. Sin embargo, el atacante no está tratando de adivinar la sal. Lo que debería preocuparte es que un atacante rompa los hashes cuando ya saben la sal.

La solución es use PBKDF2, bcrypt o scrypt , y < a href="https://security.stackexchange.com/questions/17421/how-to-store-salt"> almacene la sal en texto sin formato en la base de datos.

Actualizar:

Parece que estás intentando implementar tu propio esquema. Por favor, no haga esto. Hay dos reglas de criptografía ampliamente aceptadas:

  1. La criptografía es difícil.
  2. No hagas tu propio rollo.

No puedo enfatizar suficientemente lo peligroso que es rodar tus propios esquemas, especialmente cuando tratas con criptografía. Ni el legendario Bruce Schneier se atrevería a escribir su propio criptosistema sin una revisión seria por parte de sus compañeros y meses (si no años) de pruebas y ajustes.

El consejo que te he dado con respecto al hashing es un estándar basado en la revisión por pares y una gran cantidad de pruebas teóricas y prácticas. Intentar aumentarla utilizando hash adicional y otra magia negra es una mala idea, y solo aumentará la superficie de ataque de su aplicación y la creará. un defecto de seguridad potencial. Se adhieren a la norma.

    
respondido por el Polynomial 06.08.2012 - 16:36
fuente

Lea otras preguntas en las etiquetas