Skip to main content

Protocolo Quic

# Fecha
junio 24, 2021
# Categorías
# Siguenos

Si podemos decir algo de Google es que siempre está buscando mejorar la experiencia de navegación del usuario, por ello no solo se dedica al desarrollo de software, si no que también quiere acelerar Internet, es decir que el acceso a Internet con DSL sea cada vez más rápido, para que así disminuya el tiempo de carga de las páginas web.

Esto lo han logrado con la creación de Quic, un protocolo de red experimental basado en el protocolo UDP, esto ha traído como consecuencia que entonces se sobreentienda que todas las páginas se deberán abrir rápidamente al visitarlas, lo que le deja pocas posibilidades de supervivencia a las webs que cargan con lentitud.

Sin embargo, no todo es color rosa para el Quic, pues la codificación estándar HTTPS, que está adquiriendo cada día más importancia (debido a que ha demostrado ser un firme aliado para la protección de la privacidad de los usuarios) trae consigo una complicación, y es que incrementa el tiempo del proceso de carga a través del protocolo handshake TLS, del intercambio de certificados y de claves, y esto es una situación clave que debe resolver este novedoso protocolo iniciado por Google.

Lo antes mencionado no le quita lo prometedor al protocolo Quic, pues tiene buenas miras para el futuro de Internet. Y es que los ingenieros que han trabajado en Quic desde Google tienen como objetivo convertirlo en un nuevo estándar, que sea equivalente a las conexiones TCP, pero con menor latencia y una mejor compatibilidad con SPDY.

Para hacer algunas pruebas, en 2013 Google anunció que un pequeño grupo de usuarios de su navegador, Google Chrome, empezaría a navegar con Quic de forma experimental. Explicaron que, en principio, los usuarios no notarían ninguna diferencia, a excepción de que la navegación web irá bastante más rápida.

Expresaron que, si los resultados de Quic eran satisfactorios, se podría integrar en posteriores versiones de TCP y TLS o incluso estiman que dicho protocolo las remplace en la web.

Por todo lo mencionado en el artículo te hablaremos sobre qué es este protocolo Quic, cómo funciona, ventajas y desventajas, así como indicarte cómo puedes desactivarlo.

¿Qué es el protocolo Quic de Google?

Quic corresponde a las siglas de Quick UDP Internet Connections o Conexiones UDP rápidas en Internet, es un protocolo de transporte experimental diseñado por Jim Roskind en Google. Inicialmente implantado en 2012, y anunciado como experimento ampliado en 2013, éste posibilita el envío de paquetes de datos sencillos mediante el UDP (User Datagram Protocol o protocolo de datagramas de usuario) que no requiere conexión.

Nace para ser una alternativa a las soluciones de seguridad ya establecidas a partir de TCP, HTTP/2 y TLS/SSL, las cuales ofrecen la misma protección, pero con velocidad reducida tanto en la conexión como el transporte. Además, posibilitan las conexiones multiplexadas y estima el ancho de banda en cada dirección para evitar la congestión.

Basados en esto, Google diseñó Quic de tal forma que el mismo protocolo se encargue de regular el control de conexión. Lo que hace es que en el primer acuerdo de conexión (handshake) que se da entre el emisor y el receptor, se da el intercambio de certificados y las claves para el cifrado de los datagramas enviados, este proceso no se vuelve a aplicar en las posteriores comunicaciones, así que se reduce la latencia.

En su protocolo de cifrado aplica la versión actual TLS1.3 con velocidad optimizada. Esta versión se estandarizó en marzo del 2017, y fue preferida por encima de la solución criptográfica propia. Por su parte, si hablamos en términos de multiplexación, Quic se orienta hacia el protocolo SPDY que también fue elaborado por Google, y a su vez funcionó de modelo para HTTP/2, donde los flujos de datos se envían mediante una sola conexión cliente-servidor, esto disminuye los tiempos de carga.

Este protocolo ayuda a que los sitios web que lo usan no se filtren, pues el Quic no es un protocolo SSL estándar, por lo cual, no se filtra por MITM (el certificado no está firmado por MITM). Si quieres verificar si un sitio web usa el protocolo Quic con Google Chrome, tan solo debes instalar la la extensión «spdy http2 indicator».

¿Cómo funciona el protocolo Quic?

Para el funcionamiento de Quic, se usan datagramas UDP (User Datagram Protocol) cifrados, en base a esto soporta un conjunto de conexiones multiplexadas entre dos extremos sobre UDP, asimismo incorpora diversos mecanismos de control, fue diseñado para proveer seguridad equivalente a TLS/SSL. Todo esto lo hace con un riguroso control, que contribuye a reducir la latencia, la pérdida de paquetes, ya que establece la transmisión de estos a un ritmo uniforme y permite controlar la congestión de la red mediante la estimación del ancho de banda de cada dirección.

También usa códigos de corrección de errores a nivel del paquete, lo que reduce la necesidad de retransmitir los datos perdidos. Esto se consigue gracias a que Quic alinea los límites de bloque criptográficos con los límites del paquete, haciendo que el impacto de la pérdida del paquete sea mucho menor.

Además, Quic funciona con conexiones fijas y estables, es un aliado ideal para los teléfonos móviles porque al permitir interrumpir la comunicación, ayuda con el ahorro de batería, similar a la función que ya traen integrada los smartphones actualmente.

En pocas palabras, lo que hace Quic es mejorar el rendimiento que percibe de las aplicaciones web que van orientadas a la conexión que usan actualmente TCP, proporciona un entorno de iteración rápida de algoritmos que evite la congestión, para así establecer control en el espacio de aplicación a ambos extremos, en lugar de hacerlo en el espacio kernel, que resulta muy lento de actualizar a nivel de cliente.

Por su parte, para implementar el protocolo Quic se encuentran disponibles en forma de fuente la información que mostramos en la tabla a continuación:

ImplementaciónLenguajeDescripción
ChromiumC++-Código fuente del navegador web Chrome. -Contiene un cliente standalone de Quic. -Programas de servidor útiles para realizar pruebas. -Código fuente navegable. -Versión base también de stellite de LINE y cronet de Google.
Quic Library (mvfst)C++-mvfst (pronunciado move fast). -Implementación de cliente y servidor del protocolo IETF Quic en C++ por Facebook.
LiteSpeed QUIC Library (lsquic)C-Implementación de Quic y HTTP/3. -Usada por LiteSpeed Web Server y OpenLiteSpeed.
QuicheRust-Agnóstica de sockets. -Expone una API C para su uso en aplicaciones C/C++.
quiclyC-Implementación de Quic para el servidor web H2O.
quic-goGo-Proporciona soporte para Quic en el servidor web Caddy. -Disponible la funcionalidad del cliente.
NeqoRust-Implementación de Mozilla, planeada para integrarse en Necko. -Librería de red usada en el navegador web Firefox.
aioquicPython-Presenta una API sin E/S adecuada para incrustar tanto en clientes como en servidores.
picoquicC-Implementación mínima de Quic alineada con las especificaciones IETF.
pquicC-Implementación Quic extensible. -Incluye una máquina virtual eBPF capaz de cargar dinámicamente extensiones como plugins.
deshabilitar protocolo quic google chrome

Ventajas del protocolo Quic

Hasta ahora te hemos mencionado varios beneficios que ofrece este protocolo Quic, sin embargo, queremos mostrarte otra serie de ventajas que ofrece su implementación:

  • Rápida conectividad: a pesar de que no posee una cuenta con un cifrado TLS/SSL, la solución de Google al basarse en UDP permite que el rendimiento de Quic sea superior. En un principio el protocolo inicia la conexión con un único paquete o dos si se trata de la primera vez que establece la conexión, y en ellos transmite todos los parámetros TLS o HTTPS necesarios. Por lo general, un cliente tiene la capacidad de enviar datos directamente a un servidor sin necesidad de enviar una respuesta.
  • Permite conexiones multiplexadas: recurriendo a la identificación de la conexión de 64 bits y a diferentes “streams” para el transporte de datos en una conexión. Estas conexiones Quic no se vinculan a un puerto específico UDP, ni a una dirección IP o a un punto final determinado. Por tanto, como puedes ver, son igualmente posibles tanto la modificación de puertos, direcciones IP y las conexiones multiplexadas.
  • Adjudicación de números de secuencia únicos: a cada segmento de datos sea original o reenviado, se le asigna un número de secuencia propio. Esto es una ventaja porque da cabida a una estimación más precisa del tiempo de recorrido del paquete (RTT, Round Trip Time).
  • Corrección de errores hacia delante: gracias al sistema de corrección de errores basado en XOR, no es necesario una transmisión nueva de los datos, puesto que los paquetes que se pierden pueden reconstruirse en cualquier momento con ayuda de paquetes FEC (Forward Error Correction) y copias de seguridad de los paquetes originales para un grupo de datos. Sin embargo, esto no funciona si faltan varios paquetes de un grupo de datos.
  • Control de sobrecargas (packet pacing): Quic contrarresta los picos de carga asociados a los procesos de pérdida de paquetes y disminución de la ventana de visualización, con ayuda del packet pacing, que se encarga de que se autolimite la tasa de transferencia para así evitar las sobrecargas en conexiones con un ancho de banda reducido.
  • Autenticación y codificación: los desarrolladores de Quic se han ocupado de uno de los problemas prioritarios, el encabezado de paquetes enviados. Con este protocolo hace que los paquetes siempre sean autentificados y por lo general cifrados, incluyendo la carga útil o payload. Por si fuera poco, como cuentan con autentificación por parte del destinatario, las partes del encabezado que no estén cifradas también estarán protegidas de la inyección y manipulación de paquetes.
  • Independencia del hardware: este protocolo Quic es independiente del sistema, ya que solo es necesario en las capas de aplicación. Debido a esto inicialmente son las empresas de software las que integran el protocolo sin depender de los fabricantes de hardware. Por ahora los que disponen de implementaciones para Quic son principalmente aplicaciones de Google como los servidores de dicha empresa, Chromium o Chrome.

Sin embargo, gracias a ciertos servidores hay aplicaciones de terceros que también permiten conexiones a través de Quic, como con el navegador Opera, el software de servidores Caddy, los productos de balanceo de carga y de servidores web de LiteSpeed Technologies.

Desventajas en el uso del protocolo Quic

A pesar de que el protocolo ha tenido ajustes en los estándares generales, y ha pasado de estar fuertemente adaptado a Google a ser un protocolo de red general que va ganando relevancia, aún presenta ciertas desventajas que te vamos a presentar a continuación:

  • Proceso de optimización no concluido: el protocolo aún presenta ciertos problemas en los cuales el equipo de Quic sigue trabajando, pero para solventar deben encontrar las soluciones adecuadas.
  • Encabezados del paquete contienen menos información con texto claro: esto es por la autenticación y el cifrado que se realiza para un transporte de datos seguro, que hace que se compliquen tareas como la solución de problemas, la regulación del tráfico o la gestión de redes en conexiones Quic. Esto afecta a operadores de red y a fabricantes de firewalls y de otras cajas intermedias, ya que les dificulta garantizar la calidad de los servicios que ofrecen.
  • Peor tasa de transferencia: esto se debe al control automático de las sobrecargas en conexiones que tengan un amplio ancho de banda.

¿Cómo deshabilitar el protocolo Quic en Google Chrome?

Si teniendo el protocolo Quic activo, presenta algún problema con una funcionabilidad, como el no funcionamiento de la Protección web y el Control parental/Control web o que el protocolo revierta automáticamente hacia TCP en base a la conectividad, si encuentra usuarios con UDP bloqueada; puede que entonces lo mejor sea deshabilitar el Quic manualmente en Google Chrome, para hacerlo solo debes seguir los pasos que te señalamos aquí:

  1. Abre Google Chrome, ve al campo de dirección URL, ingresa el siguiente comando: “chrome://flags”.
  2. Escribe “Quic” dentro del campo “Search flags” para filtrar la lista de marcas.
  3. Luego selecciona “Disabled” dentro del menú desplegable próximo a «Experimental Quic protocol».
  4. Utilice una regla de cortafuego de endpoint.
  5. Reinicia Google Chrome para que los cambios surtan efecto.

Si no sabes cómo crear una Regla de cortafuego de aplicación para bloquear Chrome sigue los pasos:

  1. Abre la política que ejecuten actualmente las máquinas afectadas.
  2. Añade una Regla de cortafuego de aplicación para chrome.exe.
  3. Configura la Regla de cortafuego de la aplicación de la siguiente manera:
    1. Añade un nombre de regla y la ruta de aplicación para chrome.exe.
    1. En Ajustes, marca la casilla de verificación cualquiera para Dirección local.
    1. Marca la casilla de verificación cualquiera para dirección remota y añade el puerto 443 en Puerto o rango de puertos.
    1. Selecciona UDP para Protocolo, ambas para dirección y cualquiera para IP.
    1. En Red, marca las casillas de verificación Hogar/Oficina y Público. Para Permiso, selecciona Denegar.
    1. Haz clic en el botón Guardar.
  4. Aplica la política modificada en los endpoints.
Comunicaciones