Sécurisation des services WCF avec WS-Security
-
Upload
slimen-belhaj-ali -
Category
Technology
-
view
956 -
download
0
Transcript of Sécurisation des services WCF avec WS-Security
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-*
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
WCF : Structure message
‘Client’Message
Message
‘Service’
Metadata
Enveloppe Message SOAP
Headers: Addressing, Security, etc
Body: Payload
Message SOAP
DEMOCréation d’un service WCF
Plan
• Sécurité dans WCF
• Sécurité mode messageo WS-Securityo Types d'informations d'identification client
• Sécurité mode transport
• Conclusion
Architecture WS-*
Realible Message
Transactions
Messaging
XML
Met
adat
aSecurity
Sécurité WCF
Autorisation
Audit
Sécurité WCF
Sécurité de
transfert
Intégrité Confidentialité Authentification
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.
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é
Sécurité mode message
o WS-Securityo Types d'informations d'identification client
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.
Architecture WS
SOAP Foundation
WS-Security
WS-PrivacyWS-Policy WS-Trust
WS-SecureConcersation WS-Federation WS-Authorizaion
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
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
Scénario d’authentification Windows
• 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
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
DEMOScénario d’authentification Windows
Scénario d’authentification None
• 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
Scénario d’authentification None
Envoi Requête Message1
Envoi Réponse Message2
ClientService
DEMOScénario d’authentification None
Scénario d’authentification Username
Scénario d’authentification Username
Envoi Requête Message1
Envoi Réponse Message3
Validation Username/Password
2
Client
Service
DEMOScénario d’authentification Username
Scénario d’authentification Certificate
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
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
DEMOCréation d’un service WCF
Scénario d’authentification Issued Token
Issued Token
• 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
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
Sécurité mode transport
o Présentationo Transport Vs Message
• 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
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
DEMOScénario d’authentification None
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
Sécurité Message
Sécurité Transport
Récapitulons
Binding
Security Mode
Credential Type
Custom Binding
wsHttpBinding,BasicHttpBinding..
TransportMessage
TransportwithMessageCredentialType
NoneWindowsUsernameCertificate
IssuedToken
Binding 1
• 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
Merci pour votre attention