Cifrado del tráfico USB: ¿Es necesario RSA para el intercambio de claves de sesión AES cuando se usan claves secretas preinstaladas?

3

Necesito una solución para cifrar la comunicación USB entre el dispositivo A y el dispositivo B. Estaba pensando en configurar cada dispositivo con una clave secreta RSA-2048, que se usaría para intercambiar una clave de sesión AES-256.

  1. A y B están preconfigurados con claves asimétricas secretas RSA-2048.
  2. A envía un mensaje sin cifrar a B indicando que se debe usar el cifrado.
  3. B utiliza su clave RSA-2048 para cifrar una clave de sesión simétrica AES-256 y la envía a A.
  4. A utiliza su clave RSA-2048 para descifrar el mensaje y obtener la clave de sesión AES-256.
  5. La clave de sesión AES-256 se utiliza para cifrar / descifrar la comunicación en curso.

Dado que las claves RSA-2048 son secretas, ¿hay algún punto en el uso de RSA sobre AES para cifrar el intercambio de claves de sesión? En otras palabras, ¿es aceptable que tanto A como B se configuren previamente con una clave secreta AES-256 (en lugar de claves secretas RSA-2048) que se utiliza para generar una clave de sesión AES-256?

    
pregunta User1234321 20.01.2015 - 17:47
fuente

3 respuestas

1

Depende.

Si A y B están configurados con claves secretas AES, entonces las comunicaciones previamente interceptadas de A y B se pueden descifrar de manera trivial después de que la clave AES salga a la luz (B es sacado de la papelera que su SO lanzó el año que viene).

Si usa claves RSA secretas, entonces es muy similar, aunque cada intersección debe tener los paquetes que contienen la clave AES generada de forma criptográfica aleatoria para esa "sesión" para descifrar los datos previamente interceptados de esa sesión.

Si usa algo como TLS-DHE- * o TLS-ECDHE- *, luego recuperar el dispositivo NO ayuda a descifrar las comunicaciones previamente interceptadas; Este es el gran problema de secreto de envío con claves efímeras.

    
respondido por el Anti-weakpasswords 21.01.2015 - 04:35
fuente
1

Voy a responder tu pregunta al final. Por favor, revise esto primero para obtener un contexto de mi respuesta:

RSA es un algoritmo de cifrado asimétrico. Por lo tanto, genera un par de claves privada / pública. Cuando dices que estás compartiendo las claves de A con B, solo debes compartir la clave pública de A. De manera similar, la clave pública de B debe compartirse con A. Esto se puede hacer colocando la clave pública en un certificado y enviando el certificado. O bien, la clave pública también se puede enviar en un archivo de texto tal como está. Pero la clave privada de A permanecerá con A y la clave privada de B permanecerá con B.

Ahora, lo que A debe hacer es generar un número aleatorio, por ejemplo, X, cifrar X con la clave pública de B y enviarlo a B. B lo desencripta con su clave privada.

B generará un número aleatorio Y, cifrará Y con la clave pública de A y lo enviará a A. A lo desencripta con su clave privada.

En este punto, tanto A como B tendrán X y Y. Ahora, pueden generar una clave de sesión AES a partir de X e Y (por ejemplo, tan simple como multiplicarlas y formar XY). Esta clave de sesión se puede utilizar para cifrar / descifrar los datos de la aplicación.

Por lo general, así es como se genera una clave de sesión AES. RSA proporciona una forma de intercambiar los componentes de una clave y los componentes se juntan para formar la clave real. La clave real se utiliza en AES para el cifrado / descifrado.

Ahora que viene a su pregunta, está preguntando "¿es aceptable que tanto A como B estén preconfigurados con una clave secreta AES-256 (en lugar de claves secretas RSA-2048) que se usa para generar un AES? -256 clave de sesión? "

La respuesta es que el objetivo principal de usar RSA es actuar como un mecanismo de intercambio de claves para obtener una clave AES. Si tanto A como B están preconfigurados con la misma clave AES, no tiene sentido utilizar RSA. Puede cifrar / descifrar directamente usando la clave AES. De todos modos, AES es más rápido que RSA ( enlace y claves de sesión de encriptación simétrica en SSL / TLS ).

    
respondido por el commanderdileep 13.02.2015 - 15:55
fuente
0

La razón por la que tenemos sistemas criptográficos híbridos (TLS, PGP, IPSec, etc.) es que el cifrado asimétrico requiere más CPU que el cifrado simétrico.

Debe usar el cifrado simétrico para realizar la mayor parte de su cifrado, es decir, cifrar los datos de destino.

Use cifrado asimétrico para cifrar el intercambio de claves.

    
respondido por el user1325457 13.09.2015 - 12:54
fuente

Lea otras preguntas en las etiquetas