Formación de sal en cifrado (en lugar de hashing)

1

Soy consciente de los beneficios de agregar sal a los valores que se procesan mediante una función unidireccional. ¿Agregar una sal a un valor que se está cifrando (usando cifrado simétrico) también se considera una buena práctica?

Es probable que la sal (a diferencia de la clave de cifrado) se almacene en la misma fuente de datos que los datos cifrados. Me pregunto si esto agrega una debilidad, en lugar de mejorar la seguridad (por ejemplo, al permitir descifrar la clave de cifrado).

    
pregunta Guus 14.05.2013 - 13:47
fuente

3 respuestas

9

A salt es un valor no repetitivo aleatorio criptográficamente seguro, agregado a la contraseña antes de la hashing esto, inutilizando rainbow tables y haciendo imposible atacar más de una contraseña atacando un hash.

Un vector de inicialización (IV) es un valor no repetitivo aleatorio criptográficamente seguro agregado como estado inicial a un El algoritmo de cifrado de bloque depende del el modo de operación , lo que evita que el cifrado produzca el mismo texto cifrado para bloques similares del texto plano, negando al atacante la oportunidad de inferir relaciones entre segmentos del mensaje cifrado.

Tanto una sal como una IV no son información secreta , de hecho, en la mayoría de los casos, la IV se transporta con la mensaje en sí. Implementado correctamente, un IV no debería hacer que sea más fácil "descifrar" el cifrado. Por el contrario, debería hacerlo aún más difícil. La seguridad del sistema de cifrado debe depender del secreto de la clave y solo del secreto de la clave, también conocido como principio de Kerckhoffs :

  

Que la seguridad de un sistema de cifrado debe depender de la clave

Oh, también, no implementes tu propio cripto y utilízalo en un entorno de producción, también conocido como No seas un Dave .

    
respondido por el Adi 14.05.2013 - 14:12
fuente
3

Una sal no tiene absolutamente ningún beneficio para el cifrado. En todo caso, podría (aunque no debería) hacer que el cifrado sea menos seguro. Si resulta que se encuentra un ataque de texto sin formato conocido (un ataque que permite obtener información de un texto cifrado sobre la clave al conocer parte del texto sin formato), el hecho de tener un valor público encriptado hará que cada mensaje sea débil para ese tipo de texto. ataque.

También vale la pena señalar que no "hash usando una función unidireccional". Un hash es una función unidireccional. El punto (algo simplificado) de un salt es complicar la entrada para que un atacante no pueda generar previamente valores de contraseñas o valores comunes y simplemente busque cuál es el valor que se incluyó en el hash, aprovechando efectivamente un ataque anterior contra futuros ataques. Una sal hace que se deba realizar un esfuerzo para cada ataque.

    
respondido por el AJ Henderson 14.05.2013 - 15:53
fuente
1

Soy consciente de los beneficios de agregar sal a los valores con hash utilizando una función unidireccional. Es agregar una sal a un valor que está siendo cifrado (utilizando cifrado simétrico) también se considera una buena práctica?

Creo que su enfoque es defectuoso y debilitará la integridad del propio cifrado. Al añadir la sal con el texto simple que se va a cifrar, estamos sujetos a un ataque de texto simple conocido.

    
respondido por el Ali Ahmad 14.05.2013 - 17:31
fuente

Lea otras preguntas en las etiquetas