El servidor y el cliente de Wireshark descifran el tráfico https

1. Introducción al principio de SSL / TLS

  • SSL (Secure Sockets Layer) y su sucesor TLS (Transport Layer Security) es un protocolo de seguridad que proporciona seguridad e integridad de datos para las comunicaciones de red. TLS y SSL cifran la conexión de red entre la capa de transporte y la capa de aplicación .
  • Incluye dos partes: la capa de negociación (protocolo de enlace SSL) y la capa de grabación (registro SSL). La capa de negociación incluye la versión de SSL utilizada para la comunicación, el algoritmo utilizado para el cifrado de información, el algoritmo de clave pública utilizado y el método de clave pública que se requiere para autenticar al cliente. La capa de grabación realiza la segmentación, compresión, autenticación de datos y cifrado de la información proporcionada por la aplicación, lo que puede garantizar la confidencialidad de los datos y la integridad del mensaje.
Protocolo HTTP
Protocolo de protocolo de enlace SSL SSL cambia el protocolo de cifrado Protocolo de alarma SSL Datos de la aplicación (HTTP)
Protocolo de registro SSL
TCP
IP

En segundo lugar, el paquete del lado del servidor captura el descifrado de la clave privada

El primer caso (descifrable): el
cliente cifra directamente la clave simétrica a través de la clave pública del servidor y la envía al servidor sin utilizar el algoritmo de cifrado Diffie-Hellman para negociar la clave simétrica. Entorno del experimento: Servidor: 192.168.110.140 Cliente: 192.168.110.129, enlace de descarga del archivo del experimento .
Inserte la descripción de la imagen aquí
El proceso anterior:
Cliente ------ Cliente Hola ------> Servidor
Cliente <------ Servidor Hola, Certificado, Servidor saludo hecho ------ Servidor
Cliente-Cliente Intercambio de claves, Cambiar especificación de cifrado, mensaje de protocolo de enlace cifrado ->
Cliente servidor <------ Cambiar especificación de cifrado ------
Cliente de servidor <------ Mensaje de enlace cifrado ------ Servidor

En el segundo apretón de manos Cliente <----- Servidor Hola, Certificado, Servidor hola hecho ---- Proceso del servidor, el Servidor elige el conjunto de cifrado: conjunto de cifrado TLS_RSA_WITH_RC4_128_MD5 para negociar la clave simétrica.
Inserte la descripción de la imagen aquí

En el tercer cliente de protocolo de enlace ------ Intercambio de clave de cliente, Cambio de especificación de cifrado, Mensaje de protocolo de enlace cifrado -----> Servidor, el Cliente utiliza el algoritmo de la suite de cifrado TLS_RSA_WITH_RC4_128_MD5 para cifrar la clave privada a través del cifrado RSA y enviar Se implementa al Servidor y se implementa el Intercambio de Clave de Cliente.
Inserte la descripción de la imagen aquí
En vista de la situación anterior, dado que la clave simétrica es encriptada por RSA y transmitida en la red, cuando obtenemos la clave privada del Servidor, importamos la clave privada al ssl configuración de Wireshark, https Se descifrará el mensaje de datos cifrados. Pasos operativos: editar–> Preferencias–> Protocolos–> SSL–> Lista de claves RSA Editar, importar la clave privada.
Inserte la descripción de la imagen aquí
La siguiente figura muestra el mensaje descifrado. En este caso, cuando se pierde la clave privada del servidor, el mensaje correrá el riesgo de ser descifrado. Por lo tanto, la versión actual de OpenSSL como TLS_RSA_WITH_RC4_128_MD5 rara vez se utiliza.
Inserte la descripción de la imagen aquí
El segundo caso (no se puede cifrar): el
servidor y el cliente generan una clave simétrica a través de algoritmos de intercambio de claves como Diffie-Hellman, y la clave simétrica no se transmite mediante el cifrado RSA. Entorno experimental: Servidor: 192.168.0.103 Clinet: 192.168.0.144 El
Inserte la descripción de la imagen aquí
proceso anterior:
Cliente ------ Cliente Hola ------> Servidor
Cliente <------ Servidor Hola, Certificado, Intercambio de claves del servidor , Servidor hola hecho ------ Servidor
Intercambio de claves cliente-cliente, Cambiar especificación de cifrado, Mensaje de protocolo de enlace cifrado-> Servidor
Cliente < —Ticket de nueva sesión, Cambio de especificación de cifrado, Mensaje de enlace cifrado — Servidor

En el segundo protocolo de enlace Cliente <----- Servidor Hola, Certificado, Servidor hola hecho ---- Proceso del servidor, el Servidor elige la suite de cifrado: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 suite de cifrado para negociar la clave simétrica. Al mismo tiempo, puede ver Diffie-Hellman Server Params en Server Key Exchange, lo que demuestra que el algoritmo utiliza la negociación DH para generar una clave simétrica.
Inserte la descripción de la imagen aquí
Dado que la negociación de claves utiliza el algoritmo DCDHE, que pertenece al algoritmo de intercambio de claves de tipo DH, la clave privada no participa en la negociación de claves. Por lo tanto, incluso si se filtra la clave privada, el mensaje entre el cliente y el servidor no puede ser descifrado, por lo que no se puede descifrar. Descifre el tráfico https mediante la importación de la clave privada , que se llama secrity de reenvío . Algoritmos similares relacionados incluyen el algoritmo DHE. Bajo DHE, el intercambio de claves del servidor es como se muestra en la figura siguiente. Puede ver los dos parámetros pyg usados ​​por DH.
Inserte la descripción de la imagen aquí

En tercer lugar, el cliente captura el descifrado de clave simétrica.

En este caso, hay muchos artículos en línea.El principio es que algunos navegadores admiten guardar la clave simétrica utilizada en la sesión TLS en un archivo externo, que se puede utilizar para el cifrado Wireshark. Pasos específicos:
1. Configure las variables de entorno, SSLKEYLOGFILE C: \ ssl_key \ sslog.log.
Inserte la descripción de la imagen aquí
2. Configure Wireshark para establecer la ruta del archivo. En algunas versiones, está configurado para SSL.
Inserte la descripción de la imagen aquí
3. Reinicie el navegador y ahora podrá ver el mensaje https descifrado.
Inserte la descripción de la imagen aquí
4. En este momento, mire de nuevo el contenido del archivo C: \ ssl_key \ sslog.log y descubra que es el número aleatorio de clave de la clave simétrica que se almacena y que cambia constantemente.
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/yyws2039725/article/details/111561142
Recomendado
Clasificación