qué tan fuerte es AES sin sal

4

La biblioteca cryto de AES que nos proporcionó la compañía, no genera un valor cifrado diferente para texto simple.

Si el texto es "abcd", generará el mismo valor cifrado en múltiples iteraciones.

Entonces, cuando tenemos que interactuar con otras aplicaciones (ellos lo redirigen a nuestro sitio web y nosotros lo redirigimos a su sitio web), el esquema que usamos es agregar una marca de tiempo con un "#" y luego cifrarlo.

Al igual que en este caso, el texto se convierte en "abcd # 32342534234232", y luego lo ciframos. La aplicación de la persona que llama lo descifra y descarta la parte de la marca de hora.

Quiero saber las ventajas y desventajas de este esquema, ya que "abcd" es un dato de usuario, pero no un dato crítico como la contraseña.

¡Gracias!

    
pregunta Novice User 05.01.2013 - 04:42
fuente

2 respuestas

5

Los Cifrados de Bloque nunca incorporan una sal, esto se usa generalmente para funciones hash. Block Ciphers como AES utilizará un Vector de inicialización para garantizar que no se produzcan dos entradas de texto llano idénticas la misma salida de texto cifrado.

También tenga en cuenta que el modo de operación que elija para su cifrado de bloque es muy importante. No todos los modos usan un IV, por ejemplo, el modo ECB no usa un IV. El modo ECB puede ser inseguro para datos de varios bloques, aquí hay una imagen cifrada con el modo ECB:

Relacionados: ¿Por qué está utilizando un IV no aleatorio? con el modo CBC una vulnerabilidad?

    
respondido por el rook 05.01.2013 - 04:55
fuente
1

Puedo ver dos problemas principales con la solución que ha implementado:

  • Puede haber varias solicitudes que tengan la misma marca de tiempo agregada, por lo que es fácil inferir una relación entre ellas. Si dos valores cifrados son idénticos, significa que se han generado al mismo tiempo y tienen el mismo valor.
  • Los valores de marca de tiempo son relativamente fáciles de adivinar. Esto puede ayudar en la construcción de un ataque. Por ejemplo, si el atacante puede elegir el texto que se va a cifrar, intentará adivinar la clave de cifrado al enviar valores arbitrarios y analizar el texto cifrado. Él sabría cuál es el valor de texto simple (valor elegido + marca de tiempo).

Por otra parte, como señaló Rook, es muy importante verificar qué cifrados de bloque está utilizando (si está cifrando más de 128 bits a la vez). Si no tiene información sobre esto, simplemente cifre un texto largo y guarde el valor. Después de eso, cambie la primera letra del texto sin formato y vuelva a cifrarlo. Si la última parte del texto cifrado es la misma, entonces está utilizando ECB, lo cual no es una buena idea, como se describió anteriormente.

    
respondido por el Dinu S 05.01.2013 - 11:10
fuente

Lea otras preguntas en las etiquetas