Fermer

mai 18, 2022

Chiffrement JOSE et intégration du magasin de clés AEM

Chiffrement JOSE et intégration du magasin de clés AEM


C’est quoi JOSE ?

JOSE ou JSON Object Signing and Encryption , en bref, est un cadre destiné à fournir une méthode pour transférer en toute sécurité les revendications (telles que les informations d’autorisation) entre les parties. Le cadre JOSE fournit un ensemble de spécifications à cette fin.
Un gros plus pour ce framework est qu’il a un excellent support dans la plupart des langages de programmation.

Coutumes

Le cryptage JOSE peut être utilisé pour le cryptage du jeton sur le réseau afin de maintenir l’authenticité.
Nous l’avons utilisé pour sécuriser les paiements sur notre site. Selon Circulaire RBI « Un niveau approprié de cryptage et de sécurité doit être mis en œuvre dans l’écosystème de paiement numérique. »

Les autres cas d’utilisation sont les jetons de sécurité, OAuth, la cryptographie Web, XMPP.

Comprendre la structure

Ce sont les choses qui composent la norme JOSE.

  • JWK : Clé Web JSON (Clé publique partagée sur le réseau au format JSON)
  • JWS : Signature Web JSON. Il s’agit donc d’un message sérialisé avec 3 (.) chaînes séparées au format ci-dessous.

Chiffrement JOSE et intégration du magasin de clés AEM

  • Joue : Cryptage Web JSON. Il s’agit d’un message sérialisé avec 5 (.) chaînes séparées au format ci-dessous.

C’est ainsi que fonctionne le décryptage côté récepteur.

Ce blog parle de l’intégration de JOSE avec une application hébergée sur AEM utilisant le magasin de clés AEM pour la sauvegarde des paires de clés, c’est-à-dire les clés publiques et privées.

Voici les quatre étapes nécessaires à suivre :

1. Stockage des clés de chiffrement dans AEM

Tout d’abord, passons en revue le processus de stockage des clés sur AEM.

Voici le lien de la documentation Adobe pour magasin de clés et truststore mettre en place. En suivant ces étapes, vous pouvez stocker le certificat public des récepteurs dans le magasin de clés de confiance et la paire de clés publiques privées des expéditeurs dans le magasin de clés pour la conserver.

Ceci termine la configuration du certificat.

2. Récupération des clés

Vient ensuite la récupération de ces certificats. j’utilise Clés RSA dans le projet qui sont les types de clés de chiffrement les plus couramment utilisés dans les techniques de chiffrement asymétrique.

Vérifiez le code du référentiel ci-dessous pour comprendre comment récupérer les clés du Keystore et du trustore.
KeysUtil.java

3. Utilisation de la bibliothèque

Nous utilisons nimbus-jose-jwt Maven dépendance dans notre projet.


Nimbus ne fournit pas non plus de support pour PS256 dans l’immédiat, mais en utilisant le fournisseur BouncyCastle, nous pouvons garantir la même chose.
Nous avons aussi essayé avec le
JOSE4j bibliothèque mais nous ne pouvions pas l’utiliser car elle ne prenait pas en charge PS256 chiffrement, qui est un algorithme de chiffrement assez peu utilisé.

Comme vous le verrez ci-dessous, nous utilisons cet algorithme pour signer notre jeton Web JWT.

Chiffrement JOSE et intégration du magasin de clés AEM

Maintenant, ce que nous devons faire, c’est nous assurer que cette ligne est exécutée au début pour permettre à l’algorithme PS256 de fonctionner pour Nimbus JOSE.

Chiffrement JOSE et intégration du magasin de clés AEM

4. Exécution du cryptage JOSE

Vérifiez les fonctions de cryptage et de décryptage dans le référentiel ci-dessous.
JoseUtil.java

Références

  1. Pas question, JOSE ! Il s’agit d’un ppt qui couvre les bases du hachage et du cryptage ainsi que quelques informations sur les algorithmes de cryptage courants. Ensuite, il donne un aperçu détaillé du fonctionnement de JOSE.
  2. JWT.io Ceci est la documentation pour JSON Web Token qui peut couvrir vos intérêts dans JWT.
  3. Pas question JOSE ! Cryptographie et chiffrement – ​​JS Monthly London – Janvier 2021: Ceci est la présentation sur le PPT mentionné ci-dessus. Grande montre!
  4. L’algorithme de chiffrement RSA (1 sur 2 : calcul d’un exemple): Maintenant, c’est quelque chose d’intéressant si vous êtes geek sur les mathématiques de l’algorithme de chiffrement RSA et son fonctionnement de base. Il a 2 parties très courtes, part1 et part2. Certainement recommandé. Très bien expliqué.

TROUVÉ CELA UTILE ? PARTAGEZ-LE




Source link