Se presenta SSH3, una variante del protocolo SSH que utiliza HTTP/3

Está disponible la primera versión oficial de la implementación experimental de un servidor y cliente para el protocolo SSH3, diseñado como una extensión del protocolo HTTP/3, que utiliza QUIC (basado en UDP) y TLS 1.3 para establecer un canal de comunicación seguro y mecanismos HTTP para la autenticación de usuarios. El proyecto es desarrollado por François Michel, estudiante de posgrado en la Universidad Católica de Lovaina (Bélgica), con la participación de Olivier Bonaventure, profesor de la misma universidad, conocido por el desarrollo del subsistema Multipath TCP y el código de segmentación de enrutamiento IPv6 para el núcleo de Linux, así como coautor de 10 RFC y borradores de más de 60 especificaciones de red. El código de la implementación de referencia del cliente y servidor está escrito en Go y se distribuye bajo la licencia Apache 2.0.

El desarrollo de SSH3 fue el resultado de una revisión completa del protocolo SSH, llevada a cabo por un grupo separado de investigadores de manera independiente a OpenSSH y otros proyectos que desarrollan implementaciones del clásico protocolo SSH. En SSH3, la semántica del clásico protocolo SSH se implementa a través de mecanismos HTTP, lo que permite implementar algunas capacidades adicionales y ocultar la actividad relacionada con SSH entre otro tráfico.

Al usar SSH3, el servidor es indistinguible de un servidor HTTP y acepta solicitudes en el puerto 443 (HTTPS), y el tráfico de SSH3 se mezcla con el tráfico HTTP típico, lo que dificulta la realización de ataques relacionados con el escaneo de puertos y la identificación de servidores SSH para fuerza bruta. Para complicar aún más la realización de ataques en servidores SSH3, además de conocer la información sobre la existencia de un servidor en una dirección IP dada, se puede establecer un identificador secreto del servidor SSH3. Sin el uso del identificador correcto, el servidor procesará las respuestas como un servidor HTTPS normal y no revelará la posibilidad de conexión por SSH3. Por ejemplo, al establecer el identificador «e6ae772cbdaafd6918865cc2ce449dae», se puede conectar al servidor solo a través de la URL «https://192.0.2.0:443/e6ae772cbdaafd6918865cc2ce449dae», y si el identificador se proporciona incorrectamente, el servidor devolverá un error estándar «404».

De la funcionalidad avanzada de SSH3 se menciona la posibilidad de utilizar certificados X.509 y métodos OAuth 2.0/OpenID Connect para la autenticación, además de los métodos SSH clásicos; la capacidad de redirigir puertos UDP a través de un túnel SSH, además de la posibilidad de redirigir puertos TCP (por ejemplo, para la transferencia de QUIC, DNS y RTP); el uso de funciones avanzadas del protocolo QUIC, como la migración de conexiones sin interrumpir la conexión y el establecimiento de conexiones multipath para paralelizar el tráfico a través de múltiples rutas.

Se destaca una reducción significativa en el tiempo de establecimiento de conexión al utilizar SSH3. Al conectarse al servidor SSH3, solo se requieren 3 iteraciones de red (Round Trip), mientras que para SSHv2 se realizan de 5 a 7 iteraciones de intercambio de paquetes. El tiempo de reacción al teclado para las sesiones ya establecidas en SSH3 y SSHv2 es similar.

Se presenta SSH3, una variante del protocolo SSH que utiliza HTTP/3

Para el cifrado del canal de comunicación en SSH3 se emplea el protocolo TLS 1.3, y para la autenticación se pueden utilizar métodos clásicos basados en contraseñas y llaves públicas (RSA y EdDSA/ed25519). Además, en SSH3 se pueden aplicar métodos basados en el protocolo OAuth 2.0, que permiten delegar la autenticación a proveedores externos, por ejemplo, para facilitar el inicio de sesión con verificación a través de cuentas en servicios como Google, Microsoft y GitHub. Para la conexión a servidores mediante llaves, además de las llaves SSH, se pueden utilizar certificados X.509, que se emplean para HTTPS.

La implementación publicada del cliente y servidor SSH3 soporta muchas funcionalidades básicas de OpenSSH, entre las cuales se encuentran:

  • Soporte para el archivo ~/.ssh/authorized_keys con configuraciones de claves en servidor.
  • Posibilidad de utilizar el archivo de configuración ~/.ssh/config en el lado del cliente. Actualmente se admiten los parámetros Hostname, User, Port e IdentityFile, mientras que los demás son ignorados.
  • Soporte para la autenticación de conexión al servidor basada en certificados.
  • Soporte para el mecanismo known_hosts (en situaciones donde no se utilizan certificados X.509).
  • Soporte para el funcionamiento del cliente con OpenSSH Agent (ssh-agent) y uso automático del agente para autenticación con llaves públicas.
  • Soporte para la función de redirección a través del agente SSH para usar claves locales en un servidor externo.
  • Redirección TCP de puertos.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster