2009-08-04 9 views
1

Possible en double:
Ways around putting a password in codeComment gérer les mots de passe pour les bases de données à savoir ou des serveurs ftp dans une application

Si vous créez une application qui par exemple se connecte à une base de données ou un serveur FTP dont il a besoin un nom d'utilisateur et un mot de passe.

Comment recommandez-vous de le stocker? L'option la plus simple et la plus simple est bien sûr en texte brut dans l'application, mais je suppose que ce serait assez clair et visible si vous avez décompilé l'application (ou si l'application était déjà en texte clair dans le cas de php, etc). .). Mais y a-t-il un moyen de contourner cela? Pourrait bien sûr le crypter, mais alors vous devrez le déchiffrer ce qui (même si je peux me tromper) nécessite généralement quelque chose comme un mot de passe ou un jeton de quelque sorte. Et puis vous êtes de retour au début, car où stockez-vous que mot de passe/jeton?

Quelles sont les bonnes pratiques dans ce domaine?

+0

double: http://stackoverflow.com/questions/1214582/ways-around-putting-a-password-in-code –

+0

Deal. Fermez juste celui-ci alors :) – Svish

Répondre

2

Très similaire à cette question SO

Ways around putting a password in code

Depuis, vous ne l'avez pas mentionné la plate-forme, je suppose de Windows. Je reproduis ma réponse à cette question ici.

Vous avez plusieurs options ici.

1.Vous pouvez hacher le mot de passe la première fois et stocker le hachage dans un fichier. Maintenant, la prochaine fois, vous voulez exécuter le code avec des privilèges élevés, vous devez accepter/retaper le mot de passe et recalculer le hachage et le faire correspondre avec le hachage stocké. Seulement si cela correspond, vous exécuterez votre code en mode d'élévation. Vous pouvez hash en utilisant SHA. S'il vous plaît regarder l'espace de noms System.Crytography pour des exemples sur le hachage.

2.La deuxième option consiste à chiffrer le mot de passe en utilisant des algorithmes tels que AES. Cependant, vous devrez avoir une clé pour le faire et vous devrez vous inquiéter de la sécurisation de cette clé.

l'option 3.Troisième est d'utiliser DPAPI et chiffrer le mot de passe, mais vous inquiétez pas pour la sécurisation des clés - option beaucoup plus facile que 2.

Je recommande 1 si vous ne me dérange pas re-entrer le mot de passe à chaque fois l'application démarre. Si ce n'est pas une possibilité, je suggère d'aller avec 3 et utiliser DPAPI.

Voici quelques liens pour vous aider à démarrer.

1. http://www.obviex.com/samples/dpapi.aspx 2. http://www.obviex.com/samples/Encryption.aspx

+0

La suggestion de hacher le mot de passe ne tient pas compte de l'attaque de la table arc-en-ciel. Le mot de passe doit être "salé" avant d'être haché. Voir http://www.codinghorror.com/blog/archives/000949.html –

+0

De même, ne copiez pas vos propres réponses si vous pouvez les lier. –

+0

Je vais marquer cela comme accepté pour l'effort de toute façon. Lira plus dans la question connexe :) – Svish

Questions connexes