openMairie.org | Démonstration | Documentation | Forum

Prop0072 - Modifier la technique de hashage des mots de passe

Porteur principal : Laurent Groleau

Porteur secondaire : Stéphane Vicedo

Résumé

Remplacer la technique de hashage : passer de md5() à password_hash()

Motivation

Le hashage par la technique md5() manque de robustesse face à des attaques de force brute, PHP propose depuis PHP5.5 une extension native dédiée.

Pré-requis

Il faudra accepter de migrer les mots de passe des comptes locaux, par exemple en leur affectant un mot de passe temporaire personnel, dont le nouveau hash aura été calculé par PHP auparavant.

Proposition et implémentation

Utilisation de l’algorithme BCRYPT qui assure un hash de moins de 100 caractère, longueur actuelle du champ en base.
Branche faite depuis OM 4.9.2 : .../openmairie_exemple/branches/prop0072-hashage_mot_de_passe/

Codage du test automatique dans la suite de test 011_utilisateur.robot

Modifications:
R4521
R4524
R4525

Risques

Rencontrer des difficultés dans la reprise des mots de passe des utilisateurs locaux sur une base existante.

1 J'aime

Prêt à intégrer en attente de revue par la communauté

1 J'aime

Bonjour,

En pièce jointe le résultat de l’exécution des tests sur notre plateforme.
Résultat : 53/57
4 fails explicables :

15:55:15 Synchronisation des utilisateurs avec un annuaire LDAP :: On teste… | FAIL |
15:57:31 Page should have contained text ‹ Il y a 4 utilisateur(s) présent(s) dans l’annuaire et non présent(s) dans la base => 4 ajout(s) › but did not.
15:57:31 ------------------------------------------------------------------------------
=> Notre plateforme n’accède pas au web

16:03:59 Pagination en formulaire :: Vérifie la pagination sur un formulaire. | FAIL |
16:04:02 NoSuchElementException: Message: Cannot locate option with value: 15
16:04:02 ------------------------------------------------------------------------------
=> Fail de la branche OM4.10-dev

16:04:02 Pagination en sous-formulaire :: Vérifie la pagination sur un sous… | FAIL |
16:04:09 NoSuchElementException: Message: Cannot locate option with value: 15
16:04:09 ------------------------------------------------------------------------------
=> Idem

16:04:14 Recherche simple dans un SOUSTAB :: Vérifie le bon fonctionnement … | FAIL |
16:04:41 Element with locator ‹ css=#action-sousform-om_utilisateur-modifier › not found.
16:04:41 ------------------------------------------------------------------------------
=> Visiblement un problème d’AJAX et de temps d’exécution, un wait pourrait résoudre le problème. Le résultat semble aléatoire sur ce test. Idem 4.10.0-dev

PROP72 Résultat test.txt (16,1 Ko)
Ici l’exécution témoin de la 4.10.0-dev : 4.10.0-dev Résultat test.txt (16,1 Ko)