INFORMATIONS : stockage de clés privées et publiques pour MSMQ

S’applique à : Windows Server, version 2004, all editionsWindows Server, version 1903, all editionsWindows Server 2019, all editions

Résumé


Cet article décrit le stockage des clés privées et publiques utilisées par Microsoft Message Queue (MSMQ) pour l’authentification et le chiffrement des messages.

Informations supplémentaires


Les paires de clés (publiques-privées) résident dans l’API crypto, un objet conteneur de clé. Les applications n’ont pas besoin de savoir où et comment le conteneur de clé est implémenté. L’objet conteneur de clé doit être un objet opaque qui contient les clés et est accessible à l’aide d’interfaces publiées.Le fournisseur de services de cryptographie de base (CSP) implémente les conteneurs de clé dans le registre. Le fournisseur de services cryptographiques peut résider dans le HKEY_CURRENT_USER ou HKEY_LOCAL_MACHINE. L’emplacement est déterminé par le passage d’un indicateur à CryptAcquireContext. D’autres fournisseurs de services cryptographiques sont susceptibles d’implémenter le conteneur de clé à un autre emplacement, tel qu’une carte à puce. MSMQ ne suppose aucune information sur l’emplacement des clés et fonctionne toujours avec l’API de chiffrement, jamais directement avec les clés.MSMQ utilise le CSP de base pour le chiffrement ou le déchiffrement des données. Bien que l’implémentation actuelle du fournisseur de services de cryptographie place les clés privées dans HKLM\Software\Microsoft\Cryptography\MachineKeys\MSMQ, cette information ne doit pas être pertinente pour une application.Comme pour l’authentification, il s’agit d’une erreur courante de penser que les clés privées et publiques résident dans le certificat. Un certificat est une information publique. Il n’est pas important de recevoir le certificat. En revanche, la clé privée est un élément d’information le plus secret qui doit être conservé à un emplacement aussi sécurisé que possible.Pour chaque certificat, il devrait exister un conteneur de clés qui lui est associé. Ce conteneur de clé contient les clés publiques et privées associées au certificat. Une copie de la clé publique est également placée dans le certificat à l’aide de nombreux autres éléments d’information.L’API crypto définit également un objet appelé magasin de certificats. Un magasin de certificats contient des certificats et des informations supplémentaires sur chaque certificat (par exemple, des informations sur les clés associées au certificat). Ces informations sont une identification du fournisseur de services cryptographiques en particulier qui est utilisé avec le certificat et l’identification du conteneur de clés particulier associé au certificat.Un magasin de certificats peut résider dans de nombreux emplacements, le registre, un fichier, une mémoire, etc. MSMQ enregistre le certificat interne dans un magasin de certificats sous HKCU\Software\Microsoft\MSMQ\CertStore. Les clés associées se trouvent dans HKCU\Software\Microsoft\Cryptography\UserKeys\MSMQ. Ces emplacements ne doivent pas non plus être pertinents pour toutes les applications. MSMQ fonctionne toujours avec l’API de chiffrement, jamais directement avec les clés elles-mêmes.MSMQ stocke également la clé publique d’un gestionnaire de files d’attente dans la Banque d’informations de la file d’attente de messages (MQIS). Les applications peuvent récupérer cette clé publique en appelant MQGetMachineProperties () avec PROPID_QM_ENCRYPTION_PK. L’utilisateur appelant doit disposer de l’autorisation de protection de l’ordinateur pour pouvoir récupérer la clé publique de l’ordinateur. PROPID_QM_ENCRYPTION_PK est différent de toutes les autres propriétés, où l’utilisateur doit disposer de l’autorisation « obtenir des autorisations » sur l’ordinateur.MSMQ utilise cette clé publique en interne pour chiffrer les messages. Le QM récupère la clé publique de l’ordinateur de destination depuis MQIS. Dans la plupart des cas, le QM s’exécute sous le compte système local, le privilège « Get permissions » doit être accordé à tout le monde ; dans le cas contraire, le QM ne peut pas récupérer la clé publique et ne peut donc pas chiffrer les messages.

Références


Pour plus d’informations sur le chiffrement, le chiffrement à clé publique et Microsoft CryptoAPI, voir cryptographie.

Pour plus d’informations sur le kit de développement logiciel (SDK) MSMQ, voir Message Queuing (MSMQ).