Échanges manuels de clés de session
Notes
La procédure décrite dans cette section suppose que les utilisateurs (ou les 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 de l’autre.
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 de plusieurs messages chiffrés et des clés chiffrées. Ensuite, à un moment donné, l’espion peut envoyer l’un de ces messages au destinataire et le destinataire n’aura aucun moyen de savoir que le message n’est pas venu 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 la clé publique d’échange de clé du récepteur.
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 fonction CryptGenKey .
- 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 le message chiffré et l’objet 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 fonction CryptImportKey . 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.