
Protocolo shell rápido y seguro basado en HTTP/3, QUIC y TLS 1.3. Compatible con OAuth2, OpenID Connect y autenticación SSH clásica con reenvío de puertos UDP y capacidades de servidor oculto.
[!NOTE] SSH3 probablemente cambiará de nombre. Sigue siendo el Protocolo de Conexión SSH (RFC4254) ejecutándose sobre HTTP/3 Extended Connect, pero los cambios necesarios son significativos y demasiado alejados de la filosofía de las implementaciones populares de SSH como para considerar su integración. El borrador de especificación ya ha sido renombrado ("Remote Terminals over HTTP/3"), pero necesitamos algo de tiempo para encontrar un nombre permanente adecuado.
SSH3 es una revisión completa del protocolo SSH, mapeando su semántica sobre los mecanismos de HTTP. Proviene de nuestro trabajo de investigación y nosotros (investigadores) lo propusimos recientemente como un Internet-Draft (draft-michel-remote-terminal-http3-00).
En resumen, SSH3 utiliza QUIC+TLS1.3 para el establecimiento de canales seguros y los mecanismos de Autorización HTTP para la autenticación de usuarios. Entre otras mejoras, SSH3 permite lo siguiente:
[!TIP] ¿Quieres empezar rápidamente? Consulta cómo instalar SSH3. Aprenderás a configurar un servidor SSH3 y usar el cliente SSH3.
¡Más rápido en el establecimiento de sesión, no en el rendimiento! SSH3 ofrece un establecimiento de sesión significativamente más rápido que SSHv2. Establecer una nueva sesión con SSHv2 puede llevar de 5 a 7 rondas de ida y vuelta en la red, lo que el usuario puede notar fácilmente. SSH3 solo necesita 3 rondas de ida y vuelta. La latencia de pulsaciones de teclas en una sesión en ejecución no cambia.
SSH3 (arriba) VS SSHv2 (abajo) establecimiento de sesión con un ping de 100ms hacia el servidor.
Mientras que SSHv2 define sus propios protocolos para la autenticación de usuarios y el establecimiento de canales seguros, SSH3 se basa en los mecanismos robustos y probados de TLS 1.3, QUIC y HTTP. Estos protocolos ya se utilizan ampliamente para asegurar aplicaciones críticas de seguridad en Internet, como el comercio electrónico y la banca en línea.
SSH3 ya implementa los métodos comunes de autenticación basada en contraseña y clave pública (RSA y EdDSA/ed25519). También admite nuevos métodos de autenticación como OAuth 2.0 y permite iniciar sesión en tus servidores usando tus cuentas de Google/Microsoft/Github.
Si bien SSH3 muestra promesas para un establecimiento de sesión más rápido, todavía se encuentra en una etapa temprana de prueba de concepto. Como con cualquier protocolo nuevo y complejo, se requiere una revisión criptográfica experta durante un período prolongado antes de poder llegar a conclusiones de seguridad razonables.
Estamos desarrollando SSH3 como un proyecto de código abierto para facilitar la retroalimentación y el análisis de la comunidad. Sin embargo, todavía no podemos respaldar su idoneidad para sistemas de producción sin una revisión adicional por pares. ¡Colabora con nosotros si tienes la experiencia relevante!
Dado el estado actual del prototipo, aconsejamos probar SSH3 en entornos aislados o redes privadas. Ten en cuenta que hacer que servidores experimentales sean accesibles directamente desde Internet podría introducir riesgos antes de una verificación de seguridad exhaustiva.
Si bien ocultar servidores detrás de rutas secretas tiene beneficios potenciales, no anula la necesidad de un análisis riguroso de vulnerabilidades antes de entrar en producción. Estamos entusiasmados con las posibilidades futuras de SSH3, pero fomentamos un escrutinio adicional primero.
Usando SSH3, puedes evitar el estrés habitual de los ataques de escaneo y diccionario contra tu servidor SSH. De manera similar a tus documentos secretos de Google Drive, tu servidor SSH3 puede ocultarse detrás de un enlace secreto y solo responder a intentos de autenticación que hayan realizado una solicitud HTTP a este enlace específico, como el siguiente:
ssh3-server -bind 192.0.2.0:443 -url-path <mi-largo-secreto>
Reemplazando <mi-largo-secreto> por, digamos, el valor aleatorio M3MzkxYWMxMjYxMjc5YzJkODZiMTAyMjU, tu servidor SSH3 solo responderá a intentos de conexión SSH3 realizados a la URL https://192.0.2.0:443/M3MzkxYWMxMjYxMjc5YzJkODZiMTAyMjU y responderá con 404 Not Found a otras solicitudes. Los atacantes y rastreadores en Internet, por lo tanto, no pueden detectar la presencia de tu servidor SSH3. Solo verán un simple servidor web respondiendo códigos de estado 404 a cada solicitud.
TEN EN CUENTA: colocar tu servidor SSH3 detrás de una URL secreta puede reducir el impacto de los ataques de escaneo, pero nunca reemplazará y no debe reemplazar los mecanismos de autenticación clásicos. El enlace secreto solo debe usarse para evitar que tu host sea descubierto. Conocer la URL secreta no debería otorgar acceso a tu servidor. Utiliza los mecanismos de autenticación clásicos descritos anteriormente para proteger tu servidor.
SSH3 proporciona nuevas características que no podían ofrecerse con el protocolo SSHv2.