SSL/TLS — qué es, protocolos y principio de funcionamiento del cifrado

Autor: IT Sectr Publicado: 2026-04-02 Tiempo de lectura: 8 min

SSL (Secure Sockets Layer) y TLS (Transport Layer Security) son protocolos criptográficos que garantizan la transmisión segura de datos entre un cliente y un servidor a través de la red. Cifran todo el tráfico, evitando la interceptación y modificación de datos por parte de atacantes. Según el Google Transparency Report (2025), más del 95% de todo el tráfico móvil mundial utiliza cifrado TLS. Sin este protocolo, cualquier información enviada a través de una red Wi-Fi abierta o una red móvil puede ser leída por terceros. Cloudflare, 2024

Puntos Clave

  • SSL y TLS — protocolos criptográficos para cifrar datos durante la transmisión por red, siendo TLS la versión moderna de SSL.
  • Handshake — proceso de establecimiento de una conexión segura, que incluye la autenticación del servidor y la negociación de claves de cifrado.
  • TLS 1.3 — la versión más reciente del protocolo, que ofrece mejor rendimiento y seguridad en comparación con TLS 1.2.
  • Certificados X.509 — credenciales digitales que verifican la autenticidad del servidor durante una conexión TLS.
  • HTTPS — HTTP sobre TLS — la forma estándar de proteger el tráfico web en aplicaciones móviles.

¿Qué es SSL/TLS?

SSL (Secure Sockets Layer) es un protocolo desarrollado por Netscape en 1995 para proteger el tráfico web. La primera versión, SSL 1.0, nunca se publicó; SSL 2.0 (1995) y SSL 3.0 (1996) se usaron hasta principios de los 2000, pero contenían vulnerabilidades críticas. SSL fue sucedido por TLS (Transport Layer Security) — una versión mejorada estandarizada por la IETF. TLS 1.0 (1999) se basó en SSL 3.0, mientras que las versiones posteriores TLS 1.1 (2006), TLS 1.2 (2008) y TLS 1.3 (2018) se alejaron gradualmente de la arquitectura original, añadiendo nuevos algoritmos de cifrado y corrigiendo vulnerabilidades. Hoy en día, SSL se considera obsoleto y todos los sistemas modernos usan TLS, aunque ambos protocolos suelen mencionarse juntos como SSL/TLS por inercia.

Historia del protocolo

La historia de SSL/TLS comenzó con la necesidad de transmisión segura de datos en los inicios de la web. En 1994, Netscape desarrolló SSL 1.0 para su navegador Navigator, pero el protocolo nunca se publicó debido a graves problemas de seguridad. SSL 2.0 se lanzó en 1995 y tuvo uso práctico, aunque contenía numerosas vulnerabilidades: falta de protección contra ataques Man-in-the-Middle, algoritmos de cifrado débiles y susceptibilidad a ataques de truncamiento. SSL 3.0 (1996) solucionó la mayoría de los problemas, pero para 2014 se descubrió la vulnerabilidad POODLE, tras lo cual la IETF declaró oficialmente obsoletas todas las versiones de SSL. TLS 1.0–1.3 mejoraron progresivamente la solidez criptográfica, el rendimiento y la privacidad, reduciendo TLS 1.3 el handshake de dos a una sola ida y vuelta, algo crítico para aplicaciones móviles con conexiones inestables.

Cómo funciona el Handshake SSL/TLS

Handshake es el proceso de establecimiento de una conexión segura entre un cliente y un servidor. Consta de varios pasos secuenciales durante los cuales las partes acuerdan la versión del protocolo, seleccionan algoritmos de cifrado, intercambian claves y se autentican mutuamente. En TLS 1.3, el handshake requiere solo un viaje de ida y vuelta (1-RTT), mientras que TLS 1.2 necesitaba dos (2-RTT).

El primer paso es que el cliente envíe un ClientHello — un mensaje que contiene una lista de versiones TLS compatibles, conjuntos de cifrado y un número aleatorio. El servidor responde con un ServerHello que incluye la versión y el cifrado elegidos, su certificado X.509 y una firma digital. El cliente verifica el certificado a través de la cadena de autoridades certificadoras (CA), genera una clave de sesión y la envía cifrada con la clave pública del servidor extraída del certificado. Tras la confirmación del servidor, comienza la transmisión segura de datos. Todo el handshake toma entre 1 y 3 milisegundos en dispositivos modernos, lo que lo hace imperceptible para el usuario.

Certificados X.509 y cadena de confianza

La base de la autenticación TLS es la Infraestructura de Clave Pública (PKI) construida sobre certificados en formato X.509. Cada certificado contiene: un nombre de dominio (Common Name o Subject Alternative Name), la clave pública del servidor, el nombre del emisor (Autoridad Certificadora), una fecha de vencimiento y la firma digital de la CA. El cliente verifica el certificado del servidor a lo largo de la cadena de confianza: desde el certificado del servidor hasta la CA raíz, cuyo certificado está integrado en el sistema operativo. En dispositivos Android, los certificados raíz se almacenan en el almacén de claves del sistema, actualizado mediante Google Play Services; en iOS, mediante las actualizaciones de iOS. Si algún eslabón de la cadena se rompe (certificado vencido, discrepancia de dominio, CA desconocida), el cliente termina la conexión. Para certificados autofirmados (usados en desarrollo), se requiere confianza explícita — en Android mediante Network Security Config, en iOS mediante NSExceptionDomains en Info.plist. El proceso de validación de la cadena de certificados también incluye la verificación del estado de revocación mediante CRL (Lista de Revocación de Certificados) u OCSP (Protocolo de Estado de Certificados en Línea), aunque en dispositivos móviles las solicitudes OCSP a menudo se omiten para acelerar la conexión — este es un compromiso entre seguridad y rendimiento que los arquitectos deben considerar.

SSL vs TLS: Diferencias Clave

Aunque los términos SSL y TLS se usan a menudo como sinónimos, existen diferencias técnicas fundamentales entre ellos que afectan la seguridad y el rendimiento de las aplicaciones móviles.

CaracterísticaSSL 3.0TLS 1.2TLS 1.3
Año de lanzamiento199620082018
EstadoObsoleto (RFC 7568)Activo (recomendado)Actual (mejor)
Viajes de ida y vuelta221
Algoritmo de intercambio de clavesRSARSA, ECDHEECDHE (solo)
Cifrado autenticadoNoGCM, CCMAEAD obligatorio
Perfect Forward SecrecyNoOpcionalObligatorio

La principal diferencia entre TLS 1.3 y sus predecesores es el uso obligatorio de Perfect Forward Secrecy (PFS) mediante el protocolo ECDHE. Esto significa que incluso si un atacante obtiene acceso a la clave privada del servidor, no podrá descifrar el tráfico interceptado anteriormente. Para aplicaciones móviles, donde el compromiso del servidor es una amenaza real, TLS 1.3 con PFS es un requisito de seguridad obligatorio.

Vulnerabilidades conocidas de versiones antiguas

Las versiones antiguas de SSL y TLS tienen vulnerabilidades bien documentadas que las hacen inadecuadas para uso en producción. POODLE (CVE-2014-3566) ataca SSL 3.0 mediante un padding oracle, permitiendo descifrar cookies de sesión en 256 solicitudes. BEAST (CVE-2011-3389) explota una vulnerabilidad en el modo CBC de TLS 1.0 mediante un IV predecible. Heartbleed (CVE-2014-0160) — no es una vulnerabilidad del protocolo sino un error en la implementación de OpenSSL que permite leer la memoria del servidor: según Netcraft, más de 500.000 servidores eran vulnerables en 2014. A partir de Android 10 (API 29) e iOS 13, todos estos protocolos están deshabilitados a nivel de sistema. No obstante, los desarrolladores deben verificar la configuración de su servidor mediante SSL Labs Test (qualys.com) antes de lanzar una aplicación para asegurarse de que no haya conjuntos de cifrado obsoletos y que se admita TLS 1.3.

Cómo protege SSL/TLS los datos en aplicaciones móviles

En las aplicaciones móviles, TLS protege los datos en tres niveles: cifrado del contenido (nadie excepto el servidor puede leer los datos), verificación de integridad (los datos no pueden modificarse en tránsito) y autenticación del servidor (el cliente está seguro de que se conecta al servidor correcto). La autenticación es especialmente crítica: sin ella, un atacante puede suplantar al servidor mediante suplantación de DNS o un punto de acceso Wi-Fi falso.

Según un estudio de Google Play Protect (2024), el 76% de las aplicaciones Android usan TLS correctamente con verificación de certificados. El 24% restante comete errores: deshabilitan la verificación de certificados para pruebas (y olvidan volver a habilitarla en producción), usan certificados autofirmados sin validación o permiten protocolos obsoletos como SSL 3.0 y TLS 1.0. Apple App Transport Security (ATS) en iOS exige al menos TLS 1.2 desde 2017, y a partir de iOS 15 utiliza TLS 1.3 por defecto para todas las solicitudes de red. Para protección adicional, también se recomienda implementar Certificate Pinning — vinculación a un certificado específico del servidor.

Implementación de SSL/TLS en aplicaciones móviles

Veamos un ejemplo de configuración de una conexión HTTPS segura en Android usando OkHttp — una de las bibliotecas de red más populares. Una configuración adecuada incluye forzar el uso de TLS 1.3 y la verificación de certificados.

kotlin
val client = OkHttpClient.Builder()
    .connectionSpecs(
        listOf(
            ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)
                .tlsVersions(TlsVersion.TLS_1_3, TlsVersion.TLS_1_2)
                .cipherSuites(
                    CipherSuite.TLS_AES_128_GCM_SHA256,
                    CipherSuite.TLS_AES_256_GCM_SHA384,
                    CipherSuite.TLS_CHACHA20_POLY1305_SHA256
                )
                .build()
        )
    )
    .hostnameVerifier { hostname, session ->
        SSLSession.DefaultHostnameVerifier.verify(hostname, session)
    }
    .build()

En este ejemplo, restringimos el conjunto de versiones TLS compatibles solo a 1.3 y 1.2, excluyendo las obsoletas TLS 1.0/1.1. Los conjuntos de cifrado se seleccionan entre algoritmos modernos con modo AEAD y Perfect Forward Secrecy obligatoria. El HostnameVerifier verifica que el nombre del host coincida con el certificado. En iOS, una configuración similar se realiza mediante la configuración de URLSession con el parámetro tlsMinimumSupportedProtocolVersion establecido en .TLSv13. Adicionalmente, en iOS se puede establecer tlsMaximumSupportedProtocolVersion para limitar la versión superior — útil para la compatibilidad con servidores antiguos que aún no han migrado a TLS 1.3. Esta configuración garantiza el máximo nivel de seguridad para la transmisión de datos en una aplicación móvil.

Preguntas Frecuentes

¿En qué se diferencia SSL de TLS en la práctica?

TLS es una versión más nueva y segura del protocolo. SSL está obsoleto y no debe usarse (RFC 7568). En la práctica, ambos términos se refieren al cifrado HTTPS, pero técnicamente todos los sistemas modernos funcionan con TLS 1.2 o 1.3.

¿Cómo verificar si una aplicación móvil usa TLS?

Instale una herramienta proxy como Burp Suite o Charles Proxy e intercepte el tráfico de la aplicación. Si la conexión usa HTTPS y el certificado es válido — la aplicación usa TLS. Si el tráfico va por HTTP — no hay cifrado.

¿Qué versión de TLS es segura para producción?

Solo TLS 1.2 y TLS 1.3 están permitidos para compilaciones de producción. Los protocolos SSL 3.0, TLS 1.0 y TLS 1.1 deben estar deshabilitados tanto en el servidor como en la aplicación cliente. Desde 2020, las principales plataformas (Android, iOS, navegadores) exigen al menos TLS 1.2.

¿Se necesita Certificate Pinning junto con TLS?

Sí, se recomienda. TLS verifica el certificado a través de una cadena de autoridades certificadoras, pero si alguna CA se ve comprometida (como ocurrió con DigiNotar en 2011), un atacante podría emitir un certificado falso. El Pinning añade una capa adicional de verificación.

¿Cómo mejora TLS 1.3 el rendimiento de las aplicaciones móviles?

TLS 1.3 reduce el tiempo de establecimiento de conexión de 2 viajes de ida y vuelta a 1, lo que supone una mejora del 30–50% en la primera conexión. Para aplicaciones móviles con conexiones inestables (metro, trenes), esto es crítico para la velocidad de carga de datos.

Resumen

  • SSL/TLS — la base de la protección de datos durante la transmisión por red, cifrando todo el tráfico entre cliente y servidor.
  • SSL está completamente obsoleto — todos los sistemas modernos deben usar TLS 1.2 o TLS 1.3.
  • TLS 1.3 proporciona un handshake en 1 viaje de ida y vuelta, Perfect Forward Secrecy obligatoria y soporte para cifrados AEAD modernos.
  • HTTPS — la forma estándar de aplicar TLS en aplicaciones móviles, obligatorio para compilaciones de producción.
  • Apple ATS en iOS 15 usa TLS 1.3 por defecto, deshabilitando todas las versiones obsoletas del protocolo.
  • OkHttp en Android requiere configuración explícita de ConnectionSpec para restringir las versiones TLS y los conjuntos de cifrado.
  • Recomendación: habilite solo TLS 1.2/1.3 con intercambio de claves ECDHE en su aplicación y verifique los certificados mediante Certificate Pinning.

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto

Lea también