2009-05-24 4 views
3

J'écoutais le podcast stackoverflow (je pense que c'était l'épisode 52). Jeff parlait de la façon dont ils avaient mis au point un mécanisme d'autorisation dans lequel ils cryptaient les informations d'identification dans le cookie qu'ils envoyaient au client. Apparemment, quelqu'un que Jeff savait était capable de trouver un trou dans ce domaine et était capable de se connecter avec n'importe quel identifiant qu'il voulait.Vulnérabilité avec cryptage des informations de cookie pour l'authentification (podcast de dépassement de pile)

Il n'est pas allé dans beaucoup de détails dans le podcast mais cela a suscité mon intérêt. Je suis l'une de ces personnes qui supposeraient que si votre cryptage vos informations de cookie alors ils ne pourraient pas être des vulnérabilités. Est-ce que quelqu'un a écouté cet épisode et/ou savoir quel trou vous ouvririez avec cette solution?

grâce COEEP

Répondre

1

Si vous transmettre des informations cryptées au client alors il y a toujours une chance qu'ils vont pouvoir le déchiffrer (peut-être en raison de faiblesses dans l'algorithme de chiffrement utilisé, ou le manque de sel conduisant à des attaques d'analyse ou à d'autres problèmes éventuels). Par conséquent, vous ne devez pas envoyer les informations client que vous pouvez éviter d'envoyer.

Idéalement, vous leur envoyez simplement un ID aléatoire que vous utilisez pour rechercher dans une table de sessions, et gardez tous les données côté serveur. Ensuite, le "seul" moyen pour un utilisateur de devenir un utilisateur différent est de deviner un identifiant de session (très long et aléatoire).

2

Dans ma mise en œuvre, j'utilise une chaîne aléatoire (16 octets) suivie par l'information importante. Le tout est ensuite chiffré avec AES en utilisant un chaînage de blocs cycliques. Cela évite de stocker les informations dans un état de session ou de les obtenir à partir d'une base de données. Quoi qu'il en soit, ce n'est pas un site à très haute sécurité, mais je pense que l'ajout de la chaîne aléatoire et de CBC améliore considérablement la sécurité.

1

Peut-être pouvez-vous vérifier ce blog post, il explique beaucoup de chose que vous n'avez pas pensé, et pourquoi le cryptage n'est pas l'authentification. En fait, vous ne devriez pas venir avec votre propre solution, mais essayez d'en utiliser une éprouvée.