Je me retrouve face à un problème de compréhension vis à vis de la gestion et de la vérification du mot de passe entrée par l'utilisateur pour se logger depuis des champs d'identification (login, password).
J'aimerai savoir aussi "quand il apparait en clair ou non"
J'ai bien conscience que je ne dois pas stocker ou utiliser le mot de passe de l'utilisateur en clair dans une application, je devrais plutôt appliquer un hash dessus ou une fonction de chiffrement.
Mai c'est là que j'ai une zone noire.
Lorsque l'utilisateur entre son mot de passe et que la fonction de hash ou de chiffrement va y être appliqué, le mot de passe se retrouve bien en clair quelque part dans la mémoire ?
D'autre part, lors de l'implémentation de cette fonction de hash ou de chiffrement ...
-si je l'implémente coté client alors ma fonction est potentiellement connue par l'utilisateur ?
-si je l'implémente coté serveur alors comment transmettre le mot de passe de façon sécurisé ?
Quel est la meilleur implémentation, coté client ou coté serveur ou les deux ?
Enfin, concernant les fonction de hash disponible pour PHP:
J'ai trouvé ceux ci qui ne sont pas fiables :
- md5
- sha512
- tiger192
- ripemd320
- adler32
- crc32b
- fnv132
- joaat
- haval256
J'ai trouvé ceux ci qui serait fiable, notamment whirlpool et Bcrypt mais qui ne serait pas adapté sur du matériel avec mémoires et performances restreintes
- Bcrypt
- gost
- snefru256
- whirlpool
Laquelle serait le meilleur compromis entre performance et sécurité pour une application mobile ou en existe il d'autres ?
Est il envisageable d'utiliser un VPN pour transmettre ces informations plutôt que d'utiliser un hash ou bien vont ils de paire ?
Merci de m'avoir lu, dans l'attente de lire vos réponses ...
Bonne journée,
Partager