WCF Transport vs Message
j'étais en train de lire à propos des implémentations de sécurité de la WCF et j'ai découvert qu'il y a 2 types de sécurité:
Transport Mode and Message Mode (or both)
si j'ai utilisé HTTPS pour le Mode Transport, est-il plus sûr si j'ai aussi utilisé la sécurité des messages? je pose cette question parce que ce que je comprends est comme suit:
https utilise le protocole SSL qui crypte les messages... alors pourquoi devrais-je ajouter la sécurité des messages et crypter le message crypté SSL? ou suis-je l'incompréhension des trucs?
4 réponses
la Sécurité WCF en fait se compose de plusieurs fonctionnalités . La différence entre ces deux méthodes réside dans la façon dont les messages sont signés et chiffrés.
la sécurité du Transport fournit un seul point-à-point des canaux de sécurité. Cela signifie que HTTPS établit secure channel uniquement entre le client et le serveur exposé au client. Mais si ce serveur n'est qu'un équilibreur de charge ou un serveur mandataire inverse, il a un accès direct au contenu du message.
La sécurité des messagesassure la sécurité des canaux de bout en bout. Cela signifie que la sécurité fait partie des données transférées et que seule la destination prévue peut déchiffrer les données (load balancer ou proxy ne voit que des messages chiffrés). La sécurité des messages dans la plupart des cas utilise également des certificats pour fournir le chiffrement et la signature, mais elle est généralement plus lente parce que la sécurité du transport peut utiliser l'accélération de HW.
Dans les scénarios avancés ces méthodes peuvent être combinées. Par exemple, vous pouvez avoir communication à votre équilibreur de charge sécurisée par HTTPS parce que vous faites confiance à votre réseau interne après équilibreur de charge, mais en même temps vous pouvez faire signer le message (sécurité du message) pour que vous puissiez prouver qu'il n'a pas été modifié.
une autre différence entre les deux est que la Sûreté du transport est liée à un seul protocole de transport alors que la Sûreté du message est indépendante du protocole de transport.
la sécurité des messages est basée sur l'interopérabilité protocoles (mais sachez que toutes les configurations de la WCF ne sont pas interopérables). La WCF soutient au moins partiellement ces protocoles:
- WS-Security 1.0 et 1.1 - règles de base pour le chiffrement, signature, jeton de transport, horodateurs, etc.
- nom d'utilisateur jeton de profil de 1.0 - définition de jeton utilisé pour le transport nom d'utilisateur et mot de passe. Cette spécification n'est implémentée que partiellement parce que WCF out of the box ne supporte pas la digestion mot de passe et nécessite l'utilisation de ce token soit avec le transport ou le cryptage de message.
- X509 jeton profil 1.1 - définition de jeton utilisé pour le transport de certificats.
- jeton Kerberos profil 1.1 - définition de jeton utilisé pour le transport des tickets Kerberos.
- jeton SAML 1.1 profil de 1.0 et 1.1 - définition de jeton utilisé pour fédérés de sécurité. SAML 2.0 est fourni par WIF.
- WS-SecurityPolicy 1.1 and 1.2-fournit un support pour définir l'assertion de sécurité dans WSDL.
- WS-SecureConversation 1.3 and Feb. 2005 - fournit un support pour la session de sécurité où les justificatifs d'identité sont échangés uniquement lors du premier appel et le reste de la communication utilise un jeton de sécurité unique.
- WS-Trust 1.3 and Feb. 2005-fournit un soutien pour les scénarios fédérés et les services symboliques de sécurité (STS).
WCF also prend en charge le profil de sécurité de base WS-I 1.0 qui est juste un sous-ensemble des anciens protocoles avec la configuration prescrite.
pour les fonctions non interopérables WCF offre des fonctions comme la sécurité de Windows ou TLSNego et SPNego (les deux devraient être généralement interopérables, mais ils ne sont pas disponibles dans de nombreuses piles SOAP) pour l'échange de justificatifs d'identité de service.
Ce lien décrit les raisons d'utiliser ou de ne pas utiliser de Message de sécurité.
fondamentalement, la Sûreté du transport est préférable sauf si elle ne peut pas être utilisée.
un extrait du lien:
avantages et inconvénients du transport-Niveau Sécurité
la sécurité du Transport est la suivante avantages:
exiger que la les parties qui communiquent comprennent Concepts de sécurité au niveau XML. Cela peut améliorer l'interopérabilité, pour exemple, lorsque HTTPS est utilisé pour sécuriser communication.
amélioration générale des performances.
Des accélérateurssont disponibles.
la lecture en continu est possible.
la sécurité du Transport est la suivante les inconvénients:
Hop-hop.
ensemble limité et inextensible de références.
Transport-dependent.
inconvénients des messages Sécurité
la sécurité des messages a les caractéristiques suivantes: les inconvénients:
Performance
ne peut pas utiliser la diffusion en continu de messages.
nécessite la mise en œuvre de XML-niveau sécurité mécanismes et soutien pour WS-spécification de sécurité. Cela pourrait affecter l'interopérabilité.
il y a aussi des cas où vous pourriez ne pas être en mesure d'avoir un niveau de cryptage de transport et donc de "revenir" au niveau de cryptage de message, qui est juste un peu moins sûr que la sécurité de niveau de transport.
faire les deux sera plus sûr, bien sûr. Mais c'est un peu exagéré quand vous avez une bonne sécurité de niveau de transport.
je dirais que dans la plupart des cas devrait suffire avec l'un ou l'autre. Si vous pouvez utiliser la sécurité de niveau de transport qui est préférable car il chiffre la communication entière, pas seulement le contenu du message.