SSH sobre HTTPS

Ejecutar SSH sobre HTTPS está emergiendo como una forma práctica de eludir redes que bloquean la mayoría de los puertos y protocolos salientes, pero aún permiten tráfico web en 80/443. Los comentaristas comparan enfoques como poner SSH directamente en el puerto 443, tunelizar mediante HTTP CONNECT, WebSockets o VPNs que imitan HTTPS, y usar herramientas como sslh, chisel o Cloudflare Tunnel, sopesando la facilidad de configuración frente a la resistencia a la inspección profunda de paquetes. El hilo también aborda preocupaciones más amplias sobre la fosilización de protocolos, donde middleboxes cada vez más agresivos empujan a todo a ir sobre HTTPS, y sobre las compensaciones de usabilidad y privacidad de métodos alternativos de autenticación como los certificados TLS de cliente y las passkeys.

SSH sobre HTTPS frente a simplemente mover puertos

  • Varios comentarios señalan que simplemente ejecutar SSH en el puerto 80/443 a menudo elude cortafuegos básicos, y muchos lo hacen en la práctica.
  • Otros subrayan que las redes modernas usan inspección profunda de paquetes (DPI), así que SSH en 80/443 es trivial de detectar por el banner de SSH y bloquear.
  • El atractivo de SSH sobre HTTPS es la resistencia a DPI y compartir el puerto 443 con el tráfico web normal, en lugar de dedicar una IP/puerto a SSH.

Políticas de cortafuegos y “seguridad”

  • Muchas redes bloquean todos los puertos salientes excepto 80/443, a veces también haciendo MITM de HTTPS con CAs personalizadas.
  • Las razones que se dan son “mejores prácticas de seguridad” genéricas, a menudo sin modelos de amenaza claros.
  • Esto lleva a los usuarios a tunelizar todo sobre HTTPS (SSH, VPN, otros protocolos) para recuperar la funcionalidad completa de Internet.

Identidad del cliente y certificados de cliente HTTPS

  • Algunos desearían una identidad nativa de estilo “HTTP sobre SSH” (basada en clave pública) en los navegadores.
  • Las passkeys se ven como algo de capa de aplicación y no equivalente.
  • Los certificados de cliente HTTPS se plantean como candidata, pero tienen problemas:
    • Mala UX: ventanas emergentes frecuentes, cambio de cuentas incómodo y errores opacos de la capa TLS.
    • Riesgo de fingerprinting: la mera presencia de certificados puede abusarse para rastrear.
    • Particularidades de plataforma: restricciones del llavero de macOS, instalación de CA a nivel de sistema, límites de certificados de 1 año.

Herramientas y variantes de tunelización

  • Se mencionan muchas herramientas y patrones existentes:
    • Demultiplexar SSH/HTTPS en el mismo puerto: sslh, httpssh, HAProxy con SNI/ALPN o inspección heurística.
    • Herramientas de HTTP CONNECT / túnel HTTP: corkscrew, httptunnel; SSH sobre WebSockets mediante parches personalizados de socat o websocat.
    • Soluciones tipo VPN sobre HTTPS/TLS: SSL VPNs (p. ej., AnyConnect/OpenConnect), SSTP, WireGuard en puertos “permitidos”, Cloudflare Tunnel, Tailscale, chisel, Ligolo-ng.
    • Consolas basadas en navegador: shellinabox para entornos donde no hay clientes SSH disponibles.

HTTPS como sustrato universal

  • Varios comentarios ven una tendencia a ejecutar protocolos arbitrarios sobre HTTPS (y QUIC/HTTP3) debido a la discriminación de middleboxes.
  • Se citan gRPC y RPC sobre HTTP2 similares como ejemplos de “HTTP como el nuevo TCP”.
  • Surgen preocupaciones sobre la centralización de protocolos y proveedores (todo sobre 443, a menudo detrás de grandes CDNs), pero otros señalan que esto dificulta bloquear contenido específico.