Share via


Présentation de la sécurité dans Windows Communication Foundation

Windows Communication Foundation (WCF) est une plateforme de programmation distribuée basée sur les messages SOAP, et la sécurisation des messages entre les clients et les services est essentielle à la protection des données. WCF fournit une plateforme souple et interopérable pour échanger des messages sécurisés qui reposent sur l’infrastructure de sécurité existante et les normes de sécurité reconnues pour les messages SOAP.

WCF utilise des concepts qui sont familiers si vous avez construit des applications distribuées sécurisées avec les technologies existantes telles que HTTPS, la sécurité intégrée de Windows ou des noms d’utilisateur et des mots de passe pour authentifier des utilisateurs. WCF s’intègre non seulement aux infrastructures de sécurité existantes, mais étend aussi la sécurité distribuée au-delà des domaines propres à Windows en utilisant des messages SOAP sécurisés. Prenons l’exemple de WCF qui offre une implémentation de mécanismes de sécurité existants et l’avantage majeur d’utiliser SOAP comme protocole en plus des protocoles existants. Par exemple, les informations d'identification qui identifient un client ou un service, telles que le nom d'utilisateur et le mot de passe ou les certificats X.509, ont des profils SOAP basés sur du XML interopérable. À l'aide de ces profils, les messages sont échangés en toute sécurité et tirent parti des spécifications ouvertes telles que les signatures numériques XML et le chiffrement XML. Pour obtenir la liste des spécifications, consultez Protocoles de services web pris en charge par des liaisons d’interopérabilité fournies par le système.

Un autre parallèle est le modèle COM (Component Object Model) sur la plateforme Windows qui active des applications distribuées et sécurisées. COM offre un mécanisme de sécurité complet qui permet la transmission du contexte de sécurité entre des composants ; ce mécanisme met en vigueur l'intégrité, la confidentialité et l'authentification. Cependant, COM ne permet pas la messagerie multiplateforme, sécurisée comme le permet WCF. À l’aide de WCF, vous pouvez générer des services et des clients qui couvrent les domaines Windows jusqu’à Internet. Les messages interopérables de WCF sont essentiels pour générer des services dynamiques orientés vers les affaires qui inspirent la confiance dans la sécurité de vos informations.

Avantages de la sécurité dans Windows Communication Foundation

WCF est une plateforme de programmation distribuée basée sur les messages SOAP. À l’aide de WCF, vous pouvez créer des applications qui fonctionnent comme des services et des clients de service pour créer et traiter des messages issus d’un nombre illimité d’autres services et clients. Dans ce type d'application distribuée, les messages peuvent circuler d'un nœud à l'autre, à travers des pare-feu, sur Internet, et par l'intermédiaire de nombreux intermédiaires SOAP. Ces possibilités introduisent plusieurs menaces pour la sécurité des messages. Les exemples suivants illustrent certaines menaces courantes que la sécurité de WCF peut aider à atténuer lorsque des entités échangent des messages :

  • Observation du trafic réseau pour obtenir des informations sensibles. Par exemple, dans un scénario de transactions bancaires, un client effectue une demande de transfert de fonds d'un compte à un autre. Un utilisateur malveillant intercepte le message et, s'il dispose du numéro de compte et du mot de passe, effectue un transfert de fonds à partir du compte compromis.

  • Entités malveillantes agissant en tant que services à l'insu du client. Dans ce scénario, un utilisateur malveillant (l'escroc) agit comme un service en ligne et intercepte des messages du client pour obtenir des informations sensibles. Puis, l'escroc utilise les données volées pour transférer des fonds du compte compromis. Cette attaque s’appelle aussi de l’hameçonnage.

  • Modification de messages en vue d'obtenir un résultat différent de celui souhaité par l'appelant. Par exemple, modifier le numéro de compte dans lequel est effectué un dépôt permet aux fonds d'être détourné au profit d'un compte malveillant.

  • Piratage informatique où le pirate informatique relit le même bon de commande. Par exemple, une librairie en ligne reçoit des centaines de commandes et envoie les ouvrages à un client qui ne les a pas commandés.

  • Incapacité d'un service à authentifier un client. Dans ce cas, le service ne peut pas garantir que la personne appropriée a effectué la transaction.

En résumé, la sécurité de transfert fournit les garanties suivantes :

  • Authentification du point de terminaison (répondant) du service.

  • Authentification principale (initiateur) du client.

  • Intégrité des messages.

  • Confidentialité des messages.

  • Détection des relectures.

Intégration avec les infrastructures de sécurité existantes

Souvent, les déploiements de service Web contiennent des solutions de sécurité existantes, par exemple, le protocole SSL (Secure Sockets Layer) ou Kerberos. Certains tirent parti d'une infrastructure de sécurité qui a déjà été déployée, telle que les domaines Windows qui utilisent Active Directory. Il est souvent nécessaire d'intégrer ces technologies existantes tout en évaluant et en adoptant les nouvelles.

La sécurité de WCF s’intègre aux modèles de sécurité de transport existants et peut tirer parti de l’infrastructure existante pour les modèles de sécurité de transfert plus récents basés sur la sécurité des messages SOAP.

Intégration avec les modèles d'authentification existants

Un élément important de tout modèle de sécurité de communication réside dans sa capacité à identifier et authentifier des entités dans la communication. Ces entités dans la communication font appel à des « identités numériques », ou des informations d'identification, pour s'authentifier auprès des correspondants homologues. Au fur et à mesure de l'évolution des plateformes de communication distribuées, divers modèles d'authentification d'informations d'identification et de sécurité apparentés ont été implémentés. Par exemple, sur Internet, l'utilisation d'un nom d'utilisateur et d'un mot de passe pour identifier les utilisateurs est courante. Sur un intranet, l'utilisation d'un contrôleur de domaine Kerberos pour sauvegarder l'authentification de l'utilisateur et du service est une pratique de plus en plus courante. Dans certains scénarios, comme entre deux associés, des certificats peuvent être utilisés pour authentifier les partenaires mutuellement.

Ainsi, dans le monde des services Web, où le même service peut être exposé à des clients d'entreprise internes aussi bien qu'aux partenaires externes ou à des clients Internet, il est important que l'infrastructure fournisse l'intégration avec les modèles d'authentification de sécurité existants. La sécurité de WCF prend en charge un large éventail de types d’informations d’identification (modèles d’identification), notamment :

  • Appelant anonyme.

  • Informations d'identification du client de nom d'utilisateur.

  • Informations d'identification du client de certificat.

  • Windows (protocoles Kerberos et NT LanMan [NTLM]).

Normes et interopérabilité

Dans un monde où évoluent des grands déploiements, l'homogénéité est rare. Les plateformes de traitement/communications distribuées doivent interagir avec les technologies offertes par les différents fournisseurs. De même, la sécurité doit aussi être interopérable.

Pour permettre l'utilisation des systèmes de sécurité interopérables, les entreprises actives dans l'industrie des services Web ont créé diverses normes. Dans le domaine spécifique de la sécurité, certaines normes importantes ont été proposées : WS-Security : la sécurité des messages SOAP (acceptée par l'organisme de normalisation OASIS, anciennement WS-Security), WS-Trust, WS-SecureConversation et WS-SecurityPolicy.

WCF prend en charge une large gamme de scénarios d’interopérabilité. La classe BasicHttpBinding est concernée par BSP (Basic Security Profile) et la classe WSHttpBinding est concernée par les normes de sécurité les plus récentes, telles que WS-Security 1.1 et WS-SecureConversation. En adhérant à ces normes, la sécurité de WCF peut interagir et s’intégrer aux services Web hébergés sur les systèmes d’exploitation et les plateformes autres que Microsoft Windows.

Zones fonctionnelles de sécurité WCF

La sécurité de WCF est divisée en trois zones fonctionnelles : la sécurité de transfert, le contrôle d’accès et l’audit. Les sections suivantes traitent brièvement de ces zones et fournissent des liens vers des informations supplémentaires.

Sécurité de transfert

La sécurité de transfert comprend trois fonctions de sécurité majeures : l'intégrité, la confidentialité et l'authentification. L’intégrité est la possibilité de détecter si un message a été falsifié. La confidentialité est la possibilité de rendre un message illisible par une personne qui n’est pas le destinataire souhaité ; cette opération s’accomplit grâce au chiffrement. L’authentification est la possibilité de vérifier une identité déclarée. Ensemble, cette trois fonctions permettent de garantir que les messages arrivent de manière sécurisée d'un point à un autre.

Modes de sécurité du transport et du message

Deux mécanismes principaux sont utilisés pour implémenter la sécurité de transfert dans WCF : le mode de sécurité du transport et le mode de sécurité du message.

  • Le mode sécurité Transport utilise un protocole de transport, tel que HTTPS, afin de garantir la sécurité du transfert. Le mode de transport a l'avantage d'être adopté largement, d'être disponible sur de nombreuses plateformes, et de présenter un traitement moins complexe. Toutefois, il a l'inconvénient de ne permettre que la sécurisation des messages de point à point.

  • En revanche, le mode de sécurité du message fait appel à WS-Security (et d’autres spécifications) pour implémenter la sécurité de transfert. Étant donné que la sécurité de message est appliquée directement aux messages SOAP et qu'elle est contenue à l'intérieur des enveloppes SOAP, ainsi que les données d'application, elle a l'avantage d'être indépendante du protocole de transport, d'être plus extensible, et de garantir la sécurité de bout en bout (au lieu de point à point) ; son inconvénient est d'être nettement plus lente que le mode de sécurité du transport parce qu'elle doit traiter la nature XML des messages SOAP.

Pour plus d’informations sur ces différences, consultez Sécurisation des services et des clients.

Un troisième mode de sécurité utilise les deux modes précédents en offrant leurs avantages. Ce mode est appelé TransportWithMessageCredential. Dans ce mode, la sécurité de message est utilisée pour authentifier le client et la sécurité de transport est utilisée pour authentifier le serveur et fournir la confidentialité et l'intégrité des messages. Grâce à ces fonctions, le mode de sécurité TransportWithMessageCredential est presque aussi rapide que le mode de sécurité de transport et permet l’extensibilité de l’authentification du client de la même manière que la sécurité de message. Toutefois, il ne permet pas la sécurité complète de bout en bout contrairement au mode de sécurité de message.

Contrôle d’accès

Le contrôle d’accès s’appelle également l’autorisation. L’autorisation permet à plusieurs utilisateurs d’avoir des privilèges différents pour consulter les données. Par exemple, étant donné que les fichiers des ressources humaines d'une entreprise contiennent des données sensibles sur les employés, seuls les responsables sont autorisés à consulter ces données. De plus, les responsables peuvent consulter uniquement les données se rapportant à leurs collaborateurs directs. Dans ce cas, le contrôle d'accès est basé sur le rôle (« responsable ») ainsi que l'identité spécifique du responsable (pour empêcher un responsable de consulter les informations relatives aux employés d'un autre responsable).

Dans WCF, les fonctionnalités de contrôle d’accès sont fournies dans le cadre de l’intégration au Common Language Runtime (CLR) PrincipalPermissionAttribute et d’un jeu d’API identifié comme le modèle d’identité. Pour plus d’informations sur le contrôle d’accès et l’autorisation basée sur les revendications, consultez Extension de la sécurité.

Audit

L’audit est l’enregistrement des événements de sécurité dans le journal des événements Windows. Vous pouvez enregistrer des événements relatifs à la sécurité, tels que les échecs (ou les succès) d'authentification. Pour plus d’informations, consultez également Audit. Pour plus d’informations sur la programmation, consultez Guide pratique pour auditer les événements de sécurité.

Voir aussi