Biscuit
Token d'authentification et d'autorisation
cryptographique à droits atténuables
hors ligne

@_Akanoa_
https://lafor.ge

Yannick Guern


Requêter une ressource

Requête d'une ressource privilégiée

Authentification par mot de passe

à chaque fois ! 😡

Conserver l'authentification : session et cookie de session

Utilisation du cookie

Cookie de session utilisé sur une API sans session


Problème de session
non partagée

Première solution :
Cache partagé

Deuxième solution :
Les droits dans le cookie ...

... une très mauvaise idée !!

Clefs asymétriques

Token : Signature de données

Vérification d'authenticité
du Token

Prérogatives d'un Token

Un token possédant tous les droits d'un utilisateur

Un token à droits limités

Atténuation de droits

Requête valide

Tentative d'écriture avec un Biscuit en lecture seul

Tentative de lecture d'une ressource interdite

Atténuation

Atténuation offline ...

... oui mais




Geoffroy
Couprie
Clément
Delafargue
Les créateurs de Biscuit
Les briques de base de Biscuit


Du token ...

... au Biscuit

Validation de l'authenticité d'un Biscuit

Création de l'Autorité

Anatomie d'un Biscuit

Création d'un Bloc

Blockchain !!

Un Biscuit atténué

Validation d'un Biscuit

Falsification de Biscuit


Autorisateur

Processus d'autorisation

Scénarios d'échecs d'autorisation






Scénario 1 d'échec de check

Scénario 2 d'échec de check

Scénario 3 d'échec de check

Scénario 4 : check réussi

Le check d'un bloc 1 verra les faits de l'Autorité et du bloc 1

Le check d'un bloc 2 verra les faits de l'Autorité et du bloc 2

Un check de l'Autorité ne verra pas les fait des blocs

Datalog de l'Autorisateur

L'autorisateur ne s'occupe que des faits de l'Autorité et des siens

Un check dans un bloc verra les faits du bloc lui-même, de l'Autorité et de l'Autorisateur

Un check de l'autorité verra les faits de l'Autorité et de l'Autorisateur


Impossibilité de s'augmenter ses droits
Processus d'authentification par Biscuit

Un datalog simpliste ...

... trop simpliste!
Comment gérer des milliers d'utilisateurs ?
Concept de lookup


Contenu de la BDD de droits
Création du fait rights

Processus de validation par l'autorisateur

Échec de création du fait

Échec de validation: le fait rights n'existe pas

Bloc d'atténuation

Jane requête avec son Biscuit atténué fourni par Jack

Processus de validation supplémentaire fourni par le bloc

Jane tente d'accéder à des ressources interdites

Le bloc l'empêche de le faire


Bilan

Playground
Mon article de vulgarisation

Le site officiel

Merci à toutes et tous 😃


@_Akanoa_
https://lafor.ge

Biscuit Touraine Tech
By akanoa
Biscuit Touraine Tech
- 360