Browse Source

MAJ readme pour "donner du sens"

master
gouz 10 months ago
parent
commit
623073a484
  1. 34
      README.md

34
README.md

@ -1,7 +1,9 @@
Le plugin chiffrer :
## Plugin chiffrer : vous prendrez bien du poivre avec votre sel ? ##
- génère un poivre (une clé secréte stockée sur le disque dans config/)
- supprime le hash réalisé coté client et son traitement coté serveur
### Fonctionnalitées ###
- supprime le hash réalisé coté client en Javascript et son traitement coté serveur en PHP
- génère un poivre (une clé secréte stockée sur le disque dans config/cles.php)
- utilise les fonctions PHP adéquates pour le caclul et la vérification du hash du mot de passe avec password_hash() (en temps constant)
- met à jour le hash du mdp de l'utilisateur lors du login
- autorise le login avec ce type hash tout en restant compatible avec les anciens algorithmes md5 & sha
@ -10,6 +12,28 @@ Le plugin chiffrer :
- expose une API basique pour chiffrer()/dechiffrer() des données
Il n'est ainsi plus possible de réaliser une attaque de type Pass The Hash suite à la récupération des hash de la DB. De la même manière il est désormais impossible d'espérer casser un hash de mot de passe avant qu'on est fini de tuer notre planète. Son installation étant un "aller-simple" (on ne peut pas revenir en arrière), est ce qu'on peut l'intégrer via -dist/ dans une 4.1 par exemple ?
### Pourquoi ? ###
SPIP ne stocke pas les mots de passe des utilisateurs tels quels dans la base de données. Ils les protègent a l'aide d'une fonction de hachage https://fr.wikipedia.org/wiki/Fonction_de_hachage. Le mot de passe protégé : le hash, est salé https://fr.wikipedia.org/wiki/Salage_(cryptographie) afin d'éviter certaines attaques permettant de casser cette protection.
Historiquement, le web fonctionnait avec HTTP,c'est à dire sans mécanisme de chiffrement protégeant les données transportées. Afin de protéger le mot de passe de l'utilisateur lors de son transit entre le navigateur web et le serveur HTTP ; SPIP hache de le mot de passe de l'utilisateur dès sa saisie dans le navigateur (a l'aide de Javascript).
Ce mécanisme est vulnérable à une attaque de type Pass The Hash https://en.wikipedia.org/wiki/Pass_the_hash consistant a envoyer le hash du mot de passe au serveur. Ainsi dans le cas d'une fuite de la base de données (sauvegarde perdue, injection SQL en lecture), l'attaquant est en mesure de s'authentifier avec le hash sans avoir besoin de connaitre le mot de passe correspondant.
Ce plugin implémente un mécanisme de sécurité supplémentaire au hash et au sel : le poivre https://en.wikipedia.org/wiki/Pepper_(cryptography). Le poivre est stocké a un endroit différent des hash et sels, dans notre cas : config/cles.php.
Il n'est ainsi plus possible de réaliser une attaque de type Pass The Hash suite à la récupération des hash et sels des mots de passes des auteurs contenus dans la base de données. De la même manière il est désormais impossible d'espérer casser un hash de mot de passe dans disposer des trois éléments hash/sel/poivre et quand bien même : la sécurité des nouvelles fonctions de hachage utilisée (bcrypt ou Argon2) est trop grande.
### ATTENTION ###
Son installation est un "aller-simple" : une fois les hashs des auteurs changés avec les nouvelles fonctions il n'est pas possible de revenir en arrière en désactivant le plugin.
Si le plugin est désactivé : il n'est plus possible de s'authentifier avec un auteur dont le hash du mot de passe a été MAJ. Il faudra dans ce cas fixer un nouveau mot de passe pour cet auteur.
Ce plugin a vocation a être intégré dans plugins-dist/ ou dans le core dans une 4.x future.
### TODO ###
TODO : La fonctionnalité de perte de mot de passe n'a pas encore subit un traitement similaire, de manière générale tous les aléas secrets générés devraient y passer
La fonctionnalité de perte de mot de passe n'a pas encore subit un traitement similaire, de manière générale tous les aléas secrets générés devraient y passer

Loading…
Cancel
Save