Autenticación en SSH
La autenticación toma dos formas principales, nombre de usuario y contraseña, y autenticación basada en claves.
También se realiza una verificación de autenticidad cuando el cliente se conecta al demonio SSH al confirmar que la clave pública de confianza no ha cambiado al comparar la huella digital que se encuentra en la base de datos de confianza known_hosts
y lo que presenta el servidor. Si coinciden, la conexión continúa, los desafíos del servidor para la autenticación y, una vez validados, se establece la sesión completa.
¿Qué es la autenticación mutua?
Antes de hablar sobre SSH, hablemos sobre la autenticación mutua en una implementación típica. Una autenticación mutua TLS presenta certificados tanto para el servidor como para el cliente, lo que confirma la identidad. Esto se usa comúnmente en aplicaciones B2B, como los puntos finales de API. Esto proporciona los beneficios de PKI (cifrado en tránsito, comprobación de integridad y revocación a través de los respondedores de CRL y OCSP) al tiempo que proporciona autenticación de la identidad.
¿Qué hay de implementar eso en SSH?
Por defecto, esto no funcionará. El cliente SSH se conecta a un demonio SSH. Esto requeriría que el servidor tenga credenciales de cliente en el cliente. ¿Confuso? Demos un paso atrás.
Usuario (usted) - > Clave SSH - > Servidor
Este es un comportamiento normal. Queremos voltear eso y establecer confianza en el reverso:
Servidor - > Clave SSH diferente - > Usuario (Usted)
Esto es peligroso . Hay algunas razones por las que:
-
El compromiso del servidor permitiría pasar a la red de escritorio corporativa, oa la red doméstica de un usuario. Cualquiera de las dos situaciones sería devastadora.
-
Las ACL en la empresa no deben permitir que esto suceda. Esto hace que el giro y la extracción de datos sean mucho más simples para un atacante.
Conclusión
Esto es posible, pero rara vez se hace, y es peligroso.