Articulo de referencia

Concha segura

El protocolo Secure Shell ( protocolo SSH ) es un protocolo de red criptográfico para operar servicios de red de forma segura sobre una red no segura . [ 1 ] Sus aplicaciones má...

El protocolo Secure Shell ( protocolo SSH ) es un protocolo de red criptográfico para operar servicios de red de forma segura sobre una red no segura . [ 1 ] Sus aplicaciones más notables son el inicio de sesión remoto y la ejecución de línea de comandos .

SSH fue diseñado para sistemas operativos tipo Unix como reemplazo de Telnet y protocolos de shell Unix remotos no seguros , como Berkeley Remote Shell (rsh) y los protocolos relacionados rlogin y rexec , que utilizan métodos de autenticación inseguros en texto plano , como contraseñas .

Dado que mecanismos como Telnet y Remote Shell están diseñados para acceder y operar computadoras remotas, enviar los tokens de autenticación (por ejemplo, nombre de usuario y contraseña ) para acceder a estas computadoras a través de una red pública de forma no segura supone un gran riesgo de que terceros obtengan la contraseña y logren el mismo nivel de acceso al sistema remoto que el usuario de Telnet. Secure Shell mitiga este riesgo mediante el uso de mecanismos de cifrado que están diseñados para ocultar el contenido de la transmisión a un observador, incluso si este tiene acceso a todo el flujo de datos . [ 2 ]

El científico informático finlandés Tatu Ylönen diseñó SSH en 1995 y proporcionó una implementación en forma de dos comandos, ssh y slogin , como reemplazos seguros para rsh y rlogin , respectivamente. El desarrollo posterior del conjunto de protocolos se llevó a cabo en varios grupos de desarrolladores, produciendo varias variantes de implementación. La especificación del protocolo distingue dos versiones principales, denominadas SSH-1 y SSH-2. La pila de software más implementada es OpenSSH , lanzada en 1999 como software de código abierto por los desarrolladores de OpenBSD . Se distribuyen implementaciones para todos los tipos de sistemas operativos de uso común, incluidos los sistemas embebidos .

Las aplicaciones SSH se basan en una arquitectura cliente-servidor , que conecta una instancia de cliente SSH con un servidor SSH . [ 3 ] SSH funciona como un conjunto de protocolos en capas que comprende tres componentes jerárquicos principales: la capa de transporte proporciona autenticación, confidencialidad e integridad del servidor; el protocolo de autenticación de usuario valida al usuario ante el servidor; y el protocolo de conexión multiplexa el túnel cifrado en múltiples canales de comunicación lógicos. [ 1 ]

Definición

SSH utiliza criptografía de clave pública para autenticar el ordenador remoto y permitirle autenticar al usuario, si es necesario. [ 3 ]

SSH puede utilizarse mediante diversas metodologías. En la forma más sencilla, ambos extremos de un canal de comunicación utilizan pares de claves públicas y privadas generados automáticamente para cifrar una conexión de red y, a continuación, utilizan una contraseña para autenticar al usuario.

Cuando el usuario genera manualmente el par de claves pública-privada, la autenticación se realiza esencialmente al crear dicho par, y la sesión puede abrirse automáticamente sin necesidad de contraseña. En este caso, la clave pública se almacena en todos los equipos que deben permitir el acceso al propietario de la clave privada correspondiente, quien la mantiene en secreto. Si bien la autenticación se basa en la clave privada, esta nunca se transmite a través de la red durante el proceso. SSH solo verifica que la persona que proporciona la clave pública también sea propietaria de la clave privada correspondiente.

En todas las versiones de SSH, es importante verificar las claves públicas desconocidas , es decir, asociarlas a identidades , antes de aceptarlas como válidas. Aceptar la clave pública de un atacante sin validación autorizará a un atacante no autorizado como usuario válido.

Autenticación: Gestión de claves OpenSSH

En sistemas tipo Unix , la lista de claves públicas autorizadas se almacena normalmente en el directorio principal del usuario que tiene permiso para iniciar sesión remotamente, en el archivo ~/.ssh/authorized_keys. [ 4 ] SSH solo respeta este archivo si nadie, excepto el propietario y el usuario root, puede escribir en él. Cuando la clave pública está presente en el extremo remoto y la clave privada correspondiente está presente en el extremo local, ya no es necesario introducir la contraseña. Sin embargo, para mayor seguridad, la clave privada puede protegerse con una frase de contraseña.

La clave privada también se puede buscar en ubicaciones estándar, y su ruta completa se puede especificar como una configuración de línea de comandos (la opción -ipara ssh). La utilidad ssh-keygen genera las claves pública y privada, siempre en pares.

Usar

SSH se utiliza normalmente para iniciar sesión en la consola o interfaz de línea de comandos (CLI) de un ordenador remoto y para ejecutar comandos en un servidor remoto. También admite mecanismos para la creación de túneles , el reenvío de puertos TCP y conexiones X11 , y puede utilizarse para transferir archivos mediante el Protocolo de Transferencia de Archivos SSH (SFTP) o el Protocolo de Copia Segura (SCP) asociados. [ 3 ]

SSH utiliza el modelo cliente-servidor . Un programa cliente SSH se usa normalmente para establecer conexiones con un demonio SSH , como sshd, que acepta conexiones remotas. Ambos están presentes en la mayoría de los sistemas operativos modernos , incluyendo macOS , la mayoría de las distribuciones de Linux , OpenBSD , FreeBSD , NetBSD , Solaris y OpenVMS . Cabe destacar que las versiones de Windows anteriores a Windows 10 versión 1709 no incluyen SSH de forma predeterminada, pero existían y existen versiones propietarias , gratuitas y de código abierto con diversos niveles de complejidad y completitud (véase Comparación de clientes SSH ). En 2018, Microsoft comenzó a portar el código fuente de OpenSSH a Windows [ 5 ] y en Windows 10 versión 1709 , ya está disponible una versión oficial de OpenSSH para Win32.

Los gestores de archivos para sistemas tipo UNIX (por ejemplo, Konqueror ) pueden usar el protocolo FISH para proporcionar una GUI de panel dividido con arrastrar y soltar. El programa de código abierto para Windows WinSCP [ 6 ] proporciona una capacidad similar de gestión de archivos (sincronización, copia, eliminación remota) usando PuTTY como back-end. Tanto WinSCP [ 7 ] como PuTTY [ 8 ] están disponibles empaquetados para ejecutarse directamente desde una unidad USB, sin necesidad de instalación en la máquina cliente. Crostini en ChromeOS viene con OpenSSH de forma predeterminada. Configurar un servidor SSH en Windows normalmente implica habilitar una función en la aplicación Configuración.

SSH es importante en la computación en la nube para resolver problemas de conectividad, evitando los problemas de seguridad que implica exponer una máquina virtual basada en la nube directamente a Internet. Un túnel SSH puede proporcionar una ruta segura a través de Internet, atravesando un cortafuegos hasta una máquina virtual. [ 9 ]

La IANA ha asignado los puertos TCP 22, UDP 22 y SCTP 22 para este protocolo. [ 10 ] La IANA había incluido el puerto TCP estándar 22 para servidores SSH como uno de los puertos conocidos ya en 2001. [ 11 ] SSH también puede ejecutarse utilizando SCTP en lugar de TCP como protocolo de capa de transporte orientado a la conexión. [ 12 ]

Desarrollo histórico

Versión 1

En 1995, Tatu Ylönen , investigador de la Universidad Tecnológica de Helsinki en Finlandia, diseñó la primera versión del protocolo (ahora llamado SSH-1 ) a raíz de un ataque de interceptación de contraseñas en la red de su universidad . [ 13 ] El objetivo de SSH era reemplazar los protocolos anteriores rlogin , telnet , FTP [ 14 ] y rsh , que no proporcionaban una autenticación sólida ni garantizaban la confidencialidad. Eligió el puerto 22 porque se encuentra entre telnetel puerto 23 y ftpel puerto 21. [ 15 ]

Ylönen publicó su implementación como software gratuito en julio de 1995, y la herramienta rápidamente ganó popularidad. Hacia finales de 1995, la base de usuarios de SSH había crecido a 20 000 usuarios en cincuenta países. [ 16 ]

En diciembre de 1995, Ylönen fundó SSH Communications Security para comercializar y desarrollar SSH. La versión original del software SSH utilizaba varios programas de software libre , como GNU libgmp , pero las versiones posteriores publicadas por SSH Communications Security evolucionaron hacia un software cada vez más propietario .

Se estimó que para el año 2000, el número de usuarios había aumentado a 2 millones. [ 17 ]

Versión 2

En 2006, tras ser discutida en un grupo de trabajo llamado "secsh", [ 18 ] se adoptó como estándar una versión revisada del protocolo SSH, SSH-2 . [ 19 ] Esta versión ofrece seguridad mejorada y nuevas características, pero no es compatible con SSH-1. Por ejemplo, introduce nuevos mecanismos de intercambio de claves como el intercambio de claves Diffie-Hellman , una verificación mejorada de la integridad de los datos mediante códigos de autenticación de mensajes como MD5 o SHA-1 , que pueden negociarse entre el cliente y el servidor. SSH-2 también agrega métodos de cifrado más robustos como AES , que eventualmente reemplazó a los cifrados más débiles y comprometidos del estándar anterior como 3DES . [ 20 ] [ 21 ] [ 19 ] Las nuevas características de SSH-2 incluyen la capacidad de ejecutar cualquier número de sesiones de shell sobre una única conexión SSH. [ 22 ] Debido a la superioridad y popularidad de SSH-2 sobre SSH-1, algunas implementaciones como libssh (v0.8.0+), [ 23 ] Lsh [ 24 ] y Dropbear [ 25 ] terminaron admitiendo solo el protocolo SSH-2.

Versión 1.99

En enero de 2006, mucho después de que se estableciera la versión 2.1, el RFC 4253 especificó que un servidor SSH que admitiera la versión 2.0, así como versiones anteriores, debería identificar su versión de protocolo como 1.99. [ 26 ] Este número de versión no refleja una revisión histórica del software, sino un método para identificar la compatibilidad con versiones anteriores . 

OSSH y OpenSSH

En 1999, los desarrolladores, deseando disponer de una versión de software libre, reiniciaron el desarrollo del software a partir de la versión 1.2.12 del programa SSH original, que fue la última publicada bajo una licencia de código abierto . [ 27 ] Esto sirvió como base de código para el software OSSH de Björn Grönvall. [ 28 ] Poco después, los desarrolladores de OpenBSD bifurcaron el código de Grönvall y crearon OpenSSH , que se incluyó en la versión 2.6 de OpenBSD. A partir de esta versión, se formó una rama de "portabilidad" para portar OpenSSH a otros sistemas operativos. [ 29 ]

A partir de 2005OpenSSH fue la implementación de SSH más popular, siendo la versión predeterminada en una gran cantidad de distribuciones de sistemas operativos. OSSH, por su parte, se ha vuelto obsoleto. [ 30 ] OpenSSH continúa recibiendo mantenimiento y admite el protocolo SSH-2, habiendo eliminado la compatibilidad con SSH-1 del código fuente en la versión 7.6 de OpenSSH.

Futuro

En 2023, el estudiante de doctorado François Michel y el profesor Olivier Bonaventure propusieron una alternativa al SSH tradicional bajo el nombre SSH3 [ 31 ] [ 32 ] [ 33 ] , cuyo código se ha publicado como código abierto. [ 34 ] Esta nueva versión implementa el protocolo de conexión SSH original, pero opera sobre HTTP/3 , que se ejecuta en QUIC . Ofrece múltiples características, tales como:

  • Establecimiento de sesión más rápido, reduciendo el número de retrasos de ida y vuelta de 5-7 a 3.
  • Alta seguridad: mientras que SSHv2 se basa en sus propios protocolos, SSH3 aprovecha TLS 1.3 , QUIC y HTTP .
  • Reenvío de puertos UDP
  • Certificados X.509
  • OpenID Connect

Sin embargo, el nombre SSH3 está en discusión, y el proyecto busca cambiarlo por uno más apropiado. [ 35 ] La discusión surge del hecho de que esta nueva implementación modifica significativamente el protocolo SSH, lo que sugiere que no debería llamarse SSH3.

Usos

Ejemplo de tunelización de una aplicación X11 a través de SSH: el usuario 'josh' se ha conectado mediante SSH desde la máquina local 'foofighter' a la máquina remota 'tengwar' para ejecutar xeyes .
Iniciar sesión en OpenWrt a través de SSH usando PuTTY ejecutándose en Windows .

SSH es un protocolo que se puede usar para muchas aplicaciones en diversas plataformas, incluyendo la mayoría de las variantes de Unix ( Linux , los sistemas BSD, incluyendo macOS de Apple , y Solaris ), así como Microsoft Windows . Algunas de las aplicaciones que se mencionan a continuación pueden requerir funciones que solo están disponibles o son compatibles con clientes o servidores SSH específicos. Por ejemplo, es posible usar el protocolo SSH para implementar una VPN , pero actualmente solo con la implementación de cliente y servidor OpenSSH .

  • Para iniciar sesión en una consola en un host remoto (reemplazando Telnet y rlogin )
  • Para ejecutar un único comando en un host remoto (reemplazando rsh )
  • Para configurar el inicio de sesión automático (sin contraseña) en un servidor remoto (por ejemplo, usando OpenSSH [ 36 ] )
  • En combinación con rsync para realizar copias de seguridad, copiar y replicar archivos de forma eficiente y segura.
  • Para reenviar un puerto
  • Para la creación de túneles (que no deben confundirse con una VPN , la cual enruta paquetes entre diferentes redes o une dos dominios de difusión en uno solo).
  • Para su uso como una VPN cifrada completa. Tenga en cuenta que solo el servidor y el cliente OpenSSH admiten esta función.
  • Para reenviar X desde un host remoto (posible a través de múltiples hosts intermedios)
  • Para navegar por la web a través de una conexión proxy cifrada con clientes SSH que admiten el protocolo SOCKS .
  • Para montar de forma segura un directorio en un servidor remoto como un sistema de archivos en un ordenador local utilizando SSHFS .
  • Para la monitorización y gestión remota automatizada de servidores mediante uno o más de los mecanismos descritos anteriormente.
  • Para su desarrollo en un dispositivo móvil o integrado que admita SSH.
  • Para proteger los protocolos de transferencia de archivos.

protocolos de transferencia de archivos

Los protocolos Secure Shell se utilizan en varios mecanismos de transferencia de archivos.

Arquitectura

Diagrama del paquete binario SSH-2.

El protocolo SSH tiene una arquitectura en capas con tres componentes separados:

  • La capa de transporte ( RFC 4253 ) suele utilizar el Protocolo de Control de Transmisión (TCP) de TCP/IP , reservando el puerto 22 como puerto de escucha del servidor. Esta capa gestiona el intercambio inicial de claves, la autenticación del servidor y configura el cifrado, la compresión y la verificación de integridad. Expone a la capa superior una interfaz para enviar y recibir paquetes de texto plano de hasta 32 768 bytes cada uno, aunque cada implementación puede permitir un tamaño mayor. La capa de transporte también gestiona el reintercambio de claves, normalmente tras la transferencia de 1 GB de datos o tras una hora, lo que ocurra primero. 
  • La capa de autenticación de usuario ( RFC 4252 ) gestiona la autenticación del cliente y proporciona un conjunto de algoritmos de autenticación. La autenticación depende del cliente : cuando se solicita una contraseña, puede ser el cliente SSH quien la solicite, no el servidor. El servidor simplemente responde a las solicitudes de autenticación del cliente. Los métodos de autenticación de usuario más utilizados incluyen los siguientes:  
    • Contraseña : método para la autenticación sencilla mediante contraseña, que incluye la posibilidad de cambiarla. No todos los programas implementan este método.
    • publickey : un método para la autenticación basada en clave pública , que generalmente admite al menos pares de claves DSA , ECDSA o RSA , y otras implementaciones también admiten certificados X.509 .
    • Interactivo por teclado ( RFC 4256 ): un método versátil en el que el servidor envía una o más indicaciones para introducir información y el cliente las muestra y devuelve las respuestas introducidas por el usuario. Se utiliza para proporcionar autenticación de contraseña de un solo uso , como S/Key o SecurID . Algunas configuraciones de OpenSSH lo utilizan cuando PAM es el proveedor de autenticación de host subyacente para proporcionar autenticación de contraseña, lo que a veces impide iniciar sesión con un cliente que solo admite el método de autenticación de contraseña simple . 
    • Los métodos de autenticación GSSAPI proporcionan un esquema extensible para realizar la autenticación SSH mediante mecanismos externos como Kerberos 5 o NTLM , ofreciendo la capacidad de inicio de sesión único para las sesiones SSH. Estos métodos suelen ser implementados por implementaciones comerciales de SSH para su uso en organizaciones, aunque OpenSSH también cuenta con una implementación GSSAPI funcional.
  • La capa de conexión ( RFC 4254 ) define el concepto de canales, solicitudes de canal y solicitudes globales, que definen los servicios SSH proporcionados. Una única conexión SSH puede multiplexarse ​​en múltiples canales lógicos simultáneamente, cada uno de los cuales transfiere datos bidireccionalmente. Las solicitudes de canal se utilizan para retransmitir datos específicos del canal fuera de banda, como el cambio de tamaño de una ventana de terminal o el código de salida de un proceso del servidor. Además, cada canal realiza su propio control de flujo utilizando el tamaño de la ventana de recepción. El cliente SSH solicita que se reenvíe un puerto del servidor mediante una solicitud global. Los tipos de canal estándar incluyen:  
    • shell para shells de terminal, SFTP y solicitudes exec (incluidas las transferencias SCP)
    • direct-tcpip para conexiones reenviadas de cliente a servidor
    • forwarded-tcpip para conexiones reenviadas de servidor a cliente
  • El registro DNS SSHFP (RFC 4255) proporciona las huellas digitales de la clave pública del host para ayudar a verificar la autenticidad del mismo.

Esta arquitectura abierta ofrece una flexibilidad considerable, permitiendo el uso de SSH para diversos fines más allá de una conexión segura. La funcionalidad de la capa de transporte es comparable a la de TLS ( Transport Layer Security ); la capa de autenticación de usuarios es altamente extensible con métodos de autenticación personalizados; y la capa de conexión permite multiplexar varias sesiones secundarias en una única conexión SSH, una característica comparable a BEEP y no disponible en TLS.

Algoritmos

Vulnerabilidades

SSH-1

En 1998, se describió una vulnerabilidad en SSH 1.5 que permitía la inserción no autorizada de contenido en un flujo SSH cifrado debido a la protección insuficiente de la integridad de los datos por parte de CRC-32 utilizado en esta versión del protocolo. [ 42 ] [ 43 ] Se introdujo una solución conocida como Detector de Ataque de Compensación SSH [ 44 ] en la mayoría de las implementaciones. Muchas de estas implementaciones actualizadas contenían una nueva vulnerabilidad de desbordamiento de enteros [ 45 ] que permitía a los atacantes ejecutar código arbitrario con los privilegios del demonio SSH, normalmente root.

En enero de 2001 se descubrió una vulnerabilidad que permitía a los atacantes modificar el último bloque de una sesión cifrada con IDEA . [ 46 ] Ese mismo mes, se descubrió otra vulnerabilidad que permitía a un servidor malicioso reenviar la autenticación de un cliente a otro servidor. [ 47 ]

Dado que SSH-1 tiene fallos de diseño inherentes que lo hacen vulnerable, ahora se considera generalmente obsoleto y debe evitarse deshabilitando explícitamente la opción de recurrir a SSH-1. La mayoría de los servidores y clientes modernos admiten SSH-2. [ 47 ]

Recuperación de texto plano CBC

En noviembre de 2008, se descubrió una vulnerabilidad teórica en todas las versiones de SSH que permitía recuperar hasta 32 bits de texto plano de un bloque de texto cifrado utilizando el modo de cifrado predeterminado estándar de entonces, CBC . [ 48 ] La solución más sencilla es usar CTR (modo contador) en lugar de CBC, ya que esto hace que SSH sea resistente al ataque. [ 48 ]

Sospecha de descifrado por parte de la NSA

El 28 de diciembre de 2014, Der Spiegel publicó información clasificada [ 49 ] filtrada por el informante Edward Snowden que sugiere que la Agencia de Seguridad Nacional podría ser capaz de descifrar parte del tráfico SSH. No se revelaron los detalles técnicos asociados con dicho proceso. Un análisis de 2017 de las herramientas de pirateo de la CIA , BothanSpy y Gyrfalcon, sugirió que el protocolo SSH no estaba comprometido. [ 50 ]

Ataque de tortuga

En 2023 se descubrió un nuevo ataque de intermediario contra la mayoría de las implementaciones actuales de ssh. Sus descubridores lo denominaron ataque Terrapin . [ 51 ] [ 52 ] Sin embargo, el riesgo se mitiga gracias a la necesidad de interceptar una sesión ssh genuina y a que el ataque está restringido en su alcance, resultando fortuitamente en su mayoría en conexiones fallidas. [ 52 ] [ 53 ] Los desarrolladores de ssh han declarado que el principal impacto del ataque es degradar las características de ofuscación de la temporización de pulsaciones de teclas de ssh. [ 53 ] La vulnerabilidad se corrigió en OpenSSH 9.6, pero requiere que tanto el cliente como el servidor se actualicen para que la corrección sea completamente efectiva.

Documentación de estándares

Las siguientes publicaciones RFC del grupo de trabajo "secsh" de la IETF documentan SSH-2 como un estándar de Internet propuesto .

  • RFC 4250 – Números asignados al protocolo Secure Shell (SSH) 
  • RFC 4251 – Arquitectura del protocolo Secure Shell (SSH) 
  • RFC 4252 – El protocolo de autenticación Secure Shell (SSH) 
  • RFC 4253 – El protocolo de capa de transporte Secure Shell (SSH) 
  • RFC 4254 – El protocolo de conexión Secure Shell (SSH) 
  • RFC 4255 – Uso de DNS para publicar de forma segura las huellas digitales de las claves de Secure Shell (SSH) 
  • RFC 4256 – Autenticación genérica de intercambio de mensajes para el protocolo Secure Shell (SSH) 
  • RFC 4335 – Extensión de interrupción del canal de sesión de Secure Shell (SSH) 
  • RFC 4344 – Modos de cifrado de la capa de transporte de Secure Shell (SSH) 
  • RFC 4345 – Modos Arcfour mejorados para el protocolo de capa de transporte Secure Shell (SSH) 

Las especificaciones del protocolo fueron actualizadas posteriormente por las siguientes publicaciones:

  • RFC 4419 – Intercambio de grupos Diffie-Hellman para el protocolo de capa de transporte Secure Shell (SSH) (marzo de 2006) 
  • RFC 4432 – Intercambio de claves RSA para el protocolo de capa de transporte Secure Shell (SSH) (marzo de 2006) 
  • RFC 4462 – Interfaz de programación de aplicaciones de servicio de seguridad genérico (GSS-API) para autenticación e intercambio de claves del protocolo Secure Shell (SSH) (mayo de 2006) 
  • RFC 4716 – Formato de archivo de clave pública de Secure Shell (SSH) (noviembre de 2006) 
  • RFC 4819 – Subsistema de clave pública de Secure Shell (marzo de 2007) 
  • RFC 5647 – Modo de contador Galois AES para el protocolo de capa de transporte Secure Shell (agosto de 2009) 
  • RFC 5656 – Integración del algoritmo de curva elíptica en la capa de transporte de Secure Shell (diciembre de 2009) 
  • RFC 6187 – Certificados X.509v3 para autenticación Secure Shell (marzo de 2011) 
  • RFC 6239 – Conjunto B de conjuntos criptográficos para Secure Shell (SSH) (mayo de 2011) 
  • RFC 6594 – Uso del algoritmo SHA-256 con RSA, algoritmo de firma digital (DSA) y DSA de curva elíptica (ECDSA) en registros de recursos SSHFP (abril de 2012) 
  • RFC 6668 – Verificación de integridad de datos SHA-2 para el protocolo de capa de transporte Secure Shell (SSH) (julio de 2012) 
  • RFC 7479 – Ed25519 Registros de recursos SSHFP (marzo de 2015) 
  • RFC 5592 – Modelo de transporte Secure Shell para el Protocolo simple de administración de red (SNMP) (junio de 2009) 
  • RFC 6242 – Uso del protocolo NETCONF sobre Secure Shell (SSH) (junio de 2011) 
  • RFC 8332 – Uso de claves RSA con SHA-256 y SHA-512 en el protocolo Secure Shell (SSH) (marzo de 2018) 
  • RFC 8709 – Ed25519 y Ed448 Algoritmos de clave pública para el protocolo Secure Shell (SSH) (febrero de 2020) 
  • draft-gerhards-syslog-transport-ssh – Mapeo de transporte SSH para SYSLOG (julio de 2006)
  • borrador-ietf-secsh-filexfer – Protocolo de transferencia de archivos SSH (julio de 2006)
  • borrador-ietf-sshm-ssh-agent - Protocolo de agente SSH (marzo de 2025)

Además, el proyecto OpenSSH incluye varias especificaciones/extensiones de protocolo de proveedores:

  • Descripción general del protocolo OpenSSH
  • Descripción general del certificado/clave de OpenSSH
  • Compatibilidad con OpenSSH FIDO/u2f

Véase también

Referencias

  1. 1 2 T. Ylonen; C. Lonvick (enero de 2006). La arquitectura del protocolo Secure Shell (SSH) . IETF Trust. doi : 10.17487/RFC4251 . RFC 4251 .
  2. "Universidad de Missouri, Ciencia y Tecnología: Telnet seguro" .
  3. 1 2 3 T. Ylonen; C. Lonvick (enero de 2006). El protocolo de autenticación Secure Shell (SSH) . IETF Trust. doi : 10.17487/RFC4252 . RFC 4252 .
  4. "Cómo configurar claves autorizadas" . Archivado del original el 10 de mayo de 2011.
  5. Win-32 OpenSSH
  6. "Página principal de WinSCP" . Archivado del original el 17 de febrero de 2014.
  7. "Página de WinSCP para PortableApps.com" . Archivado del original el 16 de febrero de 2014.
  8. "Página de PuTTY para PortableApps.com" . Archivado del original el 16 de febrero de 2014.
  9. Amies, A; Wu, CF; Wang, GC; Criveti, M (2012). "Redes en la nube" . IBM developerWorks . Archivado del original el 14 de junio de 2013.
  10. "Registro de nombres de servicio y números de puerto de protocolo de transporte" .
  11. "Registro de nombres de servicio y números de puerto de protocolo de transporte" . iana.org . Archivado del original el 4 de junio de 2001.
  12. Seggelmann, R.; Tuxen, M.; Rathgeb, EP (18–20 de julio de 2012). SSH sobre SCTP: Optimización de un protocolo multicanal mediante su adaptación a SCTP . 8.º Simposio Internacional sobre Sistemas de Comunicación, Redes y Procesamiento Digital de Señales (CSNDSP). págs. 1–6 . doi : 10.1109/CSNDSP.2012.6292659 . ISBN  978-1-4577-1473-3. S2CID 8415240 . 
  13. Tatu Ylönen. "La nueva llave maestra: cambiando las cerraduras en su entorno de red" . Archivado del original el 20 de agosto de 2017.
  14. Tatu Ylönen. "Puerto SSH" . Archivado del original el 3 de agosto de 2017.
  15. Ylönen, Tatu. "La historia del puerto SSH es 22" . www.ssh.com . Consultado el 30 de noviembre de 2023 .
  16. Barrett, Daniel J.; Silverman, Richard E. (2001). SSH, el shell seguro: la guía definitiva (1.ª ed.). Cambridge [Mass.]: O'Reilly. pág. 11. ISBN   978-0-596-00011-0.
  17. Nicholas Rosasco y David Larochelle. "Cómo y por qué las tecnologías más seguras triunfan en los mercados tradicionales: lecciones del éxito de SSH" (PDF) . Citando a Barrett y Silverman, SSH, Secure Shell: The Definitive Guide, O'Reilly & Associates (2001) . Departamento de Ciencias de la Computación, Universidad de Virginia. Archivado (PDF) del original el 25 de junio de 2006. Consultado el 19 de mayo de 2006 .
  18. IETF (Internet Engineering Task Force): rastreador de datos para secsh
  19. 1 2 RFC4252: El protocolo de autenticación Secure Shell (SSH), enero de 2006
  20. O'Reilly: Secure Shell, la guía definitiva
  21. RFC4250: El protocolo Secure Shell (SSH): Nombres asignados, enero de 2006, página 16
  22. "Preguntas frecuentes sobre SSH" . Archivado del original el 10 de octubre de 2004.
  23. "libssh" .
  24. "Una implementación GNU de los protocolos Secure Shell" . Archivado del original el 4 de febrero de 2012.
  25. "Dropbear SSH" . Archivado del original el 14 de octubre de 2011.
  26. Ylonen, T.; Lonvick, C. "Cliente antiguo, servidor nuevo" . El protocolo de capa de transporte Secure Shell (SSH) . IETF. sec. 5.1. doi : 10.17487/RFC4253 . RFC 4253 . 
  27. ssh-1.2.13 ya está disponible: la política de copia ha cambiado (ahora se requiere permiso para vender ssh comercialmente, su uso sigue estando permitido para cualquier propósito).
  28. Fuentes OSSH
  29. "OpenSSH: Historia del proyecto y créditos" . openssh.com. 22 de diciembre de 2004. Archivado del original el 24 de diciembre de 2013. Consultado el 27 de abril de 2014 .
  30. "Información de OSSH para VU#419241" . Centro de Coordinación CERT . 15 de febrero de 2006. Archivado del original el 27 de septiembre de 2007. En cualquier caso, OSSH es antiguo y obsoleto, y no recomiendo su uso.
  31. "Terminal remoto a través de conexiones HTTP/3" . datatracker.ietf.org . 1 de agosto de 2024.
  32. "Conexiones seguras mediante shell sobre HTTP/3" . www.ietf.org . 28 de febrero de 2024.
  33. Michel, François; Bonaventure, Olivier (2023-12-12). "Hacia SSH3: cómo HTTP/3 mejora los shells seguros". arXiv : 2312.08396 [ cs.NI ].
  34. «ssh3» . github.com . 2024-07-12.
  35. "Conexiones seguras mediante shell sobre HTTP/3" . datatracker.ietf.org . 28 de febrero de 2024.
  36. Sobell, Mark (2012). Guía práctica de comandos, editores y programación de shell de Linux (3.ª ed.). Upper Saddle River, NJ: Prentice Hall. págs. 702–704 . ISBN   978-0133085044.
  37. Harris, B.; Velvindron, L. (febrero de 2020). Ed25519 y Ed448 Algoritmos de clave pública para el protocolo Secure Shell (SSH) . IETF . doi : 10.17487/RFC8709 . RFC 8709 .
  38. 1 2 Stebila, D.; Green, J. (diciembre de 2009). Integración del algoritmo de curva elíptica en la capa de transporte de Secure Shell . IETF . doi : 10.17487/RFC5656 . RFC 5656. Recuperado el 12 de noviembre de 2012 .
  39. Miller, D.; Valchev, P. (3 de septiembre de 2007). El uso de UMAC en el protocolo de capa de transporte SSH . IETF . ID draft-miller-secsh-umac-00.
  40. Ylonen, T.; Lonvick, C. El protocolo de capa de transporte Secure Shell (SSH) . IETF. doi : 10.17487/RFC4253 . RFC 4253 .
  41. Igoe, K.; Solinas, J. (agosto de 2009). Modo de contador de Galois AES para el protocolo de capa de transporte Secure Shell . IETF . doi : 10.17487/RFC5647 . RFC 5647 .
  42. "Ataque de inserción SSH" . Tecnologías de seguridad básicas . Archivado del original el 8 de julio de 2011.
  43. "Nota de vulnerabilidad VU#13877: una CRC débil permite la inyección de paquetes en sesiones SSH cifradas con algoritmos de cifrado por bloques" . US CERT . Archivado del original el 10 de julio de 2010.
  44. "Vulnerabilidad en el detector de ataques de compensación CRC-32 de SSH" . SecurityFocus . Archivado del original el 25 de julio de 2008.
  45. "Nota de vulnerabilidad VU#945216: el código de detección de ataques CRC32 de SSH contiene un desbordamiento de enteros remoto" . US CERT . Archivado del original el 13 de octubre de 2005.
  46. "Nota de vulnerabilidad VU#315308: una CRC débil permite que el último bloque de un paquete SSH cifrado con IDEA se modifique sin previo aviso" . US CERT . Archivado del original el 11 de julio de 2010.
  47. 1 2 "Nota de vulnerabilidad VU#684820: SSH-1 permite que un servidor malicioso reenvíe la autenticación del cliente a otro servidor" . US CERT . Archivado del original el 1 de septiembre de 2009.
  48. 1 2 "Nota de vulnerabilidad VU#958563 - Vulnerabilidad SSH CBC" . US CERT . Archivado del original el 22/06/2011.
  49. "Ojos indiscretos: La guerra de la NSA contra la seguridad en internet" . Spiegel Online . 28 de diciembre de 2014. Archivado del original el 24 de enero de 2015.
  50. Ylonen, Tatu (3 de agosto de 2017). "BothanSpy y Gyrfalcon: análisis de herramientas de pirateo de la CIA para SSH" . ssh.com . Consultado el 15 de julio de 2018 .
  51. "Ataque de Terrapin" . terrapin-attack.com . Consultado el 20 de diciembre de 2023 .
  52. 1 2 Jones, Connor (2023-12-20). "SSH sacudido, pero no agitado por la vulnerabilidad de degradación de Terrapin" . The Register .
  53. 1 2 "Notas de la versión 9.6 de OpenSSH" . openssh.com . 18 de diciembre de 2023.

Lecturas adicionales

  • Barrett, Daniel J .; Silverman, Richard E.; Byrnes, Robert G. (2005). SSH: The Secure Shell (La guía definitiva) (2.ª  ed.). O'Reilly. ISBN 0-596-00895-3.
  • Lucas, Michael W. (2018). SSH Mastery (2.ª  ed.). Tilted Windmill Press. ISBN 9781642350029.
  • Stahnke, Michael (2005). Pro OpenSSH . Presione. ISBN 1-59059-476-2.
  • Tatu Ylönen (12 de julio de 1995). "Anuncio: Programa de inicio de sesión remoto Ssh (Secure Shell)" . comp.seguridad.unix.Anuncio original de Ssh
  • Dwivedi, Himanshu (2003). Implementación de SSH . Wiley. ISBN 978-0-471-45880-7.
  • Protocolos SSH
  • M. Joseph; J. Susoy (noviembre de 2013). Subsistema de clave pública Secure Shell de P6R . IETF . doi : 10.17487/RFC7076 . RFC 7076 .
  • Archivo tarball de código fuente SSH original