Quelle est la meilleure façon de stocker des informations sécurisées pour une utilisation ultérieure?

Mon application de bureau demande à un utilisateur des informations d’identification de serveur proxy pour l’utiliser ultérieurement. Mais quelle est la meilleure façon de stocker ces informations sécurisées pour une utilisation ultérieure?

Sous Windows, vous pouvez utiliser la fonction CryptProtectData pour chiffrer vos données à l’aide du mot de passe du compte, puis stocker les données chiffrées dans le registre ou dans le fichier de configuration. De cette façon, vous n’aurez plus besoin de mot de passe.

Demander à l’utilisateur un mot de passe principal et chiffrer toutes les informations d’identification et autres informations relatives à cet utilisateur avec ce mot de passe. Demandez ce mot de passe une fois lorsque ces données sont demandées pour la première fois (comme le fait FireFox avec votre identifiant / passe).

Si vous souhaitez construire le système sans mot de passe maître de la part de l’utilisateur, vous en aurez un, car vous devrez chiffrer les données utilisateur avec une clé, qui sera stockée dans votre application, qui pourra être désossée et inversée. la clé peut être extraite.

À la suite du commentaire d’Eugene, sur les systèmes basés sur Gnome tels qu’Ubuntu, vous pouvez utiliser GNOME Keyring pour stocker les informations. Sur KDE, vous pouvez utiliser KWallet, l’équivalent, et sur Mac OS X, vous pouvez utiliser Keychain.

Je chercherais certainement à utiliser ces installations plutôt que d’écrire les miennes. Malheureusement, ils ont chacun des interfaces différentes, mais l’API que vous devez utiliser n’est pas très compliquée.