Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Changer son mot de passe windows

13 réponses
Avatar
MChrisM
Salut,

Je voudrais savoir si on peut changer son mot de passe windows (compte
windows non admin) directement a partie d'un serveur sous Linux via des soft
comme Samba par ex.

Merci

3 réponses

1 2
Avatar
l'indien
On Sat, 26 Feb 2005 16:28:13 +0000, Nicolas George wrote:

l'indien wrote in message :
Non, absolument pas. Un mot de passe hashé, comme celui des shadow
passwords marche parfaitement avec cette méthode. Le fait de stocker le
mot de passe en clair ou dans une forme hashée est un autre problème,
complètement indépendant.


Non, ça ne marche pas : il faut le mot de passe en clair pour calculer la
valeur du challenge. En fait, ce n'est pas tout à fait exact, mais il faut
au serveur quelque chose _en clair_ qui lui permette de calculer la réponse.
Ce n'est pas forcément le mot de passe lui-même, car la fonction de
challenge peut commencer par touiller le mot de passe avant de le mélanger
au challenge, mais c'est une information qui est forcément suffisante pour
réussir le challenge.


C'est absolument faux. Il n'y a aucune obligation d'avoir le mot de passe
en clair ni aucune information qui permette de le retrouver pour mettre au
point une méthode d'authentification par challenge. Il suffit d'utiliser
un dérivé du mot de passe de qualité cryptographique, c.a.d qui
garantisse que deux mots de passes ne donnent pas le même résultat et
qu'il est impossible de remonter au mot de passe à partir du résultat.
C'est exactement ce que sont les hash de type md5 ou sha ou autres qui
servent _effectivement_ pour stocker les mots de passe.

En d'autres termes, si je parviens à savoir ce que le serveur sait du mot de
passe d'un utilisateur, je n'en saurai pas forcément assez pour
m'authentifier en tant que A sur un système complètement différent mais où A
aurait utilisé le même mot de passe, mais j'en saurai forcément assez pour
m'authentifier auprès du serveur en tant que A.

Les shadow-passwords et similaires donnent moins d'information que ça : si
je te dis que mon mot de passe dans shadow est
« $1$$PjsCIhRcjpb1ItINbbHv2. », tu n'as pas assez d'information pour
t'authentifier en tant que moi (à moins de trouver une collision dans la
fonciton de hash, évidemment).


Je n'ai jamais prétendu que le "shadow password" permettait d'usurper
l'identité d'un utilisateur. J'ai dit qu'ils permettent de mettre en
place une authentification par challenge. C'est tellement vrai que c'est
ce qui sert en réalité: le challenge n'est pas résolu par la
combinaison (mot de passe + challenge alléatoire) mais par une
combinaison de (hash du mot de passe + challenge alléatoire). Si le hash
employé est de qualité cryptographique, le résultat est strictement le
même au niveau de la qualité de l'authentification et le serveur n'a
jamais besoin de connaitre le mot de passe, seulement son hash.
Quand aux différences de stockage des mots de passes (utilisation d'un
sel de hachage, différentes méthodes de hashage), c'est vrai qu'elles
existent, c'est pourquoi lorsqu'il y a authentification par challenge (je
parle de vrai authentification sécurisée, pas de bidouillage), le
serveur fournit avec le challenge le sel et la méthode à utiliser pour
hasher le mot de passe. Il y a parfois aussi négociation de la méthode
employée pour hasher le challenge avec le hash du mot de passe.
Si ce que tu disais était vrai (mots de passes stockés en
clair), ces méthodes d'authentifications seraient inutilisables car bien
trop dangereuses (il suffit de hacker 1 machine pour avoir tous les mots
de passes...). Hors, les authentifications par challenges sont très
largement répandues, justement parce que leur niveau de sécurité est
très satisfaisant en l'état actuel de la technique du moment que les
fonctions de hashage sont fiables (en termes cryptographiques, toujours).

En passant, trouver une collision dans une fonction de hashage n'est pas
difficile, c'est même une évidence. Ce qui rends une fonction de hashage
sure, c'est l'impossibilité de prédire une collision autrement que
par la force brute, c'est une nuance de très grande importance.


Avatar
Nicolas George
l'indien wrote in message :
même au niveau de la qualité de l'authentification et le serveur n'a
jamais besoin de connaitre le mot de passe, seulement son hash.


Précisément. Mais ce que je dis, et que tu n'as pas compris, c'est que le
client a également besoin de « seulement son hash » pour s'authentifier.

En d'autres termes, si tu me donnes la ligne correspondant à ton compte dans
/etc/shadow, je ne peux rien en faire à moins de trouver une collision (ce
qui, nous sommes d'accord, ne demande rien de plus complexe que quelques
années ou siècles de force brute). Mais si cette ligne est utilisée dans un
schéma challenge-réponse, alors j'ai tout ce qu'il me faut pour
m'authentifier. Je n'ai pas la possibilité de retrouver le mot de passe,
mais je n'ai pas besoin du mot de passe.

Dit autrement : dans un schéma challenge-réponse, le mot de passe lui-même
n'est qu'un moyen mnémotechnique pour mémoriser le « vrai » mot de passe,
qui est le hash qu'en a le serveur.

Pour formaliser ça, on peut noter ça comme ça : le serveur envoit challenge,
le client répond par

réponse = F(challenge, mot-de-passe)

et le serveur autorise l'accès si

réponse == G(challenge, certificat-du-client)

où certificat-du-client = hash(mot-de-passe) est ce que le serveur a dans
ses bases de données, et où

F(c, mdp) = G(c, hash(mdp))

est une décomposition simple des fonctions utilisées.

Maintenant, si je peux avoir accès en lecture aux bases de données du
serveur, je connais certificat-du-client, et je peux alors m'authentifier
auprès du serveur, non pas en utilisant la fonction F comme un client
normal, mais en utilisant la fonction G directement.

Avatar
l'indien
On Sat, 26 Feb 2005 18:40:46 +0000, Nicolas George wrote:

l'indien wrote in message :
même au niveau de la qualité de l'authentification et le serveur n'a
jamais besoin de connaitre le mot de passe, seulement son hash.


Précisément. Mais ce que je dis, et que tu n'as pas compris, c'est que le
client a également besoin de « seulement son hash » pour s'authentifier.

Pour formaliser ça, on peut noter ça comme ça : le serveur envoit challenge,
le client répond par

réponse = F(challenge, mot-de-passe)

et le serveur autorise l'accès si

réponse == G(challenge, certificat-du-client)

où certificat-du-client = hash(mot-de-passe) est ce que le serveur a dans
ses bases de données, et où

F(c, mdp) = G(c, hash(mdp))

est une décomposition simple des fonctions utilisées.


OK, je n'avais effectivement pas compris ce que tu voulais dire.
Tu as raison.


1 2