2011-01-12 3 views
6

Ma compréhension de l'authentification basée sur les jetons est que, lors de l'authentification (peut-être via ssl), un jeton est transmis à l'utilisateur pour une vérification utilisateur bon marché à la volée. Une implémentation de ceci serait de générer un cookie qui est passé à l'utilisateur pour la gestion de session. Mais, d'après ce que je comprends, l'authentification basée sur les jetons (au moins à travers les cookies) est sensible à l'homme dans les attaques du milieu comme le tire-feu. Y a-t-il d'autres méthodes de mise en œuvre qui contournent ce problème de sécurité majeur, ou ai-je une incompréhension fondamentale de tba?Sécurité de l'authentification basée sur jeton

Répondre

10

Votre compréhension est bonne. Fondamentalement, en termes de la façon dont l'application voit, un jeton peut aussi bien être un nom d'utilisateur et un mot de passe. Si quelqu'un a le jeton, il peut s'authentifier auprès de votre application. Dans le cas d'un cookie http, l'objectif principal est d'éviter la fuite du nom d'utilisateur et du mot de passe si quelqu'un obtient le cookie à l'aide d'une vulnérabilité de script intersite (XSS) ou autre. Oui, étant donné les bonnes circonstances, ils peuvent "rejouer" ce jeton à l'application en tant qu '"homme au milieu" mais ils ne devraient pas être en mesure de comprendre le nom d'utilisateur/mot de passe, mais cela n'est pas garanti si le jeton L'algorithme de génération est faible, disons, comme si vous décidiez de coder BASE64 le nom d'utilisateur et mot de passe concaténés ensemble et l'utiliser comme valeur.

Généralement, vous conservez le jeton -> mappage utilisateur sécurisé côté serveur. En fin de compte, votre sécurité est basée sur la sécurité du jeton et sur le contrôle de sa durée de vie (par exemple, il expire et/ou n'est valide que s'il vous est fourni par la même adresse IP que celle utilisée par le fournisseur d'origine). juste un exemple)

Hope this helps,

-Oisin

+0

Grand, grâce Oisin. – Devin

Questions connexes