Spécification de sécurité des Services Web - Chronologie
Le développement de la spécification de sécurité des services Web inclut des informations relatives à la spécification Web Services Security d'OASIS (Organization for the Advancement of Structured Information Standards). La spécification OASIS Web Services Security sert de base pour la sécurisation des Services web dans WebSphere Application Server.

- La configuration de qualités de service (QoS) est simplifiée lors de l'utilisation d'ensembles de règles. Les ensembles de règles combinent les paramètres de configuration, y compris ceux de la configuration au niveau du transport et des messages. Des ensembles de règles et des liaisons générales peuvent être réutilisés sur plusieurs applications, rendant les QoS de services Web plus consommables.
- WS-Security for JAX-WS est pris en charge dans un environnement géré, tel qu'un conteneur Java EE et des environnements non gérés, tels que Java Platform, Standard Edition (Java SE 6). En outre, il existe une API pour l'activation de WS-Security sur le client JAX-WS.
Activités non OASIS
- Web service security
- Cette spécification définit le mode d'association d'une signature numérique, d'utilisation du chiffrement et d'utilisation des jetons de sécurité dans les messages SOAP (Simple Object Access Protocol).
- WS-Policy
- Cette spécification définit le langage utilisé pour décrire les contraintes de sécurité ainsi que les règles liées aux intermédiaires et aux points finaux.
- WS-Trust
- Cette spécification définit la structure des modèles fiables pour l'établissement d'une relation de confiance entre les services Web.
- WS-Privacy
- Cette spécification définit un modèle d'expression d'une règle privée pour un service Web et un demandeur.
- WS-SecureConversation
- Cette spécification définit l'échange et l'établissement d'un contexte sécurisé, qui dérive des clés de session entre des services Web.
- WS-Authorization
Cette spécification définit la règle d'autorisation pour un service Web. Toutefois, la spécification des autorisations WS n'a pas été publiée. L'implémentation existante de la sécurité des Services Web est basée sur la spécification Java EE (Java Platform, Enterprise Edition) ou Java Specification Requirements (JSR) 109. L'implémentation de la sécurité des services Web exploite les vérifications d'autorisations basées sur les rôles Java EE. Pour obtenir des informations sur le concept, voir la rubrique relative à l'autorisation basée sur le rôle. Si vous développez un service Web qui nécessite des vérifications d'autorisations au niveau de la méthode, vous devez utiliser les beans de session dynamiques pour implémenter votre service Web. Pour plus d'informations, voir la rubrique relative à la sécurisation des applications de bean enterprise.
Si vous développez un service Web implémenté en tant que servlet, vous pouvez utiliser une autorisation à granularité grossière ou basée sur une URL dans le conteneur Web. Néanmoins, dans cette situation, vous ne pouvez pas utiliser l'identité issue de la sécurité des services Web pour les vérifications d'autorisations. Vous pouvez plutôt utiliser l'identité issue du transport. Si vous utilisez SOAP via HTTP, l'identité se trouve dans le transport HTTP.
La figure suivante illustre les relations entre ces spécifications :
- La spécification requiert que les processeurs de sécurité des services Web maîtrisent le schéma correctement afin que le processeur effectue une distinction entre l'attribut d'ID pour la signature et le chiffrement XML.
- L'ancienneté du message, qui indique si le message est compatible avec des contraintes horaires prédéfinies, ne peut pas être déterminée.
- Les chaînes de mot de passe de synthèse ne renforcent pas la sécurité.
- un attribut d'ID global est requis pour le chiffrement et la signature XML,
- utilisez les éléments d'en-tête d'horodatage qui indiquent la date et heure de création, réception ou expiration du message,
- utilisez les chaînes de mot de passe dont la synthèse a été effectuée avec l'horodatage et l'élément nonce, jeton généré de manière aléatoire.
Les spécifications relatives aux cadres bleus de la figure précédente ont été proposées par divers fournisseurs industriels qui ont organisé plusieurs événements d'interopérabilité pour vérifier et préciser les spécifications proposées.
Activités OASIS
En juin 2002, OASIS a reçu une spécification de sécurité des services Web proposée par IBM, Microsoft et VeriSign. Le comité WSS TC (Web Services Security Technical Committee) a été organisé en fonction des activités OASIS peu après la soumission. Le comité technique incluait un grand nombre d'entreprises, notamment IBM, Microsoft, VeriSign, Sun Microsystems et BEA Systems.
En septembre 2002, WSS TC a publié sa première spécification, Web Services Security Core Specification, Working Draft 01. Cette spécification incluait le contenu de la spécification de la sécurité des services Web d'origine et de ses documents supplémentaires.
Les sujets traités par le comité technique devinrent de plus en plus importants au fil de la discussion. Etant donné que la spécification principale de la sécurité des services Web autorise des types arbitraires de jetons de sécurité, des propositions ont été publiées en tant que profils. Les profils décrivaient la méthode d'intégration des jetons, incluant les jetons SAML (Security Assertion Markup Language) et les jetons Kerberos intégrés dans les messages de sécurité des services Web. Ensuite, les définitions de la syntaxe des jetons de nom d'utilisateur et les jetons de sécurité X.509, qui ont été définis dans la spécification de sécurité des services Web d'origine, ont été répartis en profils.
- Web Services Security : SOAP Message Security Draft 13 (anciennement spécification principale de la sécurité des services Web)
- Web Services Security : Username Token Profile Draft 2
- OASIS: Web Services Security: SOAP Message Security 1.1 (WS-Security 2004) OASIS Standard Specification, 1 février 2006
- OASIS: Web Services Security UsernameToken Profile 1.1 OASIS Standard Specification, 1 février 2006
- OASIS: Web Services Security X.509 Certificate Token Profile 1.1 OASIS Standard Specification, 1 février 2006
La spécification suivante décrit l'utilisation des jetons Kerberos par rapport aux spécifications de sécurité des messages Web Services Security. Elle définit comment utiliser un jeton Kerberos pour la prise en charge de l'authentification et de la protection des messages : OASIS: Web Services Security Kerberos Token Profile 1.1 OASIS Standard Specification, 1 février 2006.
La figure suivante affiche les spécifications liées à la sécurité des services Web.
WebSphere Application Server fournit également une fonction de plug-in pour permettre aux fournisseurs de sécurité d'étendre leur fonctionnalité d'exécution et d'implémenter certaines spécifications de haut niveau dans la pile de sécurité des services Web. Les points de connexion sont présentés sous forme de SPI (Service Provider Programming Interfaces). Pour plus d'informations sur ces SPI, voir Implémentations par défaut des interfaces de programmation du fournisseur de services de sécurité des services Web.
Développement de la spécification Web Services Security 1.0
- XML-Signature
Syntax and Processing
Recommandation W3C, février 2002 (ainsi que IETF RFC 3275, mars 2002)
- Canonical
XML Version 1.0
Recommandation W3C, mars 2001
- Exclusive
XML Canonicalization Version 1.0
Recommandation W3C, juillet 2002
- XML-Signature
XPath Filter Version 2.0
Recommandation W3C, novembre 2002
- XML Encryption Syntax and Processing
Recommandation W3C, décembre 2002
- Decryption Transform pour XML Signature
Recommandation W3C, décembre 2002
Ces spécifications sont prises en charge par WebSphere Application Server dans le contexte de sécurité des services Web. Par exemple, vous pouvez signer un message SOAP en spécifiant l'option d'intégrité dans les descripteurs de déploiement. Il existe une interface de programmation d'application (API) côté client qui peut être utilisée pour activer la sécurité des Services Web pour la sécurisation d'un message SOAP.
La spécification OASIS Web Services Security Version 1.0 définit les améliorations permettant la confidentialité et l'intégrité du message. Elle fournit également une structure générale pour l'association des jetons de sécurité à un message SOAP (Simple Object Access Protocol). La spécification est extensible afin de prendre en charge plusieurs formats de jeton de sécurité. La syntaxe d'un jeton de sécurité particulière est prise en compte avec le profil de jeton de sécurité.
Prise en charge des spécifications et des profils dans WebSphere Application Server
OASIS fonctionne sur divers profils. Pour plus d'informations, consultez la rubrique Organization for the Advancement of Structured Information Standards Committees.
La liste ci-après contient les propositions de profils publiées et le travail en cours du comité technique pour la sécurité des Services Web OASIS.
WebSphere Application Server ne prend pas en charge les profils suivants :
- Web Services Security : SAML token profile 1.0
- Web Services Security : Rights Expression Language (REL) token profile 1.0
- Web Services Security : SOAP Messages with Attachments (SwA) profile 1.0
Le format WF (wire format) du message SOAP avec sécurité des services Web dans la spécification Web Services Security Version 1.0 a changé et n'est pas compatible aves les propositions précédentes de spécification OASIS sur la sécurité des services Web. L'interopérabilité entre la spécification OASIS Web Services Security Version 1.0 et des propositions précédentes n'est pas prise en charge. Toutefois, vous pouvez exécuter une application basée sur la spécification Web Services Security draft 13 dans WebSphere Application Server Version 6 et les versions suivantes. L'application peut interagir avec une application basée sur la spécification Web Services Security draft 13 de la version 5.0.2, 5.1 ou 5.1.1 de WebSphere Application Server.
WebSphere Application Server prend en charge la spécification OASIS Web Services Security draft 13 et la spécification OASIS Web Services Security 1.0. Mais dans WebSphere Application Server Version 6 et les versions suivantes, la prise en charge d'OASIS Web Services Security draft 13 est obsolète. Toutefois, les applications développées selon la spécification OASIS Web Services Security draft 13 dans WebSphere Application Server 5.0.2, 5.1.0 et 5.1.1 peuvent être exécutées dans WebSphere Application Server Version 6 et les versions suivantes. La prise en charge d'OASIS Web Services Security Version 1.0 est disponible uniquement pour les applications Java EE (Java Platform, Enterprise Edition) version 1.4 et suivantes. Le format de configuration pour le descripteur de déploiement et pour la liaison est différent de celui des versions précédentes de WebSphere Application Server. Vous devez procéder à la migration des applications existantes vers Java EE 1.4 et de la configuration de sécurité des services Web vers le format de la version 6 de WebSphere Application Server Version 6.
Développement d'autres spécifications de sécurité des services Web
- WS-Trust Version 1.3
WS-Trust (Web Services Trust Language) utilise les mécanismes de messagerie sécurisés de la sécurité des services Web pour définir des primitives et extensions supplémentaires pour l'émission, l'échange et la validation des jetons de sécurité. WS-Trust permet l'émission et la dissémination des données d'identification au sein de domaines de confiance différents. Cette spécification définit les méthodes permettant d'établir et de négocier des relations d'accréditation et d'évaluer la présence de ces dernières.
- WS-SecureConversation Version 1.3
WS-SecureConversation (Web Services Secure Conversation Language) est constitué à partir des modèles WS-Security et WS-Policy pour fournir une communication sécurisée entre les services. La spécification WS-Security porte essentiellement sur le modèle d'authentification de message et non dans un contexte de sécurité ; ainsi, elle fait l'objet de plusieurs formes d'attaques de sécurité. Cette spécification définit des mécanismes permettant d'établir et de partager des contextes de sécurité et de dériver des clés à partir de contextes de sécurité, afin de permettre une conversation sécurisée. Grâce au modèle d'extensibilité SOAP, les spécifications SOAP modulaires sont conçues pour s'associer les unes aux autres afin de fournir un environnement de messagerie complet.
- WS-SecurityPolicy Version 1.2
WS-Policy (Web Services Security Policy) fournit un modèle et une syntaxe à but général pour décrire et communiquer les règles d'un service Web. Les assertions WS-Policy expriment les fonctionnalités et les contraintes d'un service Web particulier. WS-PolicyAttachments définit plusieurs méthodes permettant d'associer les expressions WS-Policy à des services Web (par exemple, WSDL). Les spécifications web Services Security ont été mises à jour suivant la re-publication de la règle WS-Security en juillet 2005, de manière à refléter les contraintes et les fonctionnalités des services utilisant WS-Security, WSTrust et WS-SecureConversation. La règle WS-ReliableMessaging a également été re-publiée en 2005 pour exprimer les fonctionnalités et les contraintes des services Web implémentant WS-ReliableMessaging.
Activités WS-I (Web Services Interoperability Organization)
WS-I (Web Services Interoperability Organization) est né d'un effort industriel ouvert de promotion de l'interopérabilité des services Web entre différents fournisseurs, plateformes, langages de programmation et applications. L'organisation est un consortium de sociétés couvrant de nombreux secteurs, comprenant notamment IBM, Microsoft, Oracle, Sun, Novell, VeriSign et Daimler Chrysler. WS-I a développé Basic Security Profile (BSP) versions 1.0 et 1.1. Il s'agit d'un ensemble de spécifications de services Web non propriétaires qui clarifie et développe les spécifications pour promouvoir l'interopérabilité de la sécurité des services Web sur différentes implémentations de fournisseur.
- Basic Profile Version 1.2 (BP 1.2) : http://ws-i.org/profiles/basicprofile-1.2-2010-11-09.html
- Basic Profile Version 2.0 (BP 2.0) : http://ws-i.org/profiles/basicprofile-2.0-2010-11-09.html
- Basic Security Profile Version 1.0 (BSP 1.0) : http://www.ws-i.org/profiles/basicsecurityprofile-1.0.html
- Basic Security Profile Version 1.1 (BSP 1.1) : http://www.ws-i.org/profiles/basicsecurityprofile-1.1.html
- Reliable Secure Profile 1.0 (RSP 1.0) : http://www.ws-i.org/profiles/ReliableSecureProfile-1.0-2010-11-09.html