2011-12-04 1 views
4

J'utilise JASYPT pour le décryptage du chiffrement des mots de passe dans notre logiciel Java. Voici comment, nous chiffrons le mot de passe:Stocker les clés de chiffrement dans le code Java?

 StrongTextEncryptor textEncryptor = new StrongTextEncryptor(); 
     textEncryptor.setPassword(PASSWORD_ENCRYPTION_KEY); 
     String ePasswd = textEncryptor.encrypt(txtPasswd); 

Maintenant, où et comment dois-je conserver ce PASSWORD_ENCRYPTION_KEY utilisé dans le code ci-dessus? Quel est le moyen le plus sûr ou commun de stocker et d'accéder à ces clés dans le programme Java?

Merci, profonde

+0

L'endroit le plus sécurisé serait "pas sur l'ordinateur de l'utilisateur". – millimoose

+1

Vous pouvez lire http://ronrothman.com/public/leftbraned/password-security-its-not-that-hard-but-you-still-cant-get-it-right/. Si votre logiciel stocke les mots de passe de telle sorte que vous puissiez les récupérer, alors vous faites quelque chose de mal, même si vous les dissimulez avec le cryptage, et surtout si vous stockez la clé de cryptage avec les données cryptées. –

+0

quel type de mot de passe y stockez-vous? si c'est un mot de passe utilisateur, allez avec des hachages salés comme James Clark l'a suggéré ... sinon, cela dépend du contexte de ce mot de passe – DarkSquirrel42

Répondre

2

Nulle part ...

vous should't stocker les PASSWORD_ENCRYPTION_KEY dans votre programme, car cela est la mauvaise approche. Comme owlstead déjà souligné: vous auriez besoin d'un Public key infrastructure

Fondamentalement, vous pouvez crypter le PDF pour chaque utilisateur qui doit y avoir accès, afin qu'ils puissent le déchiffrer avec leur clé privée personnelle. Ceci est fait en cryptant le PDF disons avec AES-256 puis crypter la clé utilisée avec la clé publique de chaque utilisateur. Ces clés chiffrées personnellement sont sécurisées pour le stockage.

+0

comment feriez-vous cela avec une application sans tête que personne ne se connecte? Le seul ID que je peux penser dans ce cas serait l'ID de l'utilisateur UNIX que l'application fonctionne comme. Où garderiez-vous la clé privée pour cet utilisateur? Sûrement cela serait dans le répertoire '/ home/user/.ssh /' et donc sur la même machine. – Adam

Questions connexes