bourdin07/UE212 — pull request #5 by Sedjrohoussou (2012-02-17 16:23:27+00:00)
Title: le travail a faire! il ne manque que la conclusion!!!!!!

Introduction
Pour comprendre l'importance croissante du xml dans le web d'aujourd'hui il faut entre autre s’intéresser aux entreprises adeptes du SOA( service-oriented Architecture), EAI (Entreprise Application Intégration) et Edi(Echange de donnée informatisé). Elles ouvrent de plus en plus leurs infrastructures aux échanges entre partenaire sur internet ce qui par ricochet transforme les échanges de flux en vecteurs qui apportent le virus au cœur du système. Pour s'adapter aux services web un pare-feu xml est nécessaire. Nous allons nous intéresser au fonctionnement de cet outil, à son utilité, sa mise en place, ses avantages et ses défauts. Ensuite nous parlerons des normes de sécurité associées au xml et nous vous ferons découvrir d'autres système de sécurité basé sur XML
I/ Mise en situation
Les web services sont au cœur des échanges de données en entreprise. Compte tenue des nombreux aspects liés à la sécurité , à l'authentification et aux autorisations, à la confidentialité et à l'intégrité des données et compte tenu du fait que la spécification SOAP (simple object access protocol) ne mentionne pas la sécurité , il est facile d'imaginer les risques auxquelles s'exposent les différents protagonistes de l'échange sur internet s'ils ne se dotent pas d'un outil capable de les mettre à l’abri des virus et intrusions informatique. Nous ne pouvons approfondir notre sujet sans savoir réellement ce qui est un web services ou services web.
A-Web service
Avec l'avènement d'internet il devient tout a fait possible de faire fonctionner des applications sur des machines distantes. Ce principe peut paraître inutile puisque les applications fonctionnent très bien en local, mais lorsque l'on s’intéresse de près au phénomène les avantages deviennent évidents :
les données peuvent être présentes uniquement sur le serveur distant (par exemple un catalogue produit, un classement en temps réel etc..) ;
le serveur distant peut disposer d'une puissance de calcul ou de capacités de stockage dont l'utilisateur local ne dispose pas ;
L'application distante peut être utilisée simultanément par un grand nombre d'internautes et sa mise à jour n'intervient qu'à un seul endroit.
Tout ces avantages font la force des services web et les rend incontournables dans les milieux professionnels.
1-Définition
Les services web (en anglais web services) représentent un mécanisme de communication entre applications distantes à travers le réseau internet indépendant de tout langage de programmation et de toute plate-forme d'exécution .Ils utilisent le protocole HTTP comme moyen de transport. Ainsi, les communications s'effectuent sur un support universel, maîtrisé et généralement non filtré par les Pare-feux,Ils emploient une syntaxe basée sur la notation XML pour décrire les appels de fonctions distantes et les données échangées ; ils organisent les mécanismes d'appel et de réponse.
Grâce aux services web, les applications peuvent être vues comme un ensemble de services métiers, structurés et correctement décrits, dialoguant selon un standard international plutôt qu'un ensemble d'objets et de méthodes entremêlés.
Le premier bénéfice de ce découpage est la facilité de maintenance de l'application, ainsi que l'interopérabilité permettant de modifier facilement un composant (un service) pour le remplacer par un autre, éventuellement développé par un tiers. Qui plus est, les services web permettent de réduire la complexité d'une application car le développeur peut se focaliser sur un service, indépendamment du reste de l'application.
Les services web facilitent non seulement les échanges entre les applications de l'entreprise mais surtout permettent une ouverture vers les autres entreprises. Les premiers fournisseurs de services web sont ainsi les fournisseurs de services en ligne (météo, bourse, planification d'itinéraire, pages jaunes, etc.), mettant à disposition des développeurs des API (Application Programmable Interface) payantes ou non, permettant d'intégrer leur service au sein d'applications tierces.
B - Firewall XML ( pare-feu xml)
Des outils existent pour sécuriser un système d'entreprise à tous les étages mais quand il s'agit d'une application web les chosent ne sont plus du tout les mêmes. En effet les pare-feu traditionnels sont conçus pour filtrer le trafic en entrée et en sortie d'un réseau d'entreprise. Cependant lorsque des paquets de données transitent par le biais du protocole HTTP, ces produits qui exploitent le port 80 n'opèrent généralement aucune surveillance . Quand il s'agit du transfert de pages web une ouverture du port 80 sans conditions particulières de protection peut sans doute suffire mais a l'inverse l'utilisation des applications dérogent à cette loi car régie par la couche HTTP. Il faut faire appel à d'autres types de pare-feu, il s'agit en occurrence ici d'un pare-feu XML.
B-1 Définition:
Un pare-feu XML est un dispositif spécialisé utilisé pour protéger les applications exposées à travers les interfaces basées sur XML. Généralement déployé dans un environnement DMZ un pare-feu XML est souvent utilisé pour valider le trafic , filtrer le contenu .Les pare-feu XML sont couramment déployé en tant que matériel, mais peuvent également être trouvés en tant que logiciel et application virtuelle pour VMWare, Xen ou Amazon EC2. Un certain nombre de marques de pare-feu XML existent et elles diffèrent souvent en fonction de paramètres tels que la performance (avec ou sans accélération matérielle, 32 Vs 64 bits), l'évolutivité , la certification de sécurité (critères communs, FIPS est plus courante) support de l'identité, (SAML,SSO)et l'extensibilité . Les fonctionnalités des pare-feu XML sont généralement intégré à l'intérieur d'applications XML et des passerelles SOA .
II- Principe de fonctionnement
Nous allons ici aborder les principes de fonctionnement des applications web et ensuite des pare- feu XML. Les deux notions vont de paire et ne peuvent pas être traité séparément.

A- Principe de fonctionnement des web-service
Le fonctionnement des services web repose sur un modèle en couches, dont les trois couches fondamentales sont les suivantes :
Invocation, visant à décrire la structure des messages échangés par les applications.
Découverte, pour permettre de rechercher et de localiser un service web particulier dans un annuaire de services décrivant le nom de la société, l'objectif de chaque service, etc.
Description, dont l'objectif est la description des interfaces (paramètres des fonctions, types de données) des services web.
Les standards de base utilisés par les Web-Services (SOAP, WSDL) sont normalisés par le W3C (http://www.w3.org/2002/ws/), tandis que l'OASIS est chargée de la standardisation des couches supérieures, plus proches du niveau applicatif (sécurité, etc.).
Invocation
Il existe deux grands standards de services web, tous deux basés sur XML:
XRPC(XML Remote Procedure Call) , le plus ancien, fonctionnant sur un principe proc&eaacute;dural et sans gestion des états.
SOAP(le Object Access Protocol), fonctionnant selon le modèle objet
Quel que soit le standard utilisé, le principe de programmation est le même: l'appel de méthode distante est réalisé grâce à une bibliothèque cliente qui transmet la demande au fournisseur de service en la formatant en XML de manière transparente; au niveau du serveur une bibliothèque serveur décode la requête, le serveur fait ses traitement, puis répond grâce à cette même bibliothèque; la bibliothèque client décode enfin la réponse afin qu'elle puisse être utilisée par l'application client.
Découverte
Le protocole standard le plus utilisé pour la découverte de services est UDDI
Description
Le protocole standard le plus utilisé pour la description de services est WSDL

B- Sécurisation des services Web

Les Web Services ne supportent pas explicitement les mécanismes de sécurité. Aﬁn de sécuriser les Web Services il faudrait commencer par sécuriser l’infrastructure informatique puis sécuriser spécifiquement les Web Services : Pour cela on peut rendre sûres les connexions et les données en utilisant les standards existants. Un pare-feu XML, première brique de cette ligne de défense, se différencie d’un pare-feu traditionnel, ce dernier se révélant être inefficace pour éradiquer les menaces sur les services web. Un pare-feu XML se déploie en aval du pare-feu traditionnel pour parer à ces vulnérabilités.
Un pare-feu XML est conçu spécifiquement pour inspecter les flux XML et SOAP (Simple Object Access Protocol) sur protocoles de base HTTP/HTTPS et éventuellement sur des protocoles tiers.
Le pare-feu XML est déployé en tant que proxy du périmètre réseau : il masque l’adresse des équipements internes et accepte les requêtes vers des points périphériques extérieurs ou “virtuels”.
Les fonctionnalités de sécurité mises en œuvre se dimensionnent compte tenu du risque d’entreprise. Elles portent notamment sur :
la validation des messages,
l’« obfuscation » des exceptions,
la détection des intrusions,
le routage selon le type de contenu,
la transition de protocoles
la sécurité au niveau de la couche de message.

II- Sécurité de l'information
Le contrôle de l'information est la tache la plus évidente d'un pare feu XML ,Dans ce contexte, le pare-feu XML scrute la syntaxe des messages SOAP (conformité de la structure aux spécifications SOAP 1.2), ainsi que la sémantique transactionnelle et déclarative (autorisation de réponse soumise à différents paramètres).
Les entreprises adoptent davantage le pare-feu XML pour mieux maîtriser leur degré de vulnérabilité aux spywares, vers, virus et autres programmes malveillants. L’avènement des logiciels malveillants, qui s’immiscent dans les documents SOAP sous forme d’un fichier joint binaire codé en MIME ou en DIME, y est sans doute pour quelque chose.
Comme pour les protocoles de couche réseau, plus la couche réseau/applicatifs est élevée plus il y a d’information contextuelle à traiter. Au sein de la sphère des services web, cette information se constitue de données détaillées d’entreprise.
Les contrats de services web, disponible publiquement, exposent de plus en plus des données essentielles d’entreprise. Cette donne incite les meilleurs pare-feu XML à aller au-delà des tâches de base et à proposer de nouvelles fonctionnalités : détection de l’utilisation inappropriée des ressources et des privilèges, surveillance des flux d’informations confidentielles et détermination précise des conséquences d’événements en utilisant les techniques d’analyse comportementale ou d’analyse statistique (taux, intensités, seuils et écarts). Nous allons nous intéresser aux principaux standard XML de sécurité
A-Standard XML de sécurité
1-XML Signatures
XML Signature permet d’intégrer directement dans le document XML la signature et le certificat L’avantage pour les Web Services est que les éléments nécessaires à la sécurité sont inclus dans le document XML. XML Signature est totalement adapté aux Web Services et intègre :
1. Une protection du document par cryptage
2. Authentification de l’entité qui a envoyé le document
3. l’intégrité du document
Les principaux avantages de la signature XML sont que des parties de documents ou des documents entiers peuvent être protégés et les documents sont protégés même en dehors du transfert
des documents.
Cependant ce standard ne couvre pas tous les éléments de sécurités comme par exemple la gestion
des droits d’accès.
2- XKMS XML Key Management Spécification
La spécification XKMS offre une infrastructure de gestion es clés publiques aﬁn de généraliser
l’utilisation de XML Signature.
Pour faciliter l’emploi et le développement de XML Signature, il faut fournir des entités de
confiance qui supportent la gestion de clés publiques, et plus seulement se limiter à l’utilisation de certificats qui est très contraignante. Dans cette approche, on identifie un service Web de
confiance qui offre une implémentation d’un service XKMS permettant :
– d’enregistrer une paire de clés et d’obtenir en contrepartie un certificat.
– de rechercher une clé publique.
– de supprimer une paire de clés.
Autrement dit, l’entité qui fournit l’implantation XKMS joue le rôle d’une autorité de certification
3 SAML Security Assertion Markup Language

Le standard SAML a pour but de favoriser l’interopérabilité entre les solutions de gestion des
droits utilisateurs sur Internet.
SAML définit des formats de messages XML et un vocabulaire pour véhiculer des informations qui composent une procédure d' authentification. Il est composé de deux schémas XML suivants :
– Déclaration de nom : Il s’agit d’un document XML signé contenant une proposition de trois
éléments : le type d’authentiﬁcation, la source d’authentiﬁction et le sujet authentifié.
– Habilitation : Il s’agit d’un document XML signé décrivant les renseignements relatifs aux
autorisations d’un sujet identité. L’habilitation suit l’utilisateur d’un domaine à l’autre pendant tout le cours d’une transaction

4 - WS-Security
Cette spéciﬁcation qui a été proposée à l’origine dans le but de décrire l’ensemble des pratiques de sécurité les plus couramment utilisées. Objectif à terme : élaborer une interface qui assure l’interopérabilité entre solutions de sécurité d’entreprise, reposant sur des technologies hétérogènes.
L’ensemble des méthodes prises en compte WS-Security couvre en premier lieu l’authentiﬁcation de la partie cliente, c’est-à-dire l’émetteur du message SOAP. Dans le cas d’une architecture de Web Services, ce client peut renvoyer à un individu mais également à une application (ou composant) ou encore à une machine. D’où la prise en compte par la spécification de divers mécanismes : le couple identifiant/mot de passe, la méthode du jeton de sécurité et celles des certificats
notamment. "Concrètement, WS-Security définit la manière de décrire au sein d’un message SOAP ,les droits utilisateur correspondant à ces différents systèmes de sécurité". Comment éviter que la connexion entre deux Web Services ne soit "sur écoute" ? Ici, entre en jeu le chiffrement et la gestion de l’intégrité des messages, pour lesquels le langage propose un vocabulaire de gestion de certificats : des outils qui peuvent être utilisés aussi bien pour chiffrer un document électronique que pour le signer.

Conclusion

Bénéfices
• Sécurité
Protection contre les attaques connues et inconnues
• Conformité
Respect des réglementations
• Utilisation
Utilisation et mise en œuvre simples

La sécurisation des services web est un thème relativement récent. Si les standards de sécurité des messages XML sont conséquents, on doit quand même constater que l’emploi de ceux-ci se limite souvent à l’établissement d’un tunnel chiffré permettant de protéger l'information, voire à la vérification du format des messages.
Dans le cadre fermé d’un dialogue de machine à machine, la sécurisation des flux n’est pas perçue comme une tâche très importante.

Glossaires des liens :
UDDI.
WSDL.