Sécurité des Web Services
Sommaire
Sommaire Introduction 1. Vulnérabilités des web services 2. Sécurisation des web services 2.1 Sécurité et XML Signature XML Encryption XML Protocoles de sécurité XML 2.2 WS-Security Sécurisation des accès aux WS Confidentialité des messages Intégrité des messages Conclusion
Vulnérabilités des web services
Vulnérabilités des web services Héritent des vulnérabilités des application web traditionnelles: Saisie de données hostiles Contournement de l’authentification Vulnérabilité des navigateurs Possédent leurs propres vulnérabilités: Envoi de données xml malformés ou XML overflow Injection de XML dans les champs XML changement de la signification des fichiers.
Sécurisation des web services
Signature XML
Sécurité et XML Signature XML: Objectif: signature numérique d’un document XML Garantir l’authenticité l’intégrité la non répudiation des données signées
Encryption XML
Sécurité et XML Encryption XML: Objectif: chiffrement d’un document XML Garantir la confidentialité de bout en bout du document Possibilité d’encrypter tout ou partie du document, avec 1 ou différentes clés. Chiffrement symétrique!
Sécurité et XML Encryption XML: Cryptage XML: Décryptage XML: Choix d’un algorithme (3DES ou AES) Obtention ou génération de la clé Sérialisation des données à crypter Cryptage Décryptage XML: Identifier l’algorithme et la clé utilisés Obtenir la clé Déchiffrer les données Intégrer les données déchiffrées dans le document
Protocoles de sécurité XML
Sécurité et XML SAML: XKMS: SAML permet l'échange sécurisé d'informations IL définit le format du message XML… XKMS: Fournir un protocole de validation et d'enregistrement des clef publique entre les applications Web et les service Web.
WS Security
Sécurisation des accès aux WS Authentification des utilisateurs (ou des autres applications) Login / mot de passe (le moins sécurisé) Niveau transport ou message (transmission à d'autres WS) Jeton de session de type HTTP (mais on n'est plus sans état) Lorsque rien de tout cela n'est possible: au minimum, filtrage sur les adresses IP sources des serveurs clients. Contrôle d'accès aux fonctionnalités du Web Service Gestion des permissions d'accès des utilisateurs en fonction de leur profil
Sécurisation des accès aux WS Passerelle XML Filtrage User1 User2 User3 WS1 WS2 WS3 … … www.themegallery.com
Protection des données échangées: Chiffrement du flux HTTPS (SSL/TLS), IPSec Chiffrement des champs XML Assure la confidentialité des données Signature des champs XML Assure l'intégrité des données (+non répudiation) Attention: le chiffrement ne protège pas contre les intrusions!
Durcissement applicatif: Changer les mots de passe par défaut Ne pas faire confiance aux données XML reçues Filtrage des données coté serveur validation du schéma XML et du contenu des champs Analyse du contenu Des relais filtrants ("firewalls XML" ou "firewalls applicatifs") sont spécialisés dans la validation de données XML Ex: IBM DataPower, DenyAll, BeeWare Sous forme d'appliances ou de services à installer sur un serveur Assurent aussi l'authentification et le chiffrement SSL
Tracabilité des actions Les actions effectuées doivent être tracées C'est parfois une obligation légale (ex: accès Internet pour un FAI) Sinon, cela permet de couvrir en cas d'enquête Gestion de journaux d'événements / de logs Enregistrement pour chaque appel à un Web Service Utilisateur Action effectuée Données sensibles manipulées Si pas de possibilité de logs applicatifs Logs du serveur HTTP (requêtes GET / POST, utilisateur, adresse IP source, ...) Logs des firewalls Logs des proxies HTTP Logs des firewalls applicatifs XML
Conclusion La sécurisation des Web Services est un sujet complexe Mais du fait du succès des Web services, leur sécurisation est de plus en plus incontournable dans la plupart des SI La protection des données échangées est souvent une obligation légale. C'est indissociable de la prise en compte de la sécurité dans les projets informatiques Un grand nombre d'acteurs sont impliqués, de bout en bout dans les processus de l'entreprise.