HTTP/3

Protocolos Y Transporte Security Notes Jan 6, 2025 BASH

Definition

HTTP versión 3 - La última versión de HTTP, estandarizada en 2022. Construida sobre el protocolo QUIC en lugar de TCP, proporcionando rendimiento mejorado mediante tiempo reducido de establecimiento de conexión, mejor recuperación de pérdidas y eliminación del bloqueo de cabecera de línea en la capa de transporte.

Diagrama

sequenceDiagram
    participant C as Cliente
    participant S as Servidor

    Note over C,S: HTTP/3 sobre QUIC (basado en UDP)

    rect rgb(200, 255, 220)
        Note over C,S: Conexión 0-RTT (reanudación)
        C->>S: Initial + TLS + Petición (combinado!)
        S-->>C: Datos de respuesta inmediatamente
        Note over C,S: vs TCP+TLS: 2-3 viajes ahorrados
    end

    rect rgb(200, 230, 255)
        Note over C,S: Streams Independientes (sin bloqueo de cabecera)
        par Stream A
            C->>S: Petición A
            Note right of S: Paquete perdido!
            S--xC: Respuesta A (esperando)
        and Stream B
            C->>S: Petición B
            S-->>C: Respuesta B (continúa!)
        and Stream C
            C->>S: Petición C
            S-->>C: Respuesta C (continúa!)
        end
        S-->>C: Respuesta A (retransmitida)
        Note over C,S: Paquete perdido solo afecta a su stream
    end

    rect rgb(255, 230, 200)
        Note over C,S: Migración de Conexión
        Note left of C: IP cambia (WiFi a 4G)
        C->>S: Mismo Connection ID
        S-->>C: Sesión continúa sin problemas
        Note over C,S: No requiere reconexión!
    end

Example

Las APIs móviles se benefician de HTTP/3 cuando usuarios cambian de red (WiFi a celular). La migración de conexión QUIC permite que la conexión API continúe sin problemas sin reestablecer handshakes TCP y negociación TLS.

Analogía

Como cambiar de correo tradicional a un servicio de entrega con drones. Los drones pueden tomar diferentes rutas para cada paquete (independencia de flujos), reenrutar rápidamente si hay un problema, y pueden seguirte sin problemas si cambias de casa (migración de conexión).

Code Example


# Check HTTP/3 support
curl --http3 https://api.example.com/status

# Response headers indicate HTTP/3
HTTP/3 200
alt-svc: h3=":443"; ma=86400
content-type: application/json

{"status": "ok", "protocol": "HTTP/3"}

Notas de Seguridad

SECURITY NOTES

Requisitos Principales:

  • HTTP/3 requiere TLS 1.3 con cifrado obligatorio.
  • Ten en cuenta ataques de amplificación DDoS basados en UDP.
  • Implementa validación de ID de conexión.

Mejores Prácticas:

  • Monitorea ataques específicos de QUIC como inundación de conexiones.
  • Asegura configuración adecuada de firewall para puerto UDP 443.
  • Prueba límites de seguridad de migración de conexión..

Standards & RFCs