Descifrado SSL / TLS sniffed: ¿es necesario un protocolo de enlace?

1

Leí algunos temas en los que las personas afirman poder descifrar las comunicaciones SSL / TLS simplemente con la clave privada del destinatario.

Pero, recientemente aprendí que una clave pública puede, pero nunca debe cifrar algo más largo que la longitud de la clave privada asociada. Por ejemplo, si el par tiene una clave privada de 2048 bits, nunca debe cifrar algo más de 255 bytes + carácter NULL. Si uno cifra algo más largo que esto, sería vulnerable a ataques como el corte de bloques, el análisis de redundancia, etc. (No soy experto en este dominio, perdón por el mal vocabulario).

Dicho esto, el protocolo de enlace RSA consiste, de hecho, en un intercambio de claves públicas, seguido de un intercambio seguro de una clave AES, que luego se utiliza para cifrar todas las comunicaciones sin ningún límite de longitud. Por lo tanto, el intercambio basado en RSA solo se utiliza en el momento del apretón de manos.

Entonces, ¿este intercambio de claves AES es una parte del protocolo SSL / TLS, o algunos servidores nunca se comunicarán con paquetes más largos que la longitud de su clave privada?

Si TODAS las comunicaciones SSL / TLS se realizan de esta manera (cosa AES), eso significa que para poder descifrar paquetes, es necesario capturar el protocolo de enlace para descifrar la clave AES, y si no lo hace, entonces tiene ambos Las claves privadas son inútiles, ¿verdad?

Pero, eso también significaría que tener una sola clave privada sería suficiente para descifrar la clave AES y, por lo tanto, toda la comunicación. Entonces, tal comunicación debe involucrar 2 claves AES, una para cada compañero, ¿verdad? Entonces, al igual que un intercambio RSA, A cifraría paquetes con la clave de B, y viceversa.

¿Qué se aplica en la vida real? ¿Límite de longitud de paquetes o comunicaciones basadas en AES? ¿Una o dos claves de AES?

¡Gracias por ayudarme a entender! Y lo siento, pero el inglés no es mi idioma principal.

Saludos cordiales.

    
pregunta NdFeB 10.06.2017 - 14:08
fuente

1 respuesta

1
  

Dicho esto, el protocolo de enlace RSA consiste, de hecho, en un intercambio de claves públicas, seguido de un intercambio seguro de una clave AES, que luego se utiliza para cifrar todas las comunicaciones sin ningún límite de longitud. Por lo tanto, el intercambio basado en RSA solo se utiliza en el momento del apretón de manos.

No hay un protocolo de enlace RSA sino un protocolo de enlace TLS. Y generalmente no hay intercambio (bidireccional) de claves públicas, pero en la mayoría de los casos solo el servidor proporcionará un certificado que incluya una clave pública.

El protocolo de enlace TLS incluye un intercambio de claves que suele ser el intercambio de claves RSA o el intercambio de claves DH. Con el intercambio de claves RSA, el cliente creará un secreto aleatorio, lo cifrará con la clave pública del servidor (tomada del certificado) y la enviará al servidor. El servidor entonces puede extraer este secreto usando su clave privada. La clave de cifrado para el cifrado simétrico (que puede ser AES pero también otra cosa) se crea basándose en este secreto compartido. Esto significa que con el intercambio de claves RSA solo se necesita la clave privada del servidor para descifrar el tráfico detectado.

Tenga en cuenta que las implementaciones modernas prefieren utilizar el intercambio de claves DH. En este caso, conocer la clave privada del servidor no ayudará a descifrar el tráfico. En su lugar, se necesita el secreto compartido de esta sesión específica.

Para una comprensión más profunda de TLS, recomiendo estudiar ¿Cómo funciona SSL / TLS? .

    
respondido por el Steffen Ullrich 10.06.2017 - 14:52
fuente

Lea otras preguntas en las etiquetas