PROJET AUTOBLOG


Liens en vrac de sebsauvage

source: Liens en vrac de sebsauvage

⇐ retour index

Mise à jour

Mise à jour de la base de données, veuillez patienter...

Be careful with your random tokens — Meldium

mardi 19 février 2013 à 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.