Skip to main content

Utiliser le cryptage dans vos applications personnalisées

Objectifs de formation

Une fois cette unité terminée, vous pourrez :

  • Décrire la classe Apex Crypto.
  • Présenter les différents cas d’utilisation de la classe Apex Crypto et du chiffrement personnalisé
  • Implémenter le chiffrement dans votre propre application

Qu’est-ce que la classe Apex Crypto ?

Pour implémenter le chiffrement dans votre application Salesforce, Apex vous donne la flexibilité nécessaire pour écrire vos propres fonctions cryptographiques, tout en vous permettant d’accéder à un large choix de fonctions prédéfinies. Dans cette unité, nous explorerons certaines des fonctions puissantes que Salesforce met à votre disposition pour créer des empreintes, des codes d’authentification des messages (MAC), des signatures ainsi que des fonctions de chiffrement et de déchiffrement grâce à la classe Apex Crypto. 

La classe Crypto fournit des ensembles de fonctions particulièrement précieux pour protéger vos communications. Grâce à ces fonctions, vous pouvez protéger efficacement les données confidentielles des regards indiscrets, vous assurer que les données d’un message sont complètes et non modifiées, et vérifier l’authenticité des expéditeurs et des destinataires. Chacune de ces fonctions prend en charge différents algorithmes. Vous disposez ainsi d’un bon niveau de contrôle sur la composition de votre solution tout en réduisant la charge de travail exigée par la sécurisation de votre application. 

Chiffrement et déchiffrement pour protéger la confidentialité 

Le chiffrement et le déchiffrement peuvent être effectués de manière simple et flexible avec les fonctions Apex Crypto.Encrypt() et Crypto.Decrypt(), qui prennent en charge les algorithmes AES128, AES192 et AES256. Des fonctions de chiffrement et de déchiffrement sont essentielles pour assurer la confidentialité des données de votre application. Vous avez ensuite la possibilité de générer votre propre clé de chiffrement ou d’utiliser la méthode Crypto.generateAESKey(Integer keylength). Pour sécuriser les clés de chiffrement, vous disposez des techniques abordées dans l’unité précédente pour stocker les secrets dans des types de métadonnées ou des paramètres personnalisés protégés. 

Des empreintes de hachage pour protéger l’intégrité

La fonction Apex Crypto.generateDigest() est aussi très utile pour vérifier l’intégrité des données. Cette méthode génère une empreinte de hachage à sens unique, et prend en charge des algorithmes tels que MD5, SHA1, SHA256, et SHA512. Ces empreintes de hachage peuvent être utiles pour identifier les données corrompues accidentellement (ou d’autres modifications non souhaitées). Grâce à des comparaisons de vérification des empreintes de hachage, vous pouvez détecter rapidement les modifications apportées aux données. En effet, l’empreinte calculée pour ces données ne correspondra pas à l’originale, ce qui confirmera que les données ont été modifiées. Vous pouvez ainsi repérer des événements tels que des données corrompues, des modifications accidentelles et des altérations malveillantes.

Notons que les algorithmes de hachage sont d’une puissance variable en termes de sécurité. Bien que MD5 soit pris en charge par la classe Crypto, il est considéré comme un algorithme de hachage faible, et Salesforce suggère donc d’utiliser SHA1 ou mieux pour calculer les empreintes de hachage. 

Codes d’authentification des messages (MAC) fondés sur le hachage pour attester de l’authenticité et de l’intégrité

La fonction Apex Crypto.generateMac() est aussi très utile pour créer des MAC. Les MAC peuvent être utilisés en complément des fonctions d’empreintes de messages pour mettre en place des MAC hachés (ou HMAC). Les HMAC sont utilisés dans les protocoles TLS et IPSec pour authentifier les expéditeurs de messages et s’assurer que les messages ne sont pas modifiés (ni interceptables) lors de leur transit. 

La méthode Crypto.generateMac() prend en charge les algorithmes HMACMD5, HMACSHA1, HMACSHA256 et HMAC512. Les fonctions HMAC reposent sur des empreintes de messages et sur une clé partagée utilisée par l’expéditeur pour chiffrer un MAC, et par le destinataire pour déchiffrer le MAC. Comme le destinataire doit déchiffrer le MAC avec la clé privée partagée, vous pouvez vérifier l’authenticité de l’expéditeur. Les empreintes de messages peuvent ensuite être comparées pour permettre au destinataire de confirmer que le message n’a pas été modifié pendant son transit (par une attaque de type « Man-in-the-Middle »). 

Création d’une signature numérique

Les signatures numériques garantissent l’intégrité et l’authenticité des messages. Pour générer une signature numérique, vous pouvez utiliser la fonction Crypto.sign(). Elle utilise l’algorithme SHA1 pour créer une empreinte qui est ensuite chiffrée avec une clé privée utilisant RSA. Dans cette configuration, le destinataire d’un message peut utiliser une clé publique pour déchiffrer un message (qui a été chiffré avec la clé privée de l’expéditeur), puis comparer l’empreinte du message envoyé avec une empreinte générée à partir du message reçu. Ainsi, le destinataire peut vérifier l’intégrité du message. 

Maintenant que vous savez comment implémenter le chiffrement dans votre application Salesforce, vous pouvez utiliser la flexibilité d’Apex pour tirer parti des fonctions prédéfinies ou pour écrire vos propres fonctions cryptographiques personnalisées. 

Le chiffrement ainsi que les fonctionnalités de la plate-forme telles que celles offertes par la classe Apex Crypto vous permettent de garantir la sécurité des applications que vous créez pour Salesforce Platform. La sécurité des applications est la clé de la confiance et de la réussite des clients. 

Ressources

Formez-vous gratuitement !
Créez un compte pour continuer.
Qu’est-ce que vous y gagnez ?
  • Obtenez des recommandations personnalisées pour vos objectifs de carrière
  • Mettez en pratique vos compétences grâce à des défis pratiques et à des questionnaires
  • Suivez et partagez vos progrès avec des employeurs
  • Découvrez des opportunités de mentorat et de carrière