"il y a un truc que tu ne changeras pas : l'interface chaise/clavier."
C'est malheureux.
À vrai dire, le système classique c'est de faire confiance à l'adresse mail : le client choisi son login/pass, et s'il perd son pass (ou un pirate lui change) il peut se faire renvoyer un code par mail pour changer son pass... Oui parce-que si on lui renvoi directement un nouveau pass, n'importe qui pourrait l'embêter en lui changeant son pass si son login est connu (adresse mail par exemple).
Perso j'ai pas trop envie de gérer les mail, à cause du spam et du fait que c'est en clair. Dans le cas d'un keylogger ça ne change rien puisque le pirate peut lui prendre le passe de son compte ET de son adresse mail.
Au final je suis parti sur l'idée suivante :
- connexion sécurisé avec TLS à chaque connexion, pour éviter l’interception des login/pass.
- un pass de connexion courante (généré aléatoirement et attribué à la création du compte)
- un pass administrateur (choisi par le client)
Le pass administrateur permet de récupérer le compte s'il a été piraté, ou de générer un nouveau pass courant, et il est nécessaire pour supprimer le compte, mais on ne peut pas se connecter avec, seulement générer un autre pass courant.
Normalement, le pass administrateur n'étant jamais utilisé par le client, il a très peu de chance d'être intercepté. Je sais pas ce que ça vaut au final, mais c'est l'idée un peu bancale que j'ai développée, le problème le plus visible étant que ça fait deux pass à retenir pour le client 