2009-02-25 20 views
10

¿Qué tan seguro es encriptar 16 bytes de datos como un solo bloque con AES? Sin sal/IV, sin modo de operación, millones de bloques de 16 bytes diferentes encriptados. No sé lo suficiente sobre crypto pero esto me huele.Encriptación AES de 16 bytes sin sal

Editar: para dar un poco más de detalle, no se trata de encriptar un mensaje, sino una columna de tabla de base de datos donde la longitud del texto plano es de 16 bytes. Los datos no son totalmente aleatorios (los primeros 8 bytes serán con frecuencia los mismos) y hay una suma de comprobación para identificar un descifrado exitoso.

Estoy en una reunión con los chicos que proponen esto la próxima semana y, si hay un problema, agradecería mucho algunos consejos para hacer referencia al material con el que puedo demostrar que el diseño es inseguro. No estoy totalmente familiarizado con el sistema, pero creo que esto podría requerir un gran rediseño para poder superarlo, por lo que es probable que haya mucha resistencia. La mayoría de las personas (y el poder) involucradas están en el lado comercial donde la motivación es conseguir un sistema que funcione ...

+0

¿Qué tipo de datos, precisamente, está encriptando? Si es pseudoaleatorio, estarás bien ... Si hay algún tipo de patrón entre bloques, entonces es una mala idea, como mi gente ha señalado. –

Respuesta

9

ECB no es seguro para uso general. Un texto plano dado siempre encripta al mismo texto de cifrado, para que los patrones puedan ser revelados. Sin embargo, hay casos especiales en los que es seguro, y esta aplicación puede ser una de ellas.

Citando Applied Cryptography, segunda edición pg. 190, en relación con el modo BCE por un cifrado de bloques:

En el lado positivo, no hay seguridad riesgo en el cifrado de mensajes múltiples con la misma clave. De hecho, cada bloque se puede ver como un mensaje separado cifrado con la misma clave.

Más tarde (Pág. 208), Schneier dice:

Si simplicidad y velocidad son sus principales preocupaciones , BCE es el más fácil y más rápida de modo de utilizar un cifrado de bloques. Es también es el más débil.Además de ser vulnerable a ataques de repetición, un algoritmo en modo ECB es el más fácil para criptoanalizar. No recomiendo ECB para el cifrado de mensajes.

Para encriptar datos aleatorios, como otras teclas, ECB es un buen modo para usar. Como los datos son cortos y aleatorios, ninguna de las deficiencias del BCE es para esta aplicación.

El prefijo común y el dígito de control en su caso no producirán texto cifrado común. Esto ocurre solo si se duplica un entero del bloque de texto sin formato. Según lo que ha descrito, su aplicación puede ser una buena opción para ECB —, especialmente si cada valor de texto sin formato, como un todo, es único.

4

Sin una sal, también conocido como vector de inicialización o IV, la seguridad del texto cifrado (y, creo, la clave también) se reduce en gran medida. Un atacante potencial será mucho más capaz de distinguir patrones que se repiten en el texto encriptado. IIRC fue el mismo error básico que cometió Microsoft al actualizar el esquema de cifrado de MS Office.

+0

Esto supone que hay patrones que se repiten. –

-4

En términos de criptografía, esto es inseguro solo si el atacante conoce el algoritmo específico y IV.

Se hace una cierta suposición: una vez descifrado, ¿el atacante sabrá cómo son los datos para saber que el intento de descifrado fue exitoso? p.ej. ¿Hay un MD5, CRC o alguna forma de suma de comprobación que pueda verificar un intento de descifrado exitoso? Si es así, le da al atacante una forma de validar el intento.

Pero en términos de piratería, todavía hay 2^128 combinaciones de teclas (para cifrado de 128 bits), que es tan seguro como usar la misma clave en terabytes de datos. El modo de operación es irrelevante porque 16 bytes de datos son solo un bloque, por lo que no se aplica el cifrado-bloqueo-encadenamiento (CBC).

Sin embargo, la sal IV se aplica y ese valor debe ser tan secreto como la clave misma. Se puede usar una tabla de arcoiris para acelerar un ataque de fuerza bruta en cifras que no usan sal; este es tu enlace débil.

+3

En criptografía, * supone * que el atacante conoce el algoritmo y el IV. –

+0

¿También asumes que él conoce la llave? ¿Cómo validar los datos descifrados? Puede sopesar sus riesgos, pero ciertas cosas deben mantenerse en secreto. Supongo que también asumes que tu empresa está a salvo de la ingeniería social ... – spoulson

+7

@spoulson: Asumes que el atacante sabe absolutamente todo, excepto los datos en sí (ese es el punto) y la clave utilizada para encriptarlos. Confiar en cualquier otra cosa para ser secreto es solo una ofuscación, que no proporciona seguridad real. –

3

AES es bastante fuerte contra ataques de solo texto cifrado. Sin embargo, al encriptar una gran cantidad de textos planos con la misma clave, su sistema es más vulnerable a los ataques conocidos de texto sin formato y de texto sin formato.

Dicho esto, si la clave de cifrado es aleatoria, y si los textos finos son aparentemente aleatorios, es posible que aún esté a salvo. Pero definitivamente consideraría usar diferentes claves.

Por otro lado, si los textos planos están relacionados entre sí y/o no parecen aleatorios, el BCE no es seguro en absoluto.

0

No tengo conocimiento de ninguna debilidad en AES para mensajes cortos. El algoritmo debería estar muy feliz.

para llevar a su reunión usted quiere:.

1) Un modelo de amenazas (que pueden ver qué, cuándo y qué sucede cuando salen o convertirse en un "malo de la película)

2) Algunos casos de uso de su modelo de amenaza.

Con esto usted debería poder determinar si realmente necesita sal AES y si el cifrado realmente protege el valor en la columna si puede derivarlo a otro lugar haciendo uso de AES. Finalmente, haz la pregunta: "¿Es la clave realmente más segura que los datos?" He visto esquemas como este en los que la clave era del mismo tamaño que t Los datos (donde size = "kinda small") eran tan accesibles como los datos que protegía. Sí, le comprará unas horas mientras el atacante se da cuenta de lo que ha hecho, pero no le da mucho en términos de seguridad.

Espero que ayude y le dé algo para masticar. Sin conocer su posición particular, es difícil adaptar la respuesta. :)

Cuestiones relacionadas