51 votes

Transport WCF vs Message

Je lisais des informations sur les implémentations de sécurité WCF et découvris qu'il existe 2 types de sécurité: Transport Mode and Message Mode (or both)

Si j'utilise HTTPS pour le mode de transport, est-il plus sécurisé si j'utilise également la sécurité des messages? Je demande ceci parce que ce que je comprends est comme suit:

https utilise le protocole SSL qui chiffre les messages ... alors pourquoi devrais-je ajouter Message Security et chiffrer le message crypté SSL? ou est-ce que je me trompe?

89voto

Ladislav Mrnka Points 218632

La sécurité dans WCF en fait composé de plusieurs fonctionnalités. La différence entre les deux est de savoir comment sont les messages signés et chiffrés.

La sécurité du Transport fournit un seul point-à-point des canaux de sécurité. Cela signifie que HTTPS établir un canal sécurisé seulement entre le client et le serveur exposés au client. Mais si ce serveur est juste un équilibreur de charge ou serveur proxy inverse, il dispose d'un accès direct au contenu du message.

Message de sécurité fournit de bout en bout de canal de sécurité. Cela signifie que la sécurité fait partie des données transférées et la seule destination peut déchiffrer les données (équilibreur de charge ou un proxy ne voit que les message crypté). Message de sécurité dans la plupart des cas, utilise des certificats pour assurer le chiffrement et la signature, mais il est généralement plus lent parce que la sécurité du transport peut utiliser l'accélération MATÉRIELLE.

Dans les scénarios avancés ces méthodes peuvent être combinées. Par exemple, vous pouvez avoir communication de votre équilibreur de charge sécurisé par HTTPS parce que vous faites confiance à votre réseau interne après équilibrage de la charge, mais en même temps vous pouvez avoir le message signé (message de sécurité) afin de prouver qu'il n'a pas été changé.

Une autre différence entre les deux est que la sécurité du transport est lié à un seul protocole de transport alors que le message de sécurité est indépendant du protocole de transport.

Message de sécurité est basée sur l'interopérabilité des protocoles (mais il faut savoir que chaque configuration WCF est interopérable). WCF prend en charge, 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 est mis en œuvre que partiellement en raison de la WCF hors de la boîte ne supporte pas digéré le mot de passe et nécessite l'utilisation de ce jeton, soit le transport ou le chiffrement des messages.
  • 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 et 1.2 - prend en charge la définition de la sécurité de l'assertion dans le WSDL.
  • WS-SecureConversation 1.3 et Févr. 2005 - prend en charge la sécurité de session où les informations d'identification sont échangés uniquement lors du premier appel et le reste de la communication utilise unique jeton de sécurité.
  • WS-Trust 1.3 et Févr. 2005 - fournit un soutien pour les scénarios fédérées et d'émission de jeton de Sécurité services (STS).

WCF prend également en charge WS-I Basic Profil de Sécurité 1.0 qui est juste sous-ensemble de l'ancien protocoles avec les prescrits de la configuration.

Pour les non interopérables caractéristiques de la WCF offre des fonctions comme la sécurité Windows ou TLSNego et SPNego (les deux doivent généralement être interopérables, mais leur sont pas disponibles dans de nombreux piles SOAP) pour les informations d'identification du service d'échange.

5voto

Aliostad Points 47792

Ce lien présente les raisons d'utiliser ou de ne pas utiliser de Message de sécurité.

Fondamentalement, la sécurité des transports est préféré à moins qu'il ne peut pas être utilisé.

Un extrait bof le lien:

Les avantages et les Inconvénients de Niveau Transport Sécurité

La sécurité du Transport est la suivante avantages:

N'exige pas que l' communiquer les parties à comprendre XML au niveau des concepts de sécurité. Cela peut améliorer l'interopérabilité, pour exemple, lorsque le protocole HTTPS est utilisé pour sécuriser la communication.

L'amélioration générale de la performance.

Les accélérateurs matériels sont disponibles.

Le Streaming est possible.

La sécurité du Transport est la suivante inconvénients:

Saut à saut seul.

Limitée et inextensible ensemble de les informations d'identification.

Le Transport dépendant.

Les inconvénients de Niveau Message Sécurité

Message de sécurité est la suivante inconvénients:

Performance

Ne peut pas utiliser message streaming.

Nécessite la mise en œuvre de XML-niveau les mécanismes de sécurité et de soutien pour WS-spécification de la Sécurité. Cela pourrait incidence sur l'interopérabilité.

1voto

Jaapjan Points 1982

Il existe également des cas dans lesquels vous ne pouvez pas utiliser le cryptage au niveau du transport et donc revenir au cryptage au niveau du message, qui est juste un peu moins sécurisé que la sécurité au niveau du transport.

Faire les deux sera plus sûr, bien sûr. Mais c'est un peu exagéré lorsque vous avez une bonne sécurité au niveau du transport.

1voto

Fredrik Mörk Points 85694

Je dirais que dans la plupart des cas, cela devrait suffire avec l'un ou l'autre. Si vous pouvez utiliser la sécurité au niveau du transport, cela est préférable car elle chiffre l'ensemble de la communication, pas seulement le contenu du message.

0voto

Howard Hoffman Points 303

La récente divulgation d'un succès, efficace, attaque sur XML Encryption, disscussed dans ce q&a, affecte la réponse. Pour WCF, il semble que le message niveau de sécurité (w/o support de niveau transport) est compromise. Je suis en train de l'intérêt de Microsoft dans la question ici.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X