Services Web - Sécurité
La sécurité est essentielle aux services Web. Cependant, ni les spécifications XML-RPC ni SOAP n'imposent des exigences de sécurité ou d'authentification explicites.
Il existe trois problèmes de sécurité spécifiques avec les services Web:
- Confidentiality
- Authentication
- Sécurité Internet
Confidentialité
Si un client envoie une requête XML à un serveur, pouvons-nous nous assurer que la communication reste confidentielle?
La réponse se trouve ici -
- XML-RPC et SOAP s'exécutent principalement sur HTTP.
- HTTP prend en charge Secure Sockets Layer (SSL).
- La communication peut être cryptée via SSL.
- SSL est une technologie éprouvée et largement déployée.
Un seul service Web peut être constitué d'une chaîne d'applications. Par exemple, un grand service peut relier les services de trois autres applications. Dans ce cas, SSL n'est pas adéquat; les messages doivent être chiffrés à chaque nœud le long du chemin de service, et chaque nœud représente un maillon faible potentiel dans la chaîne. Actuellement, il n'y a pas de solution convenue à ce problème, mais une solution prometteuse est la norme de chiffrement XML du W3C. Cette norme fournit un cadre pour crypter et décrypter des documents XML entiers ou juste des portions d'un document XML. Vous pouvez le vérifier sur www.w3.org/Encryption
Authentification
Si un client se connecte à un service Web, comment identifier l'utilisateur? L'utilisateur est-il autorisé à utiliser le service?
Les options suivantes peuvent être envisagées mais il n'y a pas de consensus clair sur un schéma d'authentification forte.
HTTP inclut un support intégré pour l'authentification de base et Digest, et les services peuvent donc être protégés de la même manière que les documents HTML sont actuellement protégés.
SOAP Digital Signature (SOAP-DSIG) exploite la cryptographie à clé publique pour signer numériquement les messages SOAP. Il permet au client ou au serveur de valider l'identité de l'autre partie. Vérifiez-le sur www.w3.org/TR/SOAP-dsig .
L'Organisation pour l'avancement des normes d'information structurée (OASIS) travaille sur le langage SAML (Security Assertion Markup Language).
Sécurité Internet
Il n’existe actuellement pas de réponse facile à ce problème et il a fait l’objet de nombreux débats. Pour l'instant, si vous avez vraiment l'intention de filtrer les messages SOAP ou XML-RPC, une possibilité est de filtrer toutes les requêtes HTTP POST qui définissent leur type de contenu sur text / xml.
Une autre alternative consiste à filtrer l'attribut d'en-tête HTTP SOAPAction. Les fournisseurs de pare-feu développent également actuellement des outils explicitement conçus pour filtrer le trafic des services Web.