Je travaille sur un système qui interagit avec de nombreuses API système externes: s. La plupart d'entre eux nécessitent une authentification quelconque. Pour des raisons de convivialité, il existe un AppConfig "accessible à l'application" qui stocke les informations de configuration, ainsi que les informations d'identification pour les systèmes externes.Comment gérer les mots de passe dans la configuration de l'application
Ma question est de savoir si c'est une mauvaise idée de stocker les noms d'utilisateur et mots de passe (en clair) dans les systèmes externes dans le fichier de configuration de l'application. Si oui, comment l'évitez-vous?
Pour accéder au fichier de configuration, vous devez soit compromettre le système de fichiers du serveur, soit le référentiel git sur un autre serveur (ou, bien sûr, tout système de développement). Je pensais que le cryptage du mot de passe dans le fichier de configuration n'augmente pas le niveau de sécurité, car la clé de cryptage doit également être stockée quelque part. Ai-je tort à ce sujet?
J'apprécierais vraiment les réponses expliquant comment vous avez résolu ce problème.
Solution
Ok, alors voici ma solution finale. J'ai créé une bibliothèque simple en utilisant OpenSSL pour crypter et décrypter mes données sensibles. La clé est extraite de l'utilisateur lorsque la configuration est chargée, sauf sur les serveurs de production où il est stocké dans le fichier. Ce n'est toujours pas une solution optimale, mais c'est bien mieux que la «solution» que j'avais auparavant.
Merci pour vos réponses. J'accepterai la réponse de Wayne car c'était la plus informative.
Je suggère http://security.stackexchange.com/questions/15040/standards-for-encrypting-passwords-in-configuration-files comme une bonne leçon pour tous ceux qui en trébuchant sur ce fil :) Merci pour – tlegutko