> Tech > Standards de sécurité XML

Standards de sécurité XML

Tech - Par iTPro - Publié le 24 juin 2010
email

XML est un environnement obéissant à des standards, donc on ne s’étonnera pas si de nombreux standards de sécurité XML ont émergé. Ces standards peuvent être divisés en deux grandes catégories : utiliser XML pour améliorer et gérer la sécurité, et sécuriser des documents XML, qui est notre propos ici.

Standards de sécurité XML

La sécurisation des documents XML peut être subdivisée en sécurité du transport et sécurité des données. La première ne vaut que pour des documents envoyés à l’extérieur du réseau de votre entreprise. Cependant, en matière de sécurité du transport, il faut savoir que l’envoi d’un courriel à l’employé du bureau d’à côté n’est pas plus sûr que l’envoi d’un courriel aux antipodes. En effet, le fait d’envoyer un courriel à un collègue ne signifie pas que votre message saute simplement la cloison pour entrer dans son ordinateur. Il passe d’abord par un serveur, lequel peut se trouver dans un autre immeuble ou dans un autre pays, et en chemin vers et depuis le serveur, il peut fort bien être intercepté. HTTPS est probablement le moyen le plus simple pour transporter fiablement des documents XML. C’est le protocole utilisé pour des pages Web sécurisées, comme celles que vous utilisez parfois pour payer des factures en ligne ou pour acheter des articles chez un commerçant en ligne. HTTPS peut se charger à la fois de l’authentification et du cryptage, et c’est un standard bien établi. Il crypte automatiquement tout le document envoyé et décrypte tout le document reçu. HTTPS est capable de satisfaire à toutes vos exigences de sécurité concernant XML. Mais, bien souvent, vous souhaiterez plus de contrôle que ce que fournit le seul HTTPS. Par exemple, si seulement une petite partie du document doit être cryptée, le cryptage et le décryptage de tout le document peuvent être beaucoup trop lourds. De plus, si l’opérateur du serveur HTTP de destination n’est pas le destinataire final du document XML, il faudra recourir à la sécurité interne de XML pour garantir la protection de bout en bout. Et même une fois les documents XML parvenus à destination, leur stockage dans un format non crypté pourrait constituer un risque inacceptable pour certains genres de données, comme des fichiers médicaux personnels.

Peut-être aussi faudra-t-il aller au-delà de la sécurité HTTPS si vous traitez des documents XML qui contiennent des informations provenant de plusieurs sources. Dans ce cas, la société ou l’entreprise responsable de chaque section du document devra peut-être s’authentifier et crypter séparément sa portion du document.

Enfin, si un document doit voyager sur plusieurs réseaux, HTTPS décrypte et crypte le document à chaque étape de la transmission. La répétition de ces processus gourmands en ressources risque de dégrader les performances. Si l’on utilise le cryptage interne XML, l’overhead n’a lieu que deux fois : quand le segment XML crypté est généré et quand il est décrypté par le destinataire final.

S’il s’avère que le seul HTTPS est insuffisant, il existe deux standards qui traitent spécifiquement de la sécurité XML interne: XML Signature et XML Encryption. Tous deux adhèrent au standard PKI (Public Key Infrastructure) plus général. Bien que des variantes soient possibles, la forme la plus courante de PKI utilise (1) une clé publique couplée à une clé privée et (2) une CA (Certificate Authority) approuvée pour cataloguer et attester des clés publiques.

Pour envoyer un document, vous devez le signer avec votre clé privée et le crypter avec la clé publique du destinataire, obtenue auprès de la CA. De son côté, le destinataire peut vérifier votre signature en utilisant votre clé publique (obtenue également auprès de la CA) et décrypter le contenu au moyen de sa clé privée. On le voit, PKI offre des solutions pour le couple authentification et cryptage. L’application de XML Signature ou de XML Encryption revient à modifier le document XML lui-même. Ainsi, la signature numérique qui authentifie un document est imbriquée dans celui-ci. Dans le même esprit, si un document est crypté, l’information dont le destinataire a besoin pour décrypter le document avec sa clé privée est également imbriquée dans le document. En conséquence, si vous utilisez des solutions de sécurité centrées sur XML comme XML Signature et XML Encryption, la transmission elle-même n’a pas besoin d’être sécurisée et peut être gérée par divers procédés aussi simples qu’une pièce jointe de courriel ou un transfert de fichier par FTP. On réduit aussi considérablement le fardeau des transmissions multi-étapes en évitant le décryptage et le cryptage par HTTPS à chaque emplacement.
Le standard XML Signature est défini à w3.org/TR/ xmldsig-core et stipule les règles permettant d’identifier des documents XML ou des parties de documents XML en utilisant une clé numérique (c’est-à-dire une signature). Le standard XML Signature présente deux caractéristiques importantes : il peut attribuer des signatures numériques différentes à chaque portion d’un document XML et il prend en charge la « canonicalisation ».

La canonicalisation consiste à standardiser la manière dont les données sont représentées et, dans le cas de XML, elle traite les différences entre le contenu XML et le formatage XML. La plupart des modes de signatures numériques sont sensibles à la modification du contenu : que ce soit un changement matériel ou non. Or, avec des documents XML, vous souhaiterez parfois ignorer les changements qui n’affectent pas le contenu (par exemple, l’espace vierge supplémentaire) parce que la simple ouverture d’un document XLM est susceptible d’altérer le format. En utilisant le standard XML Signature, vous pouvez spécifier si de tels changements superficiels doivent être considérés comme des altérations du document ou si seul le contenu réel du document (par exemple, les noms des éléments XML et leurs données) doit être utilisé pour déterminer si un document XML a été corrompu.

Le standard XML Encryption (voir w3.org/TR/xmlenccore) collabore étroitement avec le standard XML Signature et il permet de crypter des sections spécifiques d’un document XML ou un document tout entier. L’information cryptée dans un document XML se conforme à la syntaxe XML en utilisant des éléments tels que EncryptedData et EncryptionMethod. Pour voir un exemple de cryptage et de décryptage d’un document XML en utilisant XML Encryption, voir « XML Security : Implement Security Layers, Part 2 » à www-128.ibm.com/developerworks/xml/library/x-seclay2. XML Encryption et XML Signature sont deux des standards XML les plus importants en matière de sécurité des données. Mais il existe beaucoup d’autres standards XML dans ce domaine. Bien que tous les documents XML ne soient pas des services Web, les standards pour les services Web (comme SOAP et WSDL) sont basés sur XML. C’est pourquoi beaucoup de ce qui est écrit sur la sécurité des services Web s’applique généralement à tous les documents XML.

Téléchargez gratuitement cette ressource

Protection des Données : 10 Best Practices

Protection des Données : 10 Best Practices

Le TOP 10 des meilleures pratiques, processus et solutions de sécurité pour mettre en œuvre une protection efficace des données et limiter au maximum les répercutions d’une violation de données.

Tech - Par iTPro - Publié le 24 juin 2010