[spip ↪ refactor_auth_spip] 5 commits

spip/spip | 5 commits

Par Matthieu Marcillaud, le 24 février 2022 à 11h28min :

Déplacement de Chiffrer dans ecrire/src en prévision d’un futur autoloader

Modifié
ecrire/auth/spip.php
ecrire/inc/chiffrer.php
ecrire/inc/securiser_action.php
ecrire/install/etape_3b.php

Détails : https://git.spip.net/spip/spip/commit/c26e713d3e1cff7f3c3026e180b2d5307b305025

==============================
Par Matthieu Marcillaud, le 24 février 2022 à 11h37min :

Chiffrement plus poussé : pad / unpad du message + hash si password (g0uZ)

  • Utiliser sodium_pad et sodium_unpad sur le message à chiffrer
  • Hacher un password en sha256 dans le chiffrement s’il sert comme clé.
    C’est un compromis suffisant.

Modifié
ecrire/src/Chiffrer/Chiffrement.php

Détails : Chiffrement plus poussé : pad / unpad du message + hash si password (g0uZ) · d5960cf956 - spip - SPIP on GIT

==============================
Par Matthieu Marcillaud, le 24 février 2022 à 19h51min :

Ne pas mettre de jeton d’url directement en bdd (cas de l’inscription d’auteur ou du changement de mot de passe) : on le hash avant (g0uZ)

Modifié
ecrire/action/inscrire_auteur.php

Détails : Ne pas mettre de jeton d’url directement en bdd (cas de l’inscription d’auteur ou du changement de mot de passe) : on le hash avant (g0uZ) · 2bf5215f82 - spip - SPIP on GIT

==============================
Par Matthieu Marcillaud, le 24 février 2022 à 23h07min :

Suite de 23994e0b1 : Ne pas mettre de jeton d’url directement en bdd (cas de l’inscription d’auteur ou du changement de mot de passe)

On chiffre le jeton en base, mais on permet 2 choses

  • Pouvoir retrouver le jeton actuellement utilisé sur un auteur (déchiffrage possible) (Rastapopoulos)
  • On limite le nombre de déchiffrages à effectuer en ayant une partie publique du jeton en bdd, qui
    sert à filtrer les auteurs dont on veut vérifier les jetons (a priori 1 seul auteur à vérifier)

Introduction d’une fonction auteur_lire_jeton($id_auteur, $autoInit = false), qui lit un jeton
sans écraser le précédent utilisé (ce que fait auteur_attribuer_jeton())

Notons que ces histoires de jeton mériteraient quelques améliorations

  • permettre l’expiration des jetons
  • permettre plusieurs jetons pour un même auteur directement

Modifié
ecrire/action/inscrire_auteur.php

Détails : Suite de 23994e0b1 : Ne pas mettre de jeton d’url directement en bdd (cas de l’inscription d’auteur ou du changement de mot de passe) · 437adec529 - spip - SPIP on GIT

==============================
Par Matthieu Marcillaud, le 25 février 2022 à 18h11min :

Sécurité des authentifications avec le secret du site (g0uZ) :

  • la clé secret_du_site est partagée entre le disque et la base de données. Il faut les 2 pour le calculer (la clé secret_du_site, et la meta secret_du_site).
  • Si on demande à chiffrer avec autre chose qu’une clé de longueur adaptée (ie: générée par Chiffrement::keygen()), tel qu’un mot de passe, alors on passe dans sodium_crypto_pwhash(),
    qui est la fonction adaptée à ce cas, mais le coût est très élevé dans ce cas (temps / mémoire, même au minimum possible)
  • On s’arrange donc pour que le secret_du_site obtenu soit effectivement de la taille adaptée à la clé de chiffrement.

Modifié
ecrire/action/inscrire_auteur.php
ecrire/inc/securiser_action.php
ecrire/src/Chiffrer/Chiffrement.php
ecrire/src/Chiffrer/SpipCles.php

Détails : https://git.spip.net/spip/spip/commit/f9424719aa5e1b758bcd588c0c4a96e5c8bc2887