Vous êtes sur la page 1sur 55

Institut suprieur dinformatique

XML Encryption

Module : Scurit Web Service Kawther Imen

Ralis par La syntaxe et le traitement : JOUINI JELJOUL AYACHI Cliquez pour modifier le style des sous-titres duRim masque SHIMI Saoussen RIDENE Boutheina MEFTAHI Dhekra MRAD Henda
23/04/2012

Plan
1 2 Introduction Vue densemble sur le chiffrement & Exemples 3 La syntaxe du Chiffrement Les rgles de traitement Les Algorithmes Conclusion

4 5 6

Plan
1 2 Introduction Vue densemble sur le chiffrement & Exemples 3 La syntaxe du Chiffrement Les rgles de traitement Les Algorithmes Conclusion

4 5 6

Introduction
Egalement connuen tant que XML-Enc, Cest une spcification du W3C, qui dfinitla faon de cryptage du contenud'un document XML.

Introduction
Confidentialit des informations Cryptage slective avec Plusieurs cls possibles Scurit de bout en bout

Introduction

Scurit sur la globalit de la chaine pendant la transmission du dchange message sur

Plan
1 2 Introduction Vue densemble sur le chiffrement & Exemples 3 La syntaxe du Chiffrement Les rgles de traitement Les Algorithmes Conclusion

4 5 6

Plan
2
v

Vue densemble sur le chiffrement & Exemples

Vue densemble Exemple 1.Le chiffrement d'un lmentXML 2.Le chiffrement du contenu d'un lmentXML (Elements)

3.Le chiffrement du contenu d'un lmentXML (donnes textuelles)

Vue densemble 1/3


<EncryptedData Id Type > <EncryptionMethod/> <ds:KeyInfo> <EncryptedKey> <AgreementMethod> <ds:KeyName> <ds:RetrievalMethod> <ds:> </ds:KeyInfo> <CipherData> <CipherValue> <CipherReference URI> </CipherData> <EncryptionProperties> </EncryptedData>

10

Vue densemble 3/3


Les donnes cryptes peuvent tre: Un lmentXML Le contenu d'un lmentXML Des donnes arbitraires et des documentsXML

11

Exemples
<?xml version='1.0'?> <InfoPaiement xmlns='http://example.com/paiementv2'> <Nom>Marcel DUPOND</Nom> <CarteCredit Plafond='5000' Monnaie='EURO'> <Numero>4019 2445 0277 5567</Numero> <Emetteur>Example Bank</Emetteur> <Expiration>04/02</Expiration> </CarteCredit> </InfoPaiement>

12

1.Le chiffrement d'un lmentXML


<?xml version='1.0'?> <InfoPaiement xmlns='http://example.com/paiementv2'> <Nom>Marcel DUPOND</Nom> <EncryptedData Type='http://www.w3.org/2001/04/xmlenc#Element' xmlns='http://www.w3.org/2001/04/xmlenc#'> <CipherData> <CipherValue>A23B45C56</CipherValue> </CipherData> </EncryptedData> </InfoPaiement>

13

2.Le chiffrement du contenu d'un lmentXML (Elements)


<?xml version='1.0'?> <InfoPaiement xmlns='http://example.com/paymentv2'> <Nom>Marcel DUPOND</Nom> <CarteCredit Limite='5,000' Monnaie='EURO'> <EncryptedData xmlns='http://www.w3.org/2001/04/xmlenc#' Type='http://www.w3.org/2001/04/xmlenc#Content'> <CipherData> <CipherValue>A23B45C56</CipherValue> </CipherData> </EncryptedData> </CarteCredit> </InfoPaiement>

14

3.Le chiffrement du contenu d'un lmentXML (donnes textuelles)


<?xml version='1.0'?> <InfoPaiement xmlns='http://example.com/paymentv2'> <Nom>Marcel DUPOND</Nom> <CarteCredit Limite='5,000' Monnaie='EURO'> <Numero> <EncryptedData xmlns='http://www.w3.org/2001/04/xmlenc#' Type='http://www.w3.org/2001/04/xmlenc#Content'> <CipherData> <CipherValue>A23B45C56</CipherValue> </CipherData> </EncryptedData> </Numero> <Emetteur>Example Bank</Emetteur> <Expiration>04/02</Expiration> </CarteCredit>

15

4.Le chiffrement de donnes arbitraires et des documentsXML


<?xml version='1.0'?> <EncryptedData xmlns='http://www.w3.org/2001/04/xmlenc#' MimeType='text/xml'> <CipherData> <CipherValue>A23B45C56</CipherValue> </CipherData> </EncryptedData>

16

Plan
1 2 Introduction Vue densemble sur le chiffrement & Exemples 3 La syntaxe du Chiffrement Les rgles de traitement Les Algorithmes Conclusion

4 5 6

17

Plan
3
v v

La syntaxe du Chiffrement

L'lmentEncryptedType L'lmentEncryptionMethod L'lmentCipherData


v

L'lmentCipherReference

L'lmentEncryptedData Les extensions de l'lmentds:KeyInfo


v v

L'lmentEncryptedKey L'lmentds:RetrievalMethod

L'lmentReferenceList L'lmentEncryptionProperties

18

La syntaxe du Chiffrement 1/3

19

La syntaxe du Chiffrement 2/3

20

La syntaxe du Chiffrement 3/3

21

Plan
1 2 Introduction Vue densemble sur le chiffrement & Exemples 3 La syntaxe du Chiffrement Les rgles de traitement Les Algorithmes Conclusion

4 5 6

22

Plan
4 Les rgles de traitement

v Les rgles de traitement v Exemple v 1.Le chiffrement v 2.Le dcryptage v 3.Le chiffrementXML

23

Les rgles de traitement 1/2


Cette section dcrit les oprations que les implmentations de cette spcification doivent effectuer pour le traitement du chiffrement et du dcryptage. Les obligations de conformit sont spcifies sur les rles suivants:

Application Chiffreur

24

Les rgles de traitement 2/2


Application: qui demande une implmentation XML Encryption ayant pour role de chiffrer les donnes Chiffreur: Une implmentation XML Encryption ayant pour role de chiffrer les donnes Dcrypteur: Une implmentation XML Encryption ayant pour role de dcrypter les

25

Le chiffrement
Pour chaque item de donnes chiffrer comme lment EncryptedDataouEncryptedKey(des lments drivs deEncryptedType), lechiffreurdoit:
1.

Slectionner l'algorithme (et les paramtres) employer pour le chiffrement de ces donnes; Obtenir et (en option) reprsenter la cl. Chiffrer les donnes Construire la structure de l'lmentEncryptedType

2.

3.

4.

(EncryptedDataouEncryptedKey)
5.

Traiter l'lmentEncryptedData

26

Le chiffrement
Slectionner

lalgorithme Chiffr les donnes Construire la structure Obtenir la cl Traiter lelment EncryptedData

27

Le dcryptage 1/2
Pour chaque lment driv deEncryptedType dcrypter ledcrypteurdoit:
1.

Traiter l'lment pour dterminer l'algorithme, les paramtres et l'lmentds:KeyInfo utiliser. Si certaines informations manquent, l'applicationdoit les fournir

2.

Localiser la cl de chiffrement des donnes en fonction de l'lmentds:KeyInfo, qui peut contenir un ou plusieurs sous-lments. Ces sous-lments n'ont pas d'ordre de traitement implicite.

28

Le dcryptage 2/2
3.

Dcrypter les donnes contenues dans l'lmentCipherData TraiterlesdonnesdcryptesdeType"element" ou "content" Traiterlesdonnesdcryptessil'attributTypen'estpas spcifiousisavaleurn'est pas"element"ou "content".

4.

5.

29

Le chiffrement deXML 1/3


Les oprations de chiffrement et de dcryptage sont effectues sur des octets. L'applicationest responsable de la mise en ordreXMLde sorte que celui-ci puisse tre srialis en une squence d'octets, crypt, dcrypt et mis la disposition du destinataire. Lorsqu'on srialise un fragmentXML, on devrait prendre un soin particulier par rapport aux espaces de nommage par dfaut. La srialisation peut produire des lments dans un espace de nommage erron.

30

Le chiffrement deXML 2/3

La srialisation du fragment lmentObjetaCrypter en tant que flux

aboutirait aux caractres "<ObjetaCrypter></ObjetaCrypter>


<Document xmlns="http://example.com/"> <ObjetaCrypter xmlns="" /> </Document>

d'octets. Le document rsultant crypt serait:

Devient
<Document xmlns="http://example.com/">

31

Le chiffrement deXML 3/3


Le dcryptage et le remplacement de l'lmentEncryptedData l'intrieur de ce document produirait le rsultat incorrect suivant:
<Document xmlns="http://example.com/"> <ObjetaCrypter/> </Document>

Ce problme survient parce que la plupart des srialisationsXMLsupposent que les donnes srialises seront analyses directement dans un contexte sans dclaration d'espace de nommage par dfaut Elles ne rptent pas la dclaration de l'espace de nommage par dfaut vide avec un attributxmlns="". Cependant, si les donnes srialises sont analyses dans le contexte d'action d'une dclaration espace de nommage par

32

Plan
1 2 Introduction Vue densemble sur le chiffrement & Exemples 3 La syntaxe du Chiffrement Les rgles de traitement Les Algorithmes Conclusion

4 5 6

33

Algorithmes
Cette section prsente les algorithmes utiliss avec la spcification XML Encryption. Les entres contiennent l'identificateur utiliser

comme valeur de l'attribut Algorithm de l'lment EncryptionMethod ou d'un autre lment reprsentant le rle de l'algorithme, une rfrence vers la spcification formelle, des dfinitions pour la reprsentation des cls et pour les rsultats des oprations cryptographiques.

34

Identifiants d'algorithme et les conditions d'application


Tous les algorithmes ont des qui seront prsents qui ultrieurement paramtres implicites

dpendent de leur rle. Par exemple, les donnes crypter ou dcrypter, le matriel de chiffrement, et la direction de fonctionnement Pour les algorithmes de cryptage , tous les paramtres explicites supplmentaires apparaissent comme des lments de contenu dans l'lment.

35

Algorithmes
Chiffrement par bloc Chiffrement par flux Transport de cl Agrment de cl Enveloppe de cl symtrique Empreinte numrique Authentication de Message Canonisation Codage

36

Les algorithmes de chiffrement par blocs

Les algorithmes de chiffrement par blocs sont conus pour le chiffrement et le dcryptage des donnes dans des blocs d'octets multiples taille fixe. Leur identificateur apparat comme valeur de l'attribut Algorithm des lments EncryptionMethod qui sont les sous-lments des lments EncryptedData.

37

Exemple1:Triple DES
Identificateur : http://www.w3.org/2001/04/xmlenc#tripledes-cbc (OBLIGATOIRE) L'algorithme [TRIPLE DES] spcifie trois oprations [DES] successives. Le TRIPLEDES de XML Encryption consiste en un chiffrement DES, un dcryptage DES et un chiffrement DES, utiliss dans le mode de chiffrement enchanement des blocs (CBC) avec une cl de 192 bits et un vecteur d'initialisation de 64 bits. Des bits de la cl, les 64 premiers sont utiliss dans la premire opration DES, les 64 suivants dans la deuxime opration DES et les 64 derniers dans la troisime opration DES. Voici un exemple avec un lment EncryptionMethod TRIPLEDES : <EncryptionMethod

38

Exemple2:AES
Identificateur : http://www.w3.org/2001/04/xmlenc#aes128-cbc (OBLIGATOIRE) http://www.w3.org/2001/04/xmlenc#aes192-cbc (OPTIONNEL) http://www.w3.org/2001/04/xmlenc#aes256-cbc (OBLIGATOIRE) L'algorithme [AES] est utilis dans le mode de chiffrement enchanement des blocs (CBC) avec un vecteur d'initialisation de 128 bits. Voici un exemple avec un lment EncryptionMethod AES : <EncryptionMethod

39

Les algorithmes de chiffrement par flot

Ces algorithmes gnrent, en fonction de la cl, un flux d'octets qui sont compars en disjonction exclusive (XOR) avec les octets de donnes du texte en clair pour produire le texte crypt lors du chiffrement et avec les octets du texte crypt pour produire le texte en clair lors du dcryptage.

Ils sont spcifis par la valeur de l'attribut Algorithm du sous-lment EncryptionMethod d'un lment EncryptedData.

40

Les algorithmes de chiffrement par flot

Les algorithmes de chiffrement par flot emploient gnralement le paramtre explicite optionnel KeySize. Pour les cas o la taille de la cl ne se dduit pas de l'adresse URI ou de la source de la cl de l'algorithme, ce paramtre rgle la taille de la cl. Le schma du paramtre KeySize est le suivant :

<simpleType name='KeySizeType'> <restriction base="integer"/> </simpleType>

41

Le transport des cls

Ce sont des algorithmes de chiffrement cl publique conus spcialement pour le chiffrement et le dcryptage de cls.

Leurs identificateurs apparaissent en attributs Algorithm des lments EncryptionMethod qui sont les sous-lments d'lments EncryptedKey. L'lment EncryptedKey est son tour le sous-lment d'un lment ds:KeyInfo.

Le type de cl qui est transport, est donn par l'attribut Algorithm du sous-lment EncryptionMethod de l'lment EncryptedData, ou EncryptedKey, parent de cet lment

42

Exemple 1:RSA Version 1.5


Identificateur : http://www.w3.org/2001/04/xmlenc#rsa-1_5 (OBLIGATOIRE) Voici un exemple avec un lment EncryptionMethod RSA Version 1.5 : <EncryptionMethodAlgorithm="http://www.w3.org/200 1/04/xmlenc#rsa-1_5"/>

43

Exemple2:RSA-OAEP
Identificateur : http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p (OBLIGATOIRE) L'algorithme RSAES-OAEP-ENCRYPT, admet trois paramtres. Deux paramtres sont spcifis par l'utilisateur : une fonction de hachage cryptographique OBLIGATOIRE et un flux d'octets de codage OAEPparams OPTIONNEL. La fonction de hachage cryptographique est spcifie par l'attribut Algorithm d'un sous-lment ds:DigestMethod et la fonction de gnration de masques, le troisime paramtre, est toujours

44

L'agrment des cls

Un algorithme d'agrment de cl pourvoit une cl secrte partage, qui est calcule partir de certains types de cls publiques compatibles issues la fois de l'metteur et du destinataire.

L'information provenant du donneur d'ordre pour dterminer le secret est indique par un souslment paramtre OriginatorKeyInfo optionnel d'un lment AgreementMethod, alors que celle associe au destinataire est indique par un lment RecipientKeyInfo optionnel.

45

Par exemple
<EncryptedData> <EncryptionMethod Algorithm="Exemple:Block/Alg" <KeySize>80</KeySize> </EncryptionMethod> <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <AgreementMethod Algorithm="exemple:Agrement/Algorithme"> <KANonce>Zm9v</KA-Nonce> <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha1"/ > <OriginatorKeyInfo> <ds:KeyValue>....</ds:KeyValue> </OriginatorKeyInfo> <RecipientKeyInfo> <ds:KeyValue>....</ds:KeyValue> </RecipientKeyInfo>

46

L'emballage des cls symtriques

Ce sont des algorithmes de chiffrement cl secrte partage conus spcialement pour le chiffrement et le dcryptage des cls symtriques. Leurs identificateurs apparaissent comme valeurs de l'attribut Algorithm des sous-lments EncryptionMethod d'un lment EncryptedKey, luimme sous-lment d'un lment ds:KeyInfo son tour le sous-lment d'un lment EncryptedData, ou autrement d'un lment EncryptedKey. Le type de la cl qui est emballe est indiqu par l'attribut Algorithm de l'lment EncryptionMethod, souslment du parent du grand-parent ds:KeyInfo de l'lment EncryptionMethod qui spcifie l'algorithme d'emballage de la cl symtrique.

47

Les empreintes numriques

On peut utiliser des algorithmes de hachage cryptographique dans l'lment AgreementMethod comme partie de la drivation de la cl, dans un chiffrement RSA-OAEP comme fonction de hachage et en relation avec la mthode de code d'authentification de message HMAC

48

Exemple 1:SHA1
Identificateur : http://www.w3.org/2000/09/xmldsig#sha1 (OBLIGATOIRE)

L'algorithme SHA-1 n'admet aucun paramtre explicite.

Voici un exemple d'lment DigestMethod avec SHA-1 : <DigestMethod

49

L'authentification des messages


Identificateur : http://www.w3.org/2000/09/xmldsig# (RECOMMAND)

L'implmentation de XML Signature [XML-DSIG] est OPTIONNELLE pour les applications XML Encryption.

C'est la manire recommande pour l'authentification base sur une cl.

50

La canonisation

La canonisation de XML est une mthode pour srialiser XML de manire cohrente en un flux d'octets en cas du besoin avant le chiffrement du code XML

51

La canonisation inclusive
Identificateurs : http://www.w3.org/TR/2001/REC-xml-c14n-20010315 (OPTIONNEL) http://www.w3.org/TR/2001/REC-xml-c14n20010315#WithComments (OPTIONNEL)

XML canonique [Canon] est une mthode de srialisation XML qui inclut l'espace de nommage dans la porte et le contexte de l'attribut d'espace de nommage xml des anctres du code XML qui est srialis.

52

La canonisation exclusive
Identificateurs : http://www.w3.org/2001/10/xml-exc-c14n# (OPTIONNEL) http://www.w3.org/2001/10/xml-excc14n#WithComments (OPTIONNEL)

La canonisation XML exclusive [Exclusive] srialise le code XML de sorte inclure, dans le minimum pratique, la corrlation de prfixe d'espace de nommage et le contexte de l'attribut d'espace de

53

Plan
1 2 Introduction Vue densemble sur le chiffrement & Exemples 3 La syntaxe du Chiffrement Les rgles de traitement Les Algorithmes Conclusion

4 5 6

54

Conclusion
XML Encryption : un autre standard de chiffrement tombe, des chercheurs cassent la norme du W3C pour les Web services

http://aktuell.ruhr-uni-bochum.de/pm2011/pm00330.html.en www.w3c.org

Merci pour votre attention


Cliquez pour modifier le style des sous-titres du masque