Chapitre 4- WS-Security Responsable du cours : Héla Hachicha Année Universitaire : 2011-2012 1 WS-Security (Microsoft) WS-Security est le standard proposé par IBM, Microsoft, VeriSign et Forum Systems pour la sécurisation des services interopérables. Plus large que SAML. Il accueille les spécifications tierces comme SAML, XrML, mais aussi Kerberos, X509... Le protocole WS-Security est maintenant officiellement appelé WSS (Web Services Security) et développé via un comité dans Oasis-Open. OASIS WSS : http://www.oasis-open.org/specs/index.php#wssv1.1 WSS s occupe de l ensemble des composantes de la sécurisation : de l'authentification des utilisateurs et des composants en présence en passant par le chiffrement, et la gestion de l'intégrité des messages par le biais de certificats WSS a été conçue pour sécuriser les échanges mis en œuvre sous forme de Web Services entre deux applications distantes. 2 1
WS-Security (Microsoft) Jeton binaire : Kerberos Kerberos est un protocole standard (RFC-1510) d authentification au sein du domaine, se basant sur une double authentification (aussi appelée authentification «mutuelle») de l identité de l utilisateur et des services réseaux. Microsoft en propose une implémentation dans ses systèmes d exploitation à partir de la version 2000 (Kerberos V5). Jeton binaire : certificat X.509 Un certificat numérique X.509 permet d indiquer précisément qui est l utilisateur en lui associant une clé publique. Il peut être employé à des fins d authentification, de signature, de confidentialité, et d intégrité. Un certificat est un document numérique contenant une clé publique, l identité de son propriétaire, le tout signé par un Tiers de confiance. C est ce dernier, appelé Autorité de certification, qui atteste la véracité du lien entre la clé et le propriétaire et il le prouve en signant le document avec sa clé privée. Les applications peuvent ainsi vérifier l authenticité de cette signature en utilisant la clé publique du Tiers de confiance. 3 XrML (extensible rights Markup Language) XrML est un langage proposé par Content Guard (joint venture entre Xerox et Microsoft), pour spécifier et protéger les droits et indiquer les conditions (licences) associées à l utilisation et à la protection du contenu. 4 2
WS-Security (Microsoft) Requester SOAP WSS-module Secure SOAP SOAP WSS-module SOAP Web Service 5 Sécurisation : WS-Security WS-Security : Ensemble de protocoles pour sécuriser les services Web Englobe les standards : XKMS (XML Key Management Specification) spécification conjointe du W3C et de l'ietf pour intégrer la gestion de clés et certificats aux applications XML. délégation du traitement de la sécurité à un service spécialisé sur Internet offrant des services de gestion de clés publiques, certificats et signatures, accessible en SOAP. XML Signature (Signature de message en XML) : authentification des interlocuteurs et l'intégrité du message. XML Encryption (Protocole d'échange de clés de cryptage) : chiffrement total ou partiel du document, 6 3
WS-Security (Microsoft) 7 Sécurisation : WS-Security WS-Security ou Web Services Security(WSS) Une spécification d une extension de SOAP Définit une façon standard de représenter l'information sur la sécurité dans un message WS-Security permet : De passer des tokens pour l authentification et l autorisation dans le header du message SOAP De signer de manière numérique tout ou une partie du message et transmettre la signature De chiffrer tout ou une partie du message De passer l information sur les clés de chiffrement et de vérification de la signature 8 4
Sécurisation : WS-Security SOAP Envelope Security Feeder SOAP Envelope SOAP Body Security Token Signature SOAP Body 9 Sécurisation : WS-Security Dans l enveloppe SOAP, l entête de sécurité inclut : Horodateur (Timestamp) Aide à prévenir les attaques de rejeu (replay) Jetons identifiant le sujet et les clés Username token: nom et mot de passe X509: nom et clé publique Autres incluant les billets Kerberos, et clés de session 10 5
Sécurisation : WS-Security Signatures Syntaxe donnée par le standard XML-DSIG Lier ensemble une liste d éléments du message, avec la clé dérivée d un jeton de sécurité Clés de chiffrement Syntaxe donnée par le standard XML-ENC Plusieurs éléments du message peuvent être chiffrés 11 Exemple d intégration des divers standards en sécurité 12 6
L élément de sécurité dans SOAP 13 Jetons de sécurité dans SOAP Un jeton de sécurité est une collection de claims une claim est une déclaration faite avec des entités, telles que nom, identité, clé, groupe, privilège, capacités, etc. username est une exemple de une jeton non signé de sécurité Un jeton de sécurité signé est un jeton qui est signé par chiffrage en relation avec une autorité de sécurité. un certificat X.509 est un jeton de sécurité signé un ticket Kerberos est aussi un jeton de sécurité signé Un jeton de sécurité XML est un jeton qui est défini par un schéma XML séparé, plutôt qu'un texte simple ou chiffré SAML et XrML en sont des exemples peut être inclus directement dans un conteneur <wsse:security> 14 7
UsernameToken Cet élément peut être utilisé pour fournir un «nom d utilisateur» à l'intérieur d un élément <wsse:security>. 15 BinarySecurityToken C est un jeton de sécurité signé, tel qu'un ticket Kerberos ou un certificat x.509, avec un contenu binaire. ils doivent être encodés pour l inclusion dans le conteneur wsse:security. <S:Envelope xmlns:s="http://www.w3.org/2002/06/soap-envelope"> <S:Header> <wsse:security xmlns:wsse= http://schemas.xmlsoap.org/ws/2003/07/secext > <wsse:binarysecuritytoken wsu:id= mytokenid ValueType= wsse:kerberosv5st EncodingType= wsse:base64binary > XIFNWZz99UUbalqIEmJZc0 </wsse:binarysecuritytoken> </wsse:security> </S:Header> <S:Body> contenu applicatif </S:Body> </S:Envelope> 16 8
Sécurisation : WS-Security 17 WS-Policy (directives) une directive est une ensemble de capacités, besoins, préférences, et de caractéristiques générales concernant des entités dans un système. les éléments d une directive («directive assertions») peuvent exprimer: Des besoins de sécurité ou des capacités Des caractéristiques diverses de Qualité de Service (QoS) n'importe quel autre sorte de directives qui sont requises WS-Policy définit une modèle général mais extensible et une grammaire ( cadre ) pour décrire des directives dans un système de services Web directives simples et déclaratives directives multiples, complexes et conditionnelles 18 9
WS-SecurityPolicy WS-SecurityPolicy fait partie de WS-Policy. Il permet d attacher des stratégies de sécurité et de définir un ensemble d assertions : wsse:integrity Spécifie un format de signature défini par WS- Security. wsse:confidentiality Spécifie un format de cryptage défini par WS- Security. wsse:visibility Spécifie les portions du message qui doivent être traitées ou visibles par un intermédiaire ou un endpoint. wsse:securityheader Spécifie l utilisation du header Security du message. wsse:messageage Spécifie la durée maximale pour invalider les messages. 19 WS-SecurityPolicy (Exemple) «Le fournisseur exige une integrité de message utilisant XML-Sig et requiert une authentification en utilisant des jetons X.509» <wsp:policy xmlns:wsp=http://schemas.xmlsoap.org/ws/2002/12/policy xmlns:wssp="http://schemas.xmlsoap.org/ws/2002/12/secext"> <wsp:all> <wssp:integrity wsp:usage="wsp:required"> <wssp:algorithm Type="wssp:AlgSignature" URI="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> </wssp:integrity> <wssp:securitytoken> <wssp:tokentype>wsse:x509v3</wssp:tokentype> </wssp:securitytoken> </wsp:all> </wsp:policy> 20 10
WS-Privacy Prévu va être un modèle pour définir les préférences de confidentialité des données personnelles, et comment les Web Services définissent et implémentent ces pratiques. 21 WS-SecureConversation Utilisé pour des échanges multiples et fréquents Pour ne pas traiter à chaque échange les spécificités de la sécurité.. Définir un contexte de sécurité partagé Pas de nécessité d échanger des info de sécurité au niveau de chaque message Les 2 parts (fournisseur et consommateur) effectuent une copie des certificats dans un contexte qui aura un identifiant unique Ensuite on aura qu à mettre cet identifiant dans le SOAP Header: <wsc:securitycontexttoken> <wsc:identifier>uuid:652d2aaa-4857-4d8c-865c-f9549e5806f0</wsc:identifier> </wsc:securitycontexttoken> 22 11
WS-Trust Pour répondre à des besoins d interopérabilité et pour installer une confiance entre les entités. WS-Trust décrit une structure destinée à gérer, évaluer et valider des relations de confiance. WS-Trust établit un système d échange basé sur un protocole (request/response). Le client envoi RequestSecurityToken au STS (Security Token Service) qui lui répond par RequestSecurityTokenResponse qui contient le nouveau jeton. (Si le client a les certificats demandés par le fournisseur) 23 WS-Federation Un réseau est composé de diverses organisations, systèmes, applications, et processus métier. Les participants comprennent clients, employés, partenaires, fournisseurs.. Nécessité d une entité unique définissant l identité, l authentification et les autorisations, etc., Comme le coût de gestion d une identité centralisée est important à la place on va gérer un ensemble d entités. On a besoin de gérer la sécurité au travers de plusieurs domaines de confiance et entre plusieurs partenaires en utilisant plusieurs autorités de gestion d identité. WS-Federation est une spécification pour résoudre ces problèmes et d autres. 24 12
WS-Federation Permet aussi le SSO Technologie concurrente à SAML. Se base sur les autres technologies Web services : WS-Policy peut être utilisé pour indiquer si un Web Service a besoin d un ensemble de claims (jetons de sécurité et éléments de message reliés) dans un ordre donné pour traitement des requêtes WS-Trust dont les mécanismes peuvent être utilisés pour acquérir des jetons de sécurité additionnels si besoin WS-Security définit les extensions SOAP utilisées pour fournir les jetons de sécurité 25 WS-Federation 1) Le client demande un jeton de son Service de jetons 2) Le client fait appel au service de jetons du service appelé pour obtenir un jeton valide 3) Le jeton est ensuite échangé et validé WS-Trust assure l échange d informations sur la politique entre les 2 organisations 26 13
Exemple général 27 Conclusion 28 14
À retenir WS-Security n est pas suffisant Les standards répondent à certains types d attaques Besoins d heuristiques pour contrevenir aux autres types d attaques (XDoS, XVirus, etc.) Une nouvelle classe d appareil réseau est nécessaire: le parefeu XML Inspecte les messages XML lorsqu ils franchissent les frontières de l organisation Ajoute un niveau de sécurité et d interopérabilité à l infrastructure Implémente les standards et les heuristiques et permettent de mettre en place les pratiques exemplaires 29 Bibliographie 30 15
Bibliographie 31 16