44
Sécurisation des services WCF avec WS-Security

Sécurisation des services WCF avec WS-Security

Embed Size (px)

Citation preview

Page 1: Sécurisation des services WCF avec WS-Security

Sécurisation des services WCF avec WS-Security

Page 2: Sécurisation des services WCF avec WS-Security

Windows Communication Foundation

• Framework pour créer des applications: • Orientées services• Interopérables

• Architecture modulaire et composable• Support natif des protocoles des services Web avancés WS-*

Page 3: Sécurisation des services WCF avec WS-Security

WCF : Mécanisme de communication

WSDL

Point de terminaison

Client Service

B

« Binding »Comment ?

C

ContratQuoi ?

A

AdresseOù ?

« Behavior »Environnement

d’exécution

BeB ACBe

A CB

A CB

Page 4: Sécurisation des services WCF avec WS-Security

WCF : Structure message

‘Client’Message

Message

‘Service’

Metadata

Enveloppe Message SOAP

Headers: Addressing, Security, etc

Body: Payload

Message SOAP

Page 5: Sécurisation des services WCF avec WS-Security

DEMOCréation d’un service WCF

Page 6: Sécurisation des services WCF avec WS-Security
Page 7: Sécurisation des services WCF avec WS-Security

Plan

• Sécurité dans WCF

• Sécurité mode messageo WS-Securityo Types d'informations d'identification client

• Sécurité mode transport

• Conclusion

Page 8: Sécurisation des services WCF avec WS-Security

Architecture WS-*

Realible Message

Transactions

Messaging

XML

Met

adat

aSecurity

Page 9: Sécurisation des services WCF avec WS-Security

Sécurité WCF

Autorisation

Audit

Sécurité WCF

Sécurité de

transfert

Intégrité Confidentialité Authentification

Page 10: Sécurisation des services WCF avec WS-Security

Sécurité de transfert

Intégrité :Assurer la complétude et l’exactitude des données Signature des messages

Confidentialité:Assurer la lecture des messages que par le récepteur prévu

Chiffrement des données à l'aide d'un schéma de clé publique/clé privée.

Authentification:Vérifier l’identité d’une entitté déclarée e.g: Utilisation des certificats, username/password.

Page 11: Sécurisation des services WCF avec WS-Security

Recherche

Les trois fonctions de sécurité sont fournies par le

transport utilisé pour transmettre des

messages entre le client et le service.

La couche de transport assure la confidentialité des communications et

l'intégrité des données.

Le message assure l'authentification du

client.

La sécurité de transfert est fournie

uniquement au niveau du message SOAP,

niveau XML. WS-Security

Message Transport

Transport avec information

d’identification de message

Les modes de sécuritéLes modes de sécurité

Page 12: Sécurisation des services WCF avec WS-Security

Sécurité mode message

o WS-Securityo Types d'informations d'identification client

Page 13: Sécurisation des services WCF avec WS-Security

WS-Security

• Publiée par Microsoft, IBM et Verisign

• Définit un modèle de sécurité de message qui permet d'appliquer la sécurité aux messages SOAP.

• Intégre les spécifications mises au point par le W3C autour du chiffrement et de la signature des documents XML - XML Encryption et XML Signature

• Utilise des jetons de sécurité combinés au chiffrement et aux signatures numériques

Créer une interface universelle permettant à des systèmes de sécurité basés sur des technologies hétérogènes de s'invoquer mutuellement.

Page 14: Sécurisation des services WCF avec WS-Security

Architecture WS

SOAP Foundation

WS-Security

WS-PrivacyWS-Policy WS-Trust

WS-SecureConcersation WS-Federation WS-Authorizaion

Page 15: Sécurisation des services WCF avec WS-Security

Implémentation WS-Security dans WCF

• Sérialisation de jetons de sécurité vers et à partir de messages SOAP.

• Authentification de jetons de sécurité.

• Application et vérification de signatures de message.

• Chiffrement et déchiffrement de messages SOAP.

SOAP Envelope

SOAP Body

Security Feeder

Security TokenSOAP Envelope

SOAP Body

Signature

Page 16: Sécurisation des services WCF avec WS-Security

Types d'informations d'identification client

None• Le client n'a pas besoin de

présenter d'informations d'identification(un client anonyme).

• WSS SOAP Message Security X.509 Certificate Token Profile 1.1

Windows•Permet les échanges de messages SOAP dans le contexte de sécurité établi avec des informations d'identification Windows.

•WSS SOAP Message Security Kerberos Token Profile 1.1

Username•Autorise le service à exiger que le client soit authentifié avec des informations d'identification de nom d'utilisateur.

•WSS SOAP Message Security UsernameToken Profile 1.1 Ou WSS SOAP Message Security X.509 Certificate Token Profile 1.1

Certificate•Autorise le service à exiger que le client soit authentifié à l'aide d'un certificat X.509

•WSS SOAP Message Security X.509 Certificate Token Profile 1.1

Issued Token (jeton émis)•Type de jeton personnalisé configuré en fonction d'une stratégie de sécurité. Le type de jeton par défaut est le jeton SAML (Security Assertions Markup Language). Le jeton est émis par un service de jetons sécurisé.

•WSS SAML Token Profile 1.1

Page 17: Sécurisation des services WCF avec WS-Security

Scénario d’authentification Windows

Page 18: Sécurisation des services WCF avec WS-Security

• Une structure de données constituée d’une partie chiffrée et d’une partie claire.

• Sert à authentifier les requêtes des participants du système.

Notion de ticket Kerberos

Transmisau client

Ticket

Clef desession

Clef du serveurde ressource

Clef duclient

Chiffrement

Chiffrement

Page 19: Sécurisation des services WCF avec WS-Security

Scénario d’authentification Windows

01/12/2008 19Nemri Ayman & Turki Emna GL5

Centre de distribution de clés (KDC)

Client Service

Demander un ticket de service1Récupérer le ticket de service2

Envoi Requête Message5

7

Crypter le message

4

Valider le token6

Signer le message

3

Décrypter le messageVérifier la signature8

9 Envoi Message Réponse

Clef du serveurde ressource

Valide ?OUI

Accès

NON

Refus

Authentifiant

Reçu parLe serveur

De ressource

Déchiffrement

Déchiffrement

Authentifiant

Page 20: Sécurisation des services WCF avec WS-Security

DEMOScénario d’authentification Windows

Page 21: Sécurisation des services WCF avec WS-Security

Scénario d’authentification None

Page 22: Sécurisation des services WCF avec WS-Security

• Un standard de cryptographie de l'Union internationale des télécommunications pour les infrastructures à clés publiques (PKI).

• Créé en 1988 dans le cadre du standard X.500.

• Repose sur un système hiérarchique d'autorités de certification.

Notion de Certificat X.509

Page 23: Sécurisation des services WCF avec WS-Security

Scénario d’authentification None

Envoi Requête Message1

Envoi Réponse Message2

ClientService

Page 24: Sécurisation des services WCF avec WS-Security

DEMOScénario d’authentification None

Page 25: Sécurisation des services WCF avec WS-Security

Scénario d’authentification Username

Page 26: Sécurisation des services WCF avec WS-Security

Scénario d’authentification Username

Envoi Requête Message1

Envoi Réponse Message3

Validation Username/Password

2

Client

Service

Page 27: Sécurisation des services WCF avec WS-Security

DEMOScénario d’authentification Username

Page 28: Sécurisation des services WCF avec WS-Security

Scénario d’authentification Certificate

Page 29: Sécurisation des services WCF avec WS-Security

Scénario d’authentification CertificateCôté Client

01/12/2008 29Nemri Ayman & Turki Emna GL5

Certificate Store

Client Service

Récupérer le Certificat du Service 1Récupérer le Certificat du Client 2

Envoi Requête Message7

6

Attacher le Certificat Client au message

4

Signer le Message avec sa clé privée

5CS

Récupérer la Clé Privée3

Crypter le Message avec la clé publique du service

Page 30: Sécurisation des services WCF avec WS-Security

01/12/2008 30Nemri Ayman & Turki Emna GL5

Certificate Store

Client Service

Récupérer le Certificat du Service 1

Envoi Message Réponse7

S

Récupérer la Clé Privée 2

4 Décrypter le message

5 Vérifier la signature

Scénario d’authentification CertificateCôté Service

Page 31: Sécurisation des services WCF avec WS-Security

DEMOCréation d’un service WCF

Page 32: Sécurisation des services WCF avec WS-Security

Scénario d’authentification Issued Token

Issued Token

Page 33: Sécurisation des services WCF avec WS-Security

• Security Assertions Markup Language.

• Des représentations XML de revendications.

• Par défaut, les jetons SAML qu'utilise WCF dans les scénarios de sécurité fédérée sont des jetons émis (issued token).

Notion de jeton SAML

Page 34: Sécurisation des services WCF avec WS-Security

Signer le Message avec la clé.

Scénario d’authentification Issued Token

01/12/2008 34Nemri Ayman & Turki Emna GL5

Service de jetons

Client Service

Demander un jeton SAML 1Récupérer le jeton SAML 3

Envoi Requête Message6

7

C

Récupérer la Clé de revendication4

Signer le jeton SAMLavec le certificat

2

5

Vérifier la signature du jeton SAML

8 Vérifier la signature du message.

9 Envoi Message Réponse

Page 35: Sécurisation des services WCF avec WS-Security

Sécurité mode transport

o Présentationo Transport Vs Message

Page 36: Sécurisation des services WCF avec WS-Security

• S’applique au message dans son ensemble

• Assure la confidentialité, intégrité et/ou l’authentification

• Dépend du mécanisme utilisé par la liaison sélectionnée: HTTPS, SSL

Sécurité mode transport

Page 37: Sécurisation des services WCF avec WS-Security

Scénario d’authentification None

Envoi Requête Message1

Envoi Réponse Message2

Les messages SOAP sont

cryptés et signés avec HTTPS

Le service est authentifié

avec le certificat SSL

Page 38: Sécurisation des services WCF avec WS-Security

DEMOScénario d’authentification None

Page 39: Sécurisation des services WCF avec WS-Security

Sécurité de bout en bout

Prise en charge de plusieurs transports

Prise en charge d'un large jeu d'informations d'identification

Performance

Impossible d'utiliser la diffusion en continu de messages

Requiert l'implémentation de mécanismes de sécurité au niveau du XML et la prise en charge de la spécification WS-Security.

Saut à saut uniquement

Dépendance vis-à-vis du transport

Jeu d'informations d'identification limité et non extensible

Performance globale ameliorée

La diffusion en continu est possible

Sécurité indépendante du niveau du XML.

Message vs Transport

Sécurité Mode Message Sécurité Mode Transport

Page 40: Sécurisation des services WCF avec WS-Security

Sécurité Message

Sécurité Transport

Page 41: Sécurisation des services WCF avec WS-Security

Récapitulons

Binding

Security Mode

Credential Type

Custom Binding

wsHttpBinding,BasicHttpBinding..

TransportMessage

TransportwithMessageCredentialType

NoneWindowsUsernameCertificate

IssuedToken

Binding 1

Page 42: Sécurisation des services WCF avec WS-Security

• L'application directe de la sécurité au message en modifiant son contenu permet au message sécurisé d'être autonome en ce qui concerne les aspects de la sécurité.

• Le choix de mode dépend de besoins de l’architecture: Message ou Transport ou les deux, chacun a des inconvénient et des avantages.

Conclusion

Page 43: Sécurisation des services WCF avec WS-Security

Merci pour votre attention

Page 44: Sécurisation des services WCF avec WS-Security