Mi pregunta es la siguiente: si se usa una buena contraseña y todas las demás prácticas de seguridad se mantienen iguales, ¿gana un servidor administrado por una sola persona prácticamente al cambiar a claves SSH?
El problema con esta pregunta es que se basa en la premisa de que las personas usan buenas contraseñas, algo que las personas, en la práctica real, no hacen. Nos está pidiendo que saquemos una conclusión "práctica" a partir de una premisa teórica que no se sostiene en la práctica.
En ambos casos, creo que el mayor riesgo es que un atacante pueda obtener el secreto de un usuario y usarlo para autenticarse como ese usuario. Con la autenticación basada en contraseña podrían:
- Dirígete a tus usuarios con un ataque de phishing. Como lo ha demostrado 2016, esto puede ser muy exitoso.
- Roba tu base de datos de contraseñas y agrieta las entradas para encontrar contraseñas débiles.
- Diríjase a sus usuarios para robar sus contraseñas en los servicios de otros , con la esperanza de que algunos de ellos reutilicen esas contraseñas en su sistema.
Con la autenticación basada en clave (como se practica habitualmente, con las claves almacenadas en las PC de los usuarios con una contraseña débil o sin contraseña), la forma en que un atacante puede obtener las claves de sus usuarios es mediante la piratería en su computadora que almacena la clave privada . Esto podría lograrse apuntando a sus usuarios con malware, que es otro ataque realista.
Si realmente se preocupa por la seguridad de la autenticación SSH, debe considerar no solo el uso de claves privadas, sino también la forma de almacenarlas de manera segura para que los atacantes no puedan robarlas fácilmente. tus usuarios Las tarjetas inteligentes son la solución clásica aquí; un dispositivo de hardware dedicado que genera internamente un par de llaves y promete nunca revelar la clave privada; el cliente SSH debe reenviar la solicitud de autenticación para que la tarjeta inteligente firme.
Una variante más reciente es usar una aplicación de teléfono inteligente para generar y almacenar las claves SSH en el teléfono, y un cliente SSH que reenvía las solicitudes de autenticación al teléfono, para que pueda autenticar al usuario sin revelar la clave privada. No tengo conexión con la empresa, pero he estado usando la edición gratuita de Kryptonite recientemente y, aunque es una herramienta joven, se está perfilando bastante bien. .