Usted tiene razón si el sistema al que se está conectando no puede aceptar más que una contraseña como credencial. Si así es como funciona el sistema remoto, desafortunadamente está diseñado y, si es posible, debería extenderse para aceptar otro tipo de token. Ejemplos de tokens más apropiados son tickets Kerberos, claves SSH, credenciales OpenID u otras credenciales personalizadas por aplicación.
Todas las buenas soluciones de autenticación tienen algo en común: permiten que el usuario lo autorice a conectarse en su nombre, sin tener que darle sus credenciales. Un buen sistema permite a mi asistente administrativo comprar boletos de avión en mi nombre. No requiere que mi administrador se haga pasar por mí.
Sin embargo, si los sistemas remotos están mal diseñados y no pueden aceptar este tipo de credenciales delegadas, entonces no tiene más remedio que almacenar las contraseñas. En ese caso, es tradicional ofuscar la contraseña en su base de datos utilizando algún tipo de "algoritmo y clave de cifrado". (Por ejemplo, AES encripta las contraseñas contra una clave almacenada en el disco). Esto no debe confundirse con el cifrado real; es solo ofuscación Pero puede ser una ofuscación útil si no tiene otras opciones.
Una solución mejor que una única contraseña almacenada en el disco es una clave de hardware que realiza el descifrado por usted. Un dispositivo de este tipo a menudo se denomina módulo de seguridad de hardware y, a menudo, adopta la forma de una tarjeta inteligente (a veces es un dispositivo montado en un bastidor completo, una placa o una llave USB). Presenta la contraseña cifrada al HSM y le devuelve la contraseña no cifrada. La ventaja de este enfoque es que si alguien clona su disco, no podrá descifrar las contraseñas. Los HSM son difíciles de clonar físicamente, lo que hace que sea más difícil para un atacante robar las credenciales sin ser detectado. En los mejores diseños, el proceso que habla con el HSM tiene una credencial que se ingresa manualmente en el inicio y solo se almacena en la memoria. Por lo tanto, los procesos aleatorios no pueden consultar el HSM y, si la máquina está desconectada, ya no puede acceder a las contraseñas. Incluso en este escenario, es posible que el atacante pueda engañar al sistema para que descifre todas las contraseñas para él, pero la superficie de ataque está muy disminuida.