Estoy desarrollando en una plataforma donde mi única opción de cifrado usa AES ECB. El cifrado se utiliza para proteger los parámetros que el usuario puede establecer y, por lo tanto, es susceptible a un ataque de texto simple elegido. No es una galleta, sino similar; el usuario ingresa las credenciales, que con otros datos se envían al servidor para su autenticación y autorización.
¿Qué pasos puedo seguir para que el ataque de texto simple elegido no sea práctico?
Específicamente, mi mitigación propuesta actual es agregar "relleno" al azar antes y después de mi contenido significativo. El blob encriptado tendrá aproximadamente la misma longitud, pero el lugar donde aparece el texto cifrado del texto sin formato elegido será diferente para cada llamada. En este punto, las comunicaciones son de bajo volumen, por lo que estoy menos preocupado por la eficiencia, el tamaño o el tiempo de procesamiento de los datos. ¿Es esta una mitigación efectiva?
Alternativamente, podría considerar la asignación aleatoria del orden de los campos (el texto simple es JSON). Eso es un poco más difícil de implementar. ¿Esto haría el ataque poco práctico?
He leído y creo que entiendo esta gran pregunta y respuesta .