Fundamentos de la autenticación y gestión de claves SSH
secure shell(ssh) key management

Fundamentos de la autenticación y gestión de claves SSH

  •  
  •  

Última actualización: 24 de abril de 2020

¿Qué son las claves SSH (Secure Shell)?

Las claves SSH (Secure shell) son credenciales de autenticación en el protocolo SSH. Técnicamente, son claves criptográficas responsables del cifrado, pero funcionalmente actúan de forma muy similar a las contraseñas. Dentro de una empresa, las claves SSH se utilizan principalmente para conceder acceso seguro a sistemas remotos. La autenticación basada en claves, comúnmente conocida como autenticación de clave pública, utiliza un par de claves, una clave pública y una clave privada, para autenticar a los usuarios en dispositivos remotos.

Las claves públicas o claves autorizadas son las responsables de conceder el acceso de inicio de sesión a los usuarios que acceden al sistema remoto. Podemos imaginar las claves autorizadas como cerraduras, que dan acceso a quienes poseen la llave, o clave, adecuada (en este caso, la clave privada correspondiente). Las claves autorizadas se configuran por separado para cada cuenta de usuario, y suelen estar presentes en el archivo .ssh/authorized_keys del directorio personal del usuario.

Las claves privadas o claves de identidad permiten a los usuarios autenticarse en un servidor SSH. Una clave privada es análoga a una llave real que, cuando coincide, puede abrir una o varias cerraduras. A diferencia de las claves públicas, las privadas deben custodiarse en un lugar seguro, pues de lo contrario podrían acabar en malas manos y provocar un uso indebido de los privilegios.

¿Qué es el proceso de autenticación de clave ssh?

La autenticación de clave pública basada en SSH se consigue generando un par de claves distintas (una pública y otra privada) para establecer la conexión con sistemas remotos. El usuario que se autentique en el equipo remoto necesita poseer la clave privada, mientras que la clave pública debe colocarse en el sistema o sistemas de destino a los que el usuario quiera conectarse.

  • Genere claves de autenticación SSH: Inicie sesión en el servidor desde el que se va a establecer la conexión remota. Genere un par de claves utilizando una herramienta de generación de claves SSH como PuTTYgen. También puede añadir una frase de contraseña opcional mientras crea el par de claves para proporcionar una capa adicional de seguridad.
  • Copie las claves públicas a los sistemas remotos: Después de generar el par de claves, transfiera las claves públicas a los sistemas remotos de destino. Asegúrese de que los archivos de clave pública se coloquen en el directorio ~/.ssh/authorized_keys en los servidores remotos requeridos. Aquí, usted tendrá que proporcionar la frase de contraseña creada durante el paso anterior.
  • Inicie sesiones SSH remotas: Una vez implementadas las claves públicas en los servidores de destino, puede abrir conexiones SSH con esos servidores desde su sistema.

Así es como se produce el proceso de autenticación de claves SSH en segundo plano.

  • El cliente comienza enviando un ID al par de claves que desea autenticar en el servidor remoto.
  • El servidor comprueba si hay alguna clave pública con el mismo ID de clave en la cuenta en la que el cliente está intentando iniciar sesión.
  • Si se encuentra la clave pública coincidente, el servidor genera un número aleatorio, lo cifra con la clave pública y lo envía al cliente.
  • El cliente descifra el mensaje con la clave privada y, con ayuda de las claves de sesión, calcula el valor hash MD5 del mensaje.
  • A continuación, el cliente cifra el valor hash y lo envía al servidor.
  • Mientras tanto, el servidor también calcula el valor hash MD5 del mensaje enviado al cliente (con la ayuda de las claves de sesión). Si estos dos valores coinciden, eso demuestra que el cliente posee la clave privada correspondiente, y el cliente se autentica en el servidor.
ssh key authentication work flow
Diagrama de flujo de autenticación de claves SSH

Antes de comenzar el proceso de autenticación de claves SSH, asegúrese de que tanto el cliente como el servidor tienen instalada una versión funcional de SSH. Una gran ventaja de la autenticación basada en claves es que, cuando se aplica correctamente, simplifica enormemente el proceso de autenticación y multiplica su seguridad.

¿Por qué necesita proteger sus claves SSH?

En promedio, una gran organización alberga fácilmente alrededor de un millón de claves SSH. Y a pesar de la concienciación creada en torno a la mala gestión y los riesgos de las claves SSH, la mayoría de las empresas siguen un enfoque descentralizado para la creación y el uso de claves. Con el tiempo, esto se traduce en una proliferación de claves con mucha menos visibilidad sobre el alcance del acceso que proporciona cada clave. La mala gestión de las claves SSH puede traer problemas a las empresas de muchas maneras, incluyendo las siguientes:

  • Ataque externo: Cuando un atacante obtiene acceso a una clave SSH huérfana, es capaz de establecer un punto de apoyo y moverse fácilmente dentro de la red, ya que las redes basadas en claves están estrechamente relacionadas. El atacante puede entonces elevar sus privilegios a acceso root, desviar datos sensibles de sistemas de misión crítica y crear puertas traseras para tener un acceso permanente.
  • Ataques internos: La mala gestión de las claves SSH también contribuye en gran medida a los ataques internos. Los empleados descontentos o los proveedores o contratistas externos malintencionados pueden acceder a las claves que autentican los sistemas privilegiados y acabar saqueando los datos sensibles.

Un aspecto delicado de estos ataques es que, dado que las claves SSH rara vez se rotan, seguirán estando en las manos equivocadas hasta que sean descubiertas de algún modo y se cancele su acceso.

  • Riesgos de incumplimiento: La gestión de claves SSH también es esencial para que las empresas cumplan con varias normativas obligatorias del sector, como SOX, FISMA, PCI e HIPAA. No incorporar un sistema de gestión de claves SSH adecuado puede hacer que las empresas incumplan los requisitos de cumplimiento y costarles enormes sanciones.

 

 

Obtenga ahora una visibilidad completa de su entorno SSH.

Descargar resumen de la solución

Gestión de claves SSH: Primeros pasos

La gestión de claves SSH es el proceso de proteger y automatizar el ciclo de vida de las claves SSH distribuidas en una empresa, desde su creación hasta su implementación en los endpoints necesarios, el inicio de sesiones remotas, el monitoreo de las asignaciones clave-usuario, la rotación de claves y la eliminación periódica de las claves no utilizadas o no deseadas. Las claves SSH pertenecen a la categoría de activos digitales cruciales que se gestionan constantemente mal. La implementación de un proceso de gestión bien definido ayuda a las empresas a obtener una visibilidad completa de su entorno SSH y a evitar el uso indebido de privilegios derivados del acceso no autorizado a claves SSH.

Ahora viene la siguiente pregunta obvia: ¿Por dónde empezar?  

Estos son algunos pasos que le ayudarán a empezar con el proceso de gestión de claves SSH.

ssh discovery

Descubra y consolide

El primer paso en la gestión de sus claves SSH es descubrir las claves existentes dentro de su red y consolidarlas en un repositorio centralizado.

ssh trust relationship

Asigne las relaciones de confianza

Una vez que haya reunido todas sus claves SSH en un único lugar, tiene que trazar las relaciones de confianza existentes para que se haga una idea clara del grado de acceso que concede cada clave. A continuación, tiene que establecer la asignación clave-usuario, que le ayudará a identificar el número de usuarios de su red que tienen acceso root a cuentas privilegiadas.

ssh key deployment

Cree e implemente pares de claves SSH nuevos

Ahora que tiene una visibilidad completa sobre su entorno SSH, analice y elimine las claves SSH que ya no estén en uso. La mejor práctica en este caso es empezar de nuevo borrando todas las claves SSH asociadas a las distintas cuentas de usuario de la red y sustituirlas por pares de claves recién creados.

SSH key management: Centralized key creation

Agilice la creación e implementación de claves SSH

Para la generación de claves, se recomienda encarecidamente agilizar el proceso mediante la administración de un marco centralizado que solo permita a los usuarios con privilegios específicos crear e implementar claves en los sistemas de su red. De este modo, tendrá la ventaja en las relaciones de confianza dentro de su organización y podrá mantener a raya la proliferación de claves SSH.  

ssh key granular access

Imponga controles de acceso granulares

Una vez que se han implementado pares de claves nuevos en los sistemas de destino, es importante definir permisos para cada clave en función de los roles de usuario, es decir, restricciones sobre el host desde el que se puede utilizar la clave y qué comandos puede ejecutar la clave.

ssh key rotation

Aplique la rotación periódica de claves SSH

La rotación de claves SSH es la práctica de deshacerse de la asociación clave-usuario SSH existente e implementar nuevos pares de claves de vez en cuando para combatir el desafortunado caso de que la clave SSH se vea comprometida. Tanto las claves autorizadas (colocadas en los sistemas de destino) como las claves de identidad deben rotarse periódicamente para evitar posibles abusos de privilegios.

ssh audit and reports

Audite todas las actividades de los usuarios y genere informes preconfigurados

Establezca un mecanismo de auditoría a prueba de manipulaciones para realizar un control de todas las actividades de los usuarios relacionadas con claves SSH y generar informes categorizados. Esto mejorará la sensibilidad y legibilidad de los datos recopilados y ayudará a los administradores a tomar decisiones empresariales con conocimiento de causa.

Gestión de claves SSH: Vídeo de demostración
 
Gestión de claves SSH

La automatización es la solución más efectiva

Cuando se trata de la implementación práctica y la eficiencia operativa, estos pasos son más fáciles de decir que de hacer. ¡Imagine la carga de trabajo que supone para el administrador de TI tener que realizar todas las operaciones mencionadas para un millón de claves SSH en su entorno! La mejor forma de conseguirlo es mediante la automatización, implementando una solución de gestión de claves SSH centralizada que pueda hacer todo el trabajo pesado por usted.

Key Manager Plus, la solución web de gestión de claves SSH y certificados SSL de ManageEngine, le ayuda a descubrir, consolidar, crear, implementar, rotar y controlar las claves SSH desde una única consola. Se trata de una solución todo en uno que proporciona a los administradores de TI una visibilidad y un control completos de sus entornos SSH, facilita la gestión y les ayuda a evitar infracciones y problemas de cumplimiento.

Si desea más información, envíe un correo electrónico a keymanagerplus-support@manageengine.com ¡y nuestros expertos en productos se pondrán en contacto con usted de inmediato!