ZeSword
Bruxelles, Belgique

AVATAR
Mots de passe
le 24/04/2021 17:55
J'ouvre un nouveau sujet pour discuter des différentes tactiques de mots de passe. La discussion a été historiquement lancée sur le fil "Forge" par le post suivant, j'en recopie le début pour pouvoir suivre.

Skoyatt a écrit :
Bonjour. Je viens de créer mon compte et j'ai trouvé un peu dommage qu'il n'y ait aucun caractère spécial d'autorisé pour les mots de passe. Si vous avez la possibilité d'en autoriser quelques uns (voire carrément les 46 facilement utilisables sur un clavier Windows), je pense que ce serait top. ^^
Et au passage, si vous pouviez autoriser aussi un peu plus que 15 caractères maximum, ce serait génial, même si 15 c'est déjà bien.
haut de page - Les forums de MV >> Général >> Discussion : page 1 | 2
ZeSword
Bruxelles, Belgique

AVATAR
le 24/04/2021 17:58
Madmox a écrit :
Pour les mots de passe, une référence solide c'est l'OWASP Application Security Verification Standard.

En résumé :
- Longueur minimum de 8 caractères (trop faible sinon).
- Longueur maximum de 128 caractères (attaque DoS possible sinon).
- Ne pas altérer la valeur saisie par l'utilisateur lorsqu'il la soumet (sauf éventuellement les espaces consécutifs).
- Autoriser TOUS les caractères unicode affichables (émojis inclus).
- N'imposer AUCUNE règle de construction du mot de passe basée sur la présence ou l'absence de certains caractères.
- Les utilisateurs doivent pouvoir modifier leur mot de passe, et l'opération requiert de saisir l'ancien.
- Autoriser l'action de collage dans le champ mot de passe.
- Ajouter un bouton qui permet à l'utilisateur de visualiser temporairement la valeur saisie.
- Ne PAS imposer de changer son mot de passe périodiquement.
- Ne PAS stocker l'historique des anciens mots de passe de l'utilisateur dans l'application.
- Ajouter un outil de vérification de la force du mot de passe à la saisie (une excellente bibliothèque que j'utilise pour le boulot).

De manière générale, le document décrit aussi plein d'autres bonnes règles de sécurité.
ZeSword
Bruxelles, Belgique

AVATAR
le 24/04/2021 17:58
JMB a écrit :
Merci Madmox, pour MV, je retiens :

- Autoriser TOUS les caractères unicode affichables (émojis inclus).
- Ajouter un bouton qui permet à l'utilisateur de visualiser temporairement la valeur saisie.
- Ajouter un outil de vérification de la force du mot de passe à la saisie (mais j'ai pas le début d'une idée de comment utiliser ta bibliothèque)
ZeSword
Bruxelles, Belgique

AVATAR
le 24/04/2021 17:58
niarfounet a écrit :
+1 avec Madmox.

Cette référence devrait être la norme et c'est tellement dommage que ce ne le soit pas.

Bonjour la sécurité quand tu imposes tellement de chose aux utilisateurs qu'ils en viennent à noter leurs passwords sur un post-it collé à leur écran où doivent claim un reset de password régulièrement parce qu'ils l'oublient.
ZeSword
Bruxelles, Belgique

AVATAR
le 24/04/2021 18:00
Madmox a écrit :
La bibliothèque (zxcvbn-ts) est assez bas niveau, c'est en gros un simple outil d'évaluation de l'entropie d'une chaîne de caractères avec des petits ajouts pratiques pour le cas particulier des mots de passe. Tu charges la librairie, tu lui files ta chaîne de caractères, et elle te ressort un objet avec quelques infos. De notre côté on n'utilise que le score (valeur de 0 à 4), et on n'autorise que les mots de passe dont le score vaut 3 ou 4.

Y a aussi moyen de brancher des dictionnaires de mots communs sur la librairie pour améliorer l'estimation du score (qui ne se fait sinon que sur des règles universelles comme les répétitions de caractères, les séquences logiques, la longueur, la diversité des caractères, etc.). Malheureusement par défaut y a que le dico anglais et allemand je crois. Un de mes collègues a récemment soumis une PR pour ajouter un dico français, il devrait apparaître dans la prochaine version. Ça permet d'éviter les mots de passe du genre "KevinDupond" ou "motdepasse".

Pour l'usage, j'imagine que tu n'utilise pas de gestionnaire de dépendances pour MV, mais tu peux toujours t'inspirer de cet exemple.
ZeSword
Bruxelles, Belgique

AVATAR
le 24/04/2021 18:00
Madmox a écrit :
Ça permet d'éviter les mots de passe du genre "KevinDupond" ou "motdepasse".


Je ne suis pas d'accord !
https://xkcd.com/936/

Mot de passe constitué de la concaténation de 4 mots FTW ! :o)
ZeSword
Bruxelles, Belgique

AVATAR
le 24/04/2021 18:00
Madmox a écrit :
ZeSword a écrit :
Je ne suis pas d'accord !
https://xkcd.com/936/

Mot de passe constitué de la concaténation de 4 mots FTW ! :o)

Je suis pour les passphrases hein, mais les exemples que j'ai donnés se craquent en 3 secondes avec un PC normal à partir du hash. Y a pas du tout la même entropie dans le mot de passe "motdepasse" que dans le mot de passe "mon mot de passe est meilleur que le tien" ou "motdepasse steak pendule binouze". Ce qui fait la force des deux derniers c'est la longueur et le nombre de mots utilisés : même avec une attaque par dictionnaire t'en as pour des années avant d'arriver à les craquer.
ZeSword
Bruxelles, Belgique

AVATAR
le 24/04/2021 18:00
canar a écrit :
Je connaissais pas les passphrase, intéressant ! Apparemment 4 mots c'est un peu short aujourd'hui :)
ZeSword
Bruxelles, Belgique

AVATAR
le 24/04/2021 18:01
Madmox a écrit :
Perso j'utilise un système similaire mais compatible avec la plupart des sites, qui sont souvent limités en longueur mais utilisent des règles de composition majuscule/minuscule/chiffre/caractère spécial. Je vous en donne un à peu près équivalent à celui que j'utilise :

Citation :
Étape 1 : choisir une phrase contenant une dizaine de mots
"Tu prends une phrase quelconque, par exemple celle-ci."

Étape 2 : mettre une majuscule à certains mots (ici, 1 sur 3)
"Tu prends une Phrase quelconque, par Exemple celle-ci."

Étape 3 : remplacer certains mots par des chiffres (en mode "langage SMS")
"Tu prends 1 Phrase quelconque, par Exemple celle-ci."

Étape 4 : garder seulement la 1ère lettre de chaque mot et la ponctuation
"Tp1Pq,pEc-c."


J'ai même poussé le truc de manière à ce que la phrase-clé soit contextualisable en fonction du site, comme ça j'ai un mot de passe différent partout, et la partie variable est facilement mémorisable mais difficilement identifiable, même si l'attaquant possède déjà un autre de mes mots de passe (assez facile à faire pour le webmaster d'un site sur lequel je suis inscrit ou en cas de fuite de données sur un site qui stocke les mots de passe non-hashés). La variabilisation est quasiment inutile si l'attaquant en possède deux par contre. Y a des règles beaucoup plus robustes, mais je trouve que je me fais déjà bien assez chier.

Avec ce système, je crois que les seules fois où j'ai dû utiliser la fonction "mot de passe oublié", c'est quand la rotation du mot de passe m'a forcé à en improviser un nouveau en urgence, que j'ai fatalement oublié par la suite (depuis, j'utilise une "phrase-clé de secours"). Et de temps en temps je peux changer de phrase-clé en repassant sur les sites (genre 1 fois toutes les quelques années, ou quand on me signale une fuite de données, comme ce fut le cas quand j'ai reçu un mail de scam contenant mon mot de passe MagicVille il y a quelques mois...).

Sinon y a le système "password manager", c'est efficace, mais pas exploitable quand tu veux te connecter temporairement sur l'ordi d'un ami ou sur "l'ordi du taf sur lequel tu peux rien installer", et faut avoir confiance dans le prestataire.
ZeSword
Bruxelles, Belgique

AVATAR
le 24/04/2021 18:01
canar a écrit :
Pas mal, je fais parfois un truc similaire, en prenant une phrase et en la triturant pas mal (caps, remplacer certaines lettres par des chiffres, etc.) Au final ça donne un truc semblable à ton exemple, sauf qu'on peut encore vaguement lire la phrase. Ton truc est donc 1 cran au-dessus.
ZeSword
Bruxelles, Belgique

AVATAR
le 24/04/2021 18:01
Madmox a écrit :
(depuis, j'utilise une "phrase-clé de secours")


Alors je suis peut-être parano, mais quand un site me propose de "remplir deux trucs obligatoires pour retrouver mon mot de passe si je le perds", je tape une dizaine de touches au hasard sur mon clavier et je ne les note nulle part.

Concernant les mots de passe, j'ai aussi un mot de passe par site avec un bout de contexte, mais je suis arrivé un peu au bout de ma vie au niveau de ce qui était mémorisable. Ce d'autant que Firefox se souvient de plusieurs de mes mots de passe, et que donc finalement, le nombre de mots de passe que je dois taper réellement est assez faible. Je ne me suis jamais posé la question de savoir si c'était sûr de faire mémoriser mes mots de passe par Firefox par contre, c'est vrai (bon par contre si votre contre-attaque c'est "donc on s'introduit chez toi et on se connecte où on veut" bah mon ordi est quand même protégé par mot de passe).

En fait, je ne sais toujours pas ce qui serait la meilleure solution pour vraiment stocker plein de mots de passe. Là j'ai à peu près 150 mots de passe différents, pour tout un tas de sites sur lesquels je ne me connecte en pratique quasi-jamais. Écrire ses mots de passe quelque part, stocké dans un endroit sûr ? Utiliser moins de mots de passe (les partager entre sites) ? Déconnecter et ne plus avoir que deux mots de passe, celui de sa carte bleue et celui de magic-ville ? N'utiliser que des sites qui proposent la technologie "one time password" ? (à un moment pic de ma vie j'avais 2 clefs "one time password" : un pour le travail, un pour world of warcraft - je m'étais fait hacker mon compte, donc j'avais opté pour cette solution après avoir, un peu comme JMB, eu la chance de récupérer tous mes objets volés par le hacker grâce à un maître du jeu ; aujourd'hui je n'ai plus qu'une connexion par "one time password", quand je paye en ligne avec ma banque)
ZeSword
Bruxelles, Belgique

AVATAR
le 24/04/2021 18:01
canar a écrit :
J'ai pas compris la phrase de Madmox comme toi : pour moi il a un mot de passe de secours qu'il renseigne quand il a besoin d'un mot de passe à renseigner à l'arrache.

J'utilise aussi Firefox pour stocker mes mdp. Par contre j'utilise un mot de passe principal et je te conseille quand même de faire de même (c'est une option à activer).

Pour la stratégie de mdp, avant j'avais un mdp "poubelle" que j'utilisais sur les sites dont je me foutais. Sauf que j'ai eu le même genre de scam que Madmox, avec ce fameux mot de passe dont j'étais incapable de déterminer l'origine, vu que je l'utilisais sur plusieurs sites. J'ai donc été changer sur les 20 ou 30 sites mon mdp, pénible. Maintenant, pour les sites dont je me fous, j'utilise le générateur intégré dans Firefox (il te propose d'en générer un quand l'input pour entrer le mot de passe est actif) et je stocke le mdp sans même essayer de m'en rappeler. Ou alors je ne le stocke même pas et je demanderai un reset dans 2 ans, quand je retournerai sur le site en question. Ah et je ne me connecte jamais sur un site avec mon compte FB ou google : je suis peut-être parano mais j'aime pas trop l'idée (surtout que ça doit encore plus informer les GAFAM de tous tes faits et gestes).

Bon on devrait sans doute poursuivre cette conversation ailleurs ^^
ZeSword
Bruxelles, Belgique

AVATAR
le 24/04/2021 18:02
Madmox a écrit :
ZeSword a écrit :
Alors je suis peut-être parano, mais quand un site me propose de "remplir deux trucs obligatoires pour retrouver mon mot de passe si je le perds", je tape une dizaine de touches au hasard sur mon clavier et je ne les note nulle part.

canar a écrit :
J'ai pas compris la phrase de Madmox comme toi : pour moi il a un mot de passe de secours qu'il renseigne quand il a besoin d'un mot de passe à renseigner à l'arrache.

canar est plus proche de ce que je voulais dire. Par "phrase-clé" je ne parlais pas de question secrète, mais d'une 2ème passphrase qui me sert de générateur de mot de passe alternatif, au cas où on me force à changer de mot de passe et que je ne peux pas réutiliser la 1ère. Les questions secrètes c'est globalement de la merde oui, enfin ça dépend un peu du contexte, mais la plupart du temps.

Pour le reste, toutes les suggestions de canar me semblent top, je fais pareil.
ZeSword
Bruxelles, Belgique

AVATAR
Du coup
le 24/04/2021 18:09
Je voulais rebondir sur plusieurs parties de la discussion, mais déjà sur cette partie-là :

Madmox disait être pour les passphrases, mais ajoutait que les exemples "KevinDupond" ou "motdepasse" se craquent en 3 secondes avec un PC normal à partir du hach.

Je voulais être sûr d'avoir bien compris : l'idée de l'attaque, c'est que l'attaquant a accès au serveur d'un site web, qui, pour gérer les mots de passe, a stocké une version hachée des mots de passe ? Et du coup l'attaque c'est de tester des trucs "bien connus" (attaque par dictionnaire dont tu parles ensuite ?) pour comparer au haché ?

Donc l'attaquant est capable de se connecter au serveur, de récupérer la fonction de hachage ainsi que les hachés des mots de passe, puis de faire une boucle sur des mots de passe "classiques" jusqu'à tomber sur un mot de passe qui a le même haché, ce qui implique que les deux mots de passe sont égaux.

Mais qu'est-ce qui, au départ, permet de faire la liste des "mots de passe classiques" à tester ? Cette fois-ci ce n'est pas un ordinateur qui peut le faire, il faut un peu de ressources humaines au départ pour avoir cette liste de mdp classiques j'imagine ?
papaoursdelux
Damn!

Légende
Mmh
le 24/04/2021 18:31
Jayrems à été banni pour moins que ça :)
Toufmade
A force de niquer ma vie, j'ai fini par trouver l'pointG

le 24/04/2021 18:33
J'avoue. Est ce que ZS peut bannir l'utilisateur ZeSword qui flood le gen.
Merci d'avance !
papaoursdelux
Damn!

Légende
le 24/04/2021 19:29
Ça risquerai de refoitre le feu au serveur ça, non ?
Madmox
I guess Warhol wasn't wrong, Fame fifteen minutes long

Légende
le 24/04/2021 20:12
Y a des tas de types d'attaque de type "force brute". La plus performante c'est en effet de récupérer le hash (via fuite de la base de données par exemple), de tester un par un une liste de mots de passe avec la même fonction de hashage que celle utilisée par le site piraté, et de s'arrêter quand le hash correspond.

Citation :
Mais qu'est-ce qui, au départ, permet de faire la liste des "mots de passe classiques" à tester ?
Des dictionnaires de ce type sont disponibles un peu partout, d'ailleurs les composants qui permettent de mesurer la force d'un mot de passe en font usage (ex : mots de passe les plus utilisés, liste des prénoms français les plus courants, liste des mots les plus utilisés sur wikipédia dans une langue donnée, etc.). Les plus efficaces sont bien connus des hackers et disponibles très facilement sur le net. Il existe même des "rainbow tables", qui sont en fait une liste de mots de passe et leur hash selon une fonction de hashage donnée, et qui permettent d'accélérer l'attaque en évitant à l'algorithme de devoir recalculer le hash (cependant ces tables ne sont pas aussi efficaces si le hash est "salé").

Après le dictionnaire ne fait pas tout, l'algorithme qui va l'exploiter est aussi assez important : il peut se contenter de tester les mots de passe de la liste dans l'ordre, ou effectuer des combinaisons "stratégiques" de mots et de séparateur, combiner avec un peu de pure force brute, faire varier la casse... Après, si le mot de passe est suffisamment robuste et que l'attaquant ne cherche pas à craquer un compte en particulier, il a plutôt intérêt à utiliser un algorithme simple et passer à un autre compte plutôt que d'insister sur le même.

En fait ces techniques ne sont pas réservées aux attaques "hors ligne". Ça fonctionne assez facilement sur un site en ligne non piraté s'il n'est pas suffisamment sécurisé, notamment s'il ne bloque pas les tentatives de connexion après un certain nombre d'échecs. Il suffit à l'attaquant d'implémenter un robot qui va simuler des connexions de navigateur (possiblement en parallèle voire depuis plusieurs machines, voire un "botnet") en faisant varier login/mdp jusqu'à ce que le serveur réponde "OK". C'est beaucoup plus lent qu'une attaque hors ligne, mais avec un mot de passe aussi faible que "James1975" et une attaque distribuée utilisant un dictionnaire adapté, ça peut prendre un temps dérisoire... La démo de zxcvbn-ts donne d'ailleurs des estimations statistiques très intéressante (mais avec un dictionnaire anglais seulement).

Ce n'est d'ailleurs pas si simple de se protéger contre ce type d'attaque pour le propriétaire du site non plus :
- S'il bloque l'adresse IP qui échoue trop de fois à la suite, il risque de bloquer toute une entreprise dans laquelle tous les employés partagent l'IP du proxy. En plus, l'attaquant a toujours la possibilité de lancer son attaque de manière distribuée (botnet) et donc d'ignorer le blocage si son réseau est suffisamment grand.
- S'il bloque le compte, l'attaquant peut choisir de lisser son attaque sur plusieurs comptes en même temps s'il ne cherche pas à en pirater un en particulier, voire d'exploiter ce mécanisme de blocage pour bloquer l'accès au site à ses utilisateurs légitimes.
- etc.

Personnellement j'ai mis en place au boulot un mécanisme de blocage temporaire par adresse IP (blocage des tentatives de connexion provenant d'une IP donnée si X connexions échouées dans les Y dernières minutes), ça limite déjà pas mal le "niveau technique minimum" de l'attaquant sans devoir déployer des ressources coûteuses complexes à maintenir (Web Application Firewall, etc.).
Madmox
I guess Warhol wasn't wrong, Fame fifteen minutes long

Légende
le 24/04/2021 20:29
(remarque : le blocage par adresse IP, avec IPv6 et la possibilité pour tout un chacun de disposer de milliards de milliards d'adresses différentes depuis une seule machine, c'est plus aussi simple... y a moyen de bloquer tout un préfixe, mais avec des risques de faux positifs ou faux négatifs non négligeables)
Anonyme1
Protection contre les phaseurs, Traversée des *counters*

Légende
le 24/04/2021 22:33
JRx7!!!!3G4F est un bon mot de passe. Je pense que si on l'utilisais tous, ça règlerait tous les problèmes de sécurité.
L'avantage c'est que si on l'oubliait, ça donnerait le dialoggue suivant avec n'importe qui :
- Hey, c'est quoi mon mot de passe, déjà ?
- C'est pas JRX7!!!!3G4F , en tout cas, moi c'est celui que j'utilise : c'est un bon mot de passe.
Pas de problème d'oubli de mot de passe.
jayrems

le 24/04/2021 22:49
Ze il spammé le mm topic ça passe mieux :)
haut de page - Les forums de MV >> Général >> Discussion : page 1 | 2
Vous devez être identifié pour pouvoir poster sur les forums.