Ir al contenido

”Se acercan los certificados de 47 días! ¿EstÔs preparado?

ActĆŗa ahora →

Todo lo que necesita saber sobre la gestión de claves SSH

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.

Servicios de cifrado personalizados

Evaluamos, elaboramos estrategias e implementamos soluciones y estrategias de cifrado.

¿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:

  1. 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).
  2. 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.
  3. 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.
  4. 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í.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.

ElementoSSHSSL / TLS
PropósitoAcceso seguro al sistema remoto y transferencia de archivosComunicación web segura e intercambio de datos
AutenticaciónAutenticación de clave pública (cliente y servidor)Basado en certificados (servidor, opcionalmente cliente)
CifradoCifrado simƩtrico despuƩs del intercambio de clavesCifrado simƩtrico despuƩs del intercambio de claves basado en certificados
Gestión de clavesClaves SSH autogeneradas, almacenadas localmente o en un HSM.Certificados emitidos por entidades de confianza. CA
Casos de usoEjecución remota de comandos, transferencia de archivos, redireccionamiento de puertos.Protección de sitios web, correo electrónico y API
Principales amenazasRobo o vulneración de clavesAutoridades 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.

Servicios de cifrado personalizados

Evaluamos, elaboramos estrategias e implementamos soluciones y estrategias de cifrado.

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.