¿Debo preocuparme por rellenar oracle?

1

Tengo una aplicación web PHP que encripta (mediante AES192-CBC) los mensajes con una clave aleatoria y un IV aleatorio. En todas partes, la gente dice qué tan asombrosos son los modos autenticados y GCM, EAX (¿existen actualmente implementaciones seguras de ellos para PHP?), Pero en mi caso simplemente no necesito un control de integridad.

Dicen que los modos de autenticación evitan el relleno de oráculos (sombrero negro que altera el texto cifrado y analiza el proceso de descifrado) pero no estoy seguro de que mi aplicación sea vulnerable a ese tipo de cosas.

De hecho, cuando se le pregunta, el servidor consulta la base de datos y devuelve la lista de mensajes descifrados (por lo tanto, los usuarios no proporcionan datos cifrados directamente). Los oráculos de relleno solo podrían ocurrir si el sombrero negro compromete el sistema (pero en este caso podría simplemente secuestrar nuevas solicitudes y almacenar plaintexts).

¿Entendí mal el problema?

    
pregunta Surfer on the fall 09.08.2015 - 19:28
fuente

1 respuesta

1
Los ataques de Oracle

se producen cuando el atacante está en posición de enviar mensajes encriptados y observar al propietario de la clave cuando intenta descifrarlos. Luego, el atacante proporciona mensajes especialmente diseñados (en función de una parte de los datos cifrados que al atacante le encantaría ver descifrados) que se descifran como basura, pero en ocasiones se descifran como basura con un relleno válido; en estos casos, el atacante obtiene información sobre los datos que está buscando.

Si se encuentra en un contexto en el que el defensor es un servidor que computa todo el cifrado y descifrado, y los atacantes no pueden modificar los mensajes cifrados, entonces la situación explicada anteriormente no se presenta, y los ataques oraculares de relleno no son relevantes. / p>

Por lo tanto, en su caso, debería estar a salvo de estos ataques, siempre que de hecho las personas malintencionadas no puedan poner sus manos en su base de datos llena de mensajes cifrados. Esto plantea la pregunta de por qué usted cifraría los datos en absoluto. Normalmente, los datos cifrados para lograr una confidencialidad que de otra forma no podría obtener. Por lo tanto, el cifrado en el servidor solo tiene sentido si se asume que los atacantes pueden al menos echar un vistazo al contenido de la base de datos. En muchas situaciones donde los atacantes pueden ver datos, también pueden modificar los datos; y esto traería de vuelta el problema del relleno de los ataques de Oracle, o, más generalmente, la necesidad de integridad comprobada.

En pocas palabras, si cifra los datos pero no hace ningún esfuerzo por mantener la integridad (con un MAC o un ingenioso modo de cifrado autenticado), entonces está apostando a que los posibles ataques de inyecciones de SQL en su servidor serán de solo lectura. . Depende de usted decidir si se siente lo suficientemente seguro con esa apuesta.

    
respondido por el Thomas Pornin 10.08.2015 - 00:26
fuente

Lea otras preguntas en las etiquetas