web-dev-qa-db-fra.com

Est-il possible d'envoyer un mot de passe en texte brut via HTTPS?

Je comprends pourquoi le mot de passe doit être salé et haché avant d'être enregistré dans la base de données, mais ma question est de savoir s'il doit être haché côté navigateur ou simplement envoyer un mot de passe en texte brut via HTTPS est considéré comme sécurisé.

Si tout va bien, existe-t-il un document que je puisse utiliser pour prouver à mon client que le système est sécurisé? Si ce n'est pas le cas, quelles sont les meilleures pratiques?

31
user96738

Il est courant d'envoyer des mots de passe "en clair" via HTTPS. Les mots de passe ne sont finalement pas du texte en clair, car la communication client-serveur est cryptée selon TLS.

Crypter le mot de passe avant de l'envoyer en HTTPS ne fait pas grand-chose: si l'attaquant mettait la main sur le mot de passe crypté, il pourrait simplement l'utiliser comme s'il s'agissait du mot de passe réel, le serveur ne connaîtrait pas la différence. Le seul avantage qu'il offrirait est de protéger les utilisateurs qui utilisent le même mot de passe pour plusieurs sites, mais cela ne rendrait pas votre site plus sûr.

33
Buffalo5ix

L'envoi de mots de passe du navigateur au serveur Web via HTTPS est une pratique standard. Le mot de passe est crypté grâce à HTTPS lors de son envoi. Voir https://stackoverflow.com/questions/962187/plain-text-password-over-https

8
mti2935

Lorsqu'un utilisateur tape un mot de passe dans un code HTML <input type=password ...> champ, il sera normalement envoyé au serveur tel quel, c'est-à-dire sans hachage ni salage. C'est pourquoi cela ne devrait jamais se faire sans HTTPS.

Mais si votre HTTPS est solide, cela devrait être OK. C'est ce que font la plupart des applications Web.

5
Mark Koek