Oui, bon, l'authentification par secret partagé (ici un mot de passe), c'est bien, c'est pas trop compliqué même si comme tu le montres, il existe beaucoup de moyens de se foirer, mais quand même, depuis un bout de temps on a inventé d'autres moyens d'authentification. Certes, il nécessitent une modification des protocoles, et ne sont pas de simples moyens de « stockage de mots de passe ». Mais ils ont souvent d'autres avantages, le premier étant par exemple de ne jamais dévoiler le mot de passe au serveur en question. Au vu de la réutilisation massive des mots de passe de la part des utilisateurs pour différents services, ça me semble une qualité pas du tout négligeable.
Comme exemple, je pense par exemple à SCRAM http://tools.ietf.org/html/rfc5802, RFC 5802. Ça se base sur TLS pour l'authentification du serveur, et permet d'authentifier l'utilisateur sans qu'il ne donne son mot de passe, et sans que le serveur puisse se faire passer pour le client pour d'autres services (c'est un peu dérivé de la propriété précédente, certes), tout en évitant bien sûr le problème de dévoilement du secret côté serveur en cas de vol de la base. En bonus, je crois (mes souvenirs sont mauvais) qu'il évite les écueils classiques du channel-binding, i.e. il indique l'information qu'on peut utiliser comme étant suffisante pour identifier la personne à partir de ce canal, afin d'éviter le MITM (bon, c'est pas clair du tout dit comme ça...) ; cf RFC 5056 http://tools.ietf.org/search/rfc5056 si vous voulez creuser.
# Encore du secret partagé...
Posté par benoar . En réponse au journal L'art de stocker des mots de passe. Évalué à 4.
Oui, bon, l'authentification par secret partagé (ici un mot de passe), c'est bien, c'est pas trop compliqué même si comme tu le montres, il existe beaucoup de moyens de se foirer, mais quand même, depuis un bout de temps on a inventé d'autres moyens d'authentification. Certes, il nécessitent une modification des protocoles, et ne sont pas de simples moyens de « stockage de mots de passe ». Mais ils ont souvent d'autres avantages, le premier étant par exemple de ne jamais dévoiler le mot de passe au serveur en question. Au vu de la réutilisation massive des mots de passe de la part des utilisateurs pour différents services, ça me semble une qualité pas du tout négligeable.
Comme exemple, je pense par exemple à SCRAM http://tools.ietf.org/html/rfc5802, RFC 5802. Ça se base sur TLS pour l'authentification du serveur, et permet d'authentifier l'utilisateur sans qu'il ne donne son mot de passe, et sans que le serveur puisse se faire passer pour le client pour d'autres services (c'est un peu dérivé de la propriété précédente, certes), tout en évitant bien sûr le problème de dévoilement du secret côté serveur en cas de vol de la base. En bonus, je crois (mes souvenirs sont mauvais) qu'il évite les écueils classiques du channel-binding, i.e. il indique l'information qu'on peut utiliser comme étant suffisante pour identifier la personne à partir de ce canal, afin d'éviter le MITM (bon, c'est pas clair du tout dit comme ça...) ; cf RFC 5056 http://tools.ietf.org/search/rfc5056 si vous voulez creuser.