Quel cryptage utiliser ?

Coucou, c'est encore moi , je spammes un peu ces temps ci !

Tout est dans le titre, en sachant que c'est pour crypter un mot de passe dans une DB et que :

- il existe des dictionnaires pour le md5 / sha1 et qu'avec la puissance des ordis actuels ça craint.
- les cryptages genre rijndael ou AES utilisent des clés de cryptage et / ou des IV qu'il faut bien conserver quelque part, ce qui pose de nouveau un gros souci de sécurité ...

Partant du principe que le programme doit pouvoir décrypter les données, n'importe quel utilisateur malveillant qui arrive à avoir le même niveau de que le programme peut décrypter les données. @Je vois pas comment faire ...

Aux dernières nouvelles je suis toujours en PHP , j'essaye d'utiliser du Rijndael128, et j'ai un souci avec le fait de conserver la clé de cryptage et l'IV ... Parce que je sais pas ou les stocker pour que ce soit sécure.

Poster un commentaire
anonyme
anonyme
a
7 ans

Commentaire supprimé.

NoxWorld
NoxWorld
7 ans

@Adrinoob: Je lirai merci :)

Olbaid
Olbaid
7 ans

Hey !
Alors :
- md5 à éviter absolument, trop faible, et comme tu le disais les tables sont courrantes
- sha1, ça va encore mais tous les majors commencent à le déprécier pour la même raison. A utiliser avec un salt, donc ;)
- sha256 (sha2) et plus ( sha512 ... ) sont conseillés par l'ANSII et les différents centres etatiques. C'est robuste, et pour l'instant pas de soucis
- bcrypt, basé sur Blowfish, est beaucoup utilisé parce que sur le long terme il est plus solide que sha2 ( cf top answer : https://stackoverflow.com/questions/1561174/sha512-vs-blowfish-and-bcrypt )


Ensuite :
AES ( et donc Rijndael, sa base ), tout comme n'importe quel autre algo de crypto Symétrique, n'est pas fait pour stocker des mots de passe.
Il n'existe pas de méthode pour stocker de manière safe une clé :
Si elle est dans ton code source, il suffit d'y accéder et toutes tes données sont compromises... Idem si c'est dans un fichier à part.
Tu peux "gagner du temps" avec de la sécurité système, mais si un hacker rentre et cherche vraiment, il arrivera à y accéder.
Un peu plus propre que dans un fichier, sous windows il existe DPAPI, mais je ne l'ai jamais utilisé avec du php


Voilà voilà, dis moi si tu veux plus d'infos
( ps : On dit chiffrer et pas _crypter_ !
http://www.bortzmeyer.org/cryptage-n-existe-pas.html )

Commentaire supprimé.

Babouche
Babouche
7 ans

md5, avec un dictionnaire, si le mec veut entrer un mot de passe et qu'il est dans le dictionnaire "mot de passe interdit" ?

Myosotys
Myosotys
7 ans

"Partant du principe que le programme doit pouvoir décrypter les données"
Pourquoi tu parles de md5/SHA1/SHA2 ??? c'est du hachage, donc par définition, c'est pas décryptable

Minipouss
Minipouss
7 ans

@Myosotys: tu as raison pour les hash en théorie sauf que, par exemple, md5 est "dehashable". Après tout est une question de complexité, de dico, de taille et de temps

Myosotys
Myosotys
7 ans

@Minipouss: Je suis d'accord, mais quand à l'origine on se dit "je dois pouvoir récupérer la valeur d'origine" ce qui est à priori son cas, on va pas du tout vers du hachage.
Après MD5 n'est pas plus "dehashable" que le reste, surtout quand le but est de connaitre la valeur réel d'origine (et pas une collision).

Minipouss
Minipouss
7 ans

@Myosotys: Oui mais il n'est pas très clair dans son énoncé. Veut-il stocker des mots de passe afin de pouvoir les récupérer ou dans le but de les utiliser. Récupérer = cryptage, utiliser = hashage.

Pour lui répondre je dirais que dans les deux cas il doit imposer des mots de passe complexes avec le meilleur cryptage/hash du moment (c'est lequel actuellement ?)

Myosotys
Myosotys
7 ans

@Minipouss: Pas la moindre idée :)

IDoc
IDoc
7 ans

Rajoute des informations dans ton hashage, par exemple, en plus d'un salt rajoute le timestamp de l'inscription.
Pense juste a un long salt si tu utilise SHA1 ou MD5 (très long dans le cas du MD5)

NoxWorld
NoxWorld
7 ans

@IDoc: J'utilises 64 caractères comme salt, ca devrait le faire :)

Cette page est réservée aux ADULTES

Tu es sur le point d'accéder à un site web qui contient du matériel explicite (pornographie).

Tu ne dois accéder à ce site que si tu as au moins 18 ans ou si tu as l'âge légal pour visionner ce type de matériel dans ta juridiction locale, l’âge le plus élevé étant retenu. En outre, tu déclares et garantis que tu ne permettras aucun mineur à d'accéder à ce site ou à ces services.


En accédant à ce site, tu acceptes nos conditions d'utilisation.