Voici ce que j'ai obtenu pour un schéma de connexion webapp. Présenter dans la base de données serait deux sels et hmac (hmac (mot de passe, salt1), sel2).Ce schéma de connexion est-il sécurisé?
Lorsque l'utilisateur va sur la page de connexion, il obtient salt1. Si javascript est activé, au lieu d'envoyer le mot de passe en clair, il enverra hmac (mot de passe, salt1). S'il n'a pas javascript, le mot de passe en clair est envoyé. Donc, sur le côté serveur, lorsque nous recevons une requête de connexion, nous vérifions d'abord ce qui est envoyé (passwordSent) par rapport à hmac (passwordSent, salt2). Si cela ne fonctionne pas, nous allons essayer hmac (hmac (passwordSent, salt1), salt2). Quelqu'un qui accède à la base de données ne devrait pas pouvoir se connecter avec les hachages de mot de passe et je ne pense pas (mais je peux me tromper) que plusieurs hmacs diminuent la résistance de hachage. Est-ce qu'un bon expert crypto voit une erreur évidente que j'ai pu faire?
Le point est de ne pas avoir un mot de passe simple passe autour si le client a le javascript activé mais encore permettre aux utilisateurs qui n'aiment pas js pour vous connecter. S'ils ont js qu'ils recevraient un peu plus de sécurité, si elles ne Ce n'est pas pire que la situation actuelle. Une indication claire lorsque javascript n'est pas activé devrait aider (à la SO). Il devrait être sur https mais ne l'empêche pas d'attaques MITM si l'utilisateur utilise un réseau local hostile. L'attaquant aurait le sel utilisé mais je ne vois que deux attaques qu'il pourrait exécuter: bruteforce le hash qu'il récupère, ou rejouer le mot de passe envoyé plus tard. – Arkh
@Arkh: Je pense que nous avons répondu à votre question. Exactement, quels vecteurs d'attaque pensez-vous que cette approche empêche? Vous effectuez une dégradation gracieuse de ce qui est essentiellement un non-op en termes de sécurité. – Aaronaught
Le vecteur que j'aimerais réduire est l'interception claire du mot de passe. Même si l'attaquant contrôle tout entre le client et le serveur. – Arkh