La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3 Philippe Beraud Consultant Principal Microsoft France.

Présentations similaires


Présentation au sujet: "Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3 Philippe Beraud Consultant Principal Microsoft France."— Transcription de la présentation:

1 Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3 Philippe Beraud Consultant Principal Microsoft France

2 La stratégie sécurité de Microsoft Isolation et résilience Excellencedelengineering Conseils,Outils,Réponse Mise à jour avancée Authentification,Autorisation,Audit

3 Sommaire Vue densemble sur Web Services Architectures (WSA) Fondamentaux de la sécurité des services Web (WS-Security) Définir un cadre de confiance entre clients et services (WS-Trust) Rendre possible une infrastructure B2B gérable Créer un contexte de sécurité (WS-SecureConversation) Offrir de meilleures performances vis-à-vis de la sécurité Décrire des politiques de sécurité (WS-SecurityPolicy) Supprimer le besoin décrire du code de sécurité

4 WS-* Web Service Architecture (WSA) STAR pour Secure, Transactional, Asynchronous, Reliable « An Introduction to the Web Services Architecture and Its Specifications » HTTP, HTTPS, SMTP, etc. TransportsTransports XML, SOAP, Addressing MessagingMessaging XSD, WSDL, UDDI, Policy, MetadataExchange DescriptionDescription ComposableServiceAssurancesComposableServiceAssurances TransactionsTransactionsReliableMessagingReliableMessaging Service Composition SecuritySecurity BPEL4WS, Management

5 Tout fonctionne en association Ex: Le contexte transactionnel fonctionne au-dessus d'une connexion fiable Ex: Les participants utilisent WS-Security pour sécuriser les transactions (pour tous les types de participants) Ne pas « réinventer la roue » pour chaque spécification Réutilisation du code, réduction des coûts, un temps de mise à disposition plus court Ex: lensemble des ressources est nommé avec WS-Addressing Le système dans son ensemble est plus stable Les changements ne filtrent pas vers le haut de la pile Ex: avec WS-Security, les scénarios de fédération didentité supporte lensemble des jetons de sécurité, y compris les futurs Importance de la composition

6 Composition des en-têtes SecuritySecurity AddressingAddressing Reliable Messaging dWJzY3JpYmVyLVBlc…..eFw0wMTEwMTAwMD 10 520W 3MPH

7 Processus délaboration des spécifications Revue ouverte et publique des spécifications WS-* via le processus de workshops Approche ouverte de bout en bout permettant de réconcilier des objectifs conflictuels Qualité dingénierie, Réduction du temps de mise à disposition sur le marché, Ampleur de ladoption et du support par lindustrie « Web Services Protocol Workshops Process Overview » Liste des workshops Mailing list pour la préparation Spécification publiée Recueil des feedbacks Révision de la spécification, itération Implémentation Organismes de normalisation

8 Web Service Enhancement (WSE) 2.0 Extension (Add-on) supportée de Visual Studio.NET (VS.NET) et du Framework.NET Version 2.0 Service Pack 3 Téléchargeable depuis Documentation, QuickStart (C#, Visual Basic) Boîte à outils WseWsdl2, WseSettings, WseCertificate2 Cycle de mises à jour plus rapide que VS.NET Proposer le plus tôt possible une implémentation des dernières spécifications WS-* (ou de leur révision) publiées par Microsoft et dautres acteurs WS-Security, WS-SecurityPolicy, WS-Trust, WS-SecureConversation, WS- Referral, WS-Addressing, WS-Policy, « DIME », WS-Attachments Simplification considérable du développement de services Web sécurisés Y compris à travers de multiples intermédiaires et domaines de confiance Les fonctionnalités additionnelles incluent le support de transports alternatifs, du routage de message, etc.

9 Architecture WSE 2.0 Ensemble de classes implémentant les nouveaux standards WS-* Manipulation des en-têtes SOAP Notion de pipeline et filtres hébergés par ASP.NET Écriture (Injection) den-têtes SOAP dans le messages sortants Transformation du corps SOAP du message (chiffrement/déchiffrement) Lecture des en-têtes SOAP des messages entrants Possibilité dinsérer ses propres filtres dans le pipeline « Inside the Web Services Enhancements Pipeline » Expéditeur de messages SOAP Filtres de sortie Filtres dentrée Service Web Filtres dentrée Filtres de sortie

10 Traitement des en-têtes Nécessité dinterpréter et de comprendre le schéma des en-tête Retourner un SOAP Fault dans le cas dune en-tête mustUnderstand= non comprise Retourner un SOAP Fault dans le cas dune en-tête mustUnderstand= "1" non comprise [WebMethod] [SoapHeaders("headers")] Public returnType Foo(…) { ProcessHeaders(headers); … } … public static void ProcessHeaders(SoapUnknownHeader[] hdrs) { if (hdrs != null) { foreach(SoapUnknownHeader hdr in hdrs) { if (hdr.MustUnderstand==true) { hdr.DidUnderstand=false; throw new SoapHeaderException("Header was not understood", SoapException.MustUnderstandFaultCode); }

11 Feuille de route WS-Security (WS-*) « Security in a Web Services World: A Proposed Architecture and Roadmap » us/dnwssecur/html/securitywhitepaper.asp us/dnwssecur/html/securitywhitepaper.asp WSE 2.0 Support de WS-Security, WS-Trust, WS-SecureConversation, WS- SecurityPolicy WS-SecureConversationWS-SecureConversation WS-SecurityPolicyWS-SecurityPolicy WS-TrustWS-Trust SOAPSOAP Standard W3C, fondation des services Web WS-SecurityWS-Security Standard de lOASIS aujourdhui largement supporté WS-FederationWS-Federation

12 WS-Security, la fondation « Web Services Security SOAP Message Security 1.0 » WS-Security 2004, OASIS Standard , Mars security-1.0.pdf security-1.0.pdf Disponibilité dun profil dinteropérabilité WS-I Basic Security Profile Working Group Définit un « framework » pour la construction de protocoles de sécurité capitalisant sur les spécifications XML de sécurité existantes Intégrité (et non répudiation) Sappuie sur W3C « XML Signature Syntax and Processing » (XMLDSIG) Signatures multiples, parties spécifiques Confidentialité Sappuie sur W3C « XML Encryption Syntax and Processing » (XMLENC) Chiffrement multiples, parties spécifiques Propagation des jetons de sécurité Support des jetons binaires et XML

13 WS-Security « Framework » conçu pour une sécurité de bout en bout pour les messages SOAP De lémetteur initial via 0-n nœuds intermédiaires au destinataire ultime Sécurité indépendante du transport Support de multiples protocoles de transport et technologies de chiffrement Lémetteur ne doit faire confiance quau point de terminaison Par opposition à une sécurité point à point (SSL/TLS et/ou IPSec) plus simple et connue Gestion au niveau transport Restreint les protocoles de transport qui peuvent être utilisée Lexpéditeur doit faire confiance à lensemble des intermédiaires ÉmetteurDestinataire IntermédiaireIntermédiaire…

14 Jetons de sécurité Bases pour une authentification et une autorisation distribuées Les jetons de sécurité définissent des affirmations faites au sujet dune identité, daptitude ou de privilèges Nom, adresse mèl, clé, groupe, rôle, etc. Attributs/propriétés de sécurité Microsoft.Web.Services2.Security.SecurityToken.UsernameToken.UsernameToken SecurityContextToken. SecurityContextToken [jetons de sécurité XML] [jetons de sécurité XML] ….BinarySecurityToken.BinarySecurityToken.KerberosToken(2).KerberosToken(2).X509SecurityToken.X509SecurityToken [jetons binaires personnalisés] [jetons binaires personnalisés] … Quelques exemples Non signé Jeton Nom dutilisateur Signé Certificat X.509, ticket Kerberos, assertion SAML, licence XrML, etc. Preuve de possession Clé secrète, mot de passe Lauthentification implique la vérification de cette connaissance

15 Signatures numériques pour lintégrité Des parties spécifiques du message peuvent être signées pour assurer lintégrité et la non répudiation Savoir que le message na pas été altéré, savoir que seul lexpéditeur a pu lenvoyer Par défaut, WSE signe un ensemble de parties du messages Microsoft.Web.Services2.Security.MessageSignature Soap:Envelope/soap:Header/wsa:To, Soap:Envelope/soap:Header/wsa:Action, Soap:Envelope/soap:Header/wsa:MessageID, Soap:Envelope/soap:Header/wsa:From/wsa:Address, Soap:Envelope/soap:Header/wsu:Timestamp/wsu:Created, Soap:Envelope/soap:Header/wsu:Timestamp/wsu:Expires, Soap:Envelope/soap:Body Créer une signature numérique (émetteur) Clé privée Message à envoyer Condensé Signature numérique Py75c%bn&*)9|fDe^bDFaq#x kvegMs Fonction de hashage (SHA, MD5) Chiffrement asymétrique

16 MeIIZFgea4FGiu5cvWEklO8pl... … uJhGtef54ed91iKLoA... FR8yaKmNDePQ7E3Hj... … Signatures numériques pour lintégrité Exemple de signature numérique Référence de la donnée à protéger Jeton de sécurité Signature sur lélément ds:SignedInfo Condensé de la donnée à protéger

17 … … Signatures numériques pour lintégrité Exemple de signature numérique Données signées Référence au jeton qui peut être utilisé pour vérifier la signature

18 Signatures numériques pour lintégrité Vérifier une signature numérique (destinataire) Message dorigine Même fonction de hashage Condensé Py75c%bn&*)9|fDe^ nmdFg$5knvMdrkve gMs Clé publique envoyée avec le message Déchiffrement asymétrique Signature numérique ? == ?

19 Signature dun message avec un certificat X.509

20 Chiffrement XML pour la confidentialité Des parties spécifiques du message peuvent être chiffrés pour assurer la confidentialité Le texte en clair est remplacé par du texte chiffré Dans WSE, Microsoft.Web.Services2.Security.Cryptography Chiffrer un message (expéditeur) Clé symétrique générée Chiffrement asymétrique Clé publique du destinataire AyD5c%bné*) 9|fDe^bDFaq# mdWzm5knvM drkvegMs Clé chiffrée Chiffrement symétrique Py75c%bn&*)9|fDe^ nmdFg$5knvMdrkve q#xzjFrgMs

21 Chiffrement XML pour la confidentialité Déchiffre un message (destinataire) Py75c%bn&*)9|fDe^ nmdFg$5knvMdrkve q#xzjFrgMs AyD5c%bné*) 9|fDe^bDFaq# mdWzm5knvM drkvegMs Clé chiffrée Clé privée du destinataire Déchiffrement asymétrique Déchiffrement symétrique

22 Chiffrement dun message avec un TGS Kerberos

23 Identité et relations de confiance Les services Web sont des agents autonomes Le développement, le déploiement, le fonctionnement, ladministration et la sécurité varient indépendamment des clients des services Cette « indépendance forcée » présente dimportantes ramifications qui sinfiltrent dans larchitecture des services Web Comment prouver qui je suis ? Qui peut se porter garant pour moi ? Comment savoir en qui accorder sa confiance ? Met laccent sur la gestion explicite des relations de confiance entres les applications et services WS-Security permet quun message contienne plusieurs jetons de sécurité Certains de ces jetons peuvent correspondre à des identités dutilisateurs Dautres jetons peuvent correspondre aux droits accordés à un utilisateur particulier ou à une application Ils peuvent être chiffrés et validés dans le cadre général dun schéma dautorisation Nécessite que des processus ou des systèmes qui étaient centralisés évoluent vers un modèle fédéré Cela sapplique non seulement aux identités de sécurité mais aussi aux annuaires de services et à ladministration de systèmes

24 WS-Trust « Web Services Trust Language » « Web Services Trust Language » Actional, BEA Systems, CA, IBM, L7T, Microsoft, Oblix, OpenNetwork, PingId, Reactivity, RSA, Verisign, Février Introduit la notion de Security Token Service (STS) Un STS est potentiellement tout service Web capable démettre des jetons Tout le monde peut émettre des jetons Définit comment faire du courtage de confiance Besoin dun initiateur Définit un protocole pour demander et obtenir des jetons de sécurité Les jetons sont destinés à tout type dusage comme la sécurisation dune séquence de message, et pas uniquement à lauthentification Définit différents modèles

25 Obtention dun jeton Demande dun jeton de sécurité (wsse:ReqIssue) Envoi dun message Request Security Token (RST) au STS Dordinaire signé avec un jeton en qui lémetteur de jeton fait confiance … 1.0#SAMLAssertion-1.1 Demande dun nouveau jeton Type de jeton demandé

26 Obtention dun jeton Message Request Security Token Response (RSTR) retourné par le STS Contient le jeton demandé et une preuve de possession (optionnelle) Le jeton comprend une clé que le demandeur peut utiliser pour prouver quil est autorisé à utiliser le jeton émis Support natif par WSE de ces opérations Microsoft.Web.Services2.Security Support également de la création dun STS personnalisé … … … Jeton de sécurité demandé Preuve de possession

27 Autres modèles proposés Échange dun jeton de sécurité (wsse:ReqExchange) Définit comment échanger un jeton pour un autre 1 3 A B 4 C 2 1. Émission à destination du service C dun message signé avec un jeton Username 2. Demande déchange du jeton Username au service de mappage A (STS) (utilise wsse:ReqExchange) 3. Réponse du service de mappage A avec le jeton X.509 associé au jeton Username 4. Transfert au service C par le routeur B du message signé avec le certificat X.509 T#T# Jeton de sécurité T1T1 T1T1 T2T2 T2T2

28 Autres modèles proposés Validation dun jeton de sécurité (wsse:ReqValidate) Définit comment vérifier des jetons et des signatures à laide dun STS A B 1. Émission à destination du service B dun message avec un jeton de sécurité 2. Envoi par le service B du jeton au service de validation A (utilise wsse:ReqValidate) 3. Vérification par le service de validation que le jeton est suffisant T#T# Jeton de sécurité T#T# T#T# T#T# ?

29 Topologies de confiance Différentes topologies vis-à-vis de lémission de jetons Le client obtient un jeton depuis une source bien connue, le service obtient un jeton pour le client, etc. Mise en œuvre au travers des protocoles dauthentification utilisant les technologies modernes de chiffrement (asymétrique et symétrique) Confiance directe Périmètre de confiance A B 1. Demande dun jeton au STS A (utilise wsse:ReqIssue), jeton dans la réponse wsse:RequestSecurityTokenResponse Émission dun message à destination du service B avec le jeton T#T# P#P# Jeton de sécurité Preuve de possession T1T1 P1P1 T1T1 C

30 Topologies de confiance Obtention dun jeton didentité Confiance via « courtier » Le client et le service peuvent faire chacun confiance à un STS ce qui évite davoir à gérer une confiance directe Obtention dun jeton daccès A B C T#T# P#P# Jeton de sécurité Preuve de possession T2T2 P2P2 T1T1 T1T1 P1P1 T2T2

31 Topologies de confiance Obtention dun jeton didentité Confiance indirecte C fait confiance à B qui se porte garant de A qui répond du client C A B Directe - Échange dune clé symétrique ou dun certificat Indirecte – B garant de A et des identités de B …Récursivité…Récursivité 1 2 T1T1 P1P1 T#T# P#P# Jeton de sécurité Preuve de possession

32 Topologies de confiance Délégation

33 Modèle de fédération piloté par les méta données Service didentité Services de pseudonymes et dattributs Service Cible Politique daccès Service de jetons de sécurité (le service de contrôle daccès fournit les jetons de permission) Les services comprennent des jetons spécifiques, les services de jetons de sécurité traduisent les jetons (de ce que le principal possède à ce que le service a besoin) et WS-* fournit une pile standard et lenveloppe Politique de fédération T1T1 T1T1 T2T2 T2T2 C P1P1 P2P2

34 WS-SecureConversation Les nœuds doivent souvent échanger plus dun message Une conversation implique plusieurs échanges entre un client et un service Web WS-Security fournit des mécanismes de sécurité vis-à-vis de messages uniques Lutilisation de clés asymétriques est lente pour de multiples messages Spécifier des clés symétriques pour chaque message est lourd, verbeux, et inefficace Impact sur la taille des messages et les performances WS-SecureConversation définit les mécanismes pour adresser cela « Web Services Secure Conversation Language » « Web Services Secure Conversation Language » Actional, BEA Systems, CA, IBM, L7T, Microsoft, Oblix, OpenNetwork, PingId, Reactivity, RSA, Verisign, Février 2005

35 WS-SecureConversation Établit un contexte de sécurité partagé ou Security Context Token (SCT) Beaucoup plus performant pour de multiples appels Le contexte contient les clés/secrets et dautre information Peut être sans état Létat est embarqué dans le jeton de sécurité Le contexte est établi à laide de WS-Trust Définit un profil distinct démission, de renouvellement et dannulation uuid:652d2aaa d8c-865c-f9549e5806f0 …

36 Créer des conversations sécurisées Dans WSE, ce jeton « léger » prend la place dun jeton exigeant un traitement plus intensif Microsoft.Web.Services2.Security Le STS peut être localisé au niveau du service ou être un point de terminaison distinct Les services peuvent émettre leurs propres SCTs Plus besoin de déployer un émetteur de SCTs Élément de configuration à activer Demande dun SCT ClientClient Service Web et STS SCT émis vers le client SCT Séries de messages signés avec le SCT émis SCT

37 Dérivation de clés Léchange de clefs et leur réutilisations amène des vulnérabilités en termes de sécurité Le degré daléatoire (entropie) nest pas connu des deux parties Les clés sont utilisées sur une période prolongée et/ou sur des données similaires Il est plus sûr déchanger un secret et de dériver des clés sur cette base DerivedKey Définit lutilisation des clés dérivées Autorise la dérivation de multiples clés sur la base de la combinaison dun secret initial, de nonces et de libellés au cours du temps DerivedKey sur la base dun SCT Utilisation des jetons clé dérivée Référence un secret (ici le SCT qui implique une cible) Il est recommandé de générer des nonces pour chaque message

38 Dérivation de clés SCT DK 1 DK 2 … uuid: fdc8-460f-b ab 16 KMkRDInROAJQcLcTjyxliw== … Security Context Token Jeton DerivedKey DK

39 WS-Policy Au delà de ce que WSDL fournit, quoi dautre est nécessaire pour décrire un service Web ? Exigences de sécurité, Garantie de transmission fiable de messages, Version du protocole, Etc. Ces autres attributs d'un service peuvent être décrits avec WS-Policy « Web Services Policy Framework » BEA Systems, IBM, Microsoft, SAP, Sonic Software, VeriSign, Septembre Langage basé sur XML pour la description des exigences dun service Une politique peut être appliquée côté émission ou réception Réduit la quantité de code à écrire Un fichier de politique contient des politiques et des mappages WSE noffre pas de support de WS-PolicyAttachment aujourdhui Une politique est mappée sur un message particulier à lexécution

40 WS-SecurityPolicy « Web Services Security Policy Language » IBM, Microsoft, RSA, VeriSign, Décembre Définit un ensemble d'assertions pour lexpression dexigences relatives à WS-Security Exigence dintégrité Exigence dintégrité Exigence de confidentialité Exigence de confidentialité Exigence en termes de jeton de sécurité Exigence en termes de jeton de sécurité Peut être intégrée dans les deux autres Positionnées via le Security Settings Wizard

41 Fichier de politique X509v3 wsp:Body() Politique

42 Mise en œuvre dune conversation sécurisée via lexpression de politiques

43 Fonctionnalités additionnelles de WSE Éditeur de configuration autonome X.509 Certificate Wizard pour la gestion des certificats De très nombreux exemples de mise en œuvre

44 En route vers Indigo WSE constitue la première implémentation Microsoft des spécifications WS-* Indigo, composante de WinFX offrira une couverture complète de la pile WS-* Framework unifié pour la conception dapplications orientées service au sein de la plate-forme Windows « Introducing Indigo: An Early Look » Composante de la nouvelle interface de programmation WinFX introduite par Windows « Longhorn » Microsoft Pre-Release Software Code Named Avalon and Indigo Beta1 RC 4f b6aa-c5edf432d0c1&displaylang=en 4f b6aa-c5edf432d0c1&displaylang=en

45 Résumé de la session WSE offre dès aujourdhui de nombreux services de sécurité avancés avec un haut niveau dabstraction Authentification Jetons de sécurité : Microsoft.Web.Services2.Security.SecurityToken Couple utilisateur/mot de passe : UsernameToken Jetons binaires : BinarySecurityToken Certificat X509 : X509SecurityToken Jeton Kerberos : KerberosToken, KerberosToken2 SAML : Microsoft.Web.Services2.Security.SAML Signature des messages XML Signature : Microsoft.Web.Services2.Security.MessageSignature Chiffrement des messages XML Encryption : Microsoft.Web.Services2.Security.Cryptography Gestion et définition de relation de confiance entre entités WS-Trust : Microsoft.Web.Services2.Security Contexte de sécurité entre deux services pour des échanges de plusieurs messages dans ce même contexte WS-SecureConversation : Microsoft.Web.Services2.Security

46 Pour plus dinformations MSDN Web Services Developer Center « Web Services Enhancements (WSE) » « WS-Security Drilldown in WSE 2.0 » « Securing the Username Token with Web Services Enhancements 2.0 » « Managing Security Context Tokens in a Web Farm » « Using Role-Based Security with Web Services Enhancements 2.0 » « Web Service Enhancements 2.0 Support for WS-Policy » Newsgroupsmicrosoft.public.framework.webservicesmicrosoft.public.framework.webservices.enhancements

47 Pour plus dinformations « Web Services Security Specifications Index Page » us/dnglobspec/html/wssecurspecindex.asp us/dnglobspec/html/wssecurspecindex.asp « Web Services Protocol Workshops »

48 Microsoft France 18, avenue du Québec Courtaboeuf Cedex


Télécharger ppt "Développement de Services Web sécurisés et interopérables avec WS-* et WSE 2.0 SP3 Philippe Beraud Consultant Principal Microsoft France."

Présentations similaires


Annonces Google