Sécurité Objectifs Gestion de PKI Signature Cryptage Web Service Security 1
1. Objectifs Ensemble de protocoles pour sécuriser les échanges XML Les problèmes à résoudre : Authentification des utilisateurs Passer une identité au Service Web Autorisation aux utilisateurs Donner des droits sur des ressources Confidentialité des données Contrôler les données Non répudiation des messages Assurer que les messages ne soient pas envoyés par un intrus Dénie de Service Bloquer les accès aux Services 2 2
Les standards de sécurité Englobe les standards W3C : XKMS (XML Key Management Specification) XML Signature XML Encryption Et de l Oasis : SAML (Echange d identité et d autorisations) XACML (Déclaration de politique de contrôle d accès) XrML (Déclaration de droits d accès) Intégration aux services Web WS-Security WS-Interoperability (www.ws-i.org) 3 3
2. XKMS Spécification du W3C prévue pour simplifier l intégration des architectures PKI et la gestion des certificats dans les applications XML Objectifs: créer une couche abstraite entre les applications et la solution de PKI éliminer le besoin pour une application de gérer la syntaxe et sémantique complexe des PKI déplacer la complexité de l'application cliente au niveau de l'infrastructure implémenter XKMS de telle sorte qu'il soit neutre du point de vue de la plateforme, du vendeur ou du protocole de transport. XKMS comprend deux sous services XML Key Information Service Specification (X-KISS) XML Key Registration Service Spectification (X-KRSS) 4 4
Infrastructure PKI et XKMS Eléments: Autorité de certification (AC) Autorité d enregistrement (AE) Système de publication et distribution de certificats (PKI database) Applications compatibles avec la PKI Objets manipulés: Bi-clés (publique/privée) Certificats (échange d identité avec clé publique) 5 5
XKISS X-KISS définit un service Web pour localiser ou valider les informations (propriétaire, statut, date de validité, ) associées à une clé publique Le service de localisation (Locate) permet, à partir d'une des informations contenues dans <KeyInfo>, de connaître les autres informations attachées Le service de validation (Validate) permet de s'assurer qu'une clé est valide, qu'elle n'a pas été révoquée et qu'il est possible de l'utiliser pour un usage spécifique (signature, encryption ). 6 6
XKRSS Définit le protocole permettant la gestion du cycle de vie d une clé Key Registration Key Reissue Key Revocation Key Recovery 7 7
XKRSS: Enregistrement d une clé <complextype name="keybinding"> <sequence> <element name="status" type="xkms:bindingstatus"/> <element name="keyid" type="string" minoccurs="0"/> <element name="keyinfo" type="ds:keyinfo"/> <element name="passphrase" type="string" minoccurs="0"/> <element name="processinfo" type="string" minoccurs="0"/> <element name="validityinterval" type="xkms:validityinterval"/> <element name="keyusage" type="xkms:keyusage" minoccurs="0" maxoccurs="unbounded"/> <s:element name="keyusage"> <s:complextype> <s:all> <s:element name="string" type="s:string" minoccurs="0" maxoccurs="unbounded"/> </s:all> </s:complextype> </s:element> </sequence> </complextype> 8 8
XKISS: Recherche d une clé par nom Requête "Client" <SOAP:Envelope> <LocateRequest> <KeyInfoQuery> <ds:keyname>mymmm</ds:keyname> </KeyInfoQuery> </LocateRequest> </SOAP:Envelope> Reponse du service XKMS <SOAP:Envelope> <LocateResult> <ds:keyinfo> <ds:keyname>mymmm</ds:keyname> <ds:keyvalue>...afg7we7...</ds:keyvalue> </dskeyinfo> </LocateResult> </SOAP:Envelope> 9 9
3. XML Signature Qu'est-ce que XML Signature? Standard du W3C et de l'ietf Signature de message en XML Architecture PKI sous-jacente Principes Appliquées à des "data objects" arbitraires Data objects sont placés dans un élément Cet élément est signé La signature est placée dans un élément signature 10 10
Principe des signatures A Résumé H Document CPB Document CsB H Résumé on compare B CsA Signature CPA Signature Résumé L'égalité des résumés (digests) garantit que l'émetteur connaît la clé secrète de A, donc qu'il s'agit de A. 11 11
Structure du message Englobe l'information signée Ouvre la signature électronique Indique la méthode de canonisation des objets Définit l'algorithme utilisé pour transformer l'élément SignedInfo canonisé en SignatureValue <Signature> <SignedInfo> (CanonicalizationMethod) (SignatureMethod) (<Reference (URI=)? > (Transforms)? (DigestMethod) (DigestValue) </Reference>)+ </SignedInfo> (SignatureValue) (KeyInfo)? (Object)* </Signature> Décrit chaque objet à signer, en particulier sa localisation Définit la liste des transformations appliquées à l'objet avant calcul du digest Référence la méthode de calcul du digest Contient la valeur du digest de l'objet Contient la valeur du résumé de l'élément <SignedInfo> chiffré Définit les clés de chiffrements nécessaires au calcul de la signature 12 12
4. XML Encryption Recommandation du W3C Protocole d'échange des données cryptées Clés publique et privée Valeurs des données cryptées Algorithmes de cryptage Chaque élément peut être crypté Possibilité de crypter à tout niveau Une partie ou la totalité d un document Clé symétrique ou asymétrique 13 13
XML Encryption: Principes L expéditeur utilise la clé publique Le destinataire est le propriétaire de la bi-clés Permet de décrire la façon dont les données sont encodées conformément à XML (Infoset) Après «encryption» c est l élément <EncryptedData/> qui contient les données codées Les informations sur la clé utilisé sont encapsulées dans un élément <ds:keyinfo> Peut chiffrer une partie ou la totalité d un document 14 14
Quelques éléments CipherData: Contient les données cryptées soit: sous forme d octets dans <CipherValue> sous forme de référence dans <CipherReference> EncryptedData : Elément principal contient CipherData. EncryptedKey: Contient la clé cryptée et est utilisé pour les transports de clés Quand il est décrypté, utilisé par EncryptionMethod EncryptionMethod: Décrit l'algorithme de cryptage appliqué aux données chiffrées (optionnel) 15 15
Exemple <EncryptedData xmlns='http://www.w3.org/2001/04/xmlenc#' Type='http://www.w3.org/2001/04/xmlenc#Element'/> <EncryptionMethod Algorithm='http://www.w3.org/2001/04/xmlenc#tripledescbc'/> <ds:keyinfo xmlns:ds='http://www.w3.org/2000/09/xmldsig#'> <ds:keyname>marcel DUPOND</ds:KeyName> </ds:keyinfo> <CipherData><CipherValue>DEADBEEF</CipherValue></Ci pherdata> </EncryptedData> 16 16
5. WS-Security Modèle d'intégration des dialectes XML pour la sécurité à WS-Security, et donc aux messages SOAP Intégration dans les entêtes SOAP des droits, signatures, encryption,. Intégré dans les infrastructures J2EE et.net 17 17
Exemple de message SOAP Addressing Security Reliable Messaging <S:Envelope > <S:Header> <wsa:replyto> <wsa:address>http://business456.com/user12</wsa:address> </wsa:replyto> <wsa:to>http://fabrikam123.com/traffic</wsa:to> <wsa:action>http://fabrikam123.com/traffic/status</wsa:action> <wssec:security> <wssec:binarysecuritytoken ValueType="wssec:X509v3" EncodingType= wssec:base64binary"> dwjzy3jpymvylvblc..efw0wmtewmtawmd </wssec:binarysecuritytoken> </wssec:security> <wsrm:sequence> <wsu:identifier>http://fabrikam123.com/seq1234</wsu:identifier> <wsrm:messagenumber>10</wsrm:messagenumber> </wsrm:sequence> </S:Header> <S:Body> <app:trafficstatus xmlns:app="http://highwaymon.org/payloads"> <road>520w</road><speed>3mph</speed> </app:trafficstatus> </S:Body> </S:Envelope> 18 18
En résumé... La sécurité renforcée PKI accessible en XML Signature Chiffrement Intégration au WS WS-Security Empilement des entêtes SOAP Questions? Conclusion 19 19