142 votes

Crypter le mot de passe dans les fichiers de configuration ? (Java)

J'ai un programme qui lit les informations du serveur à partir d'un fichier de configuration et je voudrais crypter le mot de passe dans cette configuration qui peut être lu par mon programme et décrypté.

Exigences :

  • Cryptage du mot de passe en texte clair à stocker dans le fichier
  • Décryptez le mot de passe crypté lu dans le fichier à partir de mon programme.

Avez-vous des recommandations sur la façon de procéder ? Je pensais écrire mon propre algorithme mais j'ai l'impression que ce serait terriblement dangereux.

Merci,
-Pete

4voto

user1007231 Points 21

Pour résoudre les problèmes de mot de passe principal, la meilleure approche consiste à ne pas stocker le mot de passe n'importe où, l'application devrait crypter les mots de passe pour elle-même - de sorte qu'elle seule puisse les décrypter. Donc, si j'utilisais un fichier .config, je ferais ce qui suit, mesRéglages.config :

encryptTheseKeys=secretKey,anotherSecret

secretKey=mot de passe non protégé que j'ai entré ici

anotherSecret=anotherPass

someKey=nonprotégéSettingIdontCareAbout

donc je lirais les clés qui sont mentionnées dans le fichier encryptTheseKeys, appliquer l'exemple de Brodwalls ci-dessus sur elles et les réécrire dans le fichier avec un marqueur de quelque sorte (disons la crypte : ) pour indiquer à l'application qu'elle ne doit pas recommencer, le résultat ressemblerait à ceci :

encryptTheseKeys=secretKey,anotherSecret

secretKey= crypt:ii4jfj304fjhfj934fouh938

un autreSecret= cryptage:jd48jofh48h

someKey=nonprotégéSettingIdontCareAbout

Assurez-vous simplement de conserver les originaux dans un endroit sûr...

1voto

Voyez ce qui est disponible dans Jetty pour stocker des mots de passe (ou des hachages) dans les fichiers de configuration, et voyez si l'encodage OBF pourrait vous être utile. Voyez ensuite dans les sources comment cela est fait.

http://docs.codehaus.org/display/JETTY/Securing+Mots de passe

1voto

jake.stateresa Points 251

J'ai créé un PropertyEncryptor simple en Java. Il peut crypter vos fichiers de propriété pendant la construction. Vous pouvez ensuite les décrypter en utilisant un EncryptionHelper dans vos programmes. Vous pouvez trouver les codes sources à cet endroit http://devpinoy.org/blogs/jakelite/archive/2009/07/14/encrypting-passwords-in-java-property-files.aspx

1voto

Rohit Salecha Points 31

Essayez d'utiliser les méthodes de cryptage d'ESAPI. Elles sont faciles à configurer et vous pouvez aussi facilement changer vos clés.

http://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/Encryptor.html

Vous

1)crypter 2) décrypter 3) signer 4) Dé-signature 5) hachage 6) signatures temporelles et bien plus encore avec une seule bibliothèque.

0voto

CPrescott Points 50

En fonction de la sécurité dont vous avez besoin pour les fichiers de configuration ou de la fiabilité de votre application, http://activemq.apache.org/encrypted-passwords.html peut être une bonne solution pour vous.

Si vous n'avez pas trop peur que le mot de passe soit décrypté, il peut être très simple de le configurer en utilisant un bean pour stocker la clé du mot de passe. Cependant, si vous avez besoin de plus de sécurité, vous pouvez définir une variable d'environnement avec le secret et la supprimer après le lancement. Dans ce cas, vous devez craindre que l'application ou le serveur tombe en panne et que l'application ne se relance pas automatiquement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X