Les attaques par dico sont des attaques brute-force, c'est là même chose, c'est juste l'algorithme de recherche du mot de passe qui change. Du point de vue de la soumission du mot de passe, on s'en fout si l'attaque se fait par dico ou non…
Ensuite, concernant MD5, évidemment si on a le hash du mot de passe c'est trivial. Tu prends une db de mots de passe sur internet et tu fais une simple requête pour retrouver un mot de passe correspondant au hash. Mais là le problème est là aussi indépendant de ça. Si quelqu'un réussit à choquer le hash des mots de passe utilisateur, c'est qu'il a pu infiltrer le système, et là les restrictions de sécurité au niveau serveur http sont juste useless.
Il ne faut pas mélanger les niveaux de sécurité (si l'un d'eux est compromis, les suivants sont inutiles) :
- Sécurité et stabilité du système, mise en oeuvre par l'administrateur du serveur, ça comprend protection contre les DoS, mises à jour de sécurité, définition des droits utilisateurs.
- Sécurité du site, mise en oeuvre par le développeur, protection contre les injections de code, fix des failles du site.
- Sécurité de la procédure de connexion, mise en oeuvre par le développeur, qui est tout aussi bien la sécurité du protocole client-serveur, que les mécanismes de protection contre le brute-force.
- Sécurité de la représentation du mot de passe. Théoriquement, si les sécurités précédentes étaient bien appliquées, ça ne devrait pas être utile, mais on tient à protéger la vie privée des utilisateurs, notamment leurs mots de passe, donc il faut chiffrer le mot de passe autrement mieux qu'avec un simple MD5…
- Enfin sécurité du mot de passe, qui est de la responsabilité de l'utilisateur. Celle de ne pas prendre un mot de passe trivial, donc pas de mot du dico, pas de mot de passe court, pas de mot de passe alphanumérique, …
Et je dois en oublier encore, vu que je ne suis pas un expert. La sécurité c'est pas un domaine simple non plus, et là on s'amuse un peu à tout confondre, aussi bien la sécurité du serveur, que la sécurité du mot de passe, etc… Alors que ce ne sont ni les mêmes mécanismes, ni les mêmes enjeux, ni les mêmes acteurs pour les mettre en oeuvre, etc…