Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
CMS/PKCS #7 propose la classe EnvelopedCms qui permet de mettre des messages sous enveloppe numériquement.
La mise sous enveloppe numérique d'un message le protège grâce à l'application d'un service de sécurité appelé confidentialité des données.
L'enveloppe numérique utilise le chiffrement pour conserver la confidentialité du message. Une clé de session est générée afin de chiffrer le message. Cette clé est ensuite elle-même chiffrée à l'aide de la clé publique du destinataire. La combinaison du message chiffré et de la clé de session chiffrée constitue l'enveloppe numérique. À la réception, la clé de session est déchiffrée à l'aide de la clé privée du destinataire. Le message est ensuite déchiffré à l'aide de la clé de session. La clé de session étant une clé symétrique, elle peut permettre de chiffrer et déchiffrer le message.
Utilisez la classe EnvelopedCms dans une application quelconque qui nécessite une confidentialité optimale des données. La messagerie électronique avec la norme de sécurité S/MIME est un exemple d'utilisation de la classe EnvelopedCms qui permet de garantir la sécurité. Outre d'autres services de sécurité, S/MIME permet de chiffrer un message électronique pour plusieurs destinataires. Les enveloppes numériques sont spécifiquement adaptées pour répondre à ces besoins.
Utilisez une des méthodes Encrypt de la classe EnvelopedCms pour chiffrer un message. La méthode System.Security.Cryptography.Pkcs.EnvelopedCms.Encrypt(System.Security.Cryptography.Pkcs.CmsRecipient) nécessite que l'application configure d'abord les caractéristiques du destinataire du message en construisant un objet CmsRecipient. La classe CmsRecipient stocke le certificat X509 du destinataire et la technique de génération d'une clé de session entre l'émetteur et le destinataire du message. La méthode System.Security.Cryptography.Pkcs.EnvelopedCms.Encrypt propose une boîte de dialogue qui permet à l'utilisateur de sélectionner le certificat du destinataire approprié.
La classe EnvelopedCms prend en charge la mise sous enveloppe d'un message pour plusieurs destinataires. Configurez le groupe de destinataires dans une collection CmsRecipientCollection à utiliser comme entrée pour la méthode System.Security.Cryptography.Pkcs.EnvelopedCms.Encrypt(System.Security.Cryptography.Pkcs.CmsRecipientCollection).
Ces deux techniques permettent de générer la clé de session entre l'émetteur et le destinataire d'un message. Les algorithmes de transport de la clé utilisent généralement l'algorithme RSA (https://go.microsoft.com/fwlink/?LinkId=98038https://go.microsoft.com/fwlink/?LinkId=98038), dans lequel un expéditeur crée une clé de chiffrement partagée avec un destinataire en générant la clé et en la transportant vers le destinataire. Les algorithmes d'accord de clés utilisent généralement l'algorithme Diffie-Hellman (https://go.microsoft.com/fwlink/?LinkId=98039https://go.microsoft.com/fwlink/?LinkId=98039). Dans ce cas, les deux parties créent une clé de chiffrement partagée, à la fois en participant à sa génération et, par définition, en l'acceptant.
Les informations relatives à chaque destinataire d'un message EnvelopedCms sont disponibles dans la propriété System.Security.Cryptography.Pkcs.EnvelopedCms.RecipientInfos. Les informations relatives à un destinataire ayant créé la clé de session avec l'émetteur à l'aide d'un algorithme de transport de clé sont stockées dans un objet KeyTransRecipientInfo. Les informations relatives à un destinataire ayant créé la clé de session avec l'émetteur à l'aide d'un algorithme d'accord de clé sont stockées dans un objet KeyAgreeRecipientInfo.
Un message EnvelopedCms peut comporter des attributs non protégés. Il s'agit d'attributs non chiffrés qui ne conservent pas la confidentialité des données. Ces attributs sont stockés dans la propriété System.Security.Cryptography.Pkcs.EnvelopedCms.UnprotectedAttributes.
Utilisez une des méthodes Decrypt de la classe EnvelopedCms pour déchiffrer le message mis sous enveloppe. Le message EnvelopedCms contient les informations d'identification du destinataire nécessaires au déchiffrement. Ces informations sont contenues dans la propriété RecipientInfos.
Pour obtenir plusieurs exemples de code utilisant des messages EnvelopedCms, voir Utilisation de System.Security.Cryptography.Pkcs.
Voir aussi
Tâches
Procédure de mise d'un message sous enveloppe pour un seul destinataire
Procédure de mise d'un message sous enveloppe pour plusieurs destinataires
Référence
CmsRecipient
CmsRecipientCollection
EnvelopedCms
KeyAgreeRecipientInfo
KeyTransRecipientInfo
Concepts
Procédure de signature et de mise sous enveloppe d'un message
Types de messages CMS/PKCS #7
.gif)
Copyright ©2007 par Microsoft Corporation. Tous droits réservés.