SSL/TLS Ejemplo de diálogo cliente-servidor SSL/TLS Ejemplo de diálogo cliente-servidor Índice 1 Escenario.....................................................................................................................................................1 2 Resumen......................................................................................................................................................2 3 El diálogo al detalle...................................................................................................................................3 1 HTTPS – Inicio de la conexión.............................................................................................4 2 SSL – Saludo del cliente – Client Hello...............................................................................4 3 SSL – Saludo del servidor – Server Hello...........................................................................5 4 SSL – Certificado del servidor – Certificate .......................................................................6 5 SSL – Intercambio de clave del cliente - Client Key Exchange.........................................7 6 SSL – Datos de aplicación - Application Data....................................................................8 4 Fuentes........................................................................................................................................................8 1 Escenario Utilizando el navegador, accedemos a una página web mediante HTTPS. Cliente 192.168.1.109:55224 ← HTTPS → Servidor 216.58.214.174:443 En realidad, más que una conversación completa, veremos los registros/mensajes más relevantes de una conversación SSL/TLS R.19.3 @aula30x 1/8 SSL/TLS Ejemplo de diálogo cliente-servidor 2 Resumen 2/8 SSL/TLS Ejemplo de diálogo cliente-servidor 3 El diálogo al detalle Accedemos a un servidor HTTPS y capturamos los paquetes con Wireshark. 3/8 SSL/TLS 1 Ejemplo de diálogo cliente-servidor HTTPS – Inicio de la conexión Conexión típica TCP de tres segmentos. 2 SSL – Saludo del cliente – Client Hello El cliente envía información de cifrado: versión SSL/TLS, suites de cifrado que soporta, etc. Version: TLS 1.2 Cipher Suites (18 suites) - Listado de suites de cifrado soportadas 4/8 SSL/TLS 3 Ejemplo de diálogo cliente-servidor SSL – Saludo del servidor – Server Hello El servidor responde al saludo informando de la suite de cifrado escogida. Cipher Suite: TLS_ECHDE_ECDSA... - Suite de cifrado escogida 5/8 SSL/TLS 4 Ejemplo de diálogo cliente-servidor SSL – Certificado del servidor – Certificate Lo habitual es que el servidor deba ser autenticado, por lo que envía su certificado inmediatamente después del Server Hello. En este caso, el mensaje incluye varios registros: • Certificate • Server Key Exchange • Server Hello Done Certificate En este caso, envía dos certificados: - Certificate (id-at-commonName=*.google.com, …) - Certificate (id-at commonName=Google Internet Authority … El certificado incluye la clave pública: SubjectPublicKeyInfo - SubjectPublicKey: 0432a2ce95.... Server Key Exchange Normalmente utilizado cuando el servidor no tiene certificado. En este caso, posiblemente esté vacío. Server Hello Done El servidor ha terminado la fase de saludo. 6/8 SSL/TLS 5 Ejemplo de diálogo cliente-servidor SSL – Intercambio de clave del cliente - Client Key Exchange Depende del algoritmo de clave pública utilizado. Por ejemplo, en RSA, el cliente genera una precontraseña que encripta usando la clave pública del servidor y se la envía al servidor. A partir de ahí, ambas partes obtienen la contraseña maestra. En este caso, el mensaje incluye varios registros: • Client Key Exchange • Change Cipher Spec • Hello Request Client Key Exchange El objetivo es intercambiar una pre-contraseña maestra a partir de la cual, ambas partes puedan obtener la contraseña maestra. Change Cipher Spec Mensajes para informar del cambio de estrategia de cifrado, según la negociación cerrada anteriormente. A partir de aquí, los datos ya irán cifrados. 7/8 SSL/TLS 6 Ejemplo de diálogo cliente-servidor SSL – Datos de aplicación - Application Data Los datos en sí de la aplicación; en este caso, HTTPS. Encrypted Application Data: 0000000000000001caddfc... Los datos cifrados 4 Fuentes SSL Introduction with Sample Transaction and Packet Exchange https://www.cisco.com/c/en/us/support/docs/security-vpn/secure-socket-layer-ssl/116181-technoteproduct-00.html An overview of the SSL or TLS handshake https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_7.1.0/com.ibm.mq.doc/sy10660_.htm 8/8