Protocolo TLS
🔒 Protocolo TLS
TLS (Transport Layer Security) es un protocolo criptográfico que permite establecer comunicaciones seguras a través de una red, normalmente Internet.
Su objetivo principal es garantizar:
Confidencialidad → Los datos viajan cifrados para que nadie pueda leerlos.
Integridad → Evita que los datos sean modificados durante la transmisión.
Autenticación → Permite verificar la identidad del servidor (y opcionalmente del cliente).
🤔 🤝 ¿Cómo funciona el 'handshake' en TLS?
El 'handshake' es el proceso TLS por el cuál cliente y servidor acuerdan cómo van a comunicarse de forma segura antes de intercambiar datos reales. La versión TLS actual es la 1.3 (RFC 8446). El proceso es el siguiente:
- Paso 1 ClientHello: El cliente solicita conexión segura al servidor
- Paso 2 ServerHello: El servidor acepta y establece las condiciones para dicha conexión
- Paso 3 Derivación de claves iniciales: Usando el algoritmo ECDHE/Curva Elíptica Diffie-Hellman, cliente y servidor generan claves temporales, garantizando seguridad/Perfect Forward Secrecy (PFS)
- Paso 4 Encrypted Extensions: El servidor envía parámetros adicionales de la conexión ya cifrados
- Paso 5 ServerCertificate: El servidor envía su certificado X.509 con su clave pública, firmado por una Autoridad de Certificación (CA)
- Paso 6 CertificateVerify: El servidor demuestra que posee la clave privada asociada al certificado (firma digital),
- Paso 7 ServerFinished: El servidor termina de autenticarse enviando un código MAC
- Paso 8 Verificación del certificado: El cliente verifica la CA, firmas y parámetros del servidor, abortando la conexión si algo falla
- Paso 9 ClientCertificate (opcional): Si el servidor lo solicita (CertificateRequest), el cliente puede enviar su certificado y firmarlo digitalmente (clave privada)
- Paso 10 ClientFinished: El cliente termina de autenticarse enviando su código MAC
- Paso 11 Comunicación segura: El cliente y el servidor ya pueden intercambiar datos cifrados (HTTPS, SMTPS, APIs, etc.)
TAICord