En redes informáticas, TCP Fast Open ( TFO ) es una extensión que acelera la apertura de conexiones sucesivas del Protocolo de Control de Transmisión (TCP) entre dos puntos finales. Funciona mediante una cookie TFO (una opción TCP), que es una cookie criptográfica almacenada en el cliente y establecida al establecer la conexión inicial con el servidor. [ 1 ] Cuando el cliente se reconecta posteriormente, envía el paquete SYN inicial junto con los datos de la cookie TFO para autenticarse. Si la autenticación es exitosa, el servidor puede comenzar a enviar datos al cliente incluso antes de recibir el paquete ACK final del protocolo de enlace de tres vías, evitando así un retardo de ida y vuelta y reduciendo la latencia al inicio de la transmisión de datos.
La cookie se genera aplicando un cifrado de bloques basado en una clave secreta del servidor a la del cliente, generando una etiqueta de autenticación difícil de falsificar por terceros, incluso si logran falsificar una dirección IP de origen o establecer conexiones bidireccionales con el mismo servidor desde otras direcciones IP. Si bien utiliza técnicas criptográficas para generar la cookie, TFO no pretende ofrecer mayor seguridad que el protocolo de enlace de tres vías al que reemplaza, ni proporciona protección criptográfica a la conexión TCP resultante, ni garantiza la identidad de ninguno de los extremos. Tampoco está diseñado para resistir ataques de intermediario (man-in-the-middle) . Si se requiere dicha resistencia, puede utilizarse en combinación con un protocolo criptográfico como TLS o IPsec .
TFO ha sido difícil de implementar debido a la osificación del protocolo ; en 2020, ningún navegador web lo usaba por defecto. [ 2 ]
TFO presenta desafíos de privacidad ; la cookie TFO puede permitir el seguimiento persistente de un cliente a través de sesiones, incluso por observadores pasivos. [ 3 ]
Historia
La propuesta TFO se presentó originalmente en 2011 [ 4 ] y se publicó como el RFC experimental 7413 en diciembre de 2014. [ 5 ] TCP Fast Open comparte el objetivo de eludir el protocolo de enlace de tres vías de TCP con una propuesta anterior de 1994, llamada T/TCP (RFC 1644). A diferencia de TCP Fast Open, T/TCP no prestó atención a la seguridad, [ 5 ] abriendo una vía a las vulnerabilidades y sin lograr la aceptación esperada.
Características
Las implementaciones de TFO incluyen lo siguiente:
- La compatibilidad con IPv4 para TFO se integró en la rama principal del kernel de Linux en las versiones 3.6 (compatibilidad con clientes) y 3.7 (dic. 2012) (compatibilidad con servidores), [ 6 ] [ 7 ] y se activó por defecto en la versión 3.13 del kernel (ene. 2014). [ 8 ] La compatibilidad con TFO para servidores IPv6 se integró en la versión 3.16 del kernel. [ 9 ]
- FreeBSD desde la versión 10.3 [ 10 ] (soporte para servidores) y 12.0. [ 11 ] [ 12 ] (soporte para clientes).
- Mozilla Firefox desde la versión 58. [ 13 ] El soporte se deshabilitó por defecto debido a problemas de compatibilidad de dispositivos de red con TFO y TLS 1.3 [ 14 ] y finalmente se eliminó en la versión 87. [ 15 ]
- Los navegadores Google Chrome y Chromium son compatibles con TFO en Linux , incluyendo ChromeOS y Android .
- Agente de transferencia de correo (MTA) de Exim a partir de la versión 4.88. [ 16 ]
- Solucionador DNS Unbound de la versión 1.5.10. [ 17 ]
- Sistema de nombres de dominio (DNS) BIND desde la versión 9.11.0. [ 18 ]
- Knot DNS de la versión 2.6.0. [ 19 ]
- Tanto iOS 9 como OS X 10.11 de Apple son compatibles con TCP Fast Open, pero no está habilitado para conexiones individuales de forma predeterminada. [ 20 ]
- Microsoft Edge admite TCP Fast Open desde la compilación 14352 de Windows 10 Preview. [ 21 ]
- PowerDNS Recursor admite TCP Fast Open desde la versión 4.1. [ 22 ]
- dnsmasq admite TCP-fastopen (RFC-7413) desde la versión 2.81. [ 23 ]
Véase también
Referencias
- ↑ Kerrisk, Michael (2012-08-01). "TCP Fast Open: acelerando los servicios web" . LWN.net .
- ↑ Rybczyńska 2020 .
- ^ Sy y col. 2020 , pág. 275-279.
- ↑ Radhakrishnan S, Cheng Y, Chu J, Jain A, Raghavan B (2011-12-06). "TCP Fast Open" (PDF) . ACM CoNEXT.
- 1 2 Cheng, Yuchung; Chu, Jerry; Radhakrishnan, Sivasankar & Jain, Arvind (diciembre de 2014). Apertura rápida TCP . IETF . doi : 10.17487/RFC7413 . RFC 7413 . Consultado el 27 de junio de 2022 .
- ↑ Kerrisk, Michael (1 de agosto de 2012). "TCP Fast Open: acelerando los servicios web" . LWN.net.
El soporte del lado del cliente se ha integrado para Linux 3.6.
- ↑ Vaughan-Nichols, Steven J (11 de diciembre de 2012). "Llega Linux 3.7, los desarrolladores de ARM se regocijan" . Linux y código abierto . ZDNet.
Linux 3.7. TCP Fast Open ahora será compatible con servidores.
- ↑ "Núcleo de Linux 3.13, Sección 1.10. TCP Fast Open habilitado por defecto" . kernelnewbies.org . 19 de enero de 2014. Consultado el 11 de febrero de 2014 .
- ↑ "Núcleo de Linux 3.16, Sección 1.4. Modo de servidor TCP Fast Open en compatibilidad con IPv6" . kernelnewbies.org . 3 de agosto de 2014. Consultado el 14 de septiembre de 2014 .
- ↑ "Implementación de TCP Fast Open (TFO) del lado del servidor [ RFC7413 ] : MFC en la rama estable/10" . 28/12/2015.
- ↑ "Esta es una implementación del lado del cliente de TCP Fast Open (TFO) [ RFC7413 ] " . 26 de febrero de 2018.
- ↑ "Habilitar TCP_FASTOPEN por defecto para FreeBSD 12" . 24/06/2018.
- ↑ "1188435 - Soporte para TCP Fast Open" . 05/05/2017.
- ↑ "1398201 - Deshabilitar TCP Fast Open para 57" . 10/09/2017.
- ↑ "1689604 - Eliminar TCP FastOpen" . 23/03/2021.
- ↑ "Exim 4.88 lanzado" . 25/12/2016.
- ↑ "Unbound 1.5.10" . Consultado el 5 de diciembre de 2017 .
- ↑ "Notas de la versión 9.11.0 de BIND" . 5 de octubre de 2016.
- ↑ "Knot DNS 2.6.0" . 29/09/2017.
- ↑ "Tu aplicación y las redes de próxima generación" . Apple Inc. 2015.
- ↑ "Windows 10 compilación 14352 - Nuevas características de la plataforma web" . Microsoft. Archivado del original el 30/06/2016 . Consultado el 27/05/2016 .
- ↑ "Registro de cambios para la versión 4.1.x" . PowerDNS. 4 de diciembre de 2017.
- ↑ Kelley, Simon (10 de marzo de 2019). "Soporte para TCP fastopen en conexiones entrantes y salientes" .
Bibliografía
- Rybczyńska, Marta (13 de marzo de 2020). "Una mirada RÁPIDA a HTTP/3" . LWN.net .
- Sy, Erik; Mueller, Tobias; Burkert, Christian; Federrath, Hannes; Fischer, Mathias (2020). "Rendimiento y privacidad mejorados para TLS sobre TCP Fast Open" . Actas sobre tecnologías de mejora de la privacidad . 2020 (2): 271–287 . arXiv : 1905.03518 . doi : 10.2478/popets-2020-0027 .
Enlaces externos
- Especificación RFC 7413
- extensiones TCP
