AES Encryption ¿es este encriptado demasiado complicado?

1

Estoy trabajando con la API de un proveedor y recomienda los siguientes pasos para transmitir un valor cifrado:

  

1) Convierta la contraseña de cifrado en una matriz de bytes.
    2) Convierta el valor que se va a cifrar en una matriz de bytes.
    3) La longitud completa de la matriz se inserta como los primeros cuatro bytes en la parte frontal del primer bloque de la matriz de bytes resultante antes del cifrado.
    4) Cifrar valor con AES

Solo por curiosidad, ¿los pasos 1-3 hacen que los valores cifrados sean más seguros que si hubieran comenzado con el paso 4? ¿Es esta una práctica recomendada?

Está complicando la implementación.

    
pregunta Gabriel 20.12.2018 - 22:29
fuente

1 respuesta

2

Los primeros dos pasos son normales ya que las bibliotecas AES aceptan bytes. 3º uno para la prevención de los ataques de extensión de longitud. Supongamos que estamos agregando la longitud al final y tenemos 2 bloques de texto cifrado; {B1, B2}. Si alguien notó otro texto cifrado con 3 bloques {D1, D2, D3} entonces {B1, D2, D3} será un bloque válido. Por supuesto, uno puede hacer el mismo truco si la longitud al principio o incluso ambas.

En realidad, los problemas reales son;

  • ¿Qué modo de encriptación estás usando?

    • No debe usar el modo ECB que no es seguro. Utilice el modo CBC que requiere el modo IV o CTR.
  • ¿Hay alguna autenticación?

    • Los problemas en el primer párrafo se deben a que no se menciona la autenticación. AES-GCM , que es un estándar en TLS 1.3, proporciona Encriptación autenticada . Eso evita la modificación por parte del atacante, ya que puede verificar la etiqueta de autenticación de los datos.

Nota: No se menciona nada sobre el esquema de relleno. Suponiendo que hay uno alrededor como P KCS # 5 padding .

    
respondido por el kelalaka 20.12.2018 - 22:52
fuente

Lea otras preguntas en las etiquetas