2010-08-12 5 views
1

J'ai lu sur la sécurité de base de données quand il s'agit de sites Web. Et il est dit qu'un attaquant pourrait voler une base de données et ensuite avoir autant de temps qu'il le souhaite pour obtenir tous les mots de passe de l'utilisateur. Si un attaquant volait la base de données, pourquoi aurait-il besoin des mots de passe puisque l'authentification est faite en php? Donc, il pouvait simplement accéder à toutes les informations de l'utilisateur sans connaître le mot de passe. Par exemple, un forum avec des zones protégées par mot de passe. L'attaquant pourrait essayer d'obtenir le mot de passe d'un modérateur ou d'un utilisateur ayant accès à la zone protégée en obtenant la base de données (par exemple, l'attaquant pourrait être un employé de la société hébergeant la base de données). l'utilisateur.sécurité de base de données

ou l'attaquant pourrait ignorer cela et simplement regarder dans la table des messages dans la zone cachée.

Fondamentalement, si l'attaquant avait accès à la base de données, pourquoi s'inquiéter avec nom d'utilisateur et mot de passe lorsque vous pouvez accéder à ces données sans avoir besoin d'authentifier.

(ce blog m'a fait poser la question: http://www.richardlord.net/blog/php-password-security)

Répondre

2

Vous avez une obligation à vos utilisateurs de protéger le mot de passe, autant que possible. Cela signifie protéger la base de données contre le vol. Cela signifie également faire un hachage salé fort de sorte que si l'attaquant obtient la base de données, il faudra un temps prohibitif pour extraire tous les mots de passe (c'est toujours possible, mais cela ne vaut pas le coup). Un moyen consiste à utiliser un système de hachage à sel multiple. Fondamentalement, vous utilisez 2 sels séparés. Un que vous stockez avec l'utilisateur qui est unique pour chaque utilisateur, et un pour l'ensemble du site stocké ailleurs. De cette façon, s'ils ne reçoivent pas les deux sels, il est exponentiellement plus difficile à craquer (mais pas toujours impossible).

La plupart des utilisateurs utilisent un ou deux mots de passe pour tous les sites. Donc, si votre site est compromis, toutes leurs informations d'identification le sont également. C'est pourquoi il est impératif que vous fassiez tous les efforts possibles pour verrouiller vos systèmes (y compris la base de données et toutes les données sensibles dans la base de données) ...

+0

Je comprends en termes de protection du mot de passe des utilisateurs au cas où ils sont utilisés sur d'autres sites. Mais je parle des données dans ma base de données. Si un attaquant télécharge la base de données, les données de l'utilisateur (leurs messages sur le forum) sont stockées en clair. Le mot de passe de l'utilisateur est nécessaire uniquement pour accéder aux données de l'utilisateur via l'interface Web. Si l'attaquant possède la base de données, il n'a pas besoin d'utiliser l'interface web et n'a donc pas besoin du mot de passe de l'utilisateur pour accéder à ses données dans ma base de données. –

+0

C'est vrai, mais s'ils obtiennent votre base de données, ils seront probablement plus en mesure de faire pire (après tout, comment ont-ils obtenu la base de données en premier lieu). C'est pourquoi il est si important d'utiliser un pare-feu. C'est pourquoi il est si important d'utiliser des mots de passe forts et d'assainir toutes les entrées. C'est pourquoi il est si important d'être vigilant et proactif avec la sécurité. Les attaquants ne devraient jamais être en mesure d'obtenir votre base de données en premier lieu. Et c'est le point ... – ircmaxell

+0

Je sais, la raison la plus courante pour laquelle une personne peut obtenir une base de données est si elle travaille dans une société d'hébergement ou de sauvegarde. Je ne dis pas que je ne devrais pas passer en revue toutes les mesures de sécurité adéquates, mais à quel point quelqu'un pourrait avoir accès à la base de données et ignorer complètement la sécurité, dportas fait un bon point. –

0

Cela dépend de ce qu'il pourrait faire d'autre une fois qu'il aura un login et mot de passe. Par exemple, le site Web en question pourrait lui permettre de commander des produits au nom d'un autre utilisateur ou d'usurper l'identité de cet utilisateur d'une autre manière. En d'autres termes, l'obtention des identifiants de connexion permet à l'intrus de transformer une attaque passive (lire des données) en une action active (effectuer des actions auxquelles il ne devrait pas être autorisé).

Il existe également le problème que les utilisateurs utilisent généralement le même mot de passe sur plusieurs sites. Donc, un compromis de sécurité dans un endroit peut aussi compromettre d'autres choses.

Pour ces raisons, les mots de passe ne doivent pas être stockés dans une base de données sous une forme lisible. Les mots de passe doivent toujours être hachés (non cryptés) en utilisant un algorithme de hachage cryptographiquement sécurisé.

Questions connexes