Partager via


Vue d'ensemble de la sécurité de 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 pour protéger les données. WCF fournit une plateforme polyvalente et interopérable pour échanger des messages sécurisés en fonction de l’infrastructure de sécurité existante et des normes de sécurité reconnues pour les messages SOAP.

WCF utilise des concepts familiers si vous avez créé des applications sécurisées et distribuées avec des technologies existantes telles que HTTPS, sécurité intégrée Windows ou noms d’utilisateur et mots de passe pour authentifier les utilisateurs. WCF s’intègre non seulement aux infrastructures de sécurité existantes, mais étend également la sécurité distribuée au-delà des domaines Windows uniquement à l’aide de messages SOAP sécurisés. Considérez WCF comme implémentation de mécanismes de sécurité existants avec l’avantage majeur de l’utilisation de 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 interopérables basés sur XML. À l’aide de ces profils, les messages sont échangés en toute sécurité en tirant parti des spécifications ouvertes telles que les signatures numériques XML et le chiffrement XML. Pour obtenir la liste des spécifications, consultez Les protocoles de services Web pris en charge par les liaisons d'interopérabilité de System-Provided.

Un autre parallèle est le modèle d’objet de composant (COM) sur la plateforme Windows, qui permet des applications sécurisées et distribuées. COM dispose d’un mécanisme de sécurité complet dans lequel le contexte de sécurité peut être acheminé entre les composants ; ce mécanisme applique l’intégrité, la confidentialité et l’authentification. Toutefois, COM n'active pas la messagerie sécurisée et multiplateforme comme le fait WCF. À l’aide de WCF, vous pouvez créer des services et des clients qui s’étendent de domaines Windows sur Internet. Les messages interopérables de WCF sont essentiels pour créer des services dynamiques basés sur l’entreprise qui vous aident à vous sentir confiant dans la sécurité de vos informations.

Avantages de sécurité Windows Communication Foundation

WCF est une plateforme de programmation distribuée basée sur des messages SOAP. À l’aide de WCF, vous pouvez créer des applications qui fonctionnent à la fois en tant que services et clients de service, en créant et en traitant des messages à partir d’un nombre illimité d’autres services et clients. Dans une telle application distribuée, les messages peuvent passer d’un nœud à un nœud, via des pare-feu, sur Internet et via de nombreux intermédiaires SOAP. Cela introduit une variété de menaces de sécurité des messages. Les exemples suivants illustrent certaines menaces courantes que la sécurité WCF peut aider à atténuer lors de l’échange de messages entre entités :

  • Observation du trafic réseau pour obtenir des informations sensibles. Par exemple, dans un scénario bancaire en ligne, un client demande le transfert de fonds d’un compte à un autre. Un utilisateur malveillant intercepte le message et, ayant le numéro de compte et le mot de passe, effectue ultérieurement un transfert de fonds à partir du compte compromis.

  • Entités non autorisées agissant en tant que services sans connaître le client. Dans ce scénario, un utilisateur malveillant (non autorisé) agit en tant que service en ligne et intercepte les messages du client pour obtenir des informations sensibles. Ensuite, le voyou utilise les données volées pour transférer des fonds à partir du compte compromis. Cette attaque est également connue sous le nom d’une attaque par hameçonnage.

  • Modification des messages pour obtenir un résultat différent de celui prévu par l’appelant. Par exemple, la modification du numéro de compte auquel un dépôt est effectué permet aux fonds d’accéder à un compte non autorisé.

  • 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 livres à 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é des transferts offre les garanties suivantes :

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

  • Authentification du principal client (initiateur).

  • Intégrité du message.

  • Confidentialité des messages.

  • Détection des relectures.

Intégration à des infrastructures de sécurité existantes

Souvent, les déploiements de services web ont des solutions de sécurité existantes en place, par exemple, SSL (Secure Sockets Layer) ou le protocole Kerberos. Certains tirent parti d’une infrastructure de sécurité déjà déployée, comme les domaines Windows à l’aide d’Active Directory. Il est souvent nécessaire d’intégrer ces technologies existantes lors de l’évaluation et de l’adoption de nouvelles technologies.

La sécurité 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 à des modèles d’authentification existants

Une partie importante de n’importe quel modèle de sécurité de communication est la possibilité d’identifier et d’authentifier des entités dans la communication. Ces entités en communication utilisent des « identités numériques », ou des informations d’identification, pour s’authentifier auprès des pairs de communication. À mesure que les plateformes de communication distribuées ont évolué, diverses authentifications d’informations d’identification et modèles de sécurité connexes 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 l’intranet, l’utilisation d’un contrôleur de domaine Kerberos pour sauvegarder l’authentification des utilisateurs et des services devient courante. Dans certains scénarios, comme entre deux partenaires commerciaux, des certificats peuvent être utilisés pour authentifier mutuellement les partenaires.

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

  • Appelant anonyme.

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

  • Certificat d'authentification client.

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

Normes et interopérabilité

Dans un monde avec de grands déploiements existants, l’homogénéité est rare. Les plateformes de calcul/communications distribuées doivent interagir avec les technologies proposées par différents fournisseurs. De même, la sécurité doit également être interopérable.

Pour permettre des systèmes de sécurité interopérables, les entreprises actives dans le secteur des services Web ont créé diverses normes. Plus précisément en ce qui concerne la sécurité, quelques normes notables ont été proposées : WS-Security : SOAP Message Security (accepté par le corps des normes OASIS et anciennement appelé WS-Security), WS-Trust, WS-SecureConversation et WS-SecurityPolicy.

WCF prend en charge un large éventail de scénarios d’interopérabilité. La BasicHttpBinding classe est ciblée sur le profil de sécurité de base (BSP) et la WSHttpBinding classe est ciblée sur les normes de sécurité les plus récentes, telles que WS-Security 1.1 et WS-SecureConversation. En respectant ces normes, la sécurité WCF peut interagir et s’intégrer aux services Web hébergés sur des systèmes d’exploitation et des plateformes autres que Microsoft Windows.

Zones fonctionnelles de sécurité WCF

La sécurité WCF est divisée en trois domaines fonctionnels : la sécurité de transfert, le contrôle d’accès et l’audit. Les sections suivantes décrivent brièvement ces domaines et fournissent des liens pour plus d’informations.

Sécurité de transfert

La sécurité de transfert englobe trois principales fonctions de sécurité : intégrité, confidentialité et authentification. L’intégrité est la possibilité de détecter si un message a été falsifié. La confidentialité est la possibilité de conserver un message illisible par toute personne autre que le destinataire prévu ; cela est obtenu par le biais du chiffrement. L’authentification est la possibilité de vérifier une identité revendiquée. Ensemble, ces trois fonctions permettent de s’assurer que les messages arrivent de manière sécurisée d’un point à un autre.

Modes de transport et de sécurité des messages

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

  • Le mode de sécurité de transport utilise un protocole de niveau transport, tel que HTTPS, pour assurer la sécurité de transfert. Le mode de transport présente l’avantage d’être largement adopté, disponible sur de nombreuses plateformes et moins complexe en matière de calcul. Toutefois, il présente l’inconvénient de sécuriser les messages uniquement de point à point.

  • En revanche, le mode de sécurité des messages utilise WS-Security (et d’autres spécifications) pour implémenter la sécurité de transfert. Étant donné que la sécurité des messages est appliquée directement aux messages SOAP et qu’elle est contenue dans les enveloppes SOAP, ainsi que les données de l’application, elle présente l’avantage d’être indépendante du protocole de transport, plus extensible et garantissant une sécurité de bout en bout (par rapport à un point à point) ; il a l’inconvénient d’être plusieurs fois plus lent que le mode de sécurité de transport, car il doit traiter la nature XML des messages SOAP.

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

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

Contrôle d’accès

Le contrôle d’accès est également appelé autorisation. L’autorisation permet à différents utilisateurs d’avoir des privilèges différents pour afficher les données. Par exemple, étant donné que les fichiers de ressources humaines d’une entreprise contiennent des données d’employés sensibles, seuls les responsables sont autorisés à afficher les données des employés. En outre, les responsables peuvent afficher uniquement les données de leurs rapports directs. Dans ce cas, le contrôle d’accès est basé à la fois sur le rôle (« responsable ») et sur l’identité spécifique du responsable (pour empêcher un responsable d’examiner les enregistrements des employés d’un autre responsable).

Dans WCF, les fonctionnalités de contrôle d’accès sont fournies par l’intégration au Common Language Runtime (CLR) PrincipalPermissionAttribute et par le biais d’un ensemble d’API appelées 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é.

Processus d'audit

L’audit est la journalisation des événements de sécurité dans le journal des événements Windows. Vous pouvez consigner des événements liés à la sécurité, tels que des échecs d’authentification (ou des réussites). Pour plus d’informations, consultez Audit. Pour plus d’informations sur la programmation, consultez Guide pratique pour auditer les événements de sécurité.

Voir aussi