web-dev-qa-db-fra.com

JWT crypte les informations de charge utile

Je suis nouveau dans la technologie JWT et j'en lis beaucoup à ce sujet.

Je sais que JWT comprend 3 parties:

  1. EN-TÊTE: ALGORITHME ET TYPE DE JETON
  2. CHARGE PAYABLE: DONNÉES
  3. SIGNATURE À VERIFIER AVEC LA CLÉ SECRETE

Est-il possible de crypter les informations de charge utile? Je veux dire, disons par exemple que j'ai cette information de charge utile dans mon jeton:

{
"iss": "joe",
"exp": "1300819380",
"data": {
    "id": "12",
    "userName": "PH",
    "qntRed": "7",
    "qntGrad": {
        "1": "800",
        "2": "858",
        "3": "950",
        "4": "745",
        "5": "981"
    }
}

Et disons que "qntGrad" est une information sensible. Est-il possible de crypter cela aussi avec la clé secrète? Est-ce toujours un jeton JWT?

17

En fait, il n'y a pas seulement JWT signé, mais plusieurs technologies décrites par les RFC:

Dans votre cas, lisez le RFC7516 (JWE). Ces JWE ont 5 parties:

  • En-tête protégé
  • Clé cryptée
  • Vecteur d'initialisation
  • Texte chiffré
  • Balise d'authentification

Selon votre plate-forme, vous pouvez trouver une bibliothèque qui vous aidera à créer un tel JWT chiffré. Concernant PHP, j'écris ne bibliothèque qui est déjà capable de charger et créer ces jose.

18
Florent Morselli