spip/spip | 2 commits
Par Matthieu Marcillaud, le 23 février 2022 à 04h13min :
Refactoring de la proposition de chiffrer en découppant en plus d’éléments
les différentes fonctionnalités. C’est pas parfait, mais ça parait mieux
structuré.
-
Chiffrement gère chiffrer() / dechiffrer() / keygen() (génération d’une nouvelle clé)
en s’appuyant sur Sodium, toujours présent dans PHP depuis PHP 7.2.
On utilise une chifferement symétrique (comme avec openssl précédement),
mais le code est simplifié car libsodium gère l’authentification du message et son salage. -
Password gère verifier() et hacher() en utilisant password_hash donc,
mais en retirant l’option ‹ salt › qui n’est plus utilisé par PHP > 8,
et effectivement il vaut mieux ne pas le renseigner (PHP gère un salt tournant
tout seul comme un grand). On s’en sert pour régénerer notre password haché en bdd. -
Cles est un conteneur de clés (tableau nom => clé), qui dispose
des fonctions backup() et restore() pour retourner ou lire un backup chiffré -
SpipClés étend clés en utilisant le fichier cles.php,
J’ai mis l’attribut #[\SensitiveParameter] sur différents paramètres en passant,
il devrait être actif à partir de PHP 8.2 pour dire de ne pas afficher la valeur
dans les affichages de backtrace() par exemple, afin de ne pas divulguer
malencontreusement certaines infos en debug.
Ajouté
ecrire/chiffrer/Chiffrement.php
ecrire/chiffrer/Cles.php
ecrire/chiffrer/Password.php
ecrire/chiffrer/SpipCles.php
Modifié
ecrire/auth/spip.php
ecrire/inc/chiffrer.php
Détails : https://git.spip.net/spip/spip/commit/c5b71afee80af75b0c00975d8b805d1a6a66d45b
==============================
Par Matthieu Marcillaud, le 23 février 2022 à 04h13min :
Refactoring de la proposition de chiffrer en découppant en plus d’éléments
les différentes fonctionnalités. C’est pas parfait, mais ça parait mieux
structuré.
-
Chiffrement gère chiffrer() / dechiffrer() / keygen() (génération d’une nouvelle clé)
en s’appuyant sur Sodium, toujours présent dans PHP depuis PHP 7.2.
On utilise une chifferement symétrique (comme avec openssl précédement),
mais le code est simplifié car libsodium gère l’authentification du message et son salage. -
Password gère verifier() et hacher() en utilisant password_hash donc,
mais en retirant l’option ‹ salt › qui n’est plus utilisé par PHP > 8,
et effectivement il vaut mieux ne pas le renseigner (PHP gère un salt tournant
tout seul comme un grand). On s’en sert pour régénerer notre password haché en bdd. -
Cles est un conteneur de clés (tableau nom => clé), qui dispose
des fonctions backup() et restore() pour retourner ou lire un backup chiffré -
SpipClés étend clés en utilisant le fichier cles.php,
J’ai mis l’attribut #[\SensitiveParameter] sur différents paramètres en passant,
il devrait être actif à partir de PHP 8.2 pour dire de ne pas afficher la valeur
dans les affichages de backtrace() par exemple, afin de ne pas divulguer
malencontreusement certaines infos en debug.
Ajouté
ecrire/chiffrer/Chiffrement.php
ecrire/chiffrer/Cles.php
ecrire/chiffrer/Password.php
ecrire/chiffrer/SpipCles.php
Modifié
ecrire/auth/spip.php
ecrire/inc/chiffrer.php
Détails : https://git.spip.net/spip/spip/commit/e61bf84b2b04a3e7bbd7d0275a0118b279f441eb