Ya hay muchas preguntas sobre qué hacer cuando los sitios web almacenan contraseñas de texto simple . Pero este es un poco diferente.
Uso un software de código abierto (ver más abajo) para jugar juegos. Requiere una cuenta de usuario que no esté directamente vinculada a ningún servicio. El inicio de sesión consiste en ingresar un nombre de usuario y una contraseña en un diálogo, pero ese diálogo también brinda la opción "Guardar contraseña".
Esta opción guarda la contraseña utilizando una API diseñada para almacenar configuraciones en aplicaciones multiplataforma. Pero debido al hecho de que está destinado a guardar configuraciones no confidenciales que se pueden cambiar fuera de la aplicación, guarda los datos en texto sin formato. Y lo hace en ubicaciones que no requieren permisos especiales para acceder. Por ejemplo, en Windows, la API almacena la configuración en el registro (en una ubicación en la que incluso los que no son administradores también tienen acceso de solo lectura).
A la API se le pasa la contraseña en texto sin formato y, por lo tanto, se almacena la contraseña en texto sin formato. Esto significa que ahora puedo ejecutar un comando simple desde un indicador no elevado en mi máquina y obtener la última contraseña que usé en texto sin formato.
Además, cualquier software en mi computadora puede acceder fácilmente a esta información. Recientemente escribí un pequeño programa que actualizó ciertos archivos que usa el software. Sin embargo, comencé a recibir quejas de que el programa no podía editar los archivos a pesar de que los encontraba. Resultó que los usuarios no habían estado ejecutando el programa como administrador. Pero eso significa que, aunque mi programa no tenía permiso para acceder a los archivos del juego del programa, sí podía leer las mismas claves de registro que contienen la contraseña de texto sin formato, incluso cuando la seguridad de Windows lo había bloqueado como un programa descargado. / p>
Ya he mencionado el problema anteriormente, pero a pesar de mis mejores esfuerzos, nadie parece estar tomando esto como un problema grave (ver más abajo).
Pregunta: ¿Estoy haciendo 'mucho ruido por nada', o estoy almacenando la contraseña en texto sin formato localmente un problema tan grave como creo que almacenar la contraseña en texto sin formato en cualquier lugar es?
Nota: El hecho de ser de código abierto significa que podría "solucionar" el problema, pero hay algunos problemas:
-
Es totalmente multiplataforma (y no se utiliza ningún código específico de plataforma). La mayoría de los sistemas que conozco que podrían almacenar la contraseña de una forma relativamente segura dependen mucho de la plataforma (como DPAPI)
-
El grupo de desarrollo principal es extremadamente pequeño, y parece que ninguno de ellos comprende la importancia de proteger las contraseñas. He mencionado el tema anteriormente, y la respuesta que recibí hace que sea poco probable que una RP obtenga algún resultado. La única persona que ejecuta un servidor que utiliza el software que conozco lo ignoró como "argumentando por el simple hecho de discutir". Su respuesta fue:
"No sé si estoy de acuerdo con que la responsabilidad recae en la herramienta, es como decir que no deberíamos construir armas porque pueden usarse de manera incorrecta. Depende de la persona que usa la herramienta para usar esa herramienta. responsabilidad "..." si alguien es lo suficientemente tonto como para poner la contraseña de la cuenta bancaria en [el programa] tal vez debería considerar investigar un poco sobre seguridad ".
Luego recordé haber visto algo acerca de las contraseñas almacenadas con cifrado, así que traté de convencerlo de que parte del mismo razonamiento que dicta las bases de datos debería cifrar las contraseñas aplicadas a las contraseñas almacenadas localmente. Pero no estuvo de acuerdo (parece que el hecho de que las contraseñas estén cifradas es un poco de programación de culto de carga):
"la base de datos es de acceso público [no veo por qué debería ser ese otro problema], eso es completamente diferente. su máquina no debería estar en el mundo para que la gente acceda" ... "una vez más , si tu máquina está colgando en el mundo sin protección, no vengas a llorar "
-
El usuario promedio tampoco parece entender la relevancia, por lo que forzar el repositorio y proporcionar una solución no hará nada. Dado que el software es para un juego gratuito sin clasificación ni monetización, no entienden por qué me preocupa tanto que alguien descubra mi contraseña (o por qué debería serlo). Los un poco más conocedores simplemente lo descartan diciendo que es culpa del usuario si su contraseña no es exclusiva de esa cuenta.
-
No estoy de acuerdo en que debería haber una función de "Guardar contraseña". Almacenar contraseñas localmente es muy difícil de hacer correctamente (incluso sistemas como DPAPI están lejos de ser perfectos). Raramente siento que vale la pena proporcionar la funcionalidad. Y especialmente no veo el punto para un programa como este.