Échanges manuels de clés de session
Note
La procédure décrite dans cette section part du principe que les utilisateurs (ou clients CryptoAPI) possèdent déjà leur propre ensemble de paires de clés publiques/privées et ont également obtenu les clés publiques les autres.
L’illustration suivante montre comment utiliser cette procédure pour envoyer un message chiffré.
Cette approche est vulnérable à au moins une forme d’attaque courante. Un espion peut acquérir des copies d’un ou plusieurs messages chiffrés et des clés chiffrées. Ensuite, à un moment donné, la goutte d’enregistrement peut envoyer l’un de ces messages au destinataire et le destinataire n’aura aucun moyen de savoir que le message ne provient pas directement de l’expéditeur d’origine. Ce risque peut être réduit en horodatage de tous les messages ou en utilisant des numéros de série.
Le moyen le plus simple d’envoyer des messages chiffrés à un autre utilisateur consiste à envoyer le message chiffré avec une clé de session aléatoire, ainsi que la clé de session chiffrée avec les clé publique d’échange de clé du destinataire.
Voici les étapes d’envoi d’une clé de session chiffrée.
Pour envoyer une clé de session chiffrée
- Créez une clé de session aléatoire à l’aide de la fonctionCryptGenKey.
- Chiffrez le message à l’aide de la clé de session. Cette procédure est décrite dans chiffrement et déchiffrement des données.
- Exportez la clé de session dans un objet BLOB de clé avec la fonction CryptExportKey, en spécifiant que la clé doit être chiffrée avec la clé publique d’échange de clé de l’utilisateur de destination.
- Envoyez à la fois le message chiffré et le blob de clé chiffrée à l’utilisateur de destination.
- L’utilisateur de destination importe l’objet BLOB de clé dans son fournisseur de solutions Cloud à l’aide de la fonctionCryptImportKey. Cela déchiffre automatiquement la clé de session, à condition que la clé publique d’échange de clé de l’utilisateur de destination ait été spécifiée à l’étape 3.
- L’utilisateur de destination peut ensuite déchiffrer le message à l’aide de la clé de session, en suivant la procédure décrite dans Chiffrement et déchiffrement des données.