Chiffrement et signature des données

Les données retounées par le service d'introspection checktoken sont chiffrées afin d'en assurer la confidentialité, et signées afin d'en garantir l'intégrité et l'authenticité.

Les spécifications des algorithmes de signature et de chiffrement utilisés sont les suivants :

Le diagramme de séquence ci-dessous décrit les échanges entre le fournisseur de données et FranceConnect ayant trait au chiffrement et à la signature lors de l'appel au service d'introspection /api/v2/checktoken.

sequenceDiagram
    autonumber
    participant FD as Fournisseur de données
    participant FC as FranceConnect

    FD->>FC : POST /api/v2/checktoken (access token + authN FD)
    FC->>FC: check authN FD

    FC->>FD : GET /public_key

    alt  authN FD valide & clé publique FS dispo

        FD-->>FC : HTTP 200 - clé publique de chiffrement

        FC-->>FD : HTTP 200 - jeton signé et chiffré

        FD-->>FD : dechiffrement du jeton
        FD->>+FC: GET /api/v2/jwks
        FC-->>-FD: HTTP 200 - FranceConnect public keys
        FD-->>FD : verification de la signature

   else  erreur lors de la récupération de la clé publique du FS

       FD-->>FC : HTTP 4XX / 5XX / Timeout - clé publique de chiffrement non récupérée
       FC-->>FD : HTTP 500

    end
  1. Le fournisseur de données fait appel au service d'introspection /api/v2/checktoken
  2. FranceConnect authentifie le fournisseur de données
  3. FranceConnect demande au fournisseur de données sa clé publique de chiffrement
  4. Le fournisseur de données retourne sa clé publique de chiffrement
  5. FranceConnect retourne le jeton chiffré et signé
  6. Le fournisseur de données déchiffre le jeton
  7. Le fournisseur de données demande à FranceConnect / FranceConnect+ sa clé publique de signature
  8. FranceConnect / FranceConnect+ retourne sa clé publique de signature
  9. Le fournisseur de données vérifie la signature

Dans le cas où la récupération de la clé publique de chiffrement du fournisseur de données n'est pas possible, la séquence s'arrête plus tôt. La séquence est alors la suivante :

  1. Le fournisseur de données fait appel au service d'introspection /api/v2/checktoken
  2. FranceConnect / FranceConnect+ vérifie l'authentification du fournisseur de données
  3. FranceConnect / FranceConnect+ demande au fournisseur de données sa clé publique de chiffrement
  4. Une erreur se produit lors de la récupération de la clé publique de chiffrement du fournisseur de données (timeout : erreurs HTTP 4xx ou 5xx)
  5. FranceConnect / FranceConnect+ retourne une erreur HTTP 500

Déchiffrement des jetons #

Pour permettre le chiffrement des jetons, le fournisseur de données doit exposer sa clé publique de chiffrement sur une url qui doit être communiquée lors de l'enregistrement du fournisseur de données. Cette URL doit être accessible par la plateforme FranceConnect / FranceConnect+.

Les algorithmes utilisables sont les suivants :

  • RSA-OEAP+AES256-GCM
  • ECDH-ES+AES256-GCM

Le choix de l'algorithme doit être communiqué lors de l'enregistrement du fournisseur de données.

Signature des jetons #

Lors de l'envoi de jetons dans la réponse du service d'introspection /api/v2/checktoken, les données sont signés par FranceConnect ou FranceConnect+ en utilisant l'algorithme choisi et en utilisant un couple clés publique / privée.

Afin de garantir l'authenticité et l'intégrité du jeton, il est nécessaire de procéder à la validation de sa signature. Pour cela, il faut :

  1. récupérer les clés publiques de FranceConnect ou FranceConnect+ (en fonction de la plateforme utilisée);
  2. vérifier la signature en utilisant la clé publique, parmi celles récupérées précédemment, dont le kid correspond à celui de l'entête du jeton.

Les clés publiques de FranceConnect et FranceConnect étant renouvellées régulièrement, il est nécessaire de s'assurer d'utiliser la bonne clé lors de la vérification de la signature.

Les clés publiques de signature sont disponibles via le endpoint /api/v2/jwks.

Les algorithmes utilisés sont les suivants :

  • FranceConnect : ES256 ou RS256
  • FranceConnect+ : ES256 uniquement

Le choix de l'algorithme de signature doit être communiqué lors de l'enregistrement du fournisseur de données.

Paramètres d'affichage
Choississez un thème