2015-11-27 2 views
0

J'ai un script qui effectue divers appels d'API. Ce script sera exécuté sans aide, j'ai donc besoin de stocker les informations d'identification de connexion à ces services et d'autres dans un fichier de configuration local.Nom d'utilisateur/mot de passe de stockage le plus sécurisé, fichier de configuration, python

Je suis sûr que c'est une idée horrible de stocker ces données sensibles en texte brut dans un fichier .txt. Comment puis-je le faire de manière plus sécurisée?

J'ai vu une question similaire mais les réponses étaient très spécifiques à C#. How to securely save username/password (local)?

Répondre

2

Si vous cryptez le fichier, comment allez-vous protéger la clé qui l'a crypté? Vous allez acheter un HSM cher, c'est ce que vous allez faire.

Sauf que, une bonne solution générale est la suivante:

  1. Créer un utilisateur OS, disent foo
  2. Créer un (permanent) variable d'environnement OS pour l'utilisateur foo, avec le login mot de passe
  3. Faire foo le propriétaire du script et ne donnent foo droit d'exécuter ce script
  4. exécuter le script en tant qu'utilisateur foo
  5. Lire la variable d'environnement OS dans votre script

Seulement foo ou root peut lire les variables d'environnement OS de foo. Root peut toujours tout lire de toute façon.

+0

Il est possible de rester dans le fichier de configuration tant que l'accès au fichier est étroitement contrôlé de sorte que seuls Root et Foo puissent lire le fichier et que personne ne puisse modifier le fichier. – micker

+0

@micker no. votre solution est locale et la mienne est générale. le vôtre ne fonctionnera pas pour les projets open source –