- Puntos Clave
- ¿Qué es SSH?
- ¿Qué son las claves SSH?
- ¿Cómo funciona SSH?
- Métodos de autenticación SSH
- Certificados SSH frente a certificados SSL/TLS: ¿CuÔl es la diferencia?
- Riesgos potenciales de la gestión de claves SSH
- ReenvĆo de agente SSH
- Buenas prÔcticas para la gestión de claves SSH
- Cómo ayuda la consultorĆa de cifrado
- Preguntas frecuentes
- Cree un programa completo de gestión de claves SSH.
La gestión de claves SSH consiste en controlar de forma segura las claves SSH a lo largo de todo su ciclo de vida: generación, distribución, almacenamiento, rotación y revocación. Las claves SSH autentican el acceso a sistemas remotos mediante un par de claves pública/privada. Dado que otorgan un acceso potente y no caducan, una buena gestión de las claves es fundamental para evitar la proliferación de claves, las vulneraciones de seguridad y el acceso no autorizado.
La gestión de claves SSH es la disciplina que se encarga de controlar las claves SSH a lo largo de su ciclo de vida, desde su generación y distribución hasta su almacenamiento, rotación y revocación, para todos los usuarios y sistemas de una organización. Las claves SSH autentican el acceso a sistemas remotos mediante un par de claves pública/privada en lugar de contraseñas. Debido a su gran potencia y a que no caducan automÔticamente, una gestión rigurosa es fundamental para evitar que se conviertan en un grave riesgo de seguridad.
Puntos Clave
- SSH (Secure Shell) es un protocolo criptogrĆ”fico para el acceso seguro a sistemas remotos a travĆ©s de una red no confiable, utilizando criptografĆa de clave pĆŗblica.
- Las claves SSH autentican a los usuarios mediante un par de claves pública/privada, un método mucho mÔs seguro que las contraseñas e inmune al phishing y a los ataques de fuerza bruta.
- La gestión de claves SSH abarca todo el ciclo de vida: descubrimiento, generación, almacenamiento, rotación y revocación, regidos por polĆticas.
- Entre los principales riesgos se incluyen el robo de claves privadas, la proliferación de claves, la falta de caducidad, las contraseƱas dĆ©biles, la mala generación de claves y las deficiencias en la auditorĆa.
- Buenas prĆ”cticas: descubrir y consolidar claves, aplicar polĆticas (RBAC, agrupamiento), generar claves seguras (ED25519 o RSA 2048/4096), rotarlas periódicamente y realizar un seguimiento continuo.
¿Qué es SSH?
Secure Shell (SSH) es un protocolo criptogrĆ”fico que permite acceder de forma segura a los servicios de red a travĆ©s de un canal de comunicación no seguro. Se utiliza principalmente para el intercambio seguro de datos, el inicio de sesión y la administración remota entre dos mĆ”quinas. SSH utiliza criptografĆa de clave pĆŗblica para proporcionar autenticación mutua y segura entre clientes y servidores en redes no confiables, y viene integrado de forma predeterminada en sistemas operativos como Linux, Unix y macOS.
Windows ahora admite SSH de forma nativa a través de PowerShell y OpenSSH, por lo que ya no se requieren utilidades de terceros como PuTTY: puede crear conexiones SSH directamente desde la Terminal de Windows o PowerShell. El proyecto nativo OpenSSH cubre todas las funcionalidades de PuTTY sin necesidad de instalación.
CaracterĆsticas principales de SSH
- Encriptación: SSH cifra los datos en trÔnsito, por lo que incluso si son interceptados, terceros no autorizados no pueden leerlos. Fuerte cifrado Los algoritmos protegen la información confidencial, como las credenciales y los comandos.
- Autenticación: SSH se autentica mediante clave pĆŗblica. criptografĆa, lo cual es mucho mĆ”s seguro que las contraseƱas. Solo un usuario con la clave privada correcta puede establecer una conexión, lo que protege contra el acceso no autorizado y los ataques de fuerza bruta.
- Integridad: SSH utiliza funciones hash criptogrÔficas para verificar que los datos no hayan sido manipulados durante la transmisión, protegiéndose asà contra la manipulación y los ataques de intermediario.
¿Qué son las claves SSH?
Una clave SSH es una clave criptogrÔfica que se utiliza para autenticar la comunicación segura entre sistemas mediante el protocolo SSH. Las claves SSH son una alternativa altamente segura a la autenticación basada en contraseñas, ya que utilizan un par de claves pública/privada que elimina el riesgo de que las credenciales sean robadas mediante phishing o fuerza bruta. La clave privada permanece de forma segura en el sistema del usuario, o, de forma aún mÔs segura, en un módulo de seguridad de hardware ( HSM ), mientras que la clave pública se comparte con el servidor.
- Llave pública: EstÔ disponible públicamente en el servidor; no necesita ser secreta. En la gestión de claves SSH, la clave pública se utiliza para verificar la identidad del cliente ante el servidor.
- Llave privada: Se mantiene en secreto y solo su propietario tiene acceso a ella; se almacena en el dispositivo del usuario o en un módulo de seguridad de hardware (HSM). El usuario verifica su identidad con ella al iniciar una conexión.
¿Cómo funciona SSH?
SSH combina criptografĆa de clave pĆŗblica, cifrado y autenticación para proteger la confidencialidad e integridad de los datos entre sistemas. La conexión se establece en los siguientes pasos:
- Iniciando la conexión: El cliente solicita una conexión con el servidor a través del puerto TCP 22 (el puerto SSH predeterminado, que se puede cambiar a un puerto no estÔndar para mayor seguridad).
- El servidor envĆa su clave pĆŗblica y los algoritmos compatibles: El servidor devuelve su clave pĆŗblica de host (para verificar su identidad e iniciar el cifrado) y una lista de algoritmos de cifrado y hash compatibles; se elige un conjunto compartido para la sesión.
- El cliente verifica el servidor: El cliente compara la clave pĆŗblica del servidor con su archivo de hosts conocidos. Si coincide, se considera que el servidor es de confianza; de lo contrario, se le pregunta al usuario si desea confiar en la nueva clave y almacenarla.
- Intercambio de claves: El cliente y el servidor establecen una clave de sesión compartida mediante un intercambio de claves como Diffie-Hellman o el mĆ”s eficiente Diffie-Hellman de curva elĆptica (ECDH), sin transmitir nunca la clave en sĆ.
- Canal seguro establecido: Ambas partes utilizan la clave de sesión compartida para cifrado simétrico, que cifra y descifra todos los mensajes durante la sesión.
- Autenticación del cliente: El cliente acredita su identidad, preferiblemente mediante un par de claves SSH (la clave privada almacenada localmente o en un HSM, y la clave pública correspondiente ya presente en el servidor) en lugar de una contraseña.
- Sesión establecida: Ahora el cliente puede ejecutar comandos, transferir archivos o crear tĆŗneles cifrados (reenvĆo de puertos) a travĆ©s de la conexión.
- Se ha mantenido la integridad de la sesión: Cada paquete lleva un Código de Autenticación de Mensaje (MAC), generado con un algoritmo de hash como SHA-256 o SHA-512 y una clave secreta compartida, para que el receptor pueda detectar cualquier manipulación.
- Terminación de sesión: Cuando finaliza la sesión, la clave de sesión compartida se descarta, por lo que no es posible ninguna otra comunicación sin establecer una nueva conexión.
Métodos de autenticación SSH
SSH admite dos mƩtodos principales para verificar la identidad de un cliente antes de concederle acceso.
Autenticación basada en contraseña
El método mÔs sencillo consiste en que el usuario introduce un nombre de usuario y una contraseña a través del túnel cifrado, y se concede el acceso si coinciden. Es fÔcil de configurar y no requiere software adicional ni gestión de claves, pero es la opción menos segura.
- Ventajas: FÔcil de configurar y usar; no requiere software adicional ni gestión de claves, lo que lo hace accesible y de bajo coste.
- Desventajas: Es vulnerable a contraseñas débiles o reutilizadas y a ataques de fuerza bruta; requiere cambios frecuentes de contraseña que frustran a los usuarios; es susceptible al phishing, al robo de credenciales y a los registradores de pulsaciones de teclas; y depende completamente de que el canal de transmisión se mantenga seguro.
autenticación de par de claves SSH
El mĆ©todo mĆ”s seguro y utilizado se basa en un par de claves criptogrĆ”ficas. El proceso es el siguiente: el cliente inicia la conexión; el servidor encuentra la clave pĆŗblica correspondiente en su archivo authorized_keys, cifra un desafĆo con ella y lo envĆa; el cliente descifra el desafĆo con su clave privada y lo devuelve; el servidor verifica la respuesta y concede el acceso si coincide.
- Ventajas: Seguridad mucho mayor (las claves privadas son extremadamente difĆciles de descifrar por fuerza bruta); no se transmiten contraseƱas a travĆ©s de la red; y resulta conveniente para la automatización mediante scripts y tareas programadas (cron jobs) una vez configuradas las claves.
- Desventajas: Si una clave privada se ve comprometida, un atacante obtiene el acceso del propietario, por lo que las claves deben estar cifradas y almacenadas de forma segura; y la gestión de muchos pares de claves (propagación de claves) requiere un proceso claro para su distribución, rotación y revocación.
Certificados SSH frente a certificados SSL/TLS: ¿CuÔl es la diferencia?
Tanto SSH como SSL/TLS son protocolos criptogrÔficos que protegen la comunicación en red, pero cumplen funciones diferentes: SSH protege el acceso remoto al sistema entre dos mÔquinas, mientras que SSL/TLS protege la comunicación entre un navegador web y un servidor web.
| Elemento | SSH | SSL / TLS |
| Propósito | Acceso seguro al sistema remoto y transferencia de archivos | Comunicación web segura e intercambio de datos |
| Autenticación | Autenticación de clave pública (cliente y servidor) | Basado en certificados (servidor, opcionalmente cliente) |
| Cifrado | Cifrado simƩtrico despuƩs del intercambio de claves | Cifrado simƩtrico despuƩs del intercambio de claves basado en certificados |
| Gestión de claves | Claves SSH autogeneradas, almacenadas localmente o en un HSM. | Certificados emitidos por entidades de confianza. CA |
| Casos de uso | Ejecución remota de comandos, transferencia de archivos, redireccionamiento de puertos. | Protección de sitios web, correo electrónico y API |
| Principales amenazas | Robo o vulneración de claves | Autoridades de certificación maliciosas, certificados fraudulentos, ataques de intermediario (MITM) |
Riesgos potenciales de la gestión de claves SSH
- Robo de claves privadas: Si un atacante obtiene una clave privada, puede suplantar la identidad de su propietario y acceder al sistema.
- Expansión clave: Con el paso de los años, las claves se multiplican hasta que resulta imposible rastrearlas todas, y las claves olvidadas se convierten en vectores de ataque.
- Falta de fecha de caducidad: Las claves SSH no caducan como los certificados TLS, por lo que las claves antiguas permanecen, no se rotan y rara vez se eliminan.
- Ataques basados āāen SSH: Los algoritmos dĆ©biles o las claves privadas desprotegidas aumentan el riesgo de ataque; utilice siempre algoritmos y contraseƱas seguras.
- Contraseña débil o inexistente: Una clave privada sin contraseña puede utilizarse inmediatamente si es robada; una contraseña añade una capa fundamental de protección.
- Generación de claves deficiente: Los algoritmos obsoletos o las longitudes de clave cortas debilitan las claves. Evite DSA (1024 bits); utilice ED25519 o RSA con una longitud adecuada.
- Falta de auditorĆa y supervisión: Sin supervisión, el uso indebido de claves pasa desapercibido, las claves huĆ©rfanas de antiguos empleados permanecen activas y no hay rendición de cuentas sobre quiĆ©n usa quĆ© clave.
ReenvĆo de agente SSH
Un agente SSH almacena tu clave privada descifrada en memoria, de modo que la desbloqueas una sola vez en lugar de introducir tu contraseƱa cada vez. El reenvĆo del agente SSH amplĆa esta funcionalidad, permitiĆ©ndote autenticarte en una cadena de servidores usando tu clave privada local sin copiarla a cada uno: las solicitudes de autenticación de servidores remotos se reenvĆan a tu agente local. Por ejemplo, si un servidor remoto necesita descargar código de GitHub, el reenvĆo del agente permite que tu mĆ”quina local responda al desafĆo de autenticación de GitHub, de modo que la clave nunca sale de tu mĆ”quina.
Es prƔctico, pero conlleva riesgos reales:
- Secuestro de agente: Si el primer servidor remoto de la cadena se ve comprometido, un atacante puede secuestrar el agente reenviado para autenticarse en otros servidores, sin necesidad de tener la clave privada.
- Servidores no confiables: El reenvĆo expone las credenciales de tu agente al servidor remoto, por lo que un atacante que controle un servidor no confiable podrĆa explotarlas. ReenvĆa Ćŗnicamente a servidores de confianza.
Buenas prÔcticas para la gestión de claves SSH
1. Descubrimiento y consolidación
Comience por identificar todas las claves y su ubicación, vincularlas a su usuario y servidor, realizar un seguimiento de su uso y dar de baja las claves de los empleados que ya no trabajan en la empresa. Consolidar las claves en un repositorio central reduce la superficie de ataque y evita la existencia de claves aisladas y la proliferación de sistemas.
- Escaneo de teclas correcto: Busca claves SSH en todos los lugares donde puedan existir: portÔtiles y ordenadores de sobremesa de desarrolladores, servidores locales, instancias en la nube y mÔquinas virtuales de automatización. Cada uno de ellos es un posible repositorio de claves.
- Almacenamiento adecuado de las llaves: Mantenga las claves descubiertas en un inventario centralizado y actualizado, una única fuente de información que muestre a quién pertenece cada clave, a qué dan acceso y cómo se utilizan, lo que facilita enormemente la rotación y la revocación.
- Automatización en el descubrimiento: El descubrimiento automatizado analiza sistemÔticamente todos los dispositivos, servidores y entornos en la nube, evitando las deficiencias y los errores de las búsquedas manuales.
2. Creación y aplicación de polĆticas
Defina polĆticas que regulen quiĆ©n puede crear claves, cómo se crean y almacenan las claves, cuĆ”nto tiempo duran antes de rotarse, cuĆ”ndo se eliminan y el acceso mĆ”ximo que debe tener cada clave.
- Agrupación de claves similares: Agrupe las claves por función (administrativa, de aplicación, de desarrollador), de modo que las polĆticas y los controles de acceso se correspondan claramente con cada grupo.
- Implementación de RBAC: El control de acceso basado en roles otorga a cada usuario únicamente el acceso que requiere su rol, lo que reduce el acceso no autorizado y vincula las claves a los roles organizativos.
- Creación de polĆticas personalizadas: Defina estĆ”ndares para la generación de claves (longitud y algoritmos), rotación periódica y acceso con lĆmite de tiempo que se revoque automĆ”ticamente despuĆ©s de un perĆodo determinado.
3. Generar claves seguras
Elija un algoritmo robusto y una longitud de clave adecuada. Se recomiendan encarecidamente ED25519 (256 bits) y RSA (2048 o 4096 bits) por su resistencia a los ataques de fuerza bruta. Evite algoritmos obsoletos y vulnerables como DSA.
4. Rotación de teclas
Tras un periodo de uso, rote las claves y sustituya el par completo. La rotación limita el tiempo que un atacante tiene para hacer un mal uso de una clave comprometida y mantiene el acceso bajo control.
- Regularidad de rotación: Establezca un calendario periódico (por ejemplo, cada 30 o 45 dĆas) para que las claves antiguas o potencialmente vulnerables no permanezcan en uso.
- Automatización en rotación: La automatización de la rotación elimina los errores de la sustitución manual a gran escala, creando nuevas claves, actualizando los repositorios y desplegĆ”ndolas en los sistemas correctos con una mĆnima intervención humana, al tiempo que mantiene la precisión del inventario central.
5. Seguimiento y auditorĆa continuos
Supervise y audite continuamente las claves para confirmar que se rotan y eliminan a tiempo, eliminando asà la proliferación de claves y las claves aisladas.
- Habilitar el registro SSH: Los registros detallados permiten a los administradores realizar un seguimiento de toda la actividad SSH y detectar rÔpidamente accesos anómalos o no autorizados.
- Alertas en tiempo real: Introduzca los registros SSH en un SIEM para correlacionar la actividad en tiempo real y recibir alertas sobre patrones sospechosos, como horarios de inicio de sesión inusuales o intentos repetidos.
- AuditorĆa del acceso SSH: Revise periódicamente el acceso para asegurarse de que solo permanezcan las claves activas y autorizadas, eliminando las claves que queden sin cobertura debido a bajas o cambios de funciones.
SSH y la transición post-cuÔntica
SSH depende de la criptografĆa de clave pĆŗblica para el intercambio de claves y la autenticación, el tipo de criptografĆa que una futura computadora cuĆ”ntica podrĆa romper. El ecosistema SSH ya se estĆ” adaptando: las versiones recientes de OpenSSH utilizan por defecto el intercambio de claves hĆbrido post-cuĆ”ntico, que combina un intercambio clĆ”sico de curva elĆptica con la NIST-estandarizado ML-KEM (FIPS 203), por lo que una sesión permanece segura mientras cualquiera de los componentes se mantenga. Esto importa ahora debido a cosechar-ahora-descifrar-luego ataques, donde el trĆ”fico capturado hoy se descifra una vez que la computación cuĆ”ntica madure. Las claves SSH bien administradas facilitan enormemente esta transición: una organización que ya descubre, inventarĆa y rota sus claves puede adoptar algoritmos post-cuĆ”nticos sin problemas. ML-KEM es el algoritmo relevante para SSH en este caso, ya que protege el intercambio de claves.
Cómo ayuda la consultorĆa de cifrado
Los Servicios de Asesoramiento en Cifrado de Encryption Consulting ofrecen soporte para la creación de un programa eficaz de gestión de claves SSH, incluyendo descubrimiento, polĆticas, generación de claves robustas, rotación y monitorización. Realizan evaluaciones y ofrecen formación sobre SSH y gestión de claves en AWS, Azure y Google Cloud, alineĆ”ndose con los estĆ”ndares del sector. Para automatizar el ciclo de vida de las claves SSH a gran escala, SSH Secure de EC gestiona el descubrimiento, la rotación y la aplicación de polĆticas. Cuenta con el respaldo de las prĆ”cticas certificadas ISO/IEC 27001:2022 y SOC 2.
Preguntas frecuentes
¿Qué es la gestión de claves SSH?
La gestión de claves SSH consiste en controlar de forma segura las claves SSH a lo largo de todo su ciclo de vida, desde su generación y distribución hasta su almacenamiento, rotación y revocación, para cada usuario y sistema de una organización. Las claves SSH autentican el acceso a sistemas remotos mediante un par de claves pública/privada en lugar de contraseñas. Dado que otorgan un acceso potente y no caducan automÔticamente, una gestión rigurosa previene la proliferación de claves, las vulneraciones de seguridad y el acceso no autorizado, y garantiza el cumplimiento normativo de la organización.
¿Cómo autentican las claves SSH a un usuario?
La autenticación mediante clave SSH utiliza un par de claves pĆŗblica/privada. La clave pĆŗblica se encuentra en el servidor, en un archivo llamado authorized_keys, mientras que la clave privada permanece en posesión del usuario, ya sea en su dispositivo o en un módulo de seguridad de hardware (HSM). Durante el inicio de sesión, el servidor cifra un desafĆo con la clave pĆŗblica; solo la clave privada correspondiente puede descifrarlo y responder correctamente, lo que verifica la identidad del usuario. No se transmite ninguna contraseƱa, lo que hace que el mĆ©todo sea resistente a ataques de phishing y de fuerza bruta.
¿CuÔl es la diferencia entre SSH y SSL/TLS?
SSH y SSL/TLS son protocolos criptogrĆ”ficos, pero cumplen funciones diferentes. SSH protege el acceso remoto entre dos mĆ”quinas para tareas como la ejecución remota de comandos, la transferencia de archivos y el reenvĆo de puertos, y utiliza pares de claves autogeneradas. SSL/TLS protege la comunicación entre un navegador web y un servidor para sitios web, correo electrónico y API, y se basa en certificados emitidos por autoridades de certificación de confianza. La principal amenaza para SSH es el robo de claves; SSL/TLS se enfrenta a autoridades de certificación fraudulentas y certificados falsos.
¿CuÔles son las mejores prÔcticas para la gestión de claves SSH?
Las mejores prĆ”cticas fundamentales son: descubrir y consolidar todas las claves en un inventario central; crear y aplicar polĆticas mediante el control de acceso basado en roles y la agrupación de claves; generar claves robustas utilizando ED25519 o RSA (2048 o 4096 bits) y evitar algoritmos dĆ©biles como DSA; rotar las claves de forma regular y automĆ”tica, reemplazando el par completo; y supervisar y auditar continuamente las claves, idealmente con registros SSH que se envĆan a un SIEM para recibir alertas en tiempo real.
¿Qué algoritmo debo usar para las claves SSH?
Las opciones mĆ”s recomendables son ED25519, que ofrece una seguridad excelente con una clave compacta de 256 bits, y RSA con una clave de 2048 o 4096 bits. Ambas resisten bien los ataques de fuerza bruta. Los algoritmos mĆ”s antiguos, como DSA (especialmente el de 1024 bits), estĆ”n obsoletos y deben evitarse. De cara al futuro, el ecosistema SSH estĆ” adoptando el intercambio de claves post-cuĆ”ntico con ML-KEM, por lo que elegir algoritmos modernos y con buen soporte hoy en dĆa tambiĆ©n facilita la transición post-cuĆ”ntica.
ĀæQuĆ© es el reenvĆo de agente SSH y es seguro?
El reenvĆo de agente SSH permite autenticarse a travĆ©s de una cadena de servidores utilizando la clave privada local sin necesidad de copiarla a cada servidor; las solicitudes de autenticación se reenvĆan al agente SSH local. Es prĆ”ctico, sobre todo para tareas como descargar código de GitHub a travĆ©s de un servidor remoto, pero conlleva riesgos: si un servidor de la cadena se ve comprometido, un atacante puede secuestrar el agente reenviado para autenticarse en otro lugar. Utilice el reenvĆo de agente Ćŗnicamente con servidores de plena confianza.
Cree un programa completo de gestión de claves SSH.
Desde el descubrimiento hasta la rotación y la monitorización, una buena gestión de las claves SSH es fundamental para mantener la seguridad del acceso remoto. Para una descripción general concisa, consulte nuestra guĆa complementaria sobre la gestión de claves SSH. Descubra los servicios de asesoramiento en cifrado de Encryption Consulting para evaluar y desarrollar su programa, con SSH Secure para automatizar el ciclo de vida a gran escala.
- Puntos Clave
- ¿Qué es SSH?
- ¿Qué son las claves SSH?
- ¿Cómo funciona SSH?
- Métodos de autenticación SSH
- Certificados SSH frente a certificados SSL/TLS: ¿CuÔl es la diferencia?
- Riesgos potenciales de la gestión de claves SSH
- ReenvĆo de agente SSH
- Buenas prÔcticas para la gestión de claves SSH
- Cómo ayuda la consultorĆa de cifrado
- Preguntas frecuentes
- Cree un programa completo de gestión de claves SSH.
