Utilice herramientas de captura de paquetes para analizar mensajes HTTPS

El protocolo https es más seguro que http. Transmite datos cifrados, que generalmente no son fáciles de interceptar y descifrar. Sin embargo, requiere más tiempo y consume más CPU. Capturemos el paquete a través de Tcpdump y usemos Wireshark para analizar el La misma solicitud utiliza ambos protocolos. Si compara los paquetes de la página web y compara los paquetes de las dos, la diferencia entre los dos protocolos será clara de un vistazo.

1. Configuración del entorno

     En el servidor de prueba, Nginx abre los puertos 80 y 443 para escuchar y configura el certificado de CA para el puerto 443 (Nota: el certificado de CA generado por usted mismo utilizando la herramienta openssl no es válido. Necesita un certificado emitido por una organización calificada o un proveedor gratuito certificado proporcionado por el proveedor de la nube)

server {
   listen       443 ssl;
   ssl_certificate      /etc/nginx/cert/5490205__vanmilk.com.pem;
   ssl_certificate_key  /etc/nginx/cert/5490205__vanmilk.com.key;
}

2. Análisis de mensajes HTTP

Supervise el mensaje de solicitud enviado desde el cliente 118.178.255.158 en el servidor

tcpdump -n -S -ieth0 host 118.178.255.158 -w http.pcap

Utilice Wireshark para abrir el mensaje http.pcap como se muestra a continuación. Hay un total de 10 mensajes.

ilustrar

Seq: indica la posición del primer bit del paquete del remitente en el flujo de datos. Para
     ACK sin transmisión de datos, la próxima vez que haya una transmisión de datos real, aún comenzará desde la Seq del último paquete de datos ACK enviado.
Ack: ¿ Cuál es la próxima secuencia esperada de la otra parte?
Aunque la transmisión de SYN/FIN no tiene Datos, aumentará en uno el PacketSeq de la siguiente transmisión,
pero la transmisión de Ack no aumentará el PacketSeq de la siguiente transmisión.

tres apretones de manos

#1: Client->Server [SYN]          CSeq=0
#2: Server->Client [SYN+ACK]      SSeq=0,Ack=1   对#1的Ack
#3: Client->Server [ACK]          CSeq=1,Ack=1   对#2的Ack

transmisión de datos

#4:Client->Server GET /           CSeq=1,Ack=1      HTTP
#5: Servier->Client [ACK]          SSeq=1,Ack=116
#6: Server->Client       SSeq=1,Ack=116   HTTP明文数据 
#7: Client->Server [ACK]           CSeq=116,Ack=860

Cuatro oleadas (dos se fusionaron en un paquete)

#8: Client->Server [FIN+ACK]     CSeq=116,Ack=860
#9: Server->Client [FIN+ACK]     SSeq=860,Ack=117  对#8的Ack
#10: Client->Server [ACK]        CSeq=117,Ack=861  对#9的Ack

3. análisis de mensajes https

tcpdump -n -S -ieth0 host 118.178.255.158 -w https.pcap

Utilice Wireshark para abrir el mensaje http.pcap como se muestra a continuación. Hay 14 mensajes en total.

tres apretones de manos

#1 Client->Server   [SYN]
#2:  Server->Client [SYN+ACK]
#3: Client->Server  [ACK]

apretón de manos TLS

#4: Client->Server  [Client Hello]      TLS
#5: Server-Client   [ACK]
#6:Server-Client  Server Hello 、Certificate、Server Key Exchange、Server Hello Done      TLS
   响应Client Hello消息,然后向客户端下发证书(CA公钥)
#7: Client->Server [ACK]
    Client验证证书合法性,并使用CA公钥对随机码加密
#8: Client->Server Client Key Exchange,Change Cipher Spec,Encrypted Handshake Message    TLS
    上传客户端生成的加密的随机码
#9: Server->Client  New Session Ticket、Change Cipher Spec、Encrypted Handshake Message      TLS
     Server用私钥解密随机码,随后使用随机码对传输的数据进行加解密

transmisión de datos

使用对称加密算法加密数据(每一次连接生成不同的随机密码)
#10:Client->Server  Application Data  TLS
#11: Server->Client  Application Data  TLS

saludar cuatro veces

#12:   Client->Server [FIN+ACK]
#13:   Server->Client [FIN+ACK]
#14:   Client->Server [ACK]

4. Proceso de transferencia de datos https

Supongo que te gusta

Origin blog.csdn.net/2301_76787421/article/details/132840022
Recomendado
Clasificación