Apilamiento de encriptaciones (transmisión sobre bloque)

2

Estoy revisando el código de un producto que nuestro equipo desarrolló donde la información de la tarjeta de crédito se almacena en una base de datos local en caso de que no haya conexión a Internet y encontré los métodos de encriptación. El desarrollador que escribió esta parte de nuestro código encriptó AES sobre RABBIT sobre AES. He visto implementaciones con AES sobre AES (el mismo concepto que supongo que TrippleDES) pero nunca he visto ni investigado bloque de apilamiento sobre la corriente y si los resultados de esto van a ser consistentes (sin corrupción de datos) y seguros, asumiré los cifrados de apilamiento con Claves diferentes nunca pueden ser menos seguras que un cifrado de una sola vez.

EDITAR: Agregar el rendimiento de esto no es horrible. se tarda 0.012 segundos en cifrar y descifrar los datos de la tarjeta de crédito.

    
pregunta PC3TJ 31.10.2015 - 09:55
fuente

3 respuestas

2

El cifrado con algoritmos bastante diferentes probablemente no sea menos seguro que el cifrado con un solo algoritmo. Sin embargo, existe una posibilidad de ataque en el medio que puede influir en la seguridad de la fuerza de AES + en una única iteración de RABBIT.

AES-256 es (se cree que es) tan seguro que probablemente no se descifre, incluso si las computadoras cuánticas se vuelven una posibilidad. Así que, básicamente, solo te estás protegiendo contra rupturas significativas de AES. En ese sentido, este tipo de esquema solo protege la parte del protocolo que es más probable que sea seguro en primer lugar.

Los errores criptográficos son fáciles de cometer. En ese sentido, cuanto más complicado es el protocolo, más probable es que esté en error en alguna parte. Si hay un error, la seguridad del cifrado en capas puede ser negada fácilmente.

    
respondido por el Maarten Bodewes 08.11.2015 - 23:51
fuente
1

Probablemente no veas ninguna investigación como esa, ya que generalmente no usas cifrados de flujo para el mismo propósito que los cifrados en bloque.

En general, nunca se debe usar un cifrado de flujo para cifrar múltiples mensajes con la misma clave, por lo tanto, si está cifrando cada tarjeta con la misma clave, entonces está cometiendo un error. Esta es la razón por la que los cifrados de flujo no se utilizan para cifrar cosas almacenadas en una base de datos.

Sin embargo, en este caso, dado que se encuentra entre dos cifrados de bloque AES, es probable que no sea vulnerable a un ataque de varios mensajes. Está obteniendo seguridad de AES aquí y, por lo tanto, el cifrado de flujo probablemente agrega poco.

Se pueden cometer muchos errores incluso con los cifrados de bloque AES, por lo que es más importante entender el modo de cifrado utilizado, por ejemplo. CBC o ECB y cómo se gestionan las claves.

AES 128 y 256 se consideran seguros, por lo que su uso correcto le dará un sistema seguro. Mezclar cosas de esta manera hace que tu sistema sea más complicado y que puedas hacer más errores, así que no lo haría.

    
respondido por el Andrew 09.11.2015 - 00:13
fuente
1

No hay cifrados de flujo que ahora se consideran seguros. No los uses nunca más.

El doble cifrado tiene un valor dudoso y puede reducir la seguridad. Por ejemplo, el cifrado DES utiliza una clave de 48 bits. 3DES usa una clave de 144 bits que en realidad es tres claves de 48 bits, aplicadas como ENC- > DEC- > ENC en lugar de las menos seguras ENC- > ENC- > ENC. Mi punto es que su ingeniero no es un criptógrafo y está juntando recetas sin fundamentos, análisis o razón.

Entonces, descartar el cifrado de flujo, es malo, solo se aplica a los datos en movimiento (nunca en reposo) y no está agregando valor aquí. Deja de lado el segundo cifrado, no lo está haciendo más fuerte. Piénsalo. Si alguien roba los datos, ¿la segunda (o la tercera) pasada la hace más fuerte? El ladrón buscará la (s) clave (s) para descifrar. Si desea almacenar los datos para el transporte futuro en un método no recuperable, hay mejores maneras que eso.

En su lugar, genere una clave de una sola vez, encripte con la AES más fuerte que pueda usar, luego encripte la clave de una sola vez con una clave pública RSA. Más tarde, use otro programa, proceso o, para la computadora paranoica, para descifrar los datos de la tarjeta de crédito con la clave privada RSA para recuperar todas las claves AES. Para una versión un poco menos paranoica, use una clave AES para todas las tarjetas de crédito por 1-4 horas.

Este último método será mucho más seguro que el que usted describe.

Y, por el bien de todos, alienta a las personas a no desplegar sus propios métodos de encriptación sofisticados.

    
respondido por el Andrew Philips 09.11.2015 - 04:13
fuente

Lea otras preguntas en las etiquetas