Seguridad de la capa de transporte(en inglés:
Transport Layer Securityo
TLS) y su predececesor
Secure Sockets Layer(
SSL; en español
capa de puertos seguros) son, que dan comunicacionespor una, comúnmente.
Se usan certificadosy por lo tantoparacon quien se están comunicando,
y para intercambiar una llave simétrica. Esta sesión es entonces utilizada para cifrar el flujo de datos entre las partes. Esto permite la confidencialidad del dato/mensaje, códigos de autenticación de mensajes para integridad y como un producto lateral, autenticación del mensaje. Varias versiones del protocolo están en aplicaciones extensamente empleadas como,,,y(VoIP). Una propiedad importante en este contexto es, a fin de que la clave de corta vida de la sesión no pueda ser descubierta a partir de la clave asimétrica de largo plazo.
TLS es un protocolo de(IETF), definido por primera vez en 1999 y actualizado en el(agosto de dos mil ocho) y en(marzo de dos mil once). seo madrid servicios integrales en las especificaciones anteriores de SSL (1994, 1995, mil novecientos noventa y seis) desarrolladas por
para agregar ela su navegador. Su última versión, TLS trece, fue definida en el mes de agosto de dos mil dieciocho.
SSL proporcionayde la información entre extremos sobremediante el uso de. Frecuentemente, solo el servidor es autenticado (es decir, se garantiza su identidad) al tiempo que el cliente se mantiene sin autentificar.
SSL implica una serie de fases básicas:
Durante la primera fase, el cliente y el servidor negocian qué algoritmos criptográficos se van a emplear.Las implementaciones actuales proporcionan las próximas opciones:
Los primeros sacrificios de investigación hacia la seguridad de la capa de transporte incluyeron la(API, por su sigla en inglés) de Secure Network Programming (SNP), la que en 1993 exploró la posibilidad de tener una API de capa de transporte segura similar a los, para facilitar la retroadaptación de las aplicaciones de red preexistentes con medidas de seguridad.
El protocolo SSL fue desarrollado originalmente por.
La versión 1.0 jamás se entregó públicamente; la versión 2.0 se presentó en febrero de mil novecientos noventa y cinco mas "contenía una cantidad de fallas de seguridad que al final llevaron al diseño de la versión SSL 3.0".
Dicha versión, presentada en 1996, fue un rediseño completo del protocolo producido por, quien trabajó con los ingenieros de Netscapey Alan Freier. diseño web adaptable más nuevas de SSL/TLS están basadas en SSL treinta. El borrador de mil novecientos noventa y seis de SSL treinta fue publicado por lacomo el histórico.En octubre de dos mil catorce, se detectó una nueva vulnerabilidad sobre el protocolo SSL en su versión 3.0, la.
TLS 1.0 fue definido en elen enero de 1999 y es una actualización de SSL versión 3.0. Como afirma el RFC, "las diferencias entre este protocolo y SSL 3.0 no son dramáticas, mas son suficientemente significativas para impedir la interoperabilidad entre TLS diez y SSL 3.0". TLS diez incluye una forma en la cual la implementación puede conectarse en SSL treinta, desgastando la seguridad.
TLS once fue definido en elen abril de 2006.
Es una actualización de TLS 1.0. Las diferencias más significativas incluyen:
TLS 1.2 fue definido originalmente en elen agosto del 2008. Se fundamenta en una especificación posterior de TLS 1.1. Las mayores diferencias son:
TLS doce fue después redefinido en elde marzo de dos mil once redactando sucon SSL y TLS para que dichas sesiones jamás negocien el uso de SSL versión dos.0.
TLS 1.3 fue definido en elen agosto de dos mil dieciocho. Está basado en la anterior especificación TLS 1.2. Las principales diferencias con TLS doce incluyen:
El protocolo SSL intercambia registros; opcionalmente, cada registro puede ser comprimido, cifrado y empaquetado con un(MAC). Cada registro tiene un campo de
content_typeque detalla el protocolo de nivel superior que se está utilizando.
Cuando se inicia la conexión, el nivel de registro encapsula otro protocolo, el protocolo
handshake(o bien protocolo conforme), que tiene el
content_type22.
El usuario envía y recibe múltiples estructuras
handshake:
TLS/SSL poseen una variedad de medidas de seguridad:
Antes de que un cliente del servicio y el servidor pueden comenzar a intercambiar información protegida por TLS, deben intercambiar en forma segura o convenir una clave de cifrado y una clave para usar cuando se cifren los datos (ver). Entre los métodos utilizados para el intercambio/acuerdo de claves son: las claves públicas y privadas generadas con RSA (denotado TLS_RSA en el protocolo de
handshakeTLS), Diffie-Hellman (llamado TLS_DH), Diffie-Hellman efímero (indicado TLS_DHE), Diffie-Hellman de Curva Elíptica (denotado TLS_ECDH), Diffie-Hellman de Curva Elíptica efímero (TLS_ECDHE), Diffie-Hellman anónimo (TLS_DH_anon),
y PSK (TLS_PSK).
El método conforme de claves TLS_DH_anon no comprueba el servidor o el usuario y por lo tanto raras veces se emplea pues es vulnerable a un ataque de suplantación de identidad. Solo TLS_DHE y TLS_ECDHE proporcionan.
Los certificados de clave pública que se usan durante el intercambio/acuerdo también varían en el tamaño de las claves de cifrado públicas/privadas usadas a lo largo del intercambio y, en consecuencia, en la firmeza de la seguridad que proveen. En julio de dos mil trece,anunció que dejaría de utilizar claves públicas mil veinticuatro bits y cambiaría a claves de dos mil cuarenta y ocho bits para aumentar la seguridad de el cifrado TLS que da a sus usuarios.
Se utiliza(MAC, por
message authentication codeen inglés) para asegurar la integridad de los datos.se utiliza para el modo CBC de cifrado de bloques y cifrado de
streams.es utilizado para el cifrado autenticado como los modos GCM y CCM.
SSL se ejecuta en una capa entre los protocolos de aplicación como,,y sobre el protocolo de transporte, que forma parte de la familia de protocolos. Puede administrar seguridad a cualquier protocolo que use conexiones de confianza (tal como TCP).
Uno de los usos más importantes es al lado de HTTP para formar. HTTPS es usado para asegurar páginaspara aplicaciones de, utilizandopara contrastar la identidad de los extremos.
Todos los navegadores importantes soportan TLS:
SSL y TLS han sido implementados ampliamente en varios proyectos de software abierto y libre. Los programadores pueden emplear las librerías,,,,opara tener funcionalidad SSL/TLS.
Un ensayo presentado en la conferencia ACM 2012 de seguridad de computadores y comunicaciones
mostró que muchas aplicaciones utilizaban estas librerías incorrectamente, llevando a vulnerabilidad. Los autores hacían notar que "la causa primordial de la mayoría de estas vulnerabilidad es el horrible diseño de las APIs para las librerías latentes. En vez de expresar propiedades de seguridad alto nivel para túneles de red tales como confidencialidad y autenticación, estas API exponen detalles de bajo nivel del protocolo SSL a los desarrolladores de aplicaciones. Como consecuencia, los desarrolladores a menudo emplean las API de SSL incorrectamente, tergiversando y malentendiendo los posibles parámetros, opciones, efectos colaterales y valores de retorno".
Otra aplicación con creciente uso de TLS es. TLS es también el método estándar para resguardar la señalización de aplicaciones con(SIP). TLS se puede emplear para proveer autenticación y cifrado a la señalización asociada cony otras aplicaciones basadas en SIP.
Aunque un número creciente de productos clientes y servidores pueden proporcionar SSL de forma nativa, muchos aún no lo permiten. En estos casos, un usuario podría querer emplear una aplicación SSL independiente comopara proporcionar cifrado. No obstante, elrecomendó en 1997 que los protocolos de aplicación ofreciesen una forma de actualizar a TLS a partir de una conexión sin cifrado (
plaintext), en lugar de emplear un puerto diferente para cifrar las comunicaciones – esto evitaría el empleo de envolturas (
wrappers) como Stunnel.
SSL también puede ser usado para tunelizar una red completa y crear una(VPN), como en el caso de.
SSL 2.0 tiene una pluralidad de fallas:
SSL 2.0 está desactivado por defecto, a partir de:,
,
9.5,
y Safari. Después de que se envía un "ClientHello" TLS, si Mozilla Firefox verifica que el servidor no puede completar el
handshake, intentará volver a caer a la utilización de SSL treinta con un SSL treinta "ClientHello" en formato SSL dos.0 para maximizar la probabilidad de éxito del
handshakecon los servidores más antiguos.
Permitir SSL dos.0 (y sistemas de cifrado débiles de cuarenta y 56 bits), ha sido totalmente eliminado de Opera desde la versión diez
SSL 3.0 mejoró SSL 2.0 a través de la adición de cifradoy soporte para autenticación de certificados.
Desde el punto de vista de seguridad, SSL 3.0 debería considerarse menos deseable que TLS diez. Las suites de cifrado de SSL treinta tienen un proceso de derivación de claves débiles, la mitad de la llave maestra que se establece es completamente dependiente de la función
hash, que no es resistente a los choques y, por consiguiente, no es considerado seguro. Bajo TLS 1.0, la llave profesora que se establece depende tanto MD5 y SHA-1 con lo que su proceso de derivación no está hoy día considerado débil. Es por esta razón que las implementaciones SSL 3.0 no pueden ser validados bajo FIPS 1.0-dos.
Hay algunos ataques contra la implementación en lugar del propio protocolo:
En las implementaciones anteriores, algunas entidades transmisoras
no establecieron explícitamente basicConstraintsCA=False para los
nodos hoja. Como resultado, estos
nodos hojapodían firmar certificados piratas. Además, ciertos programas de (incluyendo IE6 y Konqueror) no comprobó este campo para nada. Esto puede ser explotado en ataques
man-in-the-middlea todas y cada una de las posibles conexiones SSL. Algunas implementaciones (incluyendo versiones precedentes de la API de cifrado de Microsoft, Network Security Services y GnuTLS) dejan de leer los caracteres que siguen al carácter nulo en el campo del nombre del certificado, lo que puede ser explotado para engañar al cliente del servicio en la lectura del certificado como si fuera originado en el lugar auténtico. (Por poner un ejemplo, Paypal.com.badguy.com sería confundido como proveniente del sitio PayPal.com en lugar de badguy.com). Los navegadores incorporaron mecanismos de degradación del protocolo a una versión precedente en SSL/TLS por razones de compatibilidad. La protección ofrecida por los protocolos SSL/TLS contra un downgrade a una versión precedente de un ataque man-in-the-middle activo puede ser inutilizados por semejantes mecanismos.
TLS tiene una variedad de medidas de seguridad:
Los ataques más significativos se mencionan más abajo:
Una vulnerabilidad del procedimiento en el que la renegociación fue descubierto en el mes de agosto de dos mil nueve, que puede conducir a ataques de inyección de texto plano contra SSL 3.0 y todas las versiones actuales de TLS. Por servirnos de un ejemplo, permite a un atacante que puede raptar una conexión https para empalmar sus propias solicitudes en el comienzo de la conversación que el usuario tiene con el servidor web. El atacante no puede realmente descifrar la comunicación usuario-servidor, por lo que es diferente de un típico. Una solución en un corto plazo es que los servidores de Internet dejen de permitir la renegociación, que generalmente no requerirá otros cambios a menos que se utilice la autenticación de certificados de cliente del servicio. campaña display adwords , una extensión de la indicación de renegociación fue propuesta para TLS. Se requerirá que el usuario y el servidor incluyan y comprueben información sobre los
handshakeanteriores en cualquier renegociación de
handshake.
Esta extensión se ha transformado en una norma propuesta y se le ha asignado el número de. El RFC ha sido incorporado por varias bibliotecas.
Hay modificaciones a los protocolos originales, como False Start
(aprobada y habilitada por Chrome
) o Snap Start, en las que se ha reportado que han introducido limitaciones a los ataques de reversión de versiones para TLS
o bien para permitir que las modificaciones de la lista de conjunto de cifrado enviada por el usuario al servidor (un atacante puede ser capaz de influir en la selección de la suite de cifrado en un intento de rebajar la intensidad de juego de cifrado, ya sea para utilizar un algoritmo de cifrado simétrico más débil o de un intercambio de clave más débil
). Se ha probado en la conferencia sobre seguridad informática y de comunicaciones de la Association for Computing Machinery (ACM) que la extensión False Start está en riesgo bajo determinadas circunstancias, lo que podría permitir a un atacante recobrar las claves de cifrado en línea y acceder a los datos cifrados.
El veintitres de septiembre de dos mil once, los investigadoresydemostraron una “prueba de concepto“ llamada BEAST ("Browser Exploit Against SSL/TLS") usando unpara violar limitaciones de políticas de mismo origen, por una vulnerabilidad deampliamente famosa de TLS 1.0.
prácticos de estano se conocían, la que fue descubierta originalmente por Phillip Rogaway
en 2002.
actualizó las versiones de desarrollo de sus libreríaspara mitigar ataques de tipo BEAST. NSS es empleado pory porpara su implementación de SSL. Algunosque tienen una implementación quebrada de la especificación SSL es posible que dejen de funcionar como resultado de esto.
emitió el boletín de seguridad MS el 12 de enero de dos mil doce, que corrigió la vulnerabilidad BEAST al cambiar la manera en que el componente de Windows Secure Channel () transmite los bultos cifrados.
Por su parte, Apple habilitó por defecto la protección contra BEAST en la versión OS X 10.9 Mavericks.
El ataque BEAST también se puede prevenir eliminando todos los cifrados CBC de la lista de cifrados permitidos, dejando solamente el cifrado, que es ampliamente soportado por la mayoría de los sitios.
Los usuarios dey deR2 pueden permitir el uso de TLS once y 1.2, pero esta contramedida fallará si no es soportado también por el otro extremo de la conexión, y caerá a TLS diez.
Los autores del ataque BEAST también son los creadores del ataque, que emplea compresión de datos para adivinar.
Cuando se emplea para recuperar el contenido de lasecreta, permite a un atacante efectuar unen una sesión web autenticada.
Las versiones anteriores de TLS eran vulnerables frente aldescubierto en 2002. Una nueva variación, llamada, fue publicada en dos mil trece. Hasta febrero de 2013, los implementadores de TLS estaban todavía trabajando en el desarrollo de soluciones para la protección contra esta forma de ataque.
Una solución definitiva fue lanzada como la extensión Encrypt-then-MAC para TLS lanzado como.
El catorce de octubre de 2014, investigadores de Google publicaron una vulnerabilidad en el diseño de SSL 3.0, lo que hace que el modo perfecto CBC de operación con SSL 3.0 sea frágil al ataque de relleno (). Ellos llamaron a este ataque POODLE (en inglés, Padding Oracle On Downgraded Legacy Encryption o bien Relleno de oráculo en Degradación a Cifrado Obsoleto). En promedio, los atacantes solo necesitan hacer doscientos cincuenta y seis solicitudes SSL treinta para revelar un byte de mensaje cifrado.
Aunque esta vulnerabilidad solo existe en SSL treinta y la mayoría de los clientes del servicio y servidores admite TLS diez y superiores, todos los primordiales navegadores rebajan de manera voluntaria a SSL treinta si los
handshakecon las nuevas versiones de TLS fallan a menos que proporcionan la opción para un usuario o administrador para deshabilitar SSL treinta y el usuario o bien el administrador lo haga. Por ende, el hombre-en-el-medio primero debe llevar a cabo un ataque de
rollbacky luego aprovechar esta vulnerabilidad.
En general, la degradación de la seguridad elegante por el bien de la interoperabilidad es difícil llevar a cabo de una manera que no pueda ser explotada. Este es un reto especialmente en los dominios donde la fragmentación es alta.
A pesar de ataques existentes sobre RC4 que lo rompen, las suites de cifrado basadas en RC4 en SSL y TLS fueron consideradas seguros en un momento debido a la forma en que el sistema de cifrado se usaba en estos protocolos derrotaba a los ataques que rompían RC4, hasta que nuevos ataques difundidos en el mes de marzo de 2013 permitían que RC4 en TLS fuera quebrado totalmente. En 2011 se aconsejaba emplear la suite RC4 como una solución opción alternativa para el ataque BEAST.
En dos mil trece una vulnerabilidad fue descubierta en RC4 insinuando que no era una buena solución para BEAST. Un caso de un ataque fue propuesto por Alfardan, Bernstein, Paterson, Poettering y Schuldt que usaba nuevos sesgos estadísticos descubiertos en la tabla de clave RC4
para recuperar unas partes del texto en claro con un gran número de cifrados TLS.
Un ataque de corte de doble byte en RC4 en TLS y SSL que requiere 13 × doscientos veinte cifrados para romper RC4 se dio a conocer el ocho de julio de dos mil trece, y fue descrito como "viable" en la presentación de acompañamiento en el 22ndo Simposium USENIX de Seguridad el quince de agosto de 2013.
Sin embargo, muchos navegadores modernos han sido diseñados para derrotar los ataques BEAST (salvo Safari para Mac OS X 10.7 o versiones precedentes, para iOS 6 o anterior, y para Windows; ver navegadores). Como resultado, RC4 ya no es la mejor opción para TLS 1.0. Los sistemas de cifrado CBC que se vieron afectados por el ataque BEAST anteriormente se están convirtiendo en una opción más popular para la protección.
Microsoft recomienda deshabilitar RC4 cuando resulte posible.
Un ataque de truncamiento TLS bloquea las solicitudes de desconexión de la cuenta de la víctima a fin de que el usuario sin saberlo, permanezca conectado a un servicio web. Cuando se envía la petición de fin de sesión, el atacante inyecta un mensaje TCP FIN no cifrado (no hay más datos del expedidor) para cerrar la conexión. El servidor, por lo tanto, no recibe la petición de cierre de sesión y no se da cuenta de la terminación anormal.
Publicado en el mes de julio de 2013,
el ataque provoca servicios web como Gmail y Hotmail que muestren una página que informa al usuario de que han salido apropiadamente del servicio, al tiempo que garantiza que el navegador del usuario sostiene la autorización con el servicio, lo que permite a un atacante tener el acceso para tomar el control de la cuenta que ha iniciado sesión en el usuario. El ataque no se fundamenta en la instalación de
malwareen el PC de la víctima; los atacantes solo precisan ponerse entre la víctima y el servidor web (por ejemplo, mediante la creación de un punto de acceso inalámbrico rebelde).
Esta vulnerabilidad también requiere acceso a la computadora de la víctima.
El fallo Heartbleed es una grave vulnerabilidad en la popular librería de software criptográfica OpenSSL, que afecta a las versiones diez.1 a 1.0.1f. Esta debilidad deja el robo de la información protegida, en condiciones normales, por el cifrado SSL / TLS que se usa para asegurar las cargas de datos. SSL / TLS da seguridad de las comunicaciones y la privacidad a través de Internet para aplicaciones como web, correo electrónico, mensajería instantánea (IM) y ciertas redes privadas virtuales (VPN).
El fallo Heartbleed permite a cualquier persona en Internet leer la memoria de los sistemas protegidos por las versiones frágiles del software OpenSSL. Esto compromete las claves secretas empleadas para identificar los distribuidores de servicios y para cifrar el tráfico, los nombres y las contraseñas de los usuarios y el contenido real. Esto permite a los atacantes espiar las comunicaciones, robar datos de forma directa de los servicios y de los usuarios y suplantar servicios y a los usuarios.
A diciembre de 2014, Trustworthy Internet Movement estima que la proporción de sitios que son frágil a ataques TLS.
es una propiedad de los sistemas criptográficos que garantiza que una clave de sesión derivada de un conjunto de claves públicas y privadas no se verán comprometidas si una de las claves privadas se ve comprometida en el futuro.
Sin forward secrecy, si la clave privada del servidor fuera conocida, no sólo se verán comprometidas todas las sesiones cifradas-TLS futuras mediante ese certificado del servidor, sino también las sesiones precedentes que lo usaban (siempre y en toda circunstancia como es lógico que estas sesiones pasadas fuesen detenidas y almacenadas en el instante de la transmisión).
Una implementación de TLS puede proporcionar forward secrecy al exigir el uso deefímeras para establecer claves de sesión, y ciertas implementaciones TLS notables lo hacen exclusivamente: por ejemplo, Gmail y otros servicios de Google que utilizan HTTPS.
No obstante, muchos clientes y servidores que aguantan TLS (incluidos los navegadores y servidores web) no están configurados para aplicar esas limitaciones.
En la práctica, salvo que un servicio web utilice Diffie-Hellman para implementar forward secrecy, todo el tráfico web cifrado cara y desde ese servicio puede ser descifrado por un tercero si obtiene la clave maestra del servidor (privado); por ejemplo, a través de una orden judicial.
Incluso cuando se incorpora el intercambio de claves Diffie-Hellman, los mecanismos de gestión de sesión en el servidor pueden afectar el forward secrecy. El uso de tickets de sesión TLS (una extensión TLS) hace que la sesión se deba proteger por AES128-CBC-SHA256 independientemente de cualquier otro parámetro TLS negociados, incluyendo a los conjuntos de cifrado de forward secrecy, y las llaves de los tickets de sesión de larga duración TLS estropean el intento de implementar forward secrecy.
Desde finales de dos mil once, Google ha proporcionado forward secrecy con TLS por omisión para los usuarios de su servicio de, junto cony búsqueda cifrada, entre otros servicios.
Desde noviembre de 2013,ha proporcionado forward secrecy con TLS para los usuarios de su servicio.
A diciembre de dos mil catorce, el veinte,0 por ciento de los sitios habilitados para TLS están configurados para utilizar conjuntos de cifrado que dan forward secrecy a los navegadores web.
Algunos expertos recomiendan evitar Triple-DES CBC. Debido a que RC4 y Triple-DES son los últimos cifrados soportados en las bibliotecas SSL/TLS de Windows XP, hace que sea difícil aguantar SSL para programas que empleen esta biblioteca en Windows XP. Por poner un ejemplo en el caso de Internet Explorer para Windows XP.
Una forma de detectar y bloquear muchos tipos de ataques MITM es "fijar el certificado", a veces llamado "fijación SSL".
Un cliente del servicio que hace fijación de certificado añade un paso auxiliar para el protocolo SSL o protocolo TLS habitual: Después de obtener el certificado del servidor en la forma estándar, el cliente del servicio verifica el certificado del servidor con los datos de confianza para validación. En general los datos de validación de confianza se incluye con la aplicación, en la forma de una imitación de confianza de dicho certificado, o un
hashde confianza o bien huella digital del certificado o bien la clave pública del certificado. Por ejemplo, el Chromium y Chrome incluyen datos de validación para el certificado
*.google.comque detectaen dos mil once. Desde ese momento, Mozilla ha introducido fiajción de certificados públicos en su navegador.
En otros sistemas que el usuario espera que la primera vez que obtenga el certificado de un servidor es de confianza y la almacena; durante las sesiones siguientes con ese servidor, el usuario comprueba el certificado del servidor contra el certificado almacenado para resguardarse de los ataques MITM posteriores.
El Proyecto Perspectivas
opera notarios de red que los clientes pueden utilizar para advertir si el certificado de un sitio ha cambiado. Por su naturaleza, los ataques man-in-the-middle colocan al atacante entre el destino y un solo objetivo específico. Como tal, Perspectivas advertirían al objetivo de que el certificado entregado al navegador web no coincide con el certificado visto desde otras perspectivas - las perspectivas de otros usuarios en diferentes instantes y lugares. El uso de notarios de red desde una multitud de perspectivas hace posible que una meta advierta un ataque aun si un certificado semeja ser absolutamente válido.
El protocolo TLS intercambia
registros- los que encapsulan los datos que se intercambian en un formato específico (ver más abajo). Cada registro puede ser comprimido, cifrado y empaquetado con un código de MAC (), todo en dependencia del estado de la conexión. Cada registro tiene un
campo de género de contenidoque designa el género de datos encapsulados, un campo de longitud y un campo de versión TLS. Los datos encapsulados pueden ser mensajes de control o de procedimiento de la propia TLS, o bien simplemente los datos de las aplicaciones que precisan ser transferidos por TLS. Las especificaciones (suite de cifrado, claves, etc.) precisos para el intercambio de datos de la aplicación por TLS, se han acordado en el "handshake TLS" entre el usuario que solicita los datos y el servidor que responde a las solicitudes. Por lo tanto, el protocolo define tanto la estructura de cargas útiles transferidos en TLS y el procedimiento para establecer y inspeccionar la trasferencia.
Cuando se empieza la conexión, el registro encapsula un protocolo de "control"- el protocolo de mensajería de
handshake(contenido de tipo veintidos). Este protocolo se usa para el intercambio de toda la información requerida por las 2 partes para el intercambio de los datos de las aplicaciones reales por TLS. En él se definen los mensajes de formato o que contengan esta información y el orden de su intercambio. Estos pueden cambiar en función de las demandas del cliente del servicio y del servidor, o sea, existen varios procedimientos posibles para establecer la conexión. Este intercambio inicial resulta en una conexión triunfante TLS (ambas partes listas para transferir datos de la aplicación con TLS) o un mensaje de alarma (como se especifica más adelante).
A continuación, un ejemplo simple de conexión, que ilustra un
handshakeen el que el servidor (mas no el cliente) es autenticado por su certificado:
El siguiente ejemplo completo muestra un cliente siendo autenticado (además del servidor como el de más arriba) a través de TLS mediante certificados intercambiados entre ambos interlocutores.
Las operaciones de clave pública (por servirnos de un ejemplo, RSA) son parcialmente costosas en términos de cálculo computacional. TLS proporciona un acceso directo seguro en el mecanismo de
handshakepara eludir estas operaciones: reiniciar sesiones. Las sesiones reanudadas se incorporan usando los identificadores (IDs) de sesión o
ticketsde sesión.
Aparte de el beneficio de rendimiento, reanudando las sesiones también se puede utilizar para, ya que se asegura que tanto la sesión original, así como cualquier sesiones reanudada se originan desde el mismo cliente. Esto es de particular relevancia para el, puesto que de lo contrario podría sufrir de unen el que un atacante podría detener el contenido de las conexiones de datos secundarias.
En un
handshakenormal
completo, el servidor envía un
ID de sesióncomo parte del mensaje
ServerHello. El usuario asocia este
ID de sesióncon la dirección IP del servidor y el puerto TCP, a fin de que cuando el cliente del servicio se conecte de nuevo a ese servidor, puede emplear el
ID de sesiónpara acortar el
handshake. En el servidor, el
ID de sesiónse asigna a los parámetros criptográficos negociados previamente, específicamente el "secreto maestro". Ambas partes deben tener exactamente el mismo "secreto maestro" o bien el
handshakereanudado fallará (esto evita que un espía utilice un
ID de sesión). Los datos aleatorios en los mensajes
ClientHelloy
ServerHelloprácticamente garantizan que las claves de conexión generadas serán diferentes de la conexión anterior. En las RFC, este tipo de
handshakese llama un protocolo de enlace abreviado. También se describe en la literatura como un reinicio de
handshake.
Elextiende TLS a través de la utilización de tiques de sesión, en vez de los IDs de sesión. Define una forma de reiniciar una sesión TLS sin necesidad de almacenar el estado específico de la sesión en el servidor TLS.
Al usar tickets de sesión, el servidor TLS guarda su estado específico de la sesión en un ticket de sesión y envía el ticket de sesión al usuario TLS para ser almacenado. El cliente del servicio se reanuda una sesión TLS mediante el envío del tique de sesión al servidor, y el servidor reinicia la sesión TLS en el estado específico de la sesión en el ticket. El tique de sesión está cifrado y autenticada por el servidor, y el servidor comprueba su validez ya antes de usar su contenido.
Una debilidad particular de este método cones que siempre y en toda circunstancia limita el cifrado y la autenticación de seguridad del ticket de sesión TLS trasmitido a AES128-CBC-SHA256, no importa qué otros parámetros TLS sean negociados para la sesión actual TLS.
Esto significa que la información de estado (el ticket de sesión TLS) no está tan bien protegido como la sesión TLS misma. De particular preocupación es el almacenamiento de OpenSSL de las claves en un contexto de aplicación (SSL_CTX), o sea, que se mantiene a lo largo de la duración de la aplicación, y no permite el reingreso de información de los tickets de sesión AES128-CBC-SHA256 TLS sin reiniciar el contexto a nivel de aplicación OpenSSL (lo que es raro, propenso a fallos y de manera frecuente requiere intervención administrativa manual).
Este es el formato general para todos y cada uno de los registros TLS.
La mayoría de los mensajes intercambiados a lo largo de la configuración de la sesión TLS se fundamentan en este registro, salvo que un fallo o bien advertencia se genere y necesite ser señalado por un registro de protocolo de alarma (ver más abajo), o el modo perfecto de cifrado de la sesión es cambiado por otro récord (véase el protocolo ChangeCipherSpec abajo).
Tenga en cuenta que varios mensajes de
handshakese pueden combinar en un registro.
Este registro no debería enviarse en general durante los intercambios de protocolo de enlace o de aplicación normales. Sin embargo, este mensaje puede ser enviado en cualquier instante a lo largo del
handshakey hasta el cierre de la sesión. Si esto se utiliza para señalar un error fatal, la sesión se cerrará inmediatamente después de enviar este registro, con lo que este registro se emplea para dar la razón de este cierre. Si el nivel de alerta se marca como una advertencia, el equipo recóndito puede decidir cerrar la sesión si decide que la sesión no es lo suficientemente confiable para sus necesidades (antes de hacerlo, el remoto también puede mandar su propia señal).
Desde el punto de vista del protocolo de aplicaciones, TLS pertenece a una capa baja, si bien el modelo TCP/IP es grosísimo para mostrarlo. Esto quiere decir que el
handshakees generalmente (salvo en el caso) llevado a cabo antes que el protocolo de aplicación pueda comenzar. La funcionalidad dees provista por la capa de aplicación, donde todos los servidores virtuales alojados en una misma máquina comparten el mismo certificado. Esto es un inconveniente, en tanto que el servidor debe escoger y mandar el certificado de forma inmediata después del mensaje de ClientHello. Este es un enorme problema en los ambientes de alojamiento, puesto que implica que todos los clientes en un mismo servidor deben compartir el certificado o bien se debe utilizar una IP distinta para cada uno de ellos.Hay 2 formas conocidas de eludir esto, provistas por:
En orden a proveer el nombre del servidor, laTransport Layer Security (TLS) Extensions dejan al cliente del servicio incluir una extensión de Indicación de nombre de servidor (o bien SNI) en el mensaje extendido ClientHello. Esta extensión de manera inmediata le da pistas al servidor respecto de cuál nombre es al que el cliente del servicio se quiere conectar, con lo que el servidor puede seleccionar el certificado apropiado para mandar al cliente.
Las extensiones a TLS 1.0 incluyen:
Las extensiones a TLS 1.1 incluyen:
La versión actual aprobada de TLS es la 1.2, la que se especifica en:
El estándar actual reemplaza a las versiones más viejas, las que son consideradas obsoletas:
así como el nunca estandarizado SSL 3.0:
Otrosposteriores extendieron TLS.
Las extensiones a TLS 1.2 incluyen:
Las encapsulaciones de TLS incluyen: