2009-11-10 5 views
0

Nous avons récemment tenté d'ajouter la validation d'adresse IP à la sécurité de connexion de notre site Web. Donc, en plus d'avoir un cookie avec des informations d'identification valides, nous avons vérifié que votre adresse IP sur la page demandée correspondait à celle avec laquelle vous vous êtes initialement connecté. L'idée était que si votre cookie est volé, un autre utilisateur ne peut pas usurper votre identité à moins d'être sur la même adresse IP. Pour la majorité des utilisateurs, il n'y avait pas de problème, mais il semble que certains FAI (à savoir AOL et BT) utilisent une sorte de batterie de serveurs proxy qui donne à l'utilisateur une adresse IP différente sur chaque connexion sortante, ce qui bien sûr connexion impossible pour ces utilisateurs. Les adresses dans certains cas étaient complètement différentes entre les requêtes, donc même vérifier l'octet supérieur ou similaire ne semble pas réalisable.possible de détecter les FAI qui donnent à l'utilisateur une adresse IP différente sur chaque demande de page pour la sécurité de connexion?

Nous avons dû l'arracher. Ma question est s'il y a un moyen de détecter ces types de configuration de FAI pour les exclure de la vérification IP, ou des conseils généraux sur la façon d'améliorer la sécurité sans inclure l'adresse IP. Il me semble que les sites bancaires en ligne font ce qui précède, mais peut-être qu'ils ont juste peu de temps pour vivre sur les cookies.

Répondre

1

Les FAI sont le moindre de vos soucis. Vous aurez également des problèmes avec les utilisateurs professionnels avec des ordinateurs portables qui vont de docked à docker et obtenir une nouvelle adresse IP à chaque fois. Et les grandes fermes proxy d'entreprise agissent souvent comme AOL. Je vous suggère fortement d'ignorer la cohérence de l'adresse IP dans votre approche de sécurité. C'est un gros casse-tête avec un retour douteux.

2

Vous avez raison, il n'y a pas une solution parfaite. Si vous souhaitez réduire les restrictions, le mieux est de valider en fonction de l'agent utilisateur. Ce n'est pas complet, mais c'est mieux que rien.

1

Les cookies signés qui prennent en compte l'agent utilisateur et l'adresse IP source sont OK, si vous avez vraiment besoin d'être aussi difficile.

Pour lutter contre les proxies, utilisez HTTPS. Si vous parlez de sécurité, utilisez toujours HTTPS avant d'autres mesures.

Pour lutter contre les différentes sources IP (si vous en avez vraiment besoin), vous pouvez essayer les numéros whois et AS.

2

Je définirais une minuterie afin que vous enregistriez non seulement l'adresse IP d'où ils venaient, mais aussi leur date d'arrivée. Après qu'un utilisateur arrive de la même adresse IP pour un certain nombre de pages vues, disons trois, alors allez-y et apportez basiquement un cookie lock_ip à l'utilisateur ou notez-le dans vos variables de session de votre côté. Utilisez ensuite cela pour indiquer que la session doit être verrouillée sur l'adresse IP. Si vous utilisez l'approche des cookies, vous devez vous assurer de l'enregistrer dans une base de données de votre côté afin que l'attaquant ne puisse pas simplement apparaître avec le cookie plus ancien ou sans un cookie lock_ip supplémentaire, selon la façon dont vous l'implémentez ..