Mots de passe

Résistance et sécurité des mots de passe

  • Chaque utilisateur a un mot de passe associé qui est un secret qui ne doit être connu que de cet utilisateur.
  • En plus du hachage, les mots de passe sont par défaut cryptés à l'aide de clés Fernet (AES-128) mais si nécessaire, ceci peut être désactivé
  • Il n'est pas possible de désactiver le hachage des mots de passe.
  • Les super-utilisateurs peuvent changer de mots de passe ou réinitialiser mais personne n'est en mesure de révéler le mot de passe d'une autre personne.
  • Le sel par défaut est de 64 octets (512 bits) et il est unique pour chaque mot de passe.
  • Chaque mot de passe est stocké sous une forme hachée dans la base de données SSO en utilisant l'algorithme PBKDF2-SHA512. Le nombre de tours par défaut est de 120000 (120k) mais il doit être réglé en conséquence pour chaque environnement séparément, en fonction de la vitesse des processeurs d'un environnement donné. Les recommandations de l'OWASP sont un bon choix pour déterminer le nombre de cycles de hachage à utiliser.

Application de la loi

  • La connaissance du mot de passe d'une personne est vérifiée à chaque fois qu'une personne donnée se connecte (../user/login.md).
  • En outre, lors de chaque appel d'API, l'expiration des mots de passe est vérifiée - si une personne s'est connectée précédemment mais qu'entre-temps le mot de passe a expiré, tous les nouveaux appels d'API seront rejetés.
  • Les mots de passe seront rejetés s'ils contiennent des chaînes de caractères qui figurent parmi les mots de passe et les phrases de passe les plus populaires dans le monde. La liste de ces chaînes interdites peut être personnalisée selon les besoins.
  • Les mots de passe doivent avoir une longueur spécifique, par défaut entre 8 et 255 caractères. Les espaces sont acceptés.
  • Il est possible de spécifier une période à l'entrée de laquelle un mot de passe sera considéré comme expirant bientôt - dans ce cas, selon la configuration, les nouvelles demandes de connexion seront rejetées avec une erreur ou un avertissement pour indiquer qu'un utilisateur ne peut pas se connecter en raison de l'expiration prochaine du mot de passe.

    Par exemple, l'expiration d'un mot de passe peut être fixée à 180 jours et les 15 derniers jours peuvent être considérés comme approchant de l'expiration, ce qui signifie que les utilisateurs devront le changer avant de se connecter. S'ils ne le font pas, le mot de passe expirera.

Changement de mots de passe

  • Chaque utilisateur peut changer son mot de passe si un nouveau mot de passe est envoyé avec l'ancien.
  • En outre, les super-utilisateurs peuvent changer le mot de passe de toute autre personne, mais s'ils changent leur propre mot de passe, le même principe s'applique, à savoir qu'ils doivent envoyer l'ancien mot de passe.
  • Les mots de passe peuvent être changés par REST, Python et de par ligne de commande
  • Un workflow de réinitialisation du mot de passe peut être utilisé par les utilisateurs qui ont oublié leur mot de passe.
  • En outre, il est possible de réinitialiser son mot de passe depuis la ligne de commande - un nouveau mot de passe fort (192 bits) sera généré et imprimé sur stdout