11
votes

Java PBEWithMD5ANDES

J'utilise le cryptage basé sur le mot de passe. Ma pensée initiale était d'utiliser AES pour chiffrer le fichier qui contient des mots de passe. Active le cryptage basé sur le mot de passe ne prend pas en charge les AES. Il utilise des. Afaik Des n'est pas sécurisé. PBEWithMD5anddes est-il suffisamment sécurisé pour avoir poussé mes données ou devrais-je rechercher une autre implémentation?


2 commentaires

Il semble que vous utilisiez certaines expressions de manière déroutante. "Cryptage basé sur le mot de passe" fait référence à un schéma dans lequel les fichiers sont cryptés avec une clé dérivée d'un PASSOWRD. (E.G. La norme PKCS n ° 5 est un schéma de cryptage basé sur le mot de passe). Ce que vous voulez, c'est quelque chose de différent, c'est-à-dire un schéma de stockage sécurisé de mot de passe / de gestion. Par conséquent, PBEWithMD5anddes n'est pas ce dont vous avez besoin, quelle que soit la sécurité ou l'insécurité.


Il s'agit désormais d'une question minutieusement obsolète, AES est prise en charge pour le cryptage basé sur le mot de passe depuis Java 6, bien que je doive mentionner qu'il ne devrait être utilisé que pour en place cryptage , car il manque de protection contre l'intégrité.


3 Réponses :


-1
votes

Vous ne devez pas conserver les mots de passe de n'importe quel formulaire autre que Salé Digests de hachage .

Vous devez ensuite utiliser le système d'autorisation du système d'exploitation pour en faire de telle sorte que le fichier de mot de passe haché est uniquement lisible par l'utilisateur qui valide les mots de passe.


1 commentaires

C'est une application personnelle pour stocker des mots de passe. Un gestionnaire de mots de passe de jouet.



16
votes

Il apparaît de vos commentaires que ce que vous souhaitez faire est de chiffrer un fichier contenant des informations sensibles, à l'aide d'un schéma de cryptage basé sur le mot de passe, avec un mot de passe fourni par l'utilisateur à Decrypt-Time. Les informations sensibles dans ce cas se déroulent également des mots de passe, mais ce n'est pas vraiment pertinent. (Vous devriez probablement mettre à jour la question pour le rendre plus clair).

Vous faites la bonne chose, votre problème est juste que le fournisseur de cryptographie Java Sunjce Java ne prend pas en charge les AES pour le cryptage basé sur le mot de passe. Vous devez utiliser un autre fournisseur qui fait: par exemple, vous pouvez utiliser le Fournisseur Bouncy Castle avec L'algorithme "PBEWITHSHA256AND128BITAES-CBC-BC" . (Malgré le nom fantastique, le château de Bouncy est bien respecté).

comme pour "est suffisamment sécurisé pour mes données", eh bien si les données que vous protégeent valent moins d'environ 10 000 $ à un attaquant, puis de retour en 2009, c'était probablement assez sécurisé. Et en 2014, si vos données vaut la peine de crypter du tout, la réponse est non.


1 commentaires

Vous pouvez probablement remplacer 10 000 $ avec 100 $ ... Étant donné des avancées récentes en brute-forçage à l'aide de GPU.



3
votes

Si vous avez Java 6 disponible, tout ce dont vous avez besoin est disponible. Découvrez ce Question et regarder la réponse acceptée pour un échantillon de code. Depuis que vous souhaitez chiffrer des fichiers, le IV généré doit être préparé au fichier que vous écrivez le CIPHERText pour, de sorte qu'il soit disponible pendant le déchiffrement.


0 commentaires