La cuisine à la Google : Macarons versus Cookies !

url

La fameuse phrase « Veuillez supprimer vos cookies et réessayer. » pourrait être amenée à disparaître. Effectivement,  il y a quelque temps maintenant, quelques chercheurs de chez Google ont proposé un nouveau type de jeton qu’ils ont baptisé « macaroons ».

L’objectif des macarons est similaire à celui des cookies en termes d’autorisation mais dans des systèmes distribués (cloud). Quelles sont alors les saveurs supplémentaires qu’apporte le macaron par rapport au cookie ?

La délégation : Tout comme  le cookie, le macaron peut être « donné » à un autre utilisateur qui pourra agir en votre nom avec les mêmes autorisations. Cependant les caractéristiques du macaron font que la délégation est plus sûre.

L’atténuation : Par atténuation, il faut voir la possibilité de gérer les droits que l’on laisse au macaron lors de la délégation. En effet lors de celle-ci, l’utilisateur peut choisir comment, quand et où le macaron sera utilisé. Dans le vocabulaire lié au macaron, les restrictions qui lui sont ajoutées sont appelés « caveats » (On peut faire un rapide parallèle au scope de l’access token dans Oauth).

Proof-carrying : Les macarons se veulent efficaces en portant leur propre preuve de l’autorisation. Les limitations des autorisations se construisent en chaînant les fonctions de HMAC. De ce fait, cela rend simple l’ajout de limitation mais l’impossiblilité de les supprimer.

Une tierce partie

Tierce partie : Un macaron avec des restrictions (« caveats ») spécifié par un tiers ne sera autorisé que lorsque le tiers certifie que la « caveats » est satisfaite. Cela permet en autre l’utilisation des macarons dans les environnements distribués. Prenons un exemple : Imaginons qu’un service de stockage de données fournisse des macarons qui ne sont autorisés que si l’utilisateur a une preuve de son authentification. Une fois l’utilisateur authentifié, il revient avec le macaron et la preuve de son authentification. Le service de stockage peut maintenant vérifier que l’utilisateur est authentifié sans connaître le service d’authentification et peut autoriser l’accès à son service.

Vérifications simplifiées : L’utilisation des macarons a aussi pour objectif de simplifier l’implémentation de la routine de vérification des autorisations. L’objectif est de développer un module générique de vérification des macarons qui permet de lire les preuves confinées dans le macaron et autoriser ou non l’accès.

Après c’est quelques explications, si vous souhaitez jouer avec les macarons et que vous avez quelques connaissances en python, je vous invite à vous rendre sur le lien suivant :

http://hackingdistributed.com/2014/05/21/my-first-macaroon/

Pour des informations supplémentaires :

http://blog.bren2010.io/2014/12/04/macaroons.html

http://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/41892.pdf

Aurélien

Consultant Sécurité