@Limit proporciona una buena respuesta para las aplicaciones web, pero me gustaría responder a tu pregunta para el caso general.
E.G. tiene una aplicación, que le confía su contraseña para que pueda ingresar a otros servicios. Un buen ejemplo sería su cliente de correo (ya sea en su teléfono inteligente o en su computadora de escritorio), que debe almacenar su nombre de usuario y contraseña para autenticarse con el servidor de correo. Otro ejemplo de aplicaciones que hacen esto sería navegadores web que pueden almacenar sus credenciales de inicio de sesión para varios sitios web.
Estos agentes de software necesitan acceso a su contraseña de texto simple, por lo que no se puede usar la solución estándar para mantener una contraseña segura (hash de contraseña).
La respuesta corta a su pregunta en este caso: tiene toda la razón, esto no es seguro y sus credenciales no se pueden proteger de manera confiable ( suponiendo que no se le pregunte por el cliente de correo / navegador web para proporcionar una contraseña maestra, es decir) .
La respuesta más larga : algunos sistemas operativos proporcionan un tipo de contraseña segura, que básicamente es un archivo que contiene las contraseñas, pero el archivo se cifra antes de almacenarlo en el disco.
Para cifrar y descifrar, el sistema operativo necesita una clave. Genera uno aleatorio y luego cifra esta clave con la contraseña que usa para iniciar sesión en la cuenta de usuario de su sistema operativo. Cada vez que inicia sesión, la contraseña que ingresó se utiliza para descifrar la clave aleatoria. Así que esto agrega una capa de seguridad (que puede ser evitada por el malware, pero al menos no es suficiente con solo mirar el archivo de contraseñas para robar sus contraseñas). Por supuesto, si no tiene ninguna autenticación de inicio de sesión configurada para su cuenta de usuario del sistema operativo, esto no tiene sentido, ya que el sistema operativo no tendrá ningún secreto para cifrar y descifrar la clave del archivo de contraseña.
Los sistemas operativos que proporcionan este servicio seguro de contraseña para aplicaciones de usuario son, por lo que sé, una minoría. Pero hay unos pocos sistemas que funcionan casi así. Por ejemplo, el entorno de escritorio KDE en Linux proporciona una contraseña segura; no está conectado a la contraseña de su cuenta de usuario del sistema, por lo que debe proporcionar una contraseña adicional, pero solo una vez por sesión. Todos los agentes de software que utilizan la contraseña segura pueden acceder a sus respectivas contraseñas.
(Aparte, los sistemas operativos de teléfonos inteligentes como iOS y Android proporcionan un cifrado transparente de todos sus datos en el teléfono. Si lo habilita, funciona exactamente como el sistema que describí para cifrar la contraseña de forma segura: su firma en secreto (por ejemplo, código PIN, contraseña) se utiliza para cifrar la clave maestra que cifra y descifra los datos almacenados)