Stéphane Bortzmeyer

Je suis un homme du siècle dernier, j’essaie de m’adapter, mais je n’en ai pas vraiment envie.

  • Dans le Web, on s’est tellement habitués à des mauvaises solutions de sécurité qu’on n’y fait même plus attention. Tout le Web (y compris SeenThis) utilise des #cookies pour l’authentification et ne se demande même plus si on ne pourrait pas faire mieux. Heureusement, il existe des chercheurs courageux qui travaillent sur le problème, et voici une proposition originale : remplacer les cookies par des #macarons.

    « Macaroons : Cookies with Contextual Caveats for Decentralized Authorization in the Cloud » de Arnar Birgisson, Joe Gibbs Politz, Ulfar Erlingsson, Ankur Taly, Michael Vrable et Mark Lentczner

    http://research.google.com/pubs/archive/41892.pdf

    L’avantage des cookies est la simplicité : le serveur choisit un nombre imprévisible (par exemple parce qu’il est aléatoire) et le transmet (par un canal sûr, car la seule connaissance du cookie donne l’accès) au client qui pourra ensuite re-présenter ce cookie à chaque visite.

    La principale limite des cookies : on ne peut pas transmettre une autorisation reçue, en la limitant. Avec le cookie, c’est tout (on donne le cookie à un tiers) ou rien. Il faut donc, pour chaque type d’accès, que le serveur émette un nouveau cookie. Si on a donné un cookie qui permet un accès en écriture à quelqu’un, et que celui-ci veuille transmettre cet accès mais en lecture seule, il ne peut pas, le serveur devra émettre un nouveau cookie.

    Le principe des macarons est que les premiers sont émis par le serveur (comme les cookies) mais qu’ensuite les destinataires des macarons peuvent les transmettre, en les atténuant (lecture seule au lieu de lecture et écriture) ou en limitant l’accès (par exemple seulement à certaines adresses IP). Cette limitation se fait en ajoutant des caveats au macaron. Le serveur, en recevant un macaron, vérifiera que tous les caveats sont respectés. Par exemple, si Alice a reçu du serveur un macaron ne portant pas de caveat et qu’elle ajoute le caveat « lecture seule » avant de passer le macaron à Bob, Bob ne se verra allouer l’accès que si l’opération est une simple lecture.

    Techniquement, un macaron est un nombre imprévisible, accompagné de la liste des caveats. La cryptographie permet de vérifier cette liste, assurant qu’on n’a pas retiré ou ajouté de caveats. Le premier HMAC (somme de contrôle cryptographique) est calculé à partir de la clé du serveur. À chaque fois qu’on ajoute un caveat, on calcule un nouveau HMAC à partir de celui du macaron précédent. Le serveur sera ainsi le seul à pouvoir suivre la liste et vérifier le HMAC final.

    #sécurité_Web