sebsauvage.net

Ce site n'est pas le site officiel.
C'est un blog automatisé qui réplique les articles automatiquement

Be careful with your random tokens — Meldium

Tuesday 19 February 2013 at 23:49

[blog.meldium.com]
Mais enfin... NON !  On utilise JAMAIS un UUID comme token !  Rhhâââ...
Les UUID offrent la garantie d'unicité, mais en **aucun cas** d'aléa non prédictible.
Ou alors il faut recourir à des fonctions crypto, par exemple en concaténant un salt à l'UUID et en hashant le tout (sha1 ou autre). Là on a un token assez solide (et résistant à l'attaque d'anniversaire). L'idéal étant tout de même un véritable générateur aléatoire, mais ce n'est pas à la portée de tous.
(Et là je viens de m'apercevoir que dans Shaarli, comme un con, j'ai oublié d'ajouter un salt avant de hasher pour générer les tokens ...  doh. Rassurez-vous, le risque sécurité est très faible (Je vois mal quelqu'un lancer une attaque d'anniversaire à travers une attaque CSRF... ou alors je me trompe ? En javascript ? ça me paraît assez peu réaliste.)

(Oui j'ai bien conscience que j'ai dû perdre quelques lecteurs depuis le début de cet article.)

EDIT: Si vous voulez patcher Shaarli tout de suite, dans la fonction getToken() modifiez la ligne:
$rnd = sha1(uniqid('',true).'_'.mt_rand());
en:
$rnd = sha1(uniqid('',true).'_'.mt_rand().'####CE QUE VOUS VOULEZ, ÇA PEUT MÊME ÊTRE ASSEZ LONG####');

Et voilà. Bye bye l'attaque d'anniversaire.

Source: http://sebsauvage.net/links/index.php?mjVhlA