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.
Cette section décrit la sécurité de transport de Message Queuing (MSMQ) que vous pouvez utiliser pour sécuriser les messages envoyés à une file d’attente.
Remarque
Avant de lire cette rubrique, il est recommandé de lire les concepts de sécurité.
L’illustration suivante fournit un modèle conceptuel de communication mise en file d’attente à l’aide de Windows Communication Foundation (WCF). Cette illustration et cette terminologie sont utilisées pour expliquer les concepts de sécurité du transport.

Lors de l’envoi de messages mis en file d’attente à l’aide de WCF avec NetMsmqBinding, le message WCF est attaché en tant que corps du message MSMQ. La sécurité du transport sécurise l’intégralité du message MSMQ (en-têtes ou propriétés de message MSMQ et le corps du message). Étant donné qu’il s’agit du corps du message MSMQ, l’utilisation de la sécurité de transport sécurise également le message WCF.
Le concept clé derrière la sécurité du transport est que le client doit répondre aux exigences de sécurité pour obtenir le message dans la file d’attente cible. Cela est différent de la sécurité des messages, où le message est sécurisé pour l’application qui reçoit le message.
La sécurité du transport à l’aide de NetMsmqBinding et MsmqIntegrationBinding affecte la façon dont les messages MSMQ sont sécurisés en transit entre la file d’attente de transmission et la file d’attente cible, ce qui signifie que sécurisé implique :
Signature du message pour vous assurer qu’il n’est pas falsifié.
Chiffrement du message pour s’assurer qu’il ne peut pas être vu ou falsifié. Cela est recommandé, mais facultatif.
Le gestionnaire de files d'attente cible qui identifie l'expéditeur du message afin de garantir la non-répudiation.
Dans MSMQ, indépendamment de l’authentification, la file d’attente cible a une liste de contrôle d’accès (ACL) pour vérifier si le client a l’autorisation d’envoyer le message à la file d’attente cible. L'application de réception est également vérifiée pour s'assurer qu'elle a la permission de recevoir le message de la file d'attente cible.
Propriétés de sécurité du transport WCF MSMQ
MSMQ utilise la sécurité Windows pour l’authentification. Il utilise l’identificateur de sécurité Windows (SID) pour identifier le client et utilise le service d’annuaire Active Directory comme autorité de certification lors de l’authentification du client. Cela nécessite que MSMQ soit installé avec l’intégration d’Active Directory. Étant donné que le SID de domaine Windows est utilisé pour identifier le client, cette option de sécurité n’est significative que lorsque le client et le service font partie du même domaine Windows.
MSMQ permet également d’attacher un certificat avec le message qui n’est pas inscrit auprès d’Active Directory. Dans ce cas, il garantit que le message a été signé à l’aide du certificat attaché.
WCF fournit ces deux options dans le cadre de la sécurité du transport MSMQ et elles sont le pivot clé pour la sécurité du transport.
Par défaut, la sécurité du transport est activée.
Compte tenu de ces principes de base, les sections suivantes détaillent les propriétés de sécurité de transport regroupées avec NetMsmqBinding et MsmqIntegrationBinding.
Mode d’authentification MSMQ
Il MsmqAuthenticationMode détermine s’il faut utiliser la sécurité du domaine Windows ou une sécurité basée sur un certificat externe pour sécuriser le message. Dans les deux modes d’authentification, le canal de transport WCF en file d’attente utilise le CertificateValidationMode spécifié dans la configuration du service. Le mode de validation de certificat spécifie le mécanisme utilisé pour vérifier la validité du certificat.
Lorsque la sécurité du transport est activée, le paramètre par défaut est WindowsDomain.
Mode d’authentification de domaine Windows
Le choix d’utiliser la sécurité Windows nécessite l’intégration d’Active Directory. WindowsDomain est le mode de sécurité de transport par défaut. Lorsque cela est défini, le canal WCF attache le SID Windows au message MSMQ et utilise son certificat interne obtenu à partir d’Active Directory. MSMQ utilise ce certificat interne pour sécuriser le message. Le gestionnaire de files d’attente de réception utilise Active Directory pour rechercher et rechercher un certificat correspondant pour authentifier le client et vérifier que le SID correspond également à celui du client. Cette étape d’authentification est exécutée si un certificat, généré en interne dans le cas du mode d’authentification WindowsDomain ou généré en externe dans le cas du Certificate mode d’authentification, est attaché au message même si la file d’attente cible n’est pas marquée comme nécessitant l’authentification.
Remarque
Lors de la création d’une file d’attente, vous pouvez marquer la file d’attente comme file d’attente authentifiée pour indiquer que la file d’attente nécessite l’authentification du client envoyant des messages à la file d’attente. Cela garantit qu’aucun message non authentifié n’est accepté dans la file d’attente.
Le SID joint au message est également utilisé pour vérifier l’ACL de la file d’attente cible pour s’assurer que le client a l’autorité d’envoyer des messages à la file d’attente.
Mode d’authentification par certificat
Le choix d’utiliser le mode d’authentification par certificat ne nécessite pas l’intégration d’Active Directory. En fait, dans certains cas, par exemple, lorsque MSMQ est installé en mode groupe de travail (sans intégration Active Directory) ou lors de l’utilisation du protocole de transfert SRMP (SOAP Reliable Messaging Protocol) pour envoyer des messages à la file d’attente, fonctionne uniquement Certificate .
Lors de l’envoi d’un message WCF avec Certificate, le canal WCF n’attache pas de SID Windows au message MSMQ. La liste ACL de file d'attente cible doit autoriser l'accès utilisateur Anonymous pour l'envoi vers la file d'attente. Le gestionnaire de files d’attente de réception vérifie si le message MSMQ a été signé avec le certificat, mais n’effectue aucune authentification.
Le certificat avec ses revendications et ses informations d’identité est rempli dans le ServiceSecurityContext par le canal de transport en file d’attente WCF. Le service peut utiliser ces informations pour effectuer sa propre authentification de l’expéditeur.
Niveau de protection MSMQ
Le niveau de protection détermine comment protéger le message MSMQ pour s’assurer qu’il n’est pas falsifié. Elle est spécifiée dans la MsmqProtectionLevel propriété. La valeur par défaut est Sign.
Niveau de protection des signes
Le message MSMQ est signé à l’aide du certificat généré en interne lors de l’utilisation WindowsDomain du mode d’authentification ou d’un certificat généré en externe lors de l’utilisation du Certificate mode d’authentification.
Signer et chiffrer le niveau de protection
Le message MSMQ est signé à l’aide du certificat généré en interne lors de l’utilisation WindowsDomain du mode d’authentification ou du certificat généré en externe lors de l’utilisation du Certificate mode d’authentification.
Outre la signature du message, le message MSMQ est chiffré à l’aide de la clé publique du certificat obtenu à partir d’Active Directory qui appartient au gestionnaire de file d’attente de réception qui héberge la file d’attente cible. Le gestionnaire de files d’attente d’envoi garantit que le message MSMQ est chiffré en transit. Le gestionnaire de files d’attente de réception déchiffre le message MSMQ à l’aide de la clé privée de son certificat interne et stocke le message dans la file d’attente (s’il est authentifié et autorisé) en texte clair.
Remarque
Pour chiffrer le message, l’accès à Active Directory est requis (la propriété de UseActiveDirectory doit être définie sur NetMsmqBinding) et peut être utilisé à la fois avec true et Certificate.
Niveau de protection None
Cela est implicite lorsque MsmqProtectionLevel est réglé à None. Il ne peut pas s’agir d’une valeur valide pour d’autres modes d’authentification.
Remarque
Si le message MSMQ est signé, MSMQ vérifie si le message est signé avec le certificat attaché (interne ou externe) indépendamment de l’état de la file d’attente, autrement dit, de la file d’attente authentifiée ou non.
Algorithme de chiffrement MSMQ
L’algorithme de chiffrement spécifie l’algorithme à utiliser pour chiffrer le message MSMQ sur le câble. Cette propriété est utilisée uniquement si MsmqProtectionLevel est défini sur EncryptAndSign.
Les algorithmes pris en charge sont RC4Stream et AES la valeur par défaut est RC4Stream.
Vous ne pouvez utiliser l’algorithme AES que si l’expéditeur a installé MSMQ 4.0. En outre, la file d’attente cible doit également être hébergée sur MSMQ 4.0.
Algorithme de hachage MSMQ
L’algorithme de hachage spécifie l’algorithme utilisé pour créer une signature numérique du message MSMQ. Le gestionnaire de files d’attente de réception utilise ce même algorithme pour authentifier le message MSMQ. Cette propriété est utilisée uniquement si MsmqProtectionLevel est définie sur Sign ou EncryptAndSign.
Les algorithmes pris en charge sont MD5, , SHA1SHA256et SHA512. La valeur par défaut est SHA1.
En raison de problèmes de collision avec MD5/SHA1, Microsoft recommande SHA256 ou mieux.