Hoy ampliamos la serie de configuración de un servidor SSH en GNU/Linux. Este quinto artículo se centra en las claves públicas y privadas y su función para verificar que un servidor es quien dice ser.
Claves
Cuando en este artículo se hace referencia a una clave RSA se ha de tener presente que se refiere a un par de claves pública y privada utilizadas en los sistemas criptográficos de cifrado asimétrico. La pública es la parte de la clave RSA que puede ser conocida por todos mientras que la parte privada debe estar bien almacenada con seguridad mediante permisos estrictos y debe transmitirse siempre por canales seguros que no puedan ser interceptados.
Generación de la clave de Host
Por defecto, nada más instalarse el servidor OpenSSH en el equipo, se crea un par de claves RSA, es decir, una parte pública y una parte privada para identificar al servidor y que el cliente pueda autenticar su veracidad. Este par de claves son autofirmadas, es decir, no están creadas por ninguna entidad certificadora conocida, y se almacenan en la siguiente ruta: /etc/ssh.
Se puede observar 3 pares de claves:
ssh_host_rsa_key: parte privada de la clave RSA para la versión 2 del protocolo SSH. Es la que OpenSSH utiliza por defecto.ssh_host_rsa_key.pub: parte pública de la clave RSA para la versión 2 del protocolo SSH.
ssh_host_dsa_key: parte privada de la clave DSA. Es la alternativa a RSA.ssh_host_dsa_key.pub: parte pública de la clave DSA.
ssh_host_key: parte privada de la clave RSA para la versión 1 del protocolo SSH. Se desaconseja el uso de la versión 1 del protocolo SSH ya que éste fue roto.ssh_host_key.pub: parte pública de la clave RSA para la versión 1 del protocolo SSH.
Por defecto el servidor utiliza la clave RSA para la versión 2.
Algoritmos para cifrado
Dependiendo de la versión del protocolo que se esté utilizando, el protocolo soportará unos algoritmos u otros. En la versión 1 del protocolo se disponen los siguientes algoritmos de cifrado: DES, 3DES, IDEA, Blowfish. Mientras que para la versión 2 del protocolo se aumentaron el número de algoritmos disponibles y se incluyeron algoritmos de cifrado más potentes: 3DES, Blowfish, Twofish, Arcfour, Cast128-cbc.
Creación de una clave de host más segura
Para generar una nueva clave de host más fiable que la que se genera en la instalación del OpenSSH se ejecutará la siguiente acción:
Distribución segura de la clave de host