Soy algo nuevo en el cifrado / seguridad de datos, pero ya leí sobre conceptos básicos como contraseñas de hash, cifrado de archivos, etc. Si es posible, por favor ELI5: gracias de antemano.
Antecedentes: mi aplicación interactúa con un tercero (Twitch) utilizando una clave OAuth para IRC, así como una ID de cliente. Ambos pueden usarse para acceder de manera efectiva a la cuenta de Twitch de la aplicación y hacer cualquier cosa con ella. Las claves se envían como texto sin formato cada vez que la aplicación establece una conexión con los servidores de Twitch (sobre lo que no puedo hacer nada y en realidad no es un problema tan grande). Mi principal preocupación de seguridad es que alguien tenga acceso a la computadora del usuario y robe las claves desde allí.
Me gustaría almacenarlos de forma segura en el disco para que el usuario no tenga que iniciar sesión en Twitch cada vez que abre la aplicación (para recuperar las claves). Para hacer esto, mi mejor solución hasta ahora fue cifrar el archivo que los contiene . La forma obvia de hacer esto sería requerir una contraseña cuando se inicie la aplicación , luego usar un hash + salt almacenado para verificar esa contraseña, y usar la contraseña (o su hash con un nombre diferente). salt) como clave para descifrar el archivo .
Como se dijo antes, soy nuevo en la protección de datos, por lo que podría haber una manera mucho mejor de hacerlo. Por favor sugiera uno si hay uno. Sin embargo, en cuanto a esto ...
Si es posible , también me gustaría que el usuario no ingrese su contraseña cada vez que abra la aplicación , simplemente para su conveniencia. La solicitud de la contraseña una vez por sesión de usuario (o una vez cada vez que se reinicia la computadora) parece razonable.
Pensé en hacer esto almacenando algo en la memoria RAM, o tal vez almacenando algún tipo de hash como un archivo temporal. Sin embargo, todavía no he podido llegar a una conclusión real. Tal vez estoy pidiendo demasiado. Sin embargo, ¿existe una manera real y decente de implementar esto? Si no es así, ¿solicitar una contraseña en cada inicio de la aplicación es una mejor idea que ir a almacenar esas claves Twitch de forma segura de alguna otra manera?
Si importa, para mi caso específico, estoy usando Python 3.7, y mi objetivo es hacer que mi aplicación sea multiplataforma (siempre que el sistema admita Python).