Podrían validationKey y decryptionKey ser encontrados por la fuerza bruta del valor de la cookie cifrada?

StackOverflow https://stackoverflow.com/questions/862141

Pregunta

Estoy utilizando el siguiente código para generar un token de cifrado:

var ticket = new System.Web.Security.FormsAuthenticationTicket(
    2, 
    "", 
    DateTime.Now, 
    DateTime.Now.AddMinutes(10), 
    false, 
    "user id here");
var cipherText = System.Web.Security.FormsAuthentication.Encrypt(ticket);

Este código utiliza la clave y el algoritmo especificado en app / web.config:

<system.web>
    <machineKey validationKey="SOME KEY" 
                decryptionKey="SOME OTHER KEY" 
                validation="SHA1" />
</system.web>

Ahora supongamos que dé el texto cifrado generado de este modo a un compañero. ¿Es capaz de ataques de fuerza bruta:

  1. El valor que se almacena en el sistema de cifrado (el identificador de usuario que no representa la información sensible y no me molesta mucho)
  2. El valor de la validationKey y decryptionKey utiliza para crear el sistema de cifrado (esto sería catastrófica porque él sería capaz de generar tokens y hacerse pasar por cualquier usuario)

Supongo que la respuesta a ambas preguntas es sí, pero ¿qué tan realista que sus posibilidades son y hacen pensar que dándole la cifra que representaría una amenaza a la seguridad de mi sistema? Gracias de antemano por sus respuestas.

¿Fue útil?

Solución

Lo que usted describe aquí es un ataque de texto conocido. El atacante aprende ambos textos planos y los textos cifrados correspondientes y su objetivo es encontrar las llaves. sistemas de cifrado modernos están diseñados para ser seguro contra este tipo de ataques.

De hecho, cualquier sistema de cifrado moderno está diseñado para ser seguro contra los ataques aún más fuertes, tales como ataques de texto plano escogido y los ataques de texto cifrado elegido. Incluso si se permite que el atacante para elegir texto plano y texto cifrado correspondiente o elegir cualquier número de textos cifrados y aprender el descifrado de él, entonces él / ella debe ser que no sea capaz de aprender la clave.

Esto hace que el diseño de un nuevo sistema de cifrado muy duro. Pero, afortunadamente, ya tenemos buenos sistemas de cifrado como AES.

También me gustaría añadir que todos los ataques anteriores asumen que el atacante conoce todos los detalles del sistema de cifrado que se utiliza. Lo único que no sabe es la clave que se utiliza. Esto se conoce como el principio de Kerkhoff.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top