Hay dos formas principales para que un atacante obtenga el archivo de clave privada:
- Al comprometer la máquina cliente, en cuyo caso el atacante generalmente también puede obtener la contraseña.
- Comprometiendo una copia de seguridad de la máquina cliente, o robando esa máquina.
Si está comparando la autenticación de clave privada con la autenticación de contraseña, solo el segundo caso es relevante. Una contraseña segura en el archivo de clave privada es de hecho necesaria para la seguridad en el segundo caso.
Puede reducir el riesgo excluyendo el archivo de clave privada de las copias de seguridad, pero parece que tiene poco control sobre las máquinas cliente, y el robo siempre es una posibilidad. También puede reducir el riesgo si tiene una manera de desactivar una clave rápidamente. Si una penetración en su red requiere una conexión VPN además de la clave SSH, esto aumenta la ventana de tiempo para desactivar la clave antes de que se pueda hacer cualquier daño.
Tenga en cuenta que una contraseña tampoco es una panacea. Los clientes de SSH tienden a hacer que la autenticación de contraseña sea difícil de automatizar, pero los usuarios lo suficientemente molestos escribirán la contraseña en un archivo de texto sin formato de todos modos, e incluso pueden exponerla en un archivo de configuración o script en algún lugar. El uso de un archivo de clave privada tiene la ventaja de que la información confidencial se concentra en un archivo que los usuarios no tienden a copiar.
Otra consideración que es ventajosa para las claves privadas es que tienden a ser más fáciles de revocar, desde un punto de vista social. Nunca se agradece decirle a un usuario que tiene que cambiar su contraseña, y no tiene forma de asegurarse de que no cambiará de Password123
a Password456
. (A menos que fuerce las contraseñas, en cuyo caso sabrá que las han escrito en alguna parte).
Además, si la VPN tiene la misma contraseña que SSH, para la mayoría de los intentos, SSH no realiza ninguna autenticación adicional. Por lo tanto, SSH con autenticación de clave representa una capa adicional de seguridad en este escenario (independientemente de si la clave está bien protegida), mientras que SSH con la misma contraseña no lo hace. Si la alternativa es que la contraseña lo lleve a través de la puerta trasera y la puerta frontal, tener la puerta trasera protegida por un mecanismo diferente es una ventaja.