Disposer d'une gestion de mots de passe sécurisés consiste à traiter les points suivants :
Commencer par définir une politique de gestion des mots de passe cohérente et complète :
L'identifiant et le mot de passe d'un utilisateur doivent lui être communiqués à la création de son compte. Considérant que ces informations sont d'une importance fondamentale qu'il convient de protéger, il sera bon de raisonner avec sérieux les moyens employés pour leur communication.
Bonnes pratiques :
Afin de garantir la sécurité des mots de passe, les points suivants devront être traités :
Le hachage des mots de passe a beau être un procédé à haut niveau de sécurité lorsqu'il est convenablement mis en place (non-réversibilité, taille du hash-code élevée, algorithme lent, etc.), il n'en reste pas moins que l'ensemble comporte une fragilité particulière dans l'hypothèse du vol d'une base de données complète. Dans ce cas, un individu malveillant disposant de beaucoup de temps et d'un outillage spécialisé (tables arc-en-ciel) pourrait compromettre de nombreux mots de passe en s'appuyant sur l'homogénéité du hachage appliqué.
Pour contrer cette capacité, on appliquera un salage des mots de passe. Le salage consiste à ajouter une information aléatoire (le sel) au mot de passe avant son hachage. Le sel étant variable d'un hachage à l'autre, on aura un hash-code différent pour le hachage du même mot de passe à deux moments différents. Dans, ce cas, les tables arc-en-ciel deviennent inopérantes.
Exemple de hash-code produit avec l'algorithme BCrypt :
A titre d'exemple, PHP propose une fonction password_hash qui intègre un hachage BCrypt et le salage automatique.
Les utilisateurs ne perçoivent pas nécessairement tous les enjeux liés aux mots de passe. La multiplication des comptes et les différences qui existent d'une politique de mots de passe à une autre peuvent engendrer des pratiques contre-productives. Il est donc important de réaliser un travail d'accompagnement qui s'orientera sur deux axes :