1

Je travaille sur un système (basé sur PHP, mais sans importance pour cela) qui conserve les mots de passe des utilisateurs enregistrés sur une base de données. Cependant, en termes de sécurité, je dois réfléchir à la manière de sécuriser les mots de passe et d'assurer l'intégrité du mécanisme de transfert de mot de passe. J'ai choisi de sécuriser les mots de passe dans le DB qui sont hachés avec du sel, mais en termes de transfert du mot de passe du navigateur au serveur (je travaillerai pour des connexions non sécurisées), je ne suis pas sûr de comment je peux le vérifier. Donc, ma question est, est-ce que quelqu'un connaît des mécanismes sécurisés qui pourraient permettre au client d'envoyer son mot de passe qui peut ensuite être comparé à la base de données sans le mot de passe dans le texte à l'exception des clients la mémoire des navigateurs?Stockage de mot de passe et transfert de mot de passe sécurisé

Répondre

3

La façon dont cela est fait dans toute l'industrie est d'envoyer le mot de passe en clair sur un canal SSL. C'est-à-dire, vous devez vous assurer que la page de connexion - et toutes les ressources qu'elle charge - sont servies via HTTPS. Cela protégera le mot de passe en transit. Une fois le mot de passe de l'autre côté, vous pouvez hacher et comparer à ce que vous avez dans la base de données. L'envoi d'un hachage ou d'autres solutions ésotériques (pour respecter votre "mot de passe en clair seulement dans la mémoire des navigateurs") ne fera rien d'autre qu'un secret pour un autre - la surface d'attaque reste inchangée. Vous pouvez masquer le mot de passe du côté client et ajouter un composant basé sur le temps, mais comme toute la logique doit être sur le client, vous pouvez l'inverser, donc vous ajoutez simplement "obscurité". il).

+0

Ouais, c'est ce que je pensais, mais juste écrit une réponse qui utilise RSA pour fournir une bonne quantité de sécurité, mais dans un monde idéal, je voudrais SSL – topherg

+1

Implémentation de crypto dans votre propre code est vraiment, vraiment un mauvais idée. Dans le meilleur des cas, vous finissez par avoir la même sécurité que vous auriez atteinte en dépensant les 40-50 $ requis pour exécuter le service via SSL. Dans le pire des cas, vous finissez par créer un désordre horrible et un service vulnérable. – Paradoxengine

Questions connexes