Digamos que tengo el texto user:123
encriptado con AES/ECB/PKCS5Padding
, que resulta en el texto cifrado vnjlWxfkYuTK3juNY38NKQ==
. ¿Qué tan difícil es modificar el texto cifrado para obtener otro valor numérico significativo de 3 dígitos? ¿Es similar en dificultad a la clave de cifrado de fuerza bruta?
Si solo modifico un byte del texto cifrado, obtengo datos confusos en todo el bloque, por lo que necesito un cambio bastante complejo en el texto cifrado para afectar solo la parte de valor de manera significativa. ¿Qué tan complejo sería este cambio?
Fondo: Con bastante frecuencia me encuentro con los casos en que el cifrado se utiliza como un medio para transmitir datos "en secreto" entre las aplicaciones, la mayoría de las veces utiliza algún modo de cifrado AES. En la mayoría de estos casos, sin embargo, es más crítico que los datos no se modifiquen en tránsito o por parte del usuario, en lugar de no ser legibles.
Ejemplo : el usuario X está registrado en la aplicación A y va a través de un enlace, con los parámetros que contienen la identidad del usuario, a la aplicación B. Los parámetros del enlace están encriptados AES / ECB, usando una clave que Es conocido por ambas aplicaciones. HTTPS es utilizado por ambas aplicaciones, por lo que se cubre la amenaza de que un tercero lea los parámetros. Lo más importante es que el usuario no puede cambiar su identidad y hacerse pasar por otro usuario.
Me gustaría señalar este error común a los desarrolladores y arquitectos de las aplicaciones A y B, que el cifrado significa que los datos no se pueden cambiar, al mostrar un escenario de ataque donde se cambia el texto cifrado, de modo que al descifrar, Se reciben datos validos. De esta manera, pueden comprender mejor que en tales casos es imprescindible un algoritmo de cifrado autenticado.