Home

Rapport de stage de fin d`études ENSEIRB, I3 (PRCD

image

Contents

1. SigAndRefsTimeStamp RefsOnlyTimeStamp lt UnsignedSignatureProperties gt III lt UnsignedProperties gt LII III lt QualifyingProperties gt II Vel 1 lt ds Object gt III lt ds Signature gt gt III XAdES I XAdES T XAdES C XAdES X 60 Cahier des charges Rappel des coordonn es du stage Cryptolog International SAS 16 18 rue Vulpian F 75013 Paris France Rappel du sujet Etude et impl mentation des protocoles XMLDSIG XML Signature Syntax and Processing et XADES XML Advanced Electronic Signatures pour les interfacer dans la suite avec des applica tions mettant en oeuvre des s questres de cl s Mots cl s Signature num rique chiffrement asym trique RSA SHA1 certificat num rique XML cano nicalization Contexte g n ral Actuellement XML est de plus en plus utilis comme un moyen de stockage de donn es structu r es sur Internet Il est galement utilis comme support pour plusieurs protocoles de communication d ploy s dans les architectures des services web Le protocole SOAP Simple Object Access Pro tocol en est un exemple La s curisation des requ tes XML est devenue donc un besoin Dans ce cadre deux standards ont t d finis Chiffrement XML Encryption Syntax and processing Signature num rique XML Signature Syntax and processing XMLDSIG XMLDSIG permet de signer un
2. clear void XMLAnyType XMLDateTime XMLObjectidentifier XMLEncapsulatedPRIData write out OutputStream void write void TransformAlgorithm TransformAlgorithm uri String paramSpec TransformParameterSpec getParameterSpec TransformParameterSpec OctetStreamDataz NodeSetData getURI String transform data XMLData XMLData toNodeSetData context XMLContext NodeSetData ZX A CanonicalizationAlgorithm A A XPathTransform Base64Transform ExclC14nAlgorithm C14nAlgorithm Fic 6 1 Diagramme de classe du package xml Un singleton est un design pattern tr s connu et est utilis pour une classe dont l tat int rieur les valeurs des attributs ne peut changer et est toujours le m me dans tous les cas d utilisation 33 Cryptolog Rapport de PFE ENSEIRB 6 2 XMLDSIG 6 2 1 Solutions existantes Il existe actuellement plusieurs impl mentations de XMLDSIG plus au moins compl tes Parmi ces impl mentations on cite celle de Apache XML Security et et de PTATKI voir chapitre 7 La plupart de ces impl mentations sont bas s sur la JSR Java Specification Request 105 de Java Celle ci est int gr e dans Java partir de sa version standard 1 6 L entreprise a entrepris le d veloppement de sa propre impl mentation pour divers raisons et plus particuli rement avoir un support d au mo
3. 6 2 XMEDSTIG ul di o ew EA a le ls la Z rta A de de 6 2 1 Solutions existantes 6 2 2 Solution impl ment e fonctionnalit s 6 2 3 Solution impl ment e architecture g n rale 6 2 4 Options non impl ment es 6 35 TRA ES a See APR ri ah Bot Et AA Sete th e a 6 3 1 Solutions existantes 6 3 2 Solution impl ment e 7 Tests d Int rop rabilit T L Introduction lt ee 222 tete ei pe de fe Hs 7 1 1 D roulement des tests 7 1 2 Hypotheses de base 7 1 3 Impl mentations ext rieures 7 2 Matrice des tests 72 XMLDSIG e e e 4 RR A 2 2 NE a bo ad D LL L 7 3 R sultats 7 3 1 XMLDSIG TIL HX AGES a 2 6 ei de Be ame ES Conclusion et perspectives Lexique Exemple d une signature XADES Sch mas des signatures XML Sch mas des signatures XADES Cahier des charges Utilisation de l API XMLDSIG Architecture g n rale d un serveur DSS 30 30 31 31 31 32 34 34 34 34 37 38 38 38 42 42 42 42 43 44 44 44 44 44 45 47 50 51 55 59 61 63 63 Table des figures 2 1 3 1 3 2 3 3 4 1 4 2 5 1 5 2 6 1 6 2 6 3 6 4 Les produits CryptoloB as c e sa
4. KeyValue DSigXMLStructure K RetrievalMethod XMLSignature SignatureValue Transforms X509Data Keylnfo CanonicalizationMethod Fic 6 2 Diagramme de classe du package xmldsig 1 Initialisation du SignedInfo La classe de base a instancier par le signataire est SignedInfo Cette classe est instanci e en fournissant au moins un algorithme de canonicalisation un algorithme de signature et un vecteur d objets Reference Un objet Reference peut tre construit avec PURI qui d signe le contenu signer l algo rithme de hachage 3 utiliser et ventuellement une s quence d algorithmes de transformation a appliquer sur le contenu avant le calcul de son hach Ensuite pour chaque r f rence il faut attacher le contenu signer avec la m thode attachContent qui prend en param tre un objet ContentSource Cet objet peut repr senter le contenu a signer de trois fa ons diff rents a b c soit explicitement la suite d octets repr sentant ce contenu soit seulement la valeur du hach de ce contenu ainsi que l algorithme de hachage qui a t utilis pour la calculer soit une forme transform e du contenu avec la s quence des algorithmes de transformation utilis s En plus du contenu l objet ContentSource d finit galement le type de signature voulu en veloppante envelopp e ou d tach e Le signataire peut ensuite r aliser les op
5. Validation des l ments Reference Cette tape consiste v rifier l int grit de toutes les ressources sign es en validant leurs em preintes num riques Pour chaque l ment Reference 1 On r cup re le contenu sign en r solvant PURI 2 Si des l ments Transform sont pr sents on applique en s quence les algorithmes de transfor mation sp cifi s Quand une transformation requiert en entr e un tableau d octets alors que la sortie de la transformation pr c dente est un contenu XML on essaie de le convertir en utilisant l algorithme de canonicalization INCLUSIVE qui donne toujours en sortie un tableau d octets 3 On applique l algorithme de hachage sp cifi dans l l ment DigestMethod la sortie de la s quence des transformations 4 On compare la valeur obtenue avec celle contenue dans l l ment Digest Value Si elle sont gales la Reference est valide sinon on peut conclure que le contenu sign a t alt r et donc la signature n est pas valide 22 Cryptolog Rapport de PFE ENSEIRB tape 2 Validation de la valeur de la signature Cette tape consiste v rifier la valeur de la signature contenue dans l l ment Signature Va lue L entr e ce processus est la repr sentation XML de l l ment SignedInfo et les information cryptographiques contenus dans l l ment Keylnfo s il est pr sent Il peut s crire en trois tapes 1 R cup rer la cl publique du signataire
6. l application peut la r cup rer directement du KeyInfo si elle y est pr sente ou part d autres moyens ext rieurs la signature L l ment Keylnfo peut aussi transporter des donn e de validations chaines de certificats identifiant CRL pour permettre la v rification de la validit de la cl publique et de l identit associ e 2 Calculer la forme canonique de l l ment SignedInfo en utilisant l algorithme de canonicali zation sp cifi dans l l ment CanonicalizationMethod 3 Enfin appliquer l algorithme de la signature sur la forme canonique obtenue en utilisant la cl publique La signature ne peut tre suppos e valide que si la valeur obtenue est gale a la valeur transport e dans l l ment Signature Value Autres consid rations de validation Les deux tapes pr c dentes ont abord le probleme de la validation de la signature par un point de vue purement cryptographique Cependant une signature XML peut tre consid r invalide pour plusieurs d autres raisons qui peuvent ou non impliquer l chec d au moins une des tapes pr c dentes Citons par exemple Validation du document de la signature par rapport un sch mas XML Cette validation consiste s assurer que la structure XML de la signature est conforme au sch mas tablie par la recommandation W3C des signatures XML Une signature peut donc tre rejet si elle contient des structures non conformes ce sch mas m me si les deu
7. octets repr sentant la forme canonique ou normalis e de l entr e Plusieurs types de d tails dans un documents XML peuvent changer d un syst me un autre sans toutefois changer l interpr tation du document Citons par exemple 18 Cryptolog Rapport de PFE ENSEIRB Des d tails li s aux propri t s de bases de XML Par exemple la pr sence des attributs d clar s avec des valeurs par d faut est optionnelle La normalisation consiste les ajouter syst matiquement avec leurs valeurs par d faut Un autre exemple les espaces en dehors de la racine du documents sont supprim s car suppos s insignifiantes Des d tails li s l application utilis e pour la lecture et l criture du document XML Les deux mod les les plus utilis s sont DOMT 5 et SAX 24 voir la section 6 1 Dans les deux cas plusieurs d tails du document XML peuvent tre perdu entre la lecture et l criture comme Vordre des attributs les espaces insignifiants entre les balises entre les attributs etc Avec la canonicalization si un document XML est chang par une application sans modifier sa forme canonique le document chang et le document initial peuvent tre consid r s comme quivalents par les applications les utilisant La recommandation W3C de XMLDSIG 17 recommande l utilisation de l algorithme dit cano nicalization inclusive 2 Cet algorithme est aussi d finit par une recommandation W3C Pr
8. transformations Base64 XPath Enveloped canonicalization INCLUSIVE avec et sans com mentaires types de signatures enveloppante envelopp d tach Phaos 6 algorithmes RSA DSA HMAC transformations Base64 XPath Enveloped canonicalization INCLUSIVE avec commen taires types de signatures enveloppante envelopp Balti 6 S algorithmes RSA DSA transformations XPath Enveloped canonicalization INCLUSIVE types de signatures enveloppante envelopp Apache 7 algorithmes RSA DSA transformations Enveloped canonicalization INCLUSIVE types de signatures enveloppante envelopp 7 2 2 XAdES Impl mentation Taille du vecteur de tests Version XAdES Formes XAdES TAIK 5 1 3 2 BES EPES T C et X L type 1 ECOM 9 1 3 1 BES T X L et A 7 3 R sultats 7 3 1 XMLDSIG IAIK Tests r ussis 5 Tests chou s 0 Commentaires Tous les fichiers de tests de l IAIR ont pass la validation A noter toutefois que plusieurs fichiers IAIK n ont pas t s lectionn cause de certains l ments XMLDSIG non support s on cite 44 Cryptolog Rapport de PFE ENSEIRB XPointer XMLDSIG XPath et certains algorithmes de signatures non support s par Cryptolog on cite HMAC Phaos Tests r ussis 5 Tests chou s 1 Commentaires Le seul fichier de signatu
9. QualifyingProperties int FIG 6 4 Diagramme de classe du package xades helper Les propri t s XAdES ENSEIRB XAdES 32 ajoute un ensemble de propri t s XMLDSIG La premi re partie de l impl menta tion de XAdES consistait donc impl menter ces diff rentes propri t s Comme pour XMLDSIG chaque l ment XML repr sentant une propri t correspond une classe Chacune de ces classes h ritent de la classe de base XMLProperty d finissant une propri t XML g n rique Une propri t XML peut tre d finit par Un nom de balise de d but qui est le nom de la propri t exemple SigningCertificate 39 Cryptolog Rapport de PFE ENSEIRB Une URI d finissant l espace des noms pour lequel appartient la propri t Un contenu XML al atoire Une propri t peut tre identifi e de fa on unique avec le couple nom de balise et espace des noms Pour faire la correspondance avec les attributs CMS chaque propri t peut galement tre identifi par l OID de l attribut CMS correspondant qui transporte la m me information D autre part la classe Extended X ML Property qui h rite de la classe de base XMLPropertyReader permet de d coder l ensemble des propri t s XAdES Construction d une signature XAdES XAdES d finit deux types de propri t s les propri t s sign es et les propri t s non sign es Les premi res doivent obligatoirement tre ajout s par le sig
10. The production of a co signature may be complicated because it depends on the template of the signature to co sign I made an attempt to make the production generic using subclass of an XMLSignedData class libsiggen xml which work properly for signatures produced by our XMLDSIG implementation but not surely for an external signature The way to encode the co signature and the co signed signature in the same XML document depends on the template of the signature ENVELOPED ENVELOPING or ATTACHED Thus the user must get this information from the existing signature before encoding the co signature A simpler way is to create the co signature externally or to create builders when specific profiles are used The XMLSignature class provides a coSign method which returns an appropriate SignedInfo for a co signature The following sample code gives an example of how to use this method to create a co signature and encode it within the same XML document as the co signed signature XML Signature verification The XMLDsigFactory class provides multitude of methods to unmarshal an XML content Any XML signature found is represented by an XMLSignature object The XMLSignature class provides many method to verify either the signature value the Reference s digest value s or both If the signed content is external not included within the same XML document as the signature it must be attached to the corresponding Reference before the validation Even i
11. e de la fa on suivante chpitre 2 pr sente l entreprise dans laquelle s est effectu le stage chapitre 3 constitue un pr liminaire n cessaire pour la compr hension des chapitres sui vants Il donne une introduction rapide des concepts importants de la cryptographie et en particulier la cryptographie cl publique Il donne galement un aper u sur XML et les outils li s qui seront utilis s dans la suite chapitre 4 d taille le standard XMLDSIG 17 processus de production validation et r gles syntaxiques chapitre 5 d taille l extension XAdES 32 chapitre 6 pr sente les impl mentations de XMLDSIG et XAdES chapitre 7 ce dernier chapitre donne les r sultats des tests d int rop rabilit s effectu s la fin du stage Plusieurs annexes sont joints ce rapport Un exemple complet d une signature XAdES Le sch mas des signatures XML Structure g n rale d une signature XAdES Le cahier des charges Un manuel d utilisation de XMLDSIG r dig en anglais sur le wiki de l entreprise Une r flexion sur l architecture g n rale d un serveur de signature DSS r dig galement en anglais sur le wiki de l entreprise T CMS Cryptographic Message Syntax HDSS Digital Signature Services http www oasis open org committees tc_home php wg_abbrev dss SSOASIS Organization for the Advancement of Structured Information Standards http www oasis open org Chapitre 2 Pr sentation
12. indique le type MIME de la ressource par exemple image png Comme a t abord dans les sections pr c dentes un l ment Reference peut contenir une s quence d l ment Transform d signant chacun un algorithme de transformation appliquer au contenu sign L l ment Transform Cet l ment a une structure tr s simple Il contient seulement un attribut Algorithm identifiant l algorithme de transformation utiliser Il peut aussi contenir d autres l ment qui d pendent de la transformation d sign e Tous les algorithmes en XMLDSIG sont d finis avec des URIs La re commandation du W3C identifie un certains nombre d algorithmes mais des algorithmes ext rieures peuvent bien tre utilis s Une recommandation W3C ult rieure 21 d finis un ensemble d URIs pour des algorithmes de transformation hachage et signature qui peuvent tre utilis dans XMLDSIG Citons comme exemple les algorithmes de transformation suivant Les algorithmes de canonicalization En effet tout algorithme de canonicalization peut tre utilis comme un algorithme de transformation voir la section 4 2 1 24 Cryptolog Rapport de PFE ENSEIRB Transformation pour les signatures envelopp es Cette transformation a t d finit sp cifi quement pour les signatures envelopp es voir la section 4 2 2 Transformation Base64 Cette transformation permet de coder un contenu binaire en un en semble de caract res transportable dans une
13. s obligatoires que le signataire doit fournir les algorithmes utiliser etc 5 2 3 XAdES T Electronic Signature with Time les formes pr c dentes sont conformes aux obligations l gales d finies par la directive europ enne mais ne garantissent pas la non r pudiation jug e importante par cette directive 4 Cette forme ajoute une date XAdES permettant de prouver dans un litige ult rieur l existence de la signature une date donn e Cette date peut tre cr er par le signataire au moment de la production de la signature ou par le v rificateur d s la r ception de la signature Syntaxiquement cette forme ajoute la propri t non sign e SignatureTimeStamp une signature XAdES BES Cette forme permet donc de garantir une authentification et une protection de l int grit mini males ainsi qu une protection contre la r pudiation 5 2 4 XAdES C Electronic Signature with Complete Validation Data Cette forme permet de transporter les donn es de validation n cessaires la v rification de la signature Elle d finit des conteneurs pour transporter des identifiants de certificats CRLs et ou r ponses OCSP voir la section 3 1 2 A noter que cette forme ne transporte que des r f rences et non pas les donn es r elles qui sont naturellement beaucoup plus volumineuses Cette forme peut tre ajout par le signataire ou le v rificateur d s que l ensemble des donn es de validation devient disponible La figure 5 2 illus
14. string gt Allier lt field gt lt record gt lt table gt lt database gt lt ds 0bject gt lt ds 0bject gt lt xades QualifyingProperties Target Signaturei xmlns xades http uri etsi org 01903 v1 3 2 gt 52 Cryptolog Rapport de PFE ENSEIRB lt xades SignedProperties Id Signaturel_SignedProperties gt lt xades SignedSignatureProperties gt lt xades SigningTime gt 2007 04 31T10 43 56 154Z lt xades SigningTime gt lt xades SigningCertificate gt lt xades Cert gt lt xades CertDigest gt lt ds DigestMethod Algorithm http www w3 org 2000 09 xmldsig shal gt lt ds DigestValue gt 0jtCwg0UJVySFMZWC9fOEWZv HO lt ds DigestValue gt lt xades CertDigest gt lt xades IssuerSerial gt lt xades X509IssuerName gt EMAILADDRESS thomas pornin cryptolog com CN Test CA 0 Cryptolog L Paris ST Paris C FR lt xades X509IssuerName gt lt xades X509SerialNumber gt 50 lt xades X509SerialNumber gt lt xades IssuerSerial gt lt xades Cert gt lt xades SigningCertificate gt lt xades SignatureProductionPlace gt lt xades City gt Paris lt xades City gt lt xades StateOrProvince gt Creteil lt xades StateOrProvince gt lt xades PostalCode gt 94000 lt xades PostalCode gt lt xades CountryName gt France lt xades CountryName gt lt xades SignatureProductionPlace gt lt xades SignedSignatureProperties gt lt xades SignedData0bjectProperties gt lt xades Commitm
15. sur le wiki la fin du stage Certains de ces manuels sont joints en annexe ce rapport Chapitre 3 Pr liminaires Dans ce chapitre on va pr senter des notions de base n cessaires pour la compr hension de la suite du rapport La premi re section introduit des notions de base de la cryptographie cl publique La section suivante pr sente XML et quelques technologies li s qui seront utilis es dans la suite Enfin la derni re section introduit diff rents formats de signatures qui seront d taill s dans les chapitres suivants 3 1 Introduction la cryptographie Aujourd hui de plus en plus de transactions sensibles se font sur Internet ou des r seaux simi laires Ces transactions peuvent passer par un certains nombre de serveurs interm diaires Cela rend possible pour des entit s malicieuses d intervenir sur les donn es chang es de plusieurs fa on diff rentes a savoir coute clandestine ou Eavesdropping les donn es ne sont pas alt r es mais leur confiden tialit est compromise Alt ration des donn es ou Tampering les donn es originales sont intercept es et modifi es puis envoy es au destinataire initial Usurpation d identit ou Impersonation les donn es ne sont pas envoy es par la personne que le destinataire croit tre l exp diteur du message D pendant de la nature et l importance des transactions ces attaques peuvent tre fatale aussi bien
16. TransformsType gt lt sequence gt lt element ref ds Transform maxOccurs unbounded gt lt sequence gt lt complexType gt lt End Reference gt lt element name DigestMethod type ds DigestMethodType gt lt complexType name DigestMethodType mixed true gt lt sequence gt lt any namespace other processContents lax minOccurs 0 maxOccurs unbounded gt lt sequence gt lt attribute name Algorithm type anyURI use required gt lt complexType gt lt End SignedInfo gt lt Start KeyInfo gt lt element name KeyInfo type ds KeyInfoType gt lt complexType name KeyInfoType mixed true gt lt choice maxOccurs unbounded gt lt element ref ds KeyName gt lt element ref ds KeyValue gt lt element ref ds RetrievalMethod gt lt element ref ds X509Data gt lt element ref ds PGPData gt lt element ref ds SPKIData gt lt element ref ds MgmtData gt 56 Cryptolog Rapport de PFE ENSEIRB lt any processContents lax namespace other gt lt 1 1 elements from 0 unbounded namespaces gt lt choice gt lt attribute name Id type ID use optional gt lt complexType gt lt element name KeyName type string gt lt element name MgmtData type string gt lt element name KeyValue type ds KeyValueType gt lt complexType name KeyValueType mixed true gt lt choice gt lt element ref ds DSAK
17. a un grand nombre de destinataires un tel packaging brut devient rapidement inutilisable du faite qu il manque d une structure bien d finie D ou la n cessit de formats de signature structur s et permettant de transporter les infor mations n cessaires la validation Les deux formats les plus connus sont les suivants 13 Cryptolog Rapport de PFE ENSEIRB CMS 19 Cryptographic Message Syntax CMS est un standard de l IETF qui d finit une syntax permettant de signer ou chiffrer tout contenu num rique La syntaxe de CMS est bas sur le format ASN 1 1 Abstract Syntax Notation One ASN 1 tant une notation formelle permettant de d crire de fa on abstraite des donn es structur es XMLDSIG 17 XML Digital Signature XMLDSIG est d finit par le W3C et l IETF Il utilise XML comme support pour transporter l ensemble des donn e formant la signature De ce faite il b n ficie de toute la flexibilit qu offre XML en terme de structuration de donn es Le chapitre suivant d taillera la syntaxe ainsi que les processus de g n ration et validation des signatures XML 14 Chapitre 4 XMLDSIG XML Digital SIGnature 4 1 Introduction Le standard XMLDSIG 17 est le r sultat du travail du groupe XML Signature WG qui est un groupe conjoint du VV3C et de l IETF De ces travaux sont issus une Recommandation gt du W3C et un Standard track de l IETF XML Signature Syntax and Processing RF
18. autres seront abord es dans le chapitre des tests d int rop rabilit voir chapitre 7 6 3 2 Solution impl ment e XAdES tant une extension de XMLDSIG son API utilise naturellement l API pr c dente Cette utilisation peut se faire de deux fa ons diff rentes 1 la premi re fa on consiste impl menter une classe XAdESSignature qui h rite de la classe XMLSignature repr sentant une signature XML en ajoutant les propri t s et les traitements ajout s par XAdES Cette solution exige que la lecture d un document XML doit dans tous les cas donner des instances de XAdESSignature puisqu une instance de XMLSignature ne peut pas tre trait comme une signature XAdES la deuxi me solution consiste utiliser le faite que XAdES est une extension de XMLDSIG dont toutes les information sont transport s dans un l ment XML Object Une signature XAdES est donc repr sent e comme toute autre signature XML par une instance XMLSi gnature dont la m thode getAttachedObject permet de r cup rer les information sp cifiques XAdES Ind pendemment des formats des signatures contenues dans un document XML XAdES ou autre format compatible avec XMLDSIG la lecture donne des instances de XML Signature C est la solution choisie et impl ment e L API XAdES est divis en deux parties i Projet open source www openxades com 38 Cryptolog Rapport de PFE 1 Un ensemble de classe repr sentant les pro
19. cette redondance on peut utiliser un l ment Manifest pour transporter la collection des ressources puis r f rencer cet l ment par toutes les signatures Le processus de validation de XMLDSIG est d finit tels que l chec de l tape de validation des r f rences implique l chec de tout le processus de validation voir la section 4 2 3 Ce comportement peut ne pas tre d sirable par certaines applications qui veulent g rer d une autre mani re la validation des l ments Reference par exemple une application peut se limiter un nombre de r f rences minimal valides pour passer la deuxi me tape de la validation de la signature Cela peut se r aliser en utilisant un Manifest En effet dans ce cas la seule Reference a valider est celle qui d signe la structure XML du Manifest La validation de l ensemble des Reference transport s devient une responsabilit de l application et non plus du processus de validation d finit dans le standard XMLDSIG XAdES 6 3 1 Solutions existantes La sp cification ETSI de XAdES 9 est relativement r cente derni re version en 2006 Pour W3C XAdES est encore dans le stade d une note et non pas une recommandation Cependant il existe comme m me plusieurs impl mentations le plus souvent partielles de XAdES On cite principalement les impl mentations de IAIK et Baltimore ainsi qu une impl mentation libre dans le cadre du projet OpenXadesit Ces impl mentations ainsi que d
20. de XMLDSIG En particulier il est utilis par les signatures enveloppantes pour envelopper le contenu sign Il galement utilis comme conteneur de plusieurs structures optionnelles Certains de ces structures seront abord es dans les sections suivantes L l ment SignatureProperties Cet l ment optionnel permet de transporter des propri t s qualifiant les ressources sign es ou le signataire La notion de priopri t de signature peut tre vue comme l quivalent des attributs CMS voir section 72 Il permet par exemple de porter des information sur l heure de signature le num ro de s rie du mat riel cryptographique utilis pour la g n ration de la signature etc Cet l ment doit obligatoirement tre contenu dans un l ment Object Il peut tre facultative ment sign pour transporter des propri t s sign es 26 Chapitre 5 XAdES XML ADvanced Electronic Signatures XAdES 32 est une extension de XML Digital Signatures L extension concerne notamment le domaine de la non r pudiation en d finissant des formats XML pour les Signatures lectroniques avanc es susceptibles de rester valides pendant de grandes p riodes conform ment la Directive Europ enne 1999 93 EC 4 XAdES est le r sultat des traveaux de l ETSI dans ce domaine Une note W3C reprend ces sp cifications en vue d une future recommandation W3C 5 1 Contexte juridique Le cadre juridique d finissant le statu
21. de res sources locales ou distantes Dans le cas ou le document signer est en XML la combinaison de cette syntaxe avec Xpointer 41 voir 3 2 permet m me de r f rencer des fragments sp cifiques dans le document signer Prenons comme exemple les deux l ments Reference suivants Exemple d l ments Reference 1 lt SignedInfo gt 3 E URI http www test com document xml gt 5 lt Raterenes gt 7 eRetenende URI toSign gt 9 Za paas 10 u lt SignedInfo gt 12 13 16 Cryptolog Rapport de PFE ENSEIRB 14 lt Important Id toSign gt is Sign me 16 lt Important gt 17 18 La premi re R f rence ligne 3 avec PURI http www test com document xml toSign indique que le premier contenu sign est le fichier distant document xml h berg sur le serveur du site www test com La deuxi me r f rence ligne 7 avec PURI plus courte toSign r f rence un contenu local situ dans le m me document XML que la signature Ce contenu est identifi grace a son attribut Id lignes de 14 16 Regardons maintenant de plus pres l l ment Reference Sa structure simplifi e est la suivante o indique que l l ment peut appara tre une ou plusieurs fois indique que l l ment peut apparaitre au plus une fois lt Reference URI gt lt Transforms gt lt Transform gt l
22. des plus importantes exigences Ce probl me a t r solu en partie gr ce des algorithmes de canonicalization Ces algorithmes permettent de r gulariser un contenu XML en d finissant la notion de contenus logiquement quivalents chapitre 4 En contre part le lib ralisme de XML offre une grande flexibilit quand la production des signatures Selon les besoins une signature XML peut soit tre envelopp e dans la ressource signer soit enveloppante en encapsulant le contenu sign La structuration XML permet aussi la cr ation de toute sorte de hi rarchie entre signatures et contre signatures dans un m me document XML L API d velopp e reste incompl te par rapport aux possibilit s offertes par les signatures XML Le meilleur moyen de continuer le d veloppent de ces API est de d velopper des modules par profil adaptant XMLDSIG et XAdES un domaine d utilisation particulier Un exemple de profils est OASIS Web Services Security WSS 29 d crivant l utilisation de XMLDSIG pour garantir l int grit des changes de messages entre les services web 47 Bibliographie DAD 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ASN 1 04 ASN 1 Information site Introduction to ASN 1 Disponible sur http asnl elibel tm fr en C14N 01 Canonical XML Version 1 0 W3C Recommendation 15 March 2001 CRYPTO 98 Sun Documentation Intr
23. e Whether or not to support multiple signature verification Each profile may have an additional configuration file to specify specific supported options and signature policies Document generated by Confluence on Jul 30 2007 16 08 Page 5
24. factures par des supports nu m riques la s curit qui porte sur l authentification et l int grit des ces transactions devient primordiale La signature lectronique est un des proc d s de base qui permet de garantir la s curit authentification et int grit des transactions num riques en vue de leur donner des valeurs l gales Messagerie s curis e Dans le m me cadre la messagerie sur internet repr sente de plus en plus un des moyens de communication le plus utilis Le chiffrement des messages chang s permet de garantir leur confidentialit et int grit Parmi les principaux produits Cryptolog voir figure 2 1 on peut citer 2 3 Cryptolog Identity une IGC le noyau central de tout projet de gestion des identit s num riques Cryptolog Unicity un syst me innovant de stockage centralis des cl s priv es vous permet tant de d ployer une solution de gestion des identit s num riques sans n cessiter de support physique carte puce token USB pour chaque utilisateur Cryptolog WebPass une applet d authentification et de certification pour tout navigateur web Cryptolog Unicity plug in l quivalent logiciel d un lecteur de carte puce Cryptolog Eternity un serveur d horodatage apportant la preuve qu une action a bien t effectu e un moment pr cis Cryptolog Universal Token Interface CUTE un outil de gestion des certificats num riques agissant comme interface entre n
25. galement d un ensemble d outils et technologies facilitant la manipulation et le transport du contenu num rique Dans ce cadre tout un ensemble de standards bas s sur XML ont t d finis pour lui associer une s curit primordiale pour tout langage de transport de donn es sur Internet digne de ce nom XML Signature Syntax and Processing 17 une recommandation d finie conjointement par PIETF et W3C est le standard de base permettant de d crire en XML une signature num rique ayant toutes les propri t s d une signature num rique classique savoir l int grit et l authentification Avec la criticit croissante des transactions et changes tablis sur Internet ainsi que les am liorations progressives des outils de s curit un cadre juridique adapt la notion num rique et immat rielle de la signature a suivi le d veloppement de l Internet La directive europ enne 1999 93 CE 4 d finit dans ce cadre un format de signature dit Signature volu e qui associe un document num rique sign un caract re l gal et juridique XML Advanced Electronic Signa ture XAdES 32 une specification technique de PETSI d finit un format de signature bas sur XMLDSIG 17 et conforme aux modalit s de la directive europ enne 1 2 2 Objectifs et r sultats Objectifs Les objectifs de ce stage ont t fix s comme suit 1 Faire une tude approfondie des standards XMLDSIG et XAdES en particulier et les
26. ia Ri woe a a on re dd A 40 4 6 Chiffrement d chiffrement cl secr te 9 Chiffrement d chiffrement cl publique 10 Production d une signature num rique 12 Les types de signatures XML 22 La structure simplifi e d une signature XML 24 Signature num rique volu e 28 Signature num rique volu e forme XAdES C 30 Diagramme de classe du package xml 33 Diagramme de classe du package xmldsig 39 Diagramme de classe du package xades 39 Diagramme de classe du package xades helper 39 Chapitre 1 Introduction 1 1 Rappel du sujet de stage Le sujet du stage valid par l cole est tude et impl mentation des standards XMLDSIG XML Signature Syntax and Processing et XAdES XML Advanced Electronic Signatures pour les int grer dans la suite dans des solutions de gestion de PKI Public Key Infrastructure En plus de stage de PFE le m me sujet a servi comme stage de Master recherche Ce rapport reprend des parties du m moire du Master soutenu le 16 Juin en mettant plus en relief les aspects conception et impl mentation Le stage s est d roul principalement en deux parties 1 Lecture et compr hension du standard XMLDSIG 17 sp
27. importe quelle IGC et tout token physique ou logiciel Cryptolog OCSP responder un outil de v rification en temps r el de la validit des cer tificats Environnement technique Tous les d veloppements ont t effectu avec Java dans un environnement de d veloppement classique poste de travail Linux emacs comme diteur de sources et cvs pour la gestion des versions L entreprise utilise pour la gestion des biblioth ques java l outil Maven Cet outil permet en se basant sur des fichiers de description en XML de compiler les projets et g n rer la documentation IGC Infrastructure de Gestion de cl s T Apache Maven http maven apache org Cryptolog Rapport de PFE ENSEIRB Produits CRYPTOLOG ETERNITY Sarvaur d horodutage OCSP RESPONDER UNICITY corvaur de cartes amp puce virtuelles PKI d autres fourmesscura UNICITY PLUG IN Clt USB E Carte a puce ExaCard ES FIG 2 1 Les produits Cryptolog ainsi que plusieurs rapports permettant la maintenance du code source D autre part l entreprise utilise le wiki Confluencet comme moyen de documentation et travail collaboratif Le d veloppement des diff rents biblioth ques de ce stage a t pr c d par l criture Confluence http www atlassian com software confluence Cryptolog Rapport de PFE ENSEIRB d une documentation en anglais sur cet outil Des manuels d utilisation ont t aussi r dig
28. ou m me d signer une ressource distante ou le v rificateur peut trouver cette information Il est la charge de l application qui v rifie la signature de d cider de degr de la confiance donner aux diff rentes structures contenues dans cet l ment On va d crire dans cette section certains mais pas toutes les structures du Keylnfo permettant de transporter des donn es de validation Le sch mas XML de cet l ment pr voit aussi un l ment ouvert qui peut tre utiliser pour incorporer des donn es cryptographiques sp cifiques l utilisateur non d finis dans XMLDSIG L l ment KeyName Cet l ment peut simplement contenir un identifiant qui identifie de fa on directe ou indirecte la cl publique du signataire Cet identifiant peut tre un index de cl un nom distinctif DN une adresse mail etc Les l ments RSA Keu Value et DSA Key Value Ces deux l ments permettent respectivement de transporter des cl s publiques RSA et DSA Au plus un de ces deux l ments peut tre pr sent et il doit correspondre au algorithme de signature utilis Les param tres de la cl sont naturellement encod en Base64 TDN Distinguished Name 25 Cryptolog Rapport de PFE ENSEIRB L l ment X509Data Cet l ment peut transporter plusieurs structures reli es aux standards X 509 15 Parmi ces structures on cite Des identifiants de certificat Un signataire peut d signer le certificat contenant s
29. result any information required by the client and optionally the updated signature 7 returns the response to the client a Like for the SignRequest the server may parameterize its verification process using the selected profile the ServicePolicy option and the ClaimedIdentity option if present To get the signer certificate step 3 and validate it the server can use the validation data provided into the signature and other input options In particular the client can provide additional validation data certificate chain CRLs in an AdditionalKeyInfo option Document generated by Confluence on Jul 30 2007 16 08 Page 4 The figure bellow summarizes the interactions between the server modules to handle a VerifyRequest i 1 Request i Signature PKI handler i module module getsignerid sign ature VerifyRequest signature profile options f signer Id extra validation data S Validate signerid extra validatidn data signer publicKey i Validate publicKey signature status signature information uptiatelattributes upHated signature 4 VerifyResponse constructor profile request result i output options Server configuration To parameterize the server process it may be configured The main configuration parameters e The supported signature formats e The supported DSS profiles e The supported input options e The default signature policy and additional supported policies
30. tant d j largement utilis sur Internet une grande multitude d impl mentations libres ou commerciales existe d j pour XML Ces diff rentes impl mentations sont conformes l un des deux mod les les plus connus de traitement de contenu XML savoir DOM Document Object Model 5 et SAX Simple API for XML 24 La diff rence majeure consiste dans la mani re le document XML d entr e est trait SAX permet de faire des traitements bas s sur des v nements 24 comme lecture d une balise ouverte lecture d un attribut Il n est pas n cessaire de lire la totalit du document pour effectuer un traitement DOM offre une vue logique globale sur le document XML en le repr sentant sous forme d un arbre 5 Pour cela la totalit du document est mise en m moire Pour la validation de la signature on a videmment besoin de la totalit du document pour l valuation des expressions XPath pour la r solution des URI locales etc D o le choix du mod le DOM 6 1 1 Solutions existantes Les impl mentations DOM sont assez abondantes Les plus connus sont Xercer JDOM et XOM Il n tait pas dans le but du stage de d velopper une nouvelle impl mentation Java lui m me offre partir de sa version 1 5 plusieurs outils XML y compris XPath Cependant pour des Apache Xerces http xerces apache org TJDOM http www jdom org XOM http www xom nu 31 Cryptolog Rapport de PFE ENSEIRB ra
31. C 3275 La recommandation W3C d finit les r gles syntaxiques ainsi que les processus de g n ration et validation des signatures XML Etant bas sur XML XMLDSIG b n ficie de plusieurs technologies li es ce support de donn es comme XPath XPointer et XSLT voir la section 3 2 La combinaison de ces outils offre une grande flexibilit XMLDSIG permettant par exemple de transformer un document avant de le signer ou de signer seulement certaines parties d un document donn e Ces m canismes seront d taill s dans les sections qui suivent Les signatures XML peuvent tre repr sent es sous une vue structurelle et une vue fonctionnelle La premi re section de ce chapitre pr sente la vue fonctionnelle en d taillant les processus de production et validation d une signature XML La section suivante pr sente la vue structurelle en d taillant les structures qui composent ces signatures 4 2 Vue fonctionnelle processus de g n ration et validation Produire une signature XML revient produire un document XML selon des r gles syntaxiques d finit par la recommandation W3C 17 Une signature XML a la structure simplifi e suivante lt Signature gt lt SignedInfo gt lt SignedInfo gt lt SignatureValue gt lt KeyInfo gt lt KeyInfo gt 15 Cryptolog Rapport de PFE ENSEIRB lt Signature gt La signature comporte donc trois parties principales SignedInfo contient le contenu effectivement couvert p
32. CertCRLTimestamp tsp bytel void addArchiveTimestamplisp byte void build XMLSignature addSignatureTimestamp void addESCTimestamp void addCertCRLTimestamp void addArchiveTimestamp void addCompleteCertificateRefs void addCompleteRevocationRefs void addCertificateValues void addRevocationValues void doTSP input byte bytel addProperty prop XMLProperty void BPESBuilder target String si Signedin o getQualifyingProperties QualifyingProperties build Signedinfo addSigningCertificate certs Vector void addCommitmentTypelndication commitment String void addDataObjectFormat refindex int description String void addAllDataObjectsTimeStamp tsa TSADialog void addSignaturePolicyld sigPolicyldentifier String sigPolicyHashAlgo AlgorithmParameters sigPolicyHashValue byte void addSignatureProductionPlace city String stateOrProvince String postalCode String country String void addSigningTime void addCounterSignature xmis XML Signature void addTimeStamp prop GenericTimeStampProperty tsp bytel void ExtendedSignature ExtendedSignature xmls XMLSignature getQualityingProperties QualifyingProperties getQualifyingPropertiesObject XMLObject getSignatureType qp QualifyingProperties int getSignatureType xmls XMLSignature int getSignatureType xmls XMLSignature qualProps
33. ClaimedIdentity option if present 9 e the KeySelector option if present The client can use this option to give indications identifiers certificates about the key to use e The user session carried from the authentication layer Thus the server needs to communicate with a Key module RemoteToken to get the private key a SignatureGenerator When the authenticated user has permissions to use a set of private keys he should select a specific key using the KeySelector option which must provide an identifier mapped to a unique key When an advanced signature is required XADES or CADES the server may need to produce the signature under a specific signature policy The server can either e use always the same signature policy e or manage a store of signature policies and allow the client to select a specific one using the ServicePolicy option B The form the incorporated properties of the produced signature depends on three parameters A property is added to the signature if it is implied by at least one of the following parameters Document generated by Confluence on Jul 30 2007 16 08 Page 2 1 The selected signature policy unsigned and signed mandated properties 2 The Properties option if present The values carried into this option may be ignored if already implied by the signature policy 9 3 The SignatureForm option This option is used only if it implies properties which are not already added by the two pre
34. DTD Document Type Definition DOM Document Object Model DSA Digital Algorithm Signature DSS Digital Signature Standard ETSI European Telecommunications Standards Institute HTTP HyperText Transfer Protocol IETF The Internet Engineering Task Force IP Internet Protocol MD5 Message Digest 5 OCSP Online Certificate Status Protocol OID Object Identifier PKCS Public Key Cryptography Standards RFC Request For Comments SAML Security Assertion Markup Language SAX Simple API for XML SOAP Simple object access protocol SHA1 Secure Hash Algorithm 1 UDDI Universal Description Discovery and Integration URI Uniform Resource Identifier URN Uniform Resource Name W3C World Wide Web Consortium WSDL Web Services Description Language XADES XML ADvanced Electronic Signature XACML XML Access Control Markup Language XML eXtensible Markup Language XMLDSIG XML Digital SIGnature 50 Exemple d une signature XADES La signature XADES C suivante a t produite par l impl mentation de XADES d velopp dans le cadre de ce stage Elle signe deux ressource XML identifi es par toSign r f rence un contenu XML attach au m me document XML mais a l ext rieur de la signature SignMe r f rence un contenu XML envelopp dans la signature La forme XADES contient
35. L peut tre utilis comme un support g n rique de donn es permettant de s parer le contenu de la forme Ce qui permet par exemple de manipuler le m me contenu par des applications diff rentes Depuis avoir t reconnu comme une recommandation du W3C XML est devenu un des supports les plus utilis s sur le web Plusieurs technologies et outils ont suivis pour faciliter la manipulation des documents XML Les sections suivantes pr sentent certains de ces outils qui seront utilis s dans la suite 11 Cryptolog Rapport de PFE ENSEIRB Signature Hachage _ Chiffrement SHA1 avec la cl priv L exp diteur Transf rer le messages sigin Le destinataire D chiffrement 4 avec la cl ublique Hachage PARIA SHA1 Comparer Fic 3 3 Production d une signature num rique 3 2 1 Outils XML Espaces de noms et sch mas XML Un des points fort de XML est son extensibilit qui offre une libert totale sur les noms et la structure des l ments d un document Cependant cette libert peut engendrer des ambigu t s pour les applications changeant des donn es XML du faite que la structure de ces donn es peut tre al atoire Il est donc n cessaire de disposer d un moyen permettant de fournir l application un sch mas jouant le r le d un contrat qui sp cifie l avance les structures que l application est cens e pouvoir traiter Le standard XML Schema 37 d finit par le W3C permet d
36. Le terme march de la cryptographie est g n ralement utilis pour d signer le domaine d acti vit des entreprises qui proposent des solutions compl tes en cryptographie destin es des utilisa teurs qui ne connaissent pas n cessairement ce domaine C est le domaine d activit de l entreprise depuis sa cr ation Cryptolog dispose actuellement d un ensemble de solutions compl tes qui peuvent r pondre aux plus important des besoins en mati re de gestion des identit s et de certification nu m rique Le p le R amp D de l entreprise participe galement plusieurs projets de recherche fran ais et europ ens 2 2 Produits Cryptolog Les produits Cryptolog couvrent principalement les besoins suivants Cryptolog Rapport de PFE ENSEIRB Authentification forte L utilisation d un syst me d authentification forte la place d un syst me d authentification traditionnel permet d obtenir des preuves formelles de l identit de toute personne acc dant des donn es sensibles contribuant ainsi r duire la fraude et les usurpations d identit L authentification forte est bas e sur l utilisation en plus des para m tres d identification traditionnels comme un couple identifiant mot de passe de donn es d authentification suppl mentaires comme des certificats num riques Signature lectronique Avec la tendance de d mat rialisation des proc dures qui m ne vers la substitution du papier comme support des contrats et
37. ML Signature Syntax and Processing RFC 3275 XML Signature Requirements RFC 2807 Signature XPATH Filter 2 0 RFC 3653 Additional XML Security URIs RFC 4051 Canonical XML 1 0 RFC 3076 Exclusive XML canonicalization 1 0 RFC 3741 La premi re tache qui m est demand e est la r daction d un document pr sentant le standard XMLDSIG les contextes possibles de son utilisation ainsi que des choix d impl mentation Apr s cette tude suivra l criture d un ensemble d interfaces Ces interfaces constitueront en plus de la RFC de XMLDSIG le cahier des charges de l impl mentation La biblioth que doit tre conforme le plus possible aux sp cifications pour garantir l interop rabilit Par exemple un document sign avec l impl mentation de Java 6 doit pouvoir tre valid par la biblioth que et vice versa D autre part l impl mentation ne doit utiliser que les biblioth ques internes de l entreprise en tout ce qui concerne fonctions cryptographique hashage certificat ou signatures L utilisation de VAPI standard de Java doit se restreindre ce qui est disponible a partir de java 1 2 Il y a aussi une contrainte sur la taille de la biblioth que d velopper Celle ci va devoir s int grer dans une Applet java a taille r duite et qui permet de cr er valider plusieurs types de signatures Planning Documentation Documentation Rapports XMLDSIG Impl mentation AMES Manuels Interfaces Tests Implem
38. Sciences Technologies confidentiality Integrity authenticity UNIVERSIT BORDEAUX 1 SZ Rapport de stage de fin d tudes ENSEIRB 13 PRCD Signatures num riques volu es en XML XMLDSIG et XAdES MOEZ BEN MBARKA Encadr par JULIEN STERN DOCTEUR EN CRYPTOGRAPHIE CRYPTOLOG THOMAS PORNIN DOCTEUR EN CRYPTOGRAPHIE CRYPTOLOG ANTOINE ROLLET DOCTEUR EN INFORMATIQUE ENSEIRB 23 septembre 2007 Remerciements Je tiens remercier toutes les personnes qui ont aid la r alisation de ce rapport Je com mence par citer tous mes professeurs 1 ENSEIRB et l universit de Bordeaux 1 Je remercie en particulier Mr Mosbah qui m a encourag faire ce stage dans ce domaine qui est la cryptographie Je remercie galement mes encadreurs dans l entreprise Julien Stern et Thomas Pornin ainsi que tous les employ s d veloppeurs et commerciaux qui ont tout fait pour que le stage se d roule en bonnes conditions R sum Actuellement de plus en plus d ordinateurs sont interconnect s Internet ou des r seaux similaires De tels r seaux ont la vocation de devenir la plate forme universelle d change de produits et de services La s curisation des transactions travers ces r seaux devient donc primordiale La signature num rique est un des services de base de tout syst me d information s curis Elle est une composante fondamentale des transactions effectu es sur Internet Bas e sur des stand
39. a cl pu blique par plusieurs fa ons en donnant le nom distinctif de l autorit de certification qui l a g n r et le num ro de s rie du certificat dans un l ment X509IssuerSerial en donnant le nom distinctif du propri taire du certificat dans un l ment X509SubjectName A noter que cette information toute seule peut ne pas tre suffisante pour identifier un cer tificat En effet une personne peut avoir plusieurs certificats diff rents pour des utilisation diff rentes et naturellement des pairs de cl s diff rentes en donnant l extension SubjectKeyldentifier de X509v3 15 qui fournis un moyen d identifier un certificat contenant une cl publique particuli re Cette extension peut tre transport dans l ment X509SKT Des certificats Un signataire peut aussi fournir directement le certificat contenant sa cl pu blique ou une chaine de certificats aboutissant au certificat contenant la cl Un certificat est encod en Base64 et transport dans un l ment X509Certificate Des CRLs De m me une signature peut contenir une ou plusieurs CRL li es aux certificats donn es Ces CRLs sont encod s en Base64 dans des l ments X509CRL L l ment Object Cet l ment est d finit dans XMLDSIG comme un l ment de contenu ouvert Bien qu optionnel il a plusieurs utilisations pratiques Il peut tre utilis pour int grer un contenu XML dont les structures sont ext rieures au espace des noms
40. age en clair chiffr en clair FIG 3 2 Chiffrement d chiffrement cl publique Les certificats num riques La cryptographie asym trique est bas e sur la publication et le partage des cl publiques Ce partage peut s effectuer travers des annuaires LDAP 14 Lightweight Directory Access Protocol Cela rend l annuaire une cible id ale pour des attaques d usurpation d identit Une personne ma licieuse peut simplement remplacer une cl publique dans l annuaire par sa propre cl publique pour se faire passer pour une autre personne Ainsi il sera capable de d chiffrer tous les messages qui vont tre chiffrer avec la mauvaise cl publique l intention de la personne poss dant la cl publique initiale La notion de certificat est apparue pour rem dier ce probl me Un certificat permet d identifier une personne ou une entit en lui associant une cl publique Il peut tre vue comme l quivalent num rique d une carte d identit classique Lorsqu un utilisateur d sire communiquer avec une autre personne il lui suffit de se procurer le certificat du destinataire Ce certificat contient le nom du destinataire ainsi que sa cl publique et est sign par l autorit de certification qui a d livr le certificat Les CRL Certificate Revocation List ou Liste de Certificats R voqu s Comme une carte d identit standard ou un permis de conduite un certificat peut tout moment tre suspendu par l au
41. aphiques certificats CRL pour permettre au destinataire de son message de v rifier la signature et son authenticit Ces in formation peuvent tre transport s dans l l ment KeyInfo A noter qu une signature XML garantit simplement qu un contenu donn e a t sign par une cl priv donn e donc garantit l int grit du message et son authentification mais ne garantit pas l identit du signataire Cependant elle permet de transporter les information n cessaires pour permettre au destinataire de le v rifier par des moyens ext rieurs par v rification d une chaine de certificats menant du certificat du signataire une CA de confiance par exemple R sumons finalement les tapes de production d une signature XML 1 Assembler l l ment SignedInfo a Pour toute ressource signer former un l ment Reference avec l URI les algorithmes de transformations l algorithme de hachage et la valeur du hach b Ajouter les l ments SignatureMethod et CanonicalizationMethod sp cifiant respective ment l algorithme de signature et l algorithme de canonicalization 2 Normaliser la repr sentation XML du SignedInfo en appliquant l algorithme de canonicaliza tion d ja choisit 3 Appliquer l algorithme de signature au r sultat de la canonicalization pour cr er l l ment Signature Value avec la valeur de la signature 4 Eventuellement ajouter des information de validation dans un l ment Keylnfo 4 2 2 Ty
42. ar la signature SignatureValue La valeur de la signature Reylnfo contient les information cryptographiques n cessaires la validation de la signature De fa on simple La production consiste produire l l ment Signature Value en appliquant l algorithme de la signature sur l l ment SignedInfo La validation consiste v rifier cette valeur de la signature en utilisant les information transport dans Keylnfo Les sections suivantes d taillent les processus de g n ration et validation ainsi que les types de signatures XML 4 2 1 Production des signatures XML La premi re tape consiste former l l ment SignedInfo Cet l ment la structure simplifi e suivante o indique que l l ment peut appara tre une ou plusieurs fois et indique que l attribut peut apparaitre au plus une fois lt SignedInfo gt lt CanonicalizationMethod gt lt SignatureMethod gt lt Reference URI gt lt SignedInfo gt XMLDSIG permet de signer tout type de contenu num rique Le contenu signer est adress avec un ou plusieurs l ments Reference Ceci permet une seule signature XML de signer plusieurs ressources distribu es Chaque ressource est r f renc en utilisant la syntaxe des URI 20 La section suivante d taille les m canismes utilis s par les l ment Reference Adresser les ressources sign es La syntaxe des URI 20 offre un moyen simple et extensible pour r f rencer tout type
43. ards de la cryptographie cl publique elle offre l quivalent num rique de la signature papier classique et elle peut garantir l int grit l authentification et la non r pudiation Avec la criticit croissante des changes tablis sur Internet ainsi que les am liorations progressives des outils de s curit un cadre juridique vient compl ter l ensemble La directive europ enne 1999 93 CE d finit un format de signatures dit signatures volu es associant une valeur juridique et l gale la notion de la signature num rique D autre part XML se pr sente actuellement comme le support de donn es le plus populaire sur Internet Par sa flexibilit et sa g n ricit XML semble le moyen le plus adopt pour changer des donn es entre des applications h t rog nes et distribu es D o le besoin de le doter d outils n cessaires pour le rendre un moyen de transport de donn es aussi s r qu efficace Dans ce cadre un ensemble de standards et recommandations ont suivi pour d finir des moyens permettant de s curiser les changes de messages XML XML Signature Syntax and Processing XMLDSIG une recommandation W3C est l un des premiers de ces standards Cette recommandation d finit des r gles pour la production et la validation des signatures XML D autres standards ont gale ment suivi pour couvrir d autres besoins en s curit comme la confidentialit et la gestion des cl s Suite la l galisation jurid
44. ature Le cas le plus simple est quand la signature est d tach e Le contenu sign est donc r f renc par une URI externe voir section 4 2 1 Dans ce cas il suffit de cr er un seul object XMLSignature contenant un seul objet Reference avec cette URI La production du document final contenant les deux signature la signature initiale et la co signature ainsi que le contenu sign peut se faire en utilisant les m thodes de la biblioth que com cryptolog ml pour coller les diff rents morceaux Dans le cas ou le contenu est pr sent dans le m me document que la signature la co signature peut n cessiter plus de travail Un effort a t fait dans le d veloppement d une biblioth que g n rique de production de signature pour automatiser la co signature Cependant si on fait pas des hypoth ses sur le type de la signature d entr e la signature co signer la production peut g n rer un document invalide Par exemple si on connait pas au pr alable la position du contenu sign dans le document on peut invalider la premi re signature si on ins re la co signature dans un mauvais endroit 6 2 4 Options non impl ment es Plusieurs options d finis dans la recommandation W3C 17 n ont pas t impl ment s soit par manque de temps ou absence d utilit imm diate Les plus importantes de ces options et qui pourra tre int ressant d ajouter dans les futures versions sont l l ment RetrievalMethod Cet l ment p
45. cifiant les r gles de production et validation des signatures num riques en format XML ainsi que l extension XAdES 32 sp cifiant un format XML pour les signatures volu es conformes la directive europ enne 1999 93 CEl4 2 Impl mentation de ces standards en Java XMLDSIG 17 est devenu une recommandation W3C et de l IETFi depuis 12 F vrier 2002 XAdES 32 est une specification ETSI dont la derni re version a t publi e en Mars 2006 Ces deux documents repr sentent donc les r f rences principales pour ce stage XML Signature Syntax and Processing RFC 3275 XML ADvanced Electronic Signatures ETSI TS 101 903 D autre part la compr hension de ces deux standards exige des acquis dans le domaine de la cryptographie et particulierement la cryptographie cl publique Au cours de ce stage j ai t donc amen la lecture partielle ou compl te des sp cifications de plusieurs standards concernant les signatures num riques les certificats et plus g n ralement la gestion d une infrastructure a cl publique PKI ou Public Key Infrastructure 15 Ces documents seront cit s dans la suite de ce rapport Master recherche l universit de Bordeaux 1 option SDRP Une copie compl te de ce m moire peut tre t l charg ici http uuu enseirb fr benm bark sources paper_fr pdf TETF The Internet Engineering Task Force SETSI European Telecommunications Standards Institute Cryptolog Rapport
46. contenu XML mais aussi tout autre contenu num rique Il est bas sur l utilisation de la cryptographie asym trique a cl s publiques Les sp cifications de ce standard permettent de garantir l authentification du message ainsi que son int grit La non r pudiation n est pas directement garantit mais laiss e la responsabilit de l application D autre part XMLDSIG permet de d finir des transformations a effectuer sur le contenu signer Ces transformations permettent par exemple de signer plusieurs parties d un m me document par plusieurs personnes En particulier XMLDSIG permet de cr er trois types de signatures Signatures d tach es Cas standard Le document XML de la signature est externe a la ressource sign e Signatures envelopp es La signature est contenue dans la ressource sign e Signatures enveloppantes La ressource sign e est contenue dans le document XML de la signature Example d une signature envelopp e dans une requ te SOAP 61 Cryptolog Rapport de PFE ENSEIRB lt SOAP Envelope xmlns SOAP http schemas xmlsoap org soap envelope gt lt SOAP Body gt lt B xmlns n2 gbar gt lt Signature xmlns amp dsig gt lt SignedInfo gt lt Reference URI gt lt Transforms gt lt Transforms gt lt DigestMethod Algorithm http www w3 org 2000 09 xmldsigittshal gt lt DigestValue gt lt DigestValue gt lt Reference gt lt SignedInfo gt lt Signa
47. ct type ds 0bjectType gt lt complexType name 0bjectType mixed true gt lt sequence minOccurs 0 maxOccurs unbounded gt lt any namespace any processContents lax gt lt sequence gt lt attribute name Id type ID use optional gt lt attribute name MimeType type string use optional gt lt add a grep facet gt lt attribute name Encoding type anyURI use optional gt lt complexType gt lt element name Manifest type ds ManifestType gt lt complexType name ManifestType gt lt sequence gt lt element ref ds Reference maxOccurs unbounded gt lt sequence gt lt attribute name Id type ID use optional gt lt complexType gt lt element name SignatureProperties type ds SignaturePropertiesType gt lt complexType name SignaturePropertiesType gt lt sequence gt lt element ref ds SignatureProperty maxOccurs unbounded gt lt sequence gt lt attribute name Id type ID use optional gt lt complexType gt lt element name SignatureProperty type ds SignaturePropertyType gt lt complexType name SignaturePropertyType mixed true gt lt choice maxOccurs unbounded gt lt any namespace other processContents lax gt lt 1 1 elements from 1 unbounded namespaces gt lt choice gt lt attribute name Target type anyURI use required gt lt attribute name Id type ID use optional gt lt complexType gt l
48. de PFE ENSEIRB 1 2 Probl matiques objectifs et r sultats 1 2 1 Contexte g n ral Les r seaux informatiques ouverts tels que l Internet ont t techniquement optimis s pour as surer le transport de donn es Dans cette optique les aspects li s la s curit n taient pas une priorit pour les protocoles tel que IP 12 Or Internet ayant vocation devenir la plate forme universelle d change de produits et de services la s curit devient primordiale Le d veloppement de la cryptographie avec les progr s conjugu s des math matiques et de l informatique ont permis depuis les ann es 1970 de disposer progressivement d une suite compl te de solutions pour assurer les aspects les plus importants de la s curit dans un r seau tels que l Internet savoir l authenti fication la confidentialit et l int grit La signature num rique constitue un service de base de cet ensemble de solutions Dite aussi signature lectronique c est un proc d cryptographique permet tant de garantir l int grit du message sign et l authenticit de son exp diteur Elle peut galement garantir la non r pudiation c est dire emp cher l exp diteur de nier avoir sign le message D autre part XML 34 est devenu actuellement l un des plus importants supports de donn es sur Internet Il s est impos comme moyen g n rique et flexible d change de donn es entre des entit s h t rog nes et distribu es XML dispose
49. de l entreprise L entreprise dans laquelle s est d roul le stage est Cryptolog International Cryptolog est une jeune entreprise sp cialis e en cryptographie et en particulier la gestion des identit s num riques Le stage s est d roul dans le p le R amp D de l entreprise constitu par 2 doctorant en cryptographie 3 ing nieurs et 4 stagiaires Le stage a t encadr par Julien Stern et Thomas Pornin docteurs en cryptographie Cryptolog a t fond en 2001 par trois associ s qui forment encore le bureau directive de l entreprise Alexandre Stern pr sident Avant de fonder Cryptolog Alexandre a travaill aupr s du Directeur de la Strat gie du groupe CS Communications amp Systems Il est dipl m d HEC de la Leonard N Stern School of Business New York University et de l Universit Paris Dauphine Julien Stern directeur R amp D Avant de fonder Cryptolog Julien a effectu des recherches en cryptographie pour plusieurs grandes soci t s parmi lesquelles IBM AT amp T Intertrust et Lucent Technologies Il est titulaire d un Doctorat en cryptographie obtenu l ENS Lyon Thomas Pornin directeur technique Avant de fonder Cryptolog Thomas a travaill pour Gemplus et s est d di la recherche fondamentale dans le domaine de la cryptographie sym trique Il a publi de nombreux articles sur ce sujet et est titulaire d un Doctorat en cryptographie obtenu PENS Paris 2 1 Secteurs d activit
50. de signature la canonicalisation inclusive pour les contenus XML Validation Il s agit de valider les signatures pr sentes dans un document XML La premi re tape consiste a construire des objets XMLSignature repr sentant les signatures pr sentes dans le document v rifier La classe XMLDSigFactory offre une multitude de m thodes unmarshal qui permettent de parcourir un document XML donn e et construire des objets XMLSignature partir des structures XML qu il contient L objet XMLSignature permet ensuite d acc der aux diff rentes information transport es dans la signature La v rification pour chaque XMLSignature peut se faire en trois tapes 1 R cup rer les propri t s sign es et non sign es ainsi que les diff rents objets attach s la signature Le traitement faire de ces donn es d pend du contexte de l application 2 R cup rer l objet Keylnfo contenant toutes les donn es de validation cl publique certificats CRLs Le traitement de ces donn es se fait l ext rieur de XMLDSIG Le v rificateur doit l issue de cette phase s lectionner la cl publique du signataire Autrement la signature ne peut pas tre v rifi et peut donc tre suppos e invalide 3 V rifier la valeur de la signature Cela se fait en appelant la m thode verify qui prend en param tre la cl publique du signataire La classe XMLSignature permet galement d autres sc narios de v rifications On peut pa
51. des DigestMethod Algorithm http www w3 org 2000 09 xmldsig shai gt lt xades DigestValue gt ZsniYJSP5NOayvOpV6i3xd2c1Cw lt xades DigestValue gt lt xades DigestAlgAndValue gt lt xades CRLIdentifier gt lt xades Issuer gt EMAILADDRESS ca officer selso com CN Selso CA 0 Selso L Paris C FR lt xades Issuer gt lt xades IssueTime gt 2007 01 11T07 26 19 0Z lt xades IssueTime gt lt xades CRLIdentifier gt lt xades CRLRef gt lt xades CRLRef s gt lt xades CompleteRevocationRefs gt lt xades UnsignedSignatureProperties gt lt xades UnsignedProperties gt lt xades QualifyingProperties gt lt ds Dbject gt lt ds Signature gt lt crypto SignatureDocument gt 54 Sch mas des signatures XML Ce sch mas n est pas complets et se limite aux structures les importantes Le sch mas complet peut tre trouv ici http www w3 org TR xmldsig core xmldsig core schema xsd lt xml version 1 0 encoding utf 8 gt lt schema xmlns http www w3 org 2001 XMLSchema xmlns ds http www w3 org 2000 09 xmldsig targetNamespace http www w3 org 2000 09 xmldsig version 0 1 elementFormDefault qualified gt lt Start Signature gt lt element name Signature type ds SignatureType gt lt complexType name SignatureType gt lt sequence gt lt element ref ds SignedInfo gt lt element ref ds SignatureValue gt lt element ref ds KeyInfo minOccurs 0 gt lt eleme
52. e Elle sera h rit e par toutes les classes repr sentant des l ments XML 2 com cryptolog xml prop contient les classes de base pour la gestion des propri t s en XML Principalement XMLProperty repr sente une propri t XML Une propri t est un couple nom valeur Elle peut tre d sign e de fagon unique par un OID ou par un couple nom de tag espace de noms XMLPropertyReader d finit un lecteur de propri t s XML pour le d codage de ces propri t s L int r t majeur de cette classe est que la liste des propri t s reconnues peut tre aliment e de facon dynamique en appelant addPropertyClass avec le nom de la balise de d but de la propri t et la classe instancier si cette balise a t trouv dans le document XML 3 com cryptolog xml transforms contient des impl mentations de plusieurs transforma tions bas s sur un contenu XML On cite par exemple les algorithmes de canonicalisation ExclC14nAlgorithm et C14nAlgorithm la transformation XPath 40 XPath Transform la transformation Base64 22 Base64 Transform Toutes ces classes h ritent de la classe abs traite TransformAlgorithm qui impl mente les m thodes de base d une transformation Chaque classe de transformation particuli re doit impl menter une m thode transform qui prend en entr e une instance de XMLData et donne en sortie le r sultat de la transformation aussi dans un X ML Data Chaque transformation sp cifie les types d
53. e il est impossible de trouver une autre entr e qui aurai la m me empreinte num rique Les algorithmes de hachages les plus utilis s sont MD5 Message Digest 5 et SHA1 Secure Hash Algorithm Pour v rifier l int grit d un message le r cepteur calcule de nouveau la valeur du hach et la compare avec celle re u avec le message Si les deux valeurs sont gales il est peu probable que le message ait t alt r Cependant rien ne prouve que le message a bien t envoy par celui qu on croit tre l exp diteur Pour rem dier ce probl me l exp diteur chiffre la valeur du hach avec sa cl priv e La valeur obtenue s appelle la signature num rique Le r cepteur utilise la cl publique de l exp diteur pour d chiffrer la signature et retrouver la valeur de l empreinte Puis applique l algorithme de hachage sur le message initiale et compare les deux empreintes ainsi obtenues Si les deux valeurs sont gales le r cepteur peut tre s r des deux propri t s suivantes 1 Le message re u est exactement le message envoy sans aucune alt ration vue que son hach est correcte 2 Le message a bien t envoy par la personne suppos tre l exp diteur vue qu il a t chiffr par la cl priv associ e la cl publique de cette personne Le sch mas de la figure 3 3 illustre les processus de production et v rification d une signature num rique 3 2 Introduction XML XML 34 Extensible Markup La
54. e d finir de fa on non ambigu la structure de tout document XML Un sc mas XML d finit la structure du document en sp cifiant les noms des balises et les attributs ainsi que la structuration du document XML Schema 37 d finit une multitude de fonctionnalit s assez complexes pour une description totalement non ambigu d un document L annexe 7 3 2 donne par exemple le sch mas d une signature XML D autre part un sch mas XML utilise la notion de vocabulaire en associant un document 12 Cryptolog Rapport de PFE ENSEIRB XML un espace de nom d finit par une URI 20 Uniform Resource Identifier La notion d espace de noms ou vocabulaire a t introduite pour permettre de m langer des contenus XML issus de contextes diff rents sans risque de conflit entre les balises XPath et XPointer XPathj40 XML Path Language est un langage d clarative permettant de sp cifier des che mins dans un arbre repr sentant un document XML XPath est aussi une recommandation de W3C Les expressions XPath sont valu es par rapport un noeud initial repr sentant le contexte de l valuation Ces expressions permettent de s lectionner des noeuds ou des attributs atteignable partir du contexte selon des chemins dans un arbre Toute expression est de la forme axe1 filtre1 pr dicat1 axe2 filtre2 pr dicat2 ou azel et aze permettent de sp cifier le chemin de recherche dans l arbre Les filtres et les pr dicats sont des exp
55. e depuis 1 2 L entreprise pr f re utiliser ses propres biblioth ques cryptogra phique d velopp es en interne ce qui facilitera l utilisation de la biblioth que XMLDSIG par les applications de l entreprise D autre part comme toute application bas e sur XML on a besoin de pouvoir g n rer des documents XML conformes certains sch mas et aussi naviguer dans des structures XML pour en extraire les informations n cessaires A partir de sa version 5 java fournit une biblioth que assez complete pour traiter les documents XML Cependant pour les raisons pr c dentes on est amen e a utiliser des bibliotheques externes compatibles avec des versions plus ancienne de Java Parmi ces biblioth ques les plus connues sont JDOM Xerces XOM 62 Cryptolog Rapport de PFE ENSEIRB Le projet Le projet consiste donc impl menter en premi re partie le standard XML avant d tudier l ajout des fonctionnalit s de l extension XADES D autre part l entreprise dispose d une impl mentation d un standard plus ancien pour les signatures digitales CMS Cryptographie Message Syntax CMS d finit un format pour signer et chiffrer tout type de donn es L impl mentation de XMLDSIG devra tre compatible le plus possible avec les interfaces de CMS pour pouvoir s utiliser de la m me mani re La premi re partie du stage consiste lire le standard XMLDSIG et tudier les technologies li es Les documents de base sont les suivants X
56. enerated by Confluence on Jul 30 2007 16 08 Page 1 Handling the SignRequest The server may handle an authenticated SignRequest in the following steps 1 decodes the client request 2 checks that it is a valid request and that the requested profile and options are supported by the server If it determines that the request is invalid or it contains Unsupported options that can not be ignored it returns a SignResponse containing only a failure code gets the document to sign 4 computes the signature over the document in the appropriate format The server may add additional signed or unsigned attributes if required by the client or implied by the server policy builds a SignResponse 6 if the creation process succeeded adds the signature any optional output required by the client and a SUCCESS code to the SignResponse 7 otherwise adds a FAILURE code to the SignResponse 8 returns the response to the client WwW ul The server may parametrize the signature creation step 4 using e the selected profile e any optional input provided into the SignRequest In particular o the ServicePolicy option which may indicate a specific signature policy the ClaimedIdentity option which may indicate the identity of the client Also for the step 4 the server needs in addition to the document to sign the signer private key This key may be retrieved using e the user profile used to authenticate the client s the
57. enons comme exemple d entr e le document XML suivant L entr e de la canonicalization lt doc gt lt norme titre gt XML auteur W3C gt XML c est la mode lt norme gt lt info gt BlaBlaBla TotoTiti lt info gt lt doc gt La sortie de la canonicalization est le document suivant La sortie de la canonicalization lt doc gt lt norme auteur W3C titre XML gt XML c est la mode lt norme gt lt info gt BlaBlaBla TotoTiti lt info gt lt doc gt Notez principalement deux types de modifications introduites par la canonicalization 1 Les attributs de norme ont t ordonn s alphab tiquement 2 Les espaces insignifiants entre ces attributs ont t supprim s Notez aussi que les espaces dans l l ment info ont t gard s car suppos s signifiants Prenons maintenant un exemple plus compliqu faisant intervenir les espaces de noms voir sec tion 3 2 1 L entr e de la canonicalization lt n0 default xmlns n0 http www A com gt lt ni elemi xmlns nl http www B com gt content lt n1 elem1 gt lt n0 default gt Le r sultat de la canonicalization de l l ment n1 19 Cryptolog Rapport de PFE ENSEIRB La sortie de la canonicalization de ni lt ni elemi xmlns n0 http www A com xmlns n1 http www B com gt content lt n1 elem1 gt Notez que maintenant n1 a acquit u
58. entTypeIndication gt lt xades CommitmentTypeld gt lt xades Identifier Qualifier OIDAsURI gt Tester lt xades Identifier gt lt xades CommitmentTypeld gt lt xades A11SignedData0bjects gt lt xades CommitmentTypeIndication gt lt xades SignedData0bjectProperties gt lt xades SignedProperties gt lt xades UnsignedProperties gt lt xades UnsignedSignatureProperties gt lt xades SignatureTimeStamp gt lt ds CanonicalizationMethod Algorithm http ww w3 org TR 2001 REC xm1 c14n 20010315 gt lt xades EncapsulatedTimeStamp gt lt xades EncapsulatedTimeStamp gt lt xades SignatureTimeStamp gt lt xades CompleteCertificateRefs gt lt xades CertRefs gt lt xades Cert gt lt xades CertDigest gt lt ds DigestMethod Algorithm http wuw w3 org 2000 09 xmldsig shai gt lt ds DigestValue gt 0jtCwgOUJVySFMZWC9fOEWZv H0 lt ds DigestValue gt lt xades CertDigest gt lt xades IssuerSerial gt lt xades X509IssuerName gt EMAILADDRESS thomas pornin cryptolog com CN Test CA 0 Cryptolog L Paris ST Paris C FR lt xades X509IssuerName gt 53 Cryptolog Rapport de PFE ENSEIRB lt xades X509SerialNumber gt 50 lt xades X509SerialNumber gt lt xades IssuerSerial gt lt xades Cert gt lt xades CertRefs gt lt xades CompleteCertificateRefs gt lt xades CompleteRevocationRefs gt lt xades CRLRefs gt lt xades CRLRef gt lt xades DigestAlgAndValue gt lt xa
59. entation Tests F vrier Mars Avril Mai Juin Juillet AC 63 Development XMLDSIG API This page last changed on Jul 26 2007 by benmbarka Introduction This document is intended to explain the use of the XMLDSIG API The main class of the API is the XMLSignature class which represents an XML signature An XMLSignature can be obtained by signing a SignedInfo element which represents the content actually covered by the signature or by unmarshaling an XML document The two cases are discussed in the next sections XML Signature production A typical XML signature is composed of two mandatory elements the SignedInfo and the SignatureValue and one optional element the KeyInfo Method 1 The API can produce an XML signature in four main steps The full code SimpleGenerate java 1 First of all you must create the Reference addressing the data object to sign with an URI Lets say you want to sign only one file a Create the Reference Referdnce ref new Reference toSign null null Algo SHA1 We assume that the file to sign is not an XML file so no need to add any transform algorithm The SHA1 algorithm will be used to digest the signed content b You need now to attach the content to sign Suppose you want to create an enveloping signature the content of the file will be base64 encoded and put into the signature ref attachContent new ContentSource new FileInputStream T FileToSign XMLSignat
60. ermet de d signer un endroit distant o les information de validation de la signature peuvent tre trouv es Cet l ment utilise le m me mod le des Reference en d signant la ressource par une URI Une utilisation pratique de cet l ment est quand un seul document contient plusieurs signature XML qui utilisent une m me cha ne de certificats Pour viter de donner une copie de cette cha ne dans chaque signature on peut la transporter dans un unique endroit dans le document et le r f rencer avec une URI dans des l ments RetrievalMethod l l ment Manifest Cet l ment est aussi optionnel et si pr sent il doit tre transport par un l ment Object voir section 4 3 L l ment Manifest peut transporter une liste ou collection de ressources d sign es par des l ments Reference Plus pr cis ment le Manifest est en m me temps une collection de res 37 Cryptolog Rapport de PFE ENSEIRB 6 3 sources et une ressource puisque lui m me il peut tre r f renc par un l ment Reference Point de vue structure il est comparable une structure SignedInfo sauf qu il ne contient pas des l ments SignatureMethod et CanonicalizationMethod Cet l ment a particuli rement deux utilisations tr s pratique Quand plusieurs signataires veulent signer une m me grande collections de ressources il est regrettable de devoir d signer cette liste dans l l ment SignedInfo de chaque signature Pour viter
61. es En plus de l impl mentation Cryptolog des fichiers de tests issus des impl mentations suivantes vont tre utilis s Apache Nom du produit Apache XML Security Description Impl mente les deux recommandations W3C signature 17 et chiffrement 35 XML Platforme java et c Licence Apache Software Derni re version 1 4 1 Mai 2007 Baltimore Nom du produit Baltimore KeyTools XML Description impl mente les deux recommandations W3C signature 17 et chiffrement 35 XML Platforme java Licence commerciale Phaos Nom du produit Phaos XML Security suite Description Impl mentation des standards signatures XML 17 chiffrement XML 35 XKMS 33 et SAMLS 23 Platforme java Licence commerciale IAIK Institute for Applied Information Processing and Communication Graz Uni versity of Technology Nom du produit IAIK XML Advanced Electronic Signatures XAdES add on for XML Security Toolkit XSECT Description signatures XMLDSIG et XAdES Platforme java Licence commerciale IXRMS XML Key Management Specification SSAML Security Assertion Markup Language 43 Cryptolog Rapport de PFE ENSEIRB Derni re version 1 3 2 7 2 Matrice des tests 7 2 1 XMLDSIG Impl mentation Taille du vecteur de tests D tails couverts par les tests IAIR a algorithmes RSA DSA HMAC
62. es donn es d entr e et de sortie NodeSetData ou OctetStreamData ainsi que les diff rents param tres en instanciant la 32 Cryptolog Rapport de PFE ENSEIRB construction une impl mentation particuli re de la classe TransformParameterSpec Ce package impl mente aussi une classe TransformFactory qui permet d obtenir un algorithme de transformation partir de son URI et ventuellement ses param tres En particulier les algorithmes qui n ont aucun param tre comme la transformation Base64 et la plupart des algorithmes de canonicalisation sont utilis s comme des singletons 4 com cryptolog xml types contient des classes repr sentant des structures XML de base qui seront utilis s dans les autres biblioth ques On cite par exemple XMLDateTime qui impl mente la repr sentation XML normalis e 37 de la date XMLEncapsultedPKIData repr sente une structure XML qui transporte un contenu binaire encod en Base64 22 XMLException NotSupportedURIException XMLContext XMLUtils encoding String xmins Hashtable defaultNamespace String XMLContext XMLContext encoding String XMLContext encoding String namespace String prefix String XMLContext elem Element addXMLNS namespace String prefix String void addXMLNS context XMLContext void setDefaultXMLNS defaultNamespace String String getXMLNSprefix namespace S
63. es les personnes poss dant la cl peuvent chiffrer et d chiffrer un message donn Cependant ces propri t s ne restent vrai que tant que la cl n a pas t divulgu un tiers Si une entit malicieuse acc de cette cl elle peut pas seulement d chiffrer les messages chang s mais aussi en envoyer en se faisant passer comme une des entit s initiales ayant acc s la cl D autre part la cryptographie sym trique devient de plus en plus difficile mettre en oeuvre quand le nombre d utilisateurs voulant communiquer de fa on stir augmente En effet il faut au moins une cl priv pour tout couple d utilisateurs ce qui pose des probl mes de gestion de cl s Un autre probl me fondamental pour la cryptographie sym trique est l change de la cl secr te entre les deux parties communiquantes La confidentialit de cet change est cruciale pour toute les communications suivantes Chiffrement D chiffrement avec la cl avec la cl secr te secr te Message Message Message en clair chiffr en clair Fic 3 1 Chiffrement d chiffrement cl secr te La cryptographie cl publique ou cryptographie asym trique t mise au point peur r soudre en parties les probl mes de gestion de cl s de la cryptographie sym trique Elle peut aussi tre utilis comme solution pour le probl me de l change de la cl secr te 3 1 2 Cryptographie cl publique La cryptographie cl publi
64. explicitement les donn es prot g es D autre part le vecteur de test pour ECOM est beaucoup plus grand et couvre plus de d tails XAdES Cependant l interpr tation correcte de ces fichiers de test n cessitait une validation de tous les donn es certificats CRL et OCSP transport s dans les signature ce qui n tait pas possible au moment de la r alisation des tests Vue que j ai pas pu r cup r la version 1 3 1 de la sp cification XAdES seules les versions 1 1 1 1 2 1 1 2 2 et 1 3 2 sont disponibles sur le site de PETSI cette affirmation est seulement bas e sur les sch mas des plus importantes structures trouv es sur le site de lECOM http www ecom jp LongTermStrage en XAdES01_e pdf 46 Conclusion et perspectives Nous avons expos dans ce m moire l enjeu important de la s curit informatique et en particulier la signature num rique comme un futur rempla ant de la signature papier classique chapitre 3 Nous avons ensuite tudi le proc d de production des signatures au format XML chapitre 4 Avec la la popularisation progressive de la signature num rique un format volu pour les signature XML chapitre 5 a t d finit comme une extension XMLDSIG 17 Ce format permet de produire en XML des signatures conformes la directive europ enne 1999 93 CE 4 lui donnant une valeur juridique Les standards des signatures en XML ne pr sentent aucune innovation en mati re de cryptographie Ils se co
65. eyValue gt lt element ref ds RSAKeyValue gt lt any namespace other processContents lax gt lt choice gt lt complexType gt lt element name RetrievalMethod type ds RetrievalMethodType gt lt complexType name RetrievalMethodType gt lt sequence gt lt element ref ds Transforms minOccurs 0 gt lt sequence gt lt attribute name URI type anyURI gt lt attribute name Type type anyURI use optional gt lt complexType gt lt Start X509Data gt lt element name X509Data type ds X509DataType gt lt complexType name X509DataType gt lt sequence maxOccurs unbounded gt lt choice gt lt element name X509IssuerSerial type ds X509IssuerSerialType gt lt element name X509SKI type base64Binary gt lt element name X509SubjectName type string gt lt element name X509Certificate type base64Binary gt lt element name X509CRL type base64Binary gt lt any namespace other processContents lax gt lt choice gt lt sequence gt lt complexType gt lt complexType name X509IssuerSerialType gt lt sequence gt lt element name X509IssuerName type string gt lt element name X509SerialNumber type integer gt lt sequence gt lt complexType gt 57 Cryptolog Rapport de PFE ENSEIRB lt End X509Data gt lt End KeyInfo gt lt Start Object Manifest SignatureProperty gt lt element name Obje
66. f the content is included within the XML document ENVELOPED ENVELOPING or ATTACHED an external content can be attached to override the default dereferencing process The verification of any validation data certificates CRLs must be done externally before calling the verify method with the public key on the XMLSignature Signature verification sample code Document generated by Confluence on Jul 30 2007 16 07 Page 3 Development DSS Server architecture This page last changed on Jul 05 2007 by benmbarka DSS Server Architecture The aim of the project is to develop a DSS server supporting XML and CMS formats In addition to the DSS core protocols it must also support the ADES profiles Such server should be able to e create an XML or CMS signature e create a XADES or CADES signature in any advanced predefined form e validate any signature form mentioned above and when requested update the given signature by incorporating additional unsigned attributes The basic server architecture Signature module XML Signature CMS Signature module module The server must handle two type of queries SignRequest and VerifyRequest These requests must be received from an authenticated user using a secure channel The DSS paper defines the use of HTTP or SOAP as transport protocols and TLS to manage the security confidentiality and integrity of the communication channel between the client and the server Document g
67. frastructure Certificate and CRL Profile IETF RFC 2459 RFC 2807 99 J Reagle XML Signature Requirments W3C Working Draft 14 October 1999 RFC 3275 02 M Bartel J Boyer B Fox B LaMacchia E Simon XML Signature Syntax and Processing W3C recommendation 12 February 2002 IETF RFC J Boyer M Hughes J Reagle XML Signature XPath Filter 2 0 W3C Recommendation 08 November R Housley Cryptographic Message Syntax IETF RFC July 2004 Uniform Resource Identifier URI Generic Syntax IETF RFC 3986 E Eastlake Additional XML Security URIs IETF RFC The Base16 Base32 and Base64 Data Encodings IETF RFC 4648 curity Assertion Markup Language SAML OASIS Security Services Simple API for XML http www saxproject org SOAP 07 Simple Object Access Protocol Version 1 2 W3C Recommendation Second Edition 27 April 2007 1 SOAP Security Extensions Digital Signature W3C NOTE 06 February 2001 UDDI 02 Universal Description Discovery and Integration OASIS Published Specification Dated 19 July 2002 WSDL 01 Web Services Description Language WSDL 1 1 W3C Note 15 March 2001 OASIS Web Services Security SOAP Message Security 1 0 http docs oasis open org wss 2004 01 oasis 200401 wss soap message security 1 0 pdf XACML 05 XML Access Control Markup Language XACML OASIS Security Services XACML DSIG 03 OASIS XACML XML DSig Profile Working draft 0 2 14 March 2003 XADES 03 JC Cruel
68. g URIs The client can also provied explicitly the properties values For the signed properties The server must 9 check that the provided values correspond with the used signature policy Also the server may add additional properties implied by the signature policy The KeySelector option The server may use this option to select the user signing key This option is useful if an authenticated user is allowed to use more than one private key The AddTimestamp option If this option is present the server must add a SignatureTimestamp property to the signature before returning the SignResponse The IncludeObject for XML signature and IncludeEcontent for CMS signatures options These options indicate to the server if the data object to sign must be included into the signature Handling the VerifyRequest A VerifyRequest can be handled as follows 1 decodes the request 2 checks that it is a valid request and that the requested profile and options are supported by the server If it determines that the request is invalid or it contains unsupported options that can not be ignored it returns a VerifyResponse containing only a failure code gets the signer public key using information given into the signature or into the request checks the validity of the signature 5 If required updates the signature by time stamping the signature value or adding other unsigned attributes 6 builds a VerifyResponse with the validation
69. i res versions de XMLDSIG RFC 3275 et ou de XAdES ETSI 101 903 v1 3 2 Sauf quand c est indiqu tous les fichiers de signature test s utilisent ces versions Conditions de validit Un test de validation de signature sera dit r ussite si les conditions suivantes sont toutes v rifi es aucune exception de validit syntaxique n est signal e la signature est d clar cryptographiquement valide selon le processus de validation de base de XMLDSIG Autrement dit la valeur de la signature ainsi que les valeurs des hach s sont valides Apache XML Security http xml apache org security dist java library TECOM PLUG TEST PROJECT http www ecom jp LongTermStrage en XAdES_e html 42 Cryptolog Rapport de PFE ENSEIRB la forme XAdES retourn e est bien la forme correspondante aux propri t s pr sentes dans la signature Si au moins une des conditions pr c dentes n est pas v rifi e le test sera dit chec Au moment de la r alisation de ces tests l entreprise ne dispose pas de biblioth ques compl tes pour la v rification des donn es de validation certificats CRLs OCSP d une signature Pour cette raison aucune validation de ce genre ne sera faite En plus tous les fichiers de signatures qui vont tre utilis s contiennent explicitement la cl publique du signataire et ou son certificat Aucun test ne va porter sur la validit de ces donn es 7 1 3 Impl mentations ext rieur
70. i t est de prouver l existence de ces ressources la date de la signature IndividualDataObjectsTimeStamp Elle a le m me r le que la propri t pr c dente sauf qu elle permet de dater un sous ensemble des ressources sign es Propri t s non sign es qualifiant la signature CounterSignature Permet d encapsuler une contre signature Cette propri t est quivalente l attribut CounterSignature de CMS voir la section Une contre signature peut tre une signature XMLDSIG ou XAdES ce qui permet de cr er une chaine al atoirement longue de contre signatures Une signature BES permet de transporter les information minimales pour tre conforme la directive europ enne des signature num riques Cependant elle ne contient pas les information de validation n cessaire pour garantir sa validit long terme Par exemple une signature BES peut ne plus tre v rifiable quand les certificats et les CRL n cessaires sa validation ne sont plus disponibles 5 2 2 XAdES EPES Explicit Policy Electronic Signature Cette forme peut tre construite au dessus de XMLDSIG ou XAdES BES Elle ajoute la pro pri t SignaturePolicyldentifier Cette propri t est sign e et elle permet de transporter l identifiant de la politique de validation Une politiques de validation de signature sp cifie des r gles et des contraintes suivre au cours du processus de validation Elle peut sp cifier par exemple les propri t
71. ignature XMLDSIG en utilisant l l ment Object comme conteneur XAdES d finit un grand nombre de propri t s qui peuvent qualifier le signataire ou les ressources sign es et qui peuvent tre sign es ou non Selon les propri t s pr sentes XAdES d finit six forme diff rentes Dans ce chapitre on va d crire ces diff rents formes sans entrer dans les d tails syntaxiques l annexe 27 Cryptolog Rapport de PFE ENSEIRB Signature lectronique volu e XAdES Infos Signature Infos Propri t s Propri t s sign es 9 cl sign es non sign es FIG 5 1 Signature num rique volu e 7 3 2 donne le sch mas XML complet des signatures XAdES Ensuite on d taillera l volution d une signature XAdES d une forme basique une forme plus compl te 5 2 Les type de signatures XAdES Comme on l a d j dit XAdES est construit comme une extension de XMLDSIG L l ment racine de toutes les structures XAdES est l l ment QualifyingProperties Cet l ment doit tre contenu dans l l ment Object de XMLDSIG Selon les propri t s pr sentes une signature est dite conforme une certaine forme XAdES permet de cr er six formes diff rentes 32 5 2 1 XAdES BES Basic Electronic Signature C est la forme de base de XAdES Une signature est dite BES si elle v rifie l une des deux r gles suivantes qui sont fonctionnellement quivalentes La signature contient la propri t sign e Signing Certificate Cet
72. ins java 1 2 utiliser ses propres librairies en tout ce qui concerne la cryptographie algorithmes certifi cats 6 2 2 Solution impl ment e fonctionnalit s L API impl ment e supporte la plupart des l ments de base d finis dans la recommandation W3C voir chapitre 4 Elle permet plusieurs op rations sur les signatures XML Principalement l API permet de 1 produire une signature XML en fournissant le document signer seulement son hach avec Valgorithme de hachage utilis ou encore un format transform du contenu original avec les algorithmes de transformation appliqu s L API permet galement la production des trois types de signatures XML savoir d tach e envelopp e ou enveloppante 2 valider un document de signatures XML Un document XML peut contenir plusieurs signa tures ou contre signature L API permet de valider une signature XML selon les r gles de validation de la recommandation W3C voir section 4 2 3 Le v rificateur peut soit fournir le document original sign soit seulement son hach 3 modifier un document de signatures XML soit en ajoutant une contre signature en signant la valeur de la signature pr sente dans le document ou une co signature en signant le m me contenu sign par la signature pr sente dans le document 6 2 3 Solution impl ment e architecture g n rale Le diagramme de classe est donn e dans la figure 6 2 On va d crire l API en d taillant les
73. ique des signatures num riques XML Advanced Electronic Signatures XAdES a suivi pour permettre de produire des signatures volu es en XML conformes la directive europ enne Ce rapport introduit des notions li es la signature num rique et tudie les deux formats de signatures en XML XMLDSIG et XAdES puis pr sente une impl mentation en Java de ces deux standards Mots cl cryptographie infrastructure cl s publiques signature num rique XML W3C World Wide Web Consortium ii Table des mati res Remerciements R sum 1 Introduction 1 1 Rappel du sujet de stage 1 2 Probl matiques objectifs et r sultats 14231 Contexte general x 2 x ds GEN RAM MER Ad 1 2 2 Objectifs t r sultats sa 00024400 a ue a AS G G ess 1 3 Organisation du document Pr sentation de l entreprise 2 1 Secteurs A activit ete a du P LA A OMR EE NE eo 2 2 Produits Crypptolo p s Es EE a a le ee fee f e a o Vie A 2 3 Environnement technique Pr liminaires 3 1 Introduction la cryptographie 3 1 1 Cryptographie cl priv 3 1 2 Cryptographie cl publique 32 Introduction a XML a s 4 R T ew a mages de de eee 05 a ada ek Ee E SD Outils XME E 25 Era ea ee i aa OE IE le vaut Do 3 3 Format
74. isons de compatibilit s avec ses propres applications l entreprise souhaite une compatibilit avec au moins Java 1 2 La biblioth que choisie est XOM 39 XOM est une impl mentation r cente du modele DOM 5 Il fonctionne partir de Java 1 2 et il offre tout le n cessaire pour XMLDSIG le support de XPath La gestion des espace de noms la canonicalisation La validation avec des sch mas XML 6 1 2 Solution impl ment e La biblioth que d velopp e utilise donc XOM pour offrir des fonctionnalit s de plus haut niveau Elle impl mente les classes de bases qui vont servir pour les biblioth ques XMLDSIG et XAdES Diagramme des classes Le diagramme des classes est donn dans la figure 6 1 Cette bibliotheque est compos de 4 packages 1 com cryptolog xml Les classes de base Les plus importantes XMLData c est une classe abstraite qui repr sente un contenu XML sous forme d un ensemble d l ments XML ou une suite d octets repr sentant l ensemble d l ments du contenu XML NodeSetData h rite de la classe pr c dente pour repr senter un ensemble d l ments et ou documents XML Elle offre des m thodes pour le traitement de ces donn es ex cution de requ tes XPath s lection de sous ensemble d l ments OctetStreamData h rite de la classe abstraite XMLData pour repr senter le contenu XML sous forme d un flux d octets XMLStructure repr sente une structure XML de bas
75. lac par la d claration de l espace de nom de l enveloppe SOAP celui ci tant le nouveau p re de l l ment n1 Ce changement invalide videmment la signature si elle a t calcul en utilisant la premi re forme canonique de n1 Pour rem dier ce type de probl me un nouveau algorithme de canonicalization dit Canonicaliza tion exclusive 7 a t d finit par une autre recommandation W3C Comme son nom l indique cet algorithme vite d ajouter syst matiquement les d clarations des noms d espaces des anc tres de l l ment canonicalizer Seulement les noms d espaces qui sont effectivement utilis s par l l ment et ces descendants sont gard s Ce type d algorithme r sout le probleme de changement d enveloppe voqu ci dessus la forme canonique de l l ment n1 est maintenant ind pendante de son enveloppe et est dans tous les cas R sultat de la canonicalization Exclusive de nl lt ni elemi xmlns ni http www B com content lt ni elem1 gt 20 Cryptolog Rapport de PFE ENSEIRB Appliquer l algorithme de signature L entr e de l algorithme de signature est la cl priv du signataire et le hach de la forme ca nonique de l l ment SignedInfo Le r sultat de l algorithme forme l l ment Signature Value Ces deux l ments SignedInfo et Signature Value sont les seuls obligatoires dans toute signature XML Cependant un signataire peut vouloir fournir des l ments cryptogr
76. las G Karlinger D Pinkas J Ross XML Advanced Electronic Signatures W3C Note 20 XKMS 01 XML Rey Management Specification XKMS W3C Note 30 March 2001 XML 06 T Bray J Paoli C M Sperberg McQueen E Maler F Yergeau n W3C Recommendation 16 August 2006 Extensible Markup Language XML 1 0 XML ENC 02 XML Encryption Syntax and Processing W3C Recommendation 10 December 2002 XML NAMES 06 T Bray D Hollander A Layman R Tobin Namespaces in XML 1 0 Second Edition W3C Recommendation 16 August 2006 48 Cryptolog Rapport de PFE ENSEIRB 37 38 39 40 41 42 43 XML Schema 06 XML Schema 1 1 Part 1 Structures W3C Working Draft 31 August 2006 XML Sec 02 B Dournaee XML Security chapitre 4 Introduction to Digital XML Signatures http www perfectxml com om XMLSecurity PDF XOM 05 XML Object Model http www xom nu XPath 07 XML Path Language XPath Version 1 0 W3C Recommendation 23 January 2007 XPointer 02 XML Pointer Language XPointer W3C Working Draft 16 August 2002 XSL 06 Extensible Stylesheet Language XSL Version 1 1 W3C Recommendation 05 December 2006 XSLT 99 XSL Transformations XSLT W3C Recommendation 16 November 1999 49 Lexique ASN 1 Abstract Syntax Notation number One BER Basic Encoding Rules CMS Cryptographic Message Syntax CRL Certifcate Revocation List DER Distinguished Encoding Rules
77. ldsig shai gt lt ds DigestValue gt px1 077f IxL4MPfvrS2Zomb9gs lt ds DigestValue gt lt ds Reference gt lt ds Reference Type http uri etsi org 01903 SignedProperties URI Signature1_SignedProperties gt eds Transforms gt lt ds Transform Algorithm http ww w3 org TR 2001 REC xm1 c14n 20010315 gt lt ds Transforms gt lt ds DigestMethod Algorithm http www w3 org 2000 09 xmldsig sha1 gt eds DigestValue gt N6NaLyulkeAG102K0 mVis6mm M lt ds DigestValue gt lt ds Reference gt lt ds SignedInfo gt lt ds SignatureValue gt WwPSF1GpCWV IUkqksby9i5Ze6WjsRj 8V3jQj3kuB U9zdy5xp0CnHvJT5WdF j ywBu4 vC7q0RcjxpBce70WA lt ds SignatureValue gt eds KeyInfo gt lt ds KeyValue gt eds RSAKeyValue gt lt ds Modulus gt uKBSyP8JxARZ4BMb2UyHEJXQmka80VbD2abc 5e Sf K twOCYGKOmFC6dtFt7XKkz38piDS90r3j GPbip40kPw lt ds Modulus gt lt ds Exponent gt AQAB lt ds Exponent gt lt ds RSAKeyValue gt lt ds KeyValue gt lt ds KeyInfo gt lt ds 0bject gt lt database Id SignMe name infos gt lt table name codeDepartement gt lt record gt lt field name ID type string gt 01 lt field gt lt field name NOM type string gt Ain lt field gt lt record gt lt record gt lt field name ID type string gt 02 lt field gt lt field name NOM type string gt Aisne lt field gt lt record gt lt record gt lt field name ID type string gt 03 lt field gt lt field name NOM type
78. les propri t s suivantes SigningTime SigningCertificate SignatureProductionPlace Commitment Typelndication SignatureTimeStamp CompleteCertificateRefs CompleteRevocationRefs lt xml version 1 0 encoding UTF 8 gt lt crypto SignatureDocument xmlns crypto http www cryptolog com gt lt crypto SignedData gt lt X Id toSign xmlns t http www test com xmlns http www testX com gt lt A gt lt B Id toSign2 xmlns http www test3 com gt Salut lt B gt lt A gt lt X gt lt crypto SignedData gt lt ds Signature Id Signature1 xmlns ds http www w3 org 2000 09 xmldsig gt lt ds SignedInfo gt lt ds CanonicalizationMethod Algorithm http www w3 org TR 2001 REC xm1 c14n 20010315 gt eds SignatureMethod Algorithm http www w3 org 2000 09 xmldsig rsa shal gt lt ds Reference URI SignMe gt lt ds Transforms gt lt ds Transform Algorithm http ww w3 org TR 2001 REC xm1 c14n 20010315 gt lt ds Transforms gt lt ds DigestMethod Algorithm http www w3 org 2000 09 xmldsig shai gt 51 Cryptolog Rapport de PFE ENSEIRB lt ds DigestValue gt rMK1TAEEdjPSRs0d17KdGATw7qg lt ds DigestValue gt lt ds Reference gt lt ds Reference URI toSign2 gt lt ds Transforms gt lt ds Transform Algorithm http www w3 org TR 2001 REC xml c14n 20010315 gt lt ds Transforms gt lt ds DigestMethod Algorithm http www w3 org 2000 09 xm
79. nataire avant le calcul de la valeur de la signature Les autres peuvent tre ajout s n importe quel moment du cycle de vie de la signature par le signataire ou le v rificateur On retrouve cette diff rence dans les classes de construction de XAdES Construction de XAdES BES ou XAdES EPES A part la propri t CounterSigna ture ces deux formes d finissent exclusivement des propri t s sign es voir les sections 5 2 1 et 5 2 2 Ces propri t s doivent tre attach es l objet SignedInfo avant d imposer la signa ture Une classe de construction BEPESBuilder a t impl ment e et fournit des m thodes pour ajouter les diff rentes propri t s BES ou EPES Cette classe peut tre instanci avec un SignedInfo classique A l issue de l ajout l appel une m thode build retourne un nouveau objet SignedInfo contenant un l ment Reference sp cifique r f rencant l l ment Qualifying Properties transportant les propri t s ajout es Ce SignedInfo peut ensuite tre trait comme un SignedInfo ordinaire de XMLDSIG Il peut donc tre sign par un simple appel sign Construction des autres formes Les autres formes T C X X L et A voir chapitre 5 ajoutent seulement des propri t s non sign s et qui peuvent tre ajout s par le v rifica teur et ou le signataire Pour ces formes une classe de construction DataValidationBuilder a t impl ment e Cette classe peut tre instanci e avec un objet XMLSig
80. nature c est a dire apres la production de la valeur de la signature Cet XMLSignature peut repr senter une nouvelle signature ou une signature qui vient d tre lu d un document XML Elle fournit des m thodes pour l ajout des diff rents propri t s Contrairement BES et EPES les propri t s des donn es de validation peuvent tre d pendantes Par exemple la propri t ArchiveTi meStamp d pend de toutes les propri t s XAdES ajout es pr c demment y compris les an ciennes ArchiveTimeStamp puisque elles contribuent au contenu a dater Pour cela la classe de construction doit ajouter les propri t s en temps r el imm diatement l ajout L appel la m thode build retourne un nouveau objet XMLSignature dont l l ment QualifyingPro perties a t cr e ou mis jour Comme pour un XML Signature classique de XMLDSIG la repr sentation XML du document de la signature peut tre obtenue en appelant la m thode marshal Validation d une signature XAdES La validation d une signature XAdES peut se faire en deux phases principales Premi rement il faut valider la signature en tant que signature XMLDSIG valider les r f rences sign e et la valeur de la signature Ensuite il faut valider l ensemble des propri t s transport es dans la signature Si la signature est au moins EPES voir 5 2 2 ces deux tapes peuvent tre param tr s par une poli tique de validation de signature La validation et l inte
81. ne nouvelle d claration de nom d espace n0 http www A com qui initialement tait d clar dans son p re n0 Ce comportement est l origine de la qualification Inclusive de cet algorithme de canonicalization En effet il inclue les d clarations des nom d espaces de tous les anc tres d un l ment la forme canonique de celui ci Cela permet de s assurer que les descendants de l l ment sont toujours associ s leur espace de noms initial m me si celui ci est d clar dans un parent qui n est pas dans le r sultat de la canonicalization Ce comportement peut poser des probl mes pour certains applications de la signature XML En particulier lorsque on souhaite changer l enveloppe du document sign ou de la signature elle m me tout en gardant sa validit Par exemple si on veut transporter l l ment n1 de l exemple pr c dent dans une enveloppe SOAP 25 Transporter ni dans une enveloppe SOAP lt SOAP Envelope xmlns SOAP http schemas xmlsoap org soap envelope gt lt ni elemi xmlns nl http www B com gt content lt ni elem1 gt lt SOAP Envelope gt Le nouveau r sultat de la canonicalization est R sultat de la canonicalization de ni dans l enveloppe SOAP lt ni elemi xmlns ni http www B com xmlns SOAP http schemas xmlsoap org soap envelope gt content lt n1 elem1 gt On voit que la d claration de l espace des nom de n0 http www A com a t remp
82. nguage est un langage extensible de structuration des donn es Il a t mis au point par le XML Working Group sous l gide du World Wide Web Consortium W3C depuis 1996 A l origine il a t inspir du langage SGML Standard Generalized Markup Language en le rendant plus simple et utilisable sur le web Un document XML est form par un ensemble d l ments d finis par des balises et des attributs Son extensibilit vient du faite qu aucune limite ou contrainte n est appliqu sur les noms ou la structure de ces l ments XML peut tre consid r comme un m ta langage permettant de d finir d autre langages Le vocabulaire suivant va tre utilis dans les chapitres suivants l ment ou noeud Toute balise d finit un l ment Un l ment peut avoir un ou plusieurs attributs et peut tre le parent d un ou plusieurs l ments Racine Tout document XML poss de une racine C est le premier l ment qui contient tous les autres l ments du document Attribut Un attribut est d finit par un couple nom valeur et qui qualifie l l ment dans lequel il est d finit On peut facilement comparer un document XML un document HTML Cependant il y a deux grandes diff rences entre les deux formats D une part HTML est un langage fig nombre de balises limit alors que XML est extensible ce qui permet de d finir des nouvelle balises D autre part HTML d finit la fois le contenu et la pr sentation alors que XM
83. nt ref ds 0bject minOccurs 0 maxOccurs unbounded gt lt sequence gt lt attribute name Id type ID use optional gt lt complexType gt lt element name SignatureValue type ds SignatureValueType gt lt complexType name SignatureValueType gt lt simpleContent gt lt extension base base64Binary gt lt attribute name Id type ID use optional gt lt extension gt lt simpleContent gt lt complexType gt lt Start SignedInfo gt lt element name SignedInfo type ds SignedInfoType gt lt complexType name SignedInfoType gt lt sequence gt lt element ref ds CanonicalizationMethod gt lt element ref ds SignatureMethod gt 55 Cryptolog Rapport de PFE ENSEIRB lt element ref ds Reference maxOccurs unbounded gt lt sequence gt lt attribute name Id type ID use optional gt lt complexType gt lt Start Reference gt lt element name Reference type ds ReferenceType gt lt complexType name ReferenceType gt lt sequence gt lt element ref ds Transforms minOccurs 0 gt lt element ref ds DigestMethod gt lt element ref ds DigestValue gt lt sequence gt lt attribute name Id type ID use optional gt lt attribute name URI type anyURI use optional gt lt attribute name Type type anyURI use optional gt lt complexType gt lt element name Transforms type ds TransformsType gt lt complexType name
84. ntentent de puiser les standards existants et qui ont d j fait leur preuve Cependant l innovation r elle est l utilisation de XML comme support des donn es Ce dernier est devenu le support le plus utilis pour les changes des donn es sur Internet Son caract re semi structur a permis de d finir des conteneurs pour la plupart des standards de s curit intervenant dans la gestion d une architecture cl publique La derni re tape de ce stage consistait impl menter XMLDSIG et XAdES en Java cha pitre 6 Le d veloppement a t fait en gardant en vue que ces biblioth ques doivent pouvoir tre int gr es le plus facilement possible dans des applications existantes de gestion de signatures au format plus classique qui est CMS Bien que les deux formats convergent en terme d information cryptographiques transport es ils divergent en point de vue intention et domaine d utilisation En effet CMS d finit des structures fig s qui sont encod s en binaire selon des r gles bien d finis et tr s pr cises comme DER et BER 1 Alors que XML est par nature un langage de mod lisa tion tr s ouvert mais aussi tr s structur Son lib ralisme permet de d crire de plusieurs fa ons diff rentes le m me contenu XML Ceci a t le sujet de divers d bats sur la pertinence d utiliser XML comme un support de s curit et en particulier comme un support pour les signatures num riques dont l int grit est l une
85. ntr e de la transformation n est la sortie de la transformation n 1 ou le contenu d sign par PURI pour n 1 c Calculer la valeur du hach en appliquant l algorithme du hachage choisit sur la sortie de la derni re transformation 17 Cryptolog Rapport de PFE ENSEIRB d Ajouter la Reference les l ment DigestMethod et Digest Value d signant respectivement J g l algorithme de hachage et la valeur du hach 2 Concat ner la s rie des l ments Reference ainsi obtenues les l ments SignatureMethod et Canonicalization Method Normaliser l l ment SignedInfo La valeur de la signature est obtenu en appliquant l algorithme de signature d sign par l l ment SignatureMethod sur la repr sentation XML de l l ment SignedInfo La signature protege donc tout le contenu de cet l ment A noter donc qu une signature XML ne couvre pas directe ment le contenu sign mais elle couvre une structure form e par la valeur de l empreinte num rique r sultant de l application d un algorithme de hachage sur ce contenu Pour que la signature reste valide le signataire et le v rificateur doivent manipuler exactement la m me repr sentation XML de l l ment SignedInfo Cependant XML par son format lib ral permet d crire le m me contenu XML de plusieurs fa ons diff rentes M me des modifications mineures non significatives pour l interpr tation du document XML conduisent des probl mes de validation vu
86. oSign null false CERTS 0 encode Algo SHA1 XMLSignature ENVELOPING Algo RSASignature_PKCS1_SHAl TransformFactory EXC_C14N SignedInfo si sit getSignedInfo It also provides methods to create a SignedInfo based only on the hash of the data to sign SignedInfoTemplate sit XMLSigUtils nevSignedInfoTemplate ttoSign null false CERTS 0 encode Algo SHA1 null Algo RSASignature PRCS1 SHA1 TransformFactory EXC_C14N SignedInfo si sit getSignedInfo Countersignatures A countersignature is a signature which signs the SignatureValue element of the encapsulated signature It can be produced in two main steps 1 First get the appropriate SignedInfo containing one Reference addressing the SignatureValue of the signature to countersign JignedInfo counterSignedInfo xmls countersign TransformFactory EXC C14N Algo RSASignature_PKCS1_SHAl 2 Then you can sign the SignedInfo using any of the sign method to get the XMLSignature IMLSignature sountersig counterSignedInfo sign new KeyInfo null new KeyValue publicRey ull signatureGenerator The following code gives an example of how to countersign an existing XML signature and add the countersignature as a XADES CounterSignature property aq o Document generated by Confluence on Jul 30 2007 16 07 Pas Co signatures A co signature is a signature which signs the same data object s as the existing signature to co sign
87. oduction to Public Key Cryptography http docs sun com source 816 6154 10 Directive Europ 99 Directive 1999 93 CE du Parlement europ en et du Conseil du 13 d cembre 1999 sur un cadre communautaire pour les signatures lectroniques DOM 04 Document Object Model DOM Level 3 Core Specification VV3C Recommendation 07 April 2004 DSS 07 Digital Signature Service Core Protocols Elements and Bindings Version 1 0 OASIS Standard EXC14N 02 Exclusive XML Canonicalization Version 1 0 W3C Recommendation 18 July 2002 ETSI TR 102 038 02 XML format for signature policies ETSI technical Specification v1 1 1 Avril 2002 ETSI TS 101 903 06 XML Advanced Electronic Signatures XAdES ETSI technical Specification v1 3 2 March 2006 Hash 95 S Bakhtiari R Safavi and J Pieprzyk Cryptography hash functions PCRYPTO 76 W DIFFIE 1976 pp 644 654 A survey and M HELLMAN New directions in cryptography IEEE Trans Inform Theory 22 RFC 3653 02 2002 RFC 3852 04 RFC 3986 05 RFC 4051 05 RFC 4648 06 SAML 05 Se SAX 01 SOAP SEC 0 WSS 04 February 2003 Fourth Editio RFC 791 81 Internet Protocol IETF RFC 791 RFC 2045 96 Multipurpose Internet Mail Extensions MIME Part One Format of Internet Message Bodies IETF RFC 2045 RFC 2251 97 Lightweight Directory Access Protocol v3 IETF RFC 2251 RFC 2459 99 R Housley W Ford W Polk D Solo Internet X 509 Public Key In
88. pas stock s ailleurs 5 2 7 XAdES A Electronic Signature with archiving validation data Pour une protection maximale long terme cette forme permet de dater l ensemble des don n es de validation transport es par la forme pr c dente Cette datation peut prot ger la signature contre l affaiblissement au long terme des diff rents donn es cryptographiques algorithmes cl s etc utilis es pour valider la signature Syntaxiquement elle ajoute la propri t non sign e Ar chive TimeStamp une signature XAdES X L Plusieurs occurrences de cette propri t peuvent appara tre dans une m me signature Un v rificateur peut effectuer une nouvelle datation d s que la datation ult rieure s affaiblit 30 Chapitre 6 Impl mentation Ce chapitre va pr senter les diff rents d veloppements effectu s au cours de stage Tous les biblioth ques ont t crite en Java La taille de ce rapport tant limit on va seulement d tailler les principaux biblioth ques savoir XML XMLDSIG et XAdES Tout le code source crit au cours de ce stage tant consid r confidentiel par l entreprise ce chapitre ne va pas en pr senter Je mets cependant en annexe un mini manuel d utilisation r dig en anglais sur le wiki de l entreprise pour XMLDSIG Il y a galement en annexe une r flexion sur l architecture g n rale d un serveur de signature utilisant DSS r dig en anglais sur le wiki de l entreprise 6 1 XML
89. pes des signatures XML XMLDSIG permet de signer tout type de document num rique Le contenu sign et la signature peuvent tre soit d tach s soit attach s au m me document Le dernier cas est m me possible quand la ressource sign e est au format binaire en utilisant une transformation qui permet de l encoder en une repr sentation textuelle compatible avec le document XML contenant la signature L encodage en Base64 22 est un exemple de telles transformations Selon la position relative de la signature et le contenu sign XMLDSIG permet de cr er trois types de signatures adapt s des contextes d utilisation diff rents Signature envelopp e Une signature XML est dite Signature envelopp e si la racine de la signature est un descendant de la racine du contenu XML sign voir figure 4 1 Ce type de signature est utile lorsque la signature est transport par un protocole lui m me bas sur XML citons par exemple SOAP 25 Le contenu sign enveloppe tout le corps de la signature XML qui va tre donc compris dans le calcul du hach Cependant le corps de la signature est cens tre modifi apr s le calcule de la signature c est dire apr s le calcul de tous les hach s pour ins rer l l ment Signature Value Ce qui impliquerait videmment l invalidation de la signature Pour rem dier ce probleme la recommandation XMLDSIG a pr vu une transformation sp cifique pour les signatures envelopp e Le compor
90. pour les particuliers que pour les entreprises et institutions La cryptographie offre un en semble de techniques et standards pour se prot ger contre ces diff rentes attaques Un syst me de transactions str doit tre dot des techniques de protection suivantes Chiffrement et d chiffrement permettent d assurer la confidentialit des donn es M me si la transaction est intercept e la confidentialit n est pas compromise vue que les donn es ne transitent pas en clair V rification de l int gration des donn es Le destinataire doit pouvoir v rifier que les donn es re ues sont exactement les donn es envoy es sans aucune alt ration Authentification Permet au destinataire de s assurer de l identit de son correspondant La non r pudiation Emp che le correspondant de nier dans le futur d avoir envoy le message La cryptographie a cl publique est compos e d un ensemble de standards facilitant la mise en oeuvre de ces diff rents techniques La section suivante introduit d abord la cryptographie cl priv Cryptolog Rapport de PFE ENSEIRB 3 1 1 Cryptographie cl priv La cryptographie cl priv dite aussi cryptographie sym trique repose sur l utilisation de la m me cl dite cl priv ou secr te la fois pour le chiffrement et le d chiffrement voir figure 3 1 Elle permet d assurer la confidentialit des donn es ainsi que leur authentification du faite que seul
91. pri t s d finis par XAdES 32 2 Des classes de fabrication ou Builder permettant de construire une signature XAdES d une certaine forme en ajoutant les propri t s appropri es une signature XMLDSIG Les figures 6 3 et 6 4 donnent les diagrammes de classe artiels des packages com cryptolog xades et com cryptolog xades helper CommitmentTypelndicationProperty CompleteCertificateRefsProperty AttributeRevocationRefsProperty SigningTimeProperty CounterSignatureProperty DataObjectFormatProperty SignaturePolicyldProperty SignerRoleProperty SigningCertificateProperty CertificateValuesProperty GenericTimeStampProperty ExtendedXMLPropertyReader ExtendedXML Structure XADESProperties XADESTimeStampProperty lt SigAndRefsTimeStampProperty AllDataObjectsTimeStampProperty SignatureTimeStampProperty UnsignedProperties SignedProperties Fic 6 3 Diagramme de classe du package xades XMLValidationDataBuilder BPESBuilder XMLValidationDataBuilder xmls XMLSignature getSignatureType int setValidationData certs Vector crls Vector ocsps Vector void setTSADialog tsa TSADialog void build sigType int XMLSignature addCounterSignature xmls XMLSignature void addSignatureTimestamp tsp byte void addESCTimestamp tsp bytel void add
92. principales op rations qu elle permet de r aliser sur une signature XML Un mini manuel d utilisation a t r dig en anglais sur Confluence pour l entreprise voir annexe Production Il s agit de construire un document XML de signature selon les r gles syntaxiques de la recom mandation W3C Pour chaque l ment d finit dans le sch mas voir annexe 7 3 2 de XMLDSIG correspond une classe Java Chacune de ces classes est dot e d un constructeur qui prend en pa ram tre une structure XML pour r cup rer les diff rents information transport s dans la structure et une m thode toNodeSetData qui retourne la repr sentation XML de l objet Toutes ces classes h ritent de la classe DSigXMLStructure qui elle h rite de la classe XMLStructure du package com eryptolog xml repr sentant une structure XML La production d une signature XML peut se faire en trois tapes TXML Apache www apache org IAIK Institute for Applied Information Processing and Communication Graz University of Technology JSR 105 http java sun com webservices docs 1 5 xmldsig index html 34 Cryptolog Rapport de PFE ENSEIRB SignedInfoTemplate XMLSignatureException ContentSource XMLDSigFactory X509ldentifier ReferenceTemplate SignedInfo X509lssuerSerial XMLReferenceException XMLSigUtils URIManager SignatureMethod SignatureProperty Reference SignatureProperties Transform
93. que repose sur l utilisation de deux cl s diff rentes pour le chiffrement et le d chiffrement voir figure 3 2 L une est dite cl priv et elle doit rester secr te La deuxi me cl dite cl publique peut tre librement publi e Quand deux parties souhaitent changer un message de fa on s re le premier utilise la cl publique qui peut tre r cup r e par exemple partir d un annuaire de cl s du destinataire pour chiffrer le message Le correspondant utilise sa cl priv suppos e connue uniquement par lui pour d chiffrer le message La cryptographie asym trique est bas sur une fonction facile calculer dans un sens appel e fonction sens unique et math matiquement tr s difficile inverser sans une information suppl mentaire qui est la cl priv e Ce syst me permet donc d changer des messages chiffr s sans avoir partager une information secr te ce qui vite le probl me d change de cl s voqu par la cryptographie sym trique Plusieurs standards et protocoles ont apparus autour de la cryptographie cl publique Les sections suivantes introduisent certains de ces standards pour pr senter les notions de certificat et CRL Certificate Revocation List avant de d tailler une application importante de la cryptographie asym trique qui est la signature num rique Cryptolog Rapport de PFE ENSEIRB Chiffrement D chiffrement avec la cl avec la cl publique Message Message Mess
94. que tout algorithme de hachage est sensible la modification du moindre caract re Par exemple en appliquant l algorithme de hachage SHA1 la structure suivante faisant partie du SignedInfo lt Reference URI http www test com document xml gt on obtient la valeur suivante b5525059d22848b9bb8b9807e80f499df227efa8 Maintenant en appliquant le m me algorihtme la structure suivante d duite de la pr c dente en ajoutant simplement quelque espaces avant l attribut URI lt Reference URI http wuw test com document xml gt gt on obtient videmment un hach totalement different 8aee97ee42fef65b97ec0c2aif44d8513e96fc2d Le nombre d espaces entre le nom de la balise et l attribut est totalement non significatif pour l interpr tation du document XML et d pend de l impl mentation utilis pour parser le document Il peut conduire cependant l invalidation de la signature Pour rem dier ce type de probl mes XMLDSIG pr voit des algorithmes de canonicalization permettant de normaliser un contenu XML le rendant ind pendant de l impl mentation utilis e La canonicalization XML Le processus de canonicalization permet de normaliser un contenu XML Il est n cessaire pour garantir que le signataire et le v rificateur appliquent l algorithme de hachage sur exactement les m me donn es Un algorithme de canonicalization prend en entr e un contenu XML et fournit en sortie un tableau d
95. r exemple se limiter la v rification de la validit des l ments Reference en utilisant la m thode 36 Cryptolog Rapport de PFE ENSEIRB verifyReference Pour cela il faut attacher chaque objet Reference un objet ContentSource d signant la ressource sign e Comme pour la production ce ContentSource peut contenir soit effectivement la suite d octets repr sentant le contenu soit seulement son hach ou seulement une forme transform e du contenu initial Contre signature Le v rificateur peut galement appliquer une contre signature une signature existante Bien que XMLDSIG 17 ne d finit pas un conteneur sp cifique pour la contre signature cela est rattrap par XAdES 32 celle ci peut tre transport e dans un l ment Object attach la signature La classe XMLSignature fournit la m thode countersign pour produire la contre signature Cette m thode retourne un objet SignedInfo sp cifique contenant un seul l ment Reference dont PURI r f rence l l ment Signature Value de la signature contre signer En suivant les tapes de la construction de la signature abord es ci dessus le nouveau signataire peut produire de ce SignedInfo un nouveau objet XMLSignature qui peut tre attach la premi re signature avec l appel la m thode attach Co signature Le v rificateur peut aussi ajouter au document XML initial une nouvelle signature qui signe le m me contenu que la premi re sign
96. rations suivantes sur l objet SignedInfo Ajouter un nouveau objet repr sentant un l ment Reference pour signer plusieurs docu ments dans une seul document de signature Ajouter une propri t sign e en ajoutant un objet SignatureProperty repr sentant l l ment SignatureProperty Obtenir la forme canonique de l l ment SignedInfo 2 Production de la valeur de la signature Une fois l objet Signedinfo est bien param tr avec toutes les ressources et les propri t s signer le signataire peut appeler la m thode sign pour obtenir l objet XMLSignature repr sentant une signature XML La m thode sign prend en param tre Un objet Keylnfo repr sentant l l ment Keylnfo Cet objet doit contenir toute les informa tions de validation certificats CRLs que le signataire souhaite attacher sa signature 35 Cryptolog Rapport de PFE ENSEIRB Un objet SignatureGenerator Cette classe fait partie des librairies cryptographiques de l entreprise Elle encapsule la cl priv du signataire qui va tre utiliser pour la production de la valeur de la signature 3 Production du document XML de la signature Apr s la signature l objet XMLSignature obtenu encapsule toutes les donn es de la signature mais aucune vrai structure XML Notons cependant qu ce stade la valeur de la signature a t d j calcul Donc l objet XMLSignature ne permet aucune modification sur les l ments couvert
97. re qui n a pas pass le test de validation repr sente une signature XML enveloppante qui signe un contenu XML Bien que la valeur de la signature a t v rifi correctement la validation de la seule r f rence de la signature a chou Ceci peut s expliquer par le faite que l l ment de la r f rence ne contient aucun algorithme de canonicalization alors que le contenu sign est en XML D autre part certains fichiers du vecteur des signatures Phaos n ont pas t test du faite qu ils contiennent des l ments non encore support s savoir signature HMAC la fonction XPath here et la gestion des Manifests Aussi certains fichiers qui contiennent des l ments Manifest ont t valid sans valider les l ments Reference transport s Baltimore Tests r ussis 6 Tests chou s 0 Commentaires M me remarque que pr c demment a part les signatures qui contiennent des l ments non sup port s par l impl mentation Cryptolog tous les fichiers de tests ont t valid Apache Tests r ussis 5 Tests chou s 2 Commentaires Les deux fichiers qui n ont pas pass utilisent des attributs dans le nom d espace de XML 34 avec la canonicalization inclusive 2 Cela est d au faite que ces attributs doivent tre propag s quand on canonicalize un sous document d un document XML ce qui n est pas apparemment support par XOM 39 7 3 2 XAdES IAIK Tests r ussis 6 Tests chou
98. ressions dont l valuation permet de s lectionner les noeuds d sir s dans le chemin XPointer 41 XML Pointer Language est une extension de XPath d finit galement par W3C L objectif de XPointer est de localiser un fragment d un document XML local ou distant 3 3 Formats de signatures num riques Quand un destinataire re oit la valeur d une signature il a besoin de plus d information pour v rifier sa validit A savoir le message initial la cl publique associ e la cl priv e qui a t uti lis e pour le chiffrement ainsi que les algorithmes de hachage et chiffrement utilis s D ot le besoin de pouvoir envoyer toutes ces information en m me temps que la signature Une solution naive est de packager tout a dans un format plus au moins arbitraire comme dans l exemple suivant ou le message est ins r sur la premi re ligne suivi des identifiants des algorithmes utilis s puis de Videntifiant du signataire qui permettra de trouver sa cl publique et enfin la valeur de la signature Message sign Ceci est un message important RSA SHA1 Mr Dupont MI6rf G4Xw0jzIpeDDDZB2B2G8F cBYbeYvxMr0 Ta7nm5ShQ26KxK71Ch 4wHCMyxEkBxx2HP0 7J tPiZTwCVEZ1F5J4vHtFTCVB8X5eEP8nmi3ksdT Q zMtKjQII9AbCNxdA6ZtXfa0V4eu07UtRHyK1 7Exbd9PNFxnq46b f81 Ce packaging peut tre satisfaisant dans le cas o il y a toujours un seul destinataire et qui est inform au pr alable du format utilis Cependant d s qu il y
99. rpr tation des diff rentes propri t s peuvent d pendre de l application et ne sont pas n cessairement sp cifi dans la sp cification de XAdES 9 40 Cryptolog Rapport de PFE ENSEIRB La classe ExtendedSignature offre des m thodes utiles pour calculer la forme de la signature et en extraire les propri t s pour tre trait es l ext rieur 41 Chapitre 7 Tests d Int rop rabilit 7 1 Introduction Les biblioth ques d velopp es impl mentent des standards techniques largement utilis s La conformit des impl mentations ces standards permet de garantir l int rop rabilit avec d autres impl mentations Dans ce chapitre on va d crire un ensemble de tests permettant de v rifier cette int rop rabilit Dans la suite on va utiliser le terme impl mentation Cryptolog pour d signer l ensemble des biblioth ques impl ment es au cours de ce stage et les termes autres impl mentations ou im pl mentations ext rieures pour d signer des impl mentations libres ou d velopp s par d autres entreprises 7 1 1 D roulement des tests Les tests sont bas s sur un ensemble de vecteurs de tests La plupart de ces fichiers de tests ont t r cup r s de Apache XML Security D autres fichiers de tests ont t r cup r s de l ECOM PLUG TEST PROJECT f 7 1 2 Hypoth ses de base Version des standards Toutes les impl mentations utilis es sont d clar es capable de supporter les dern
100. s 0 Commentaires Aucun probl me particulier signaler L impl mentation de VIAIR produit des signatures totale ment conformes XAdES 1 3 2 qui sont correctement interpr t s par l impl mentation Cryptolog ECOM Tests r ussis 8 Tests chou s 1 TXML namespace http www w3 org XML 1998 namespace 45 Cryptolog Rapport de PFE ENSEIRB Commentaires Le seul fichier de test qui n a pas pass transporte les propri t s sign s dans un l ment Qualifying PropertiesReference r f renc par un l ment Reference sans aucun algorithme de canonicalization Bien que le contenu de cet l ment est assez simple et ne permet pas de pr voir qu est ce qui peut changer s il est interp t par deux impl mentations diff rentes cet exemple prouve encore l impor tance et m me la n cessit d utiliser syst matiquement un algorithme de canonicalization d s que le contenu signer est en XML Aussi notons que le vecteur de tests ECOM utilise la version 1 3 1 de XAdES la version impl ment e est 1 3 2 Les tests ont affirm qu il y a une compatibilit ascendante entre les sch mas XML des deux versionsll Cependant il semble que l interpr tation de la propri t ArchiveTimeStamp est diff rente entre les deux versions La version 1 3 2 d finit implicitement ce qui doit tre couvert par ce time stamp alors que pour la version 1 3 1 transporte dans la propri t des m canismes pour r f rencer
101. s de signatures num riques LL a XMLDSIG XML Digital SIGnature Ade Introductions wee a ere SD A A a e de det d BA D de 4 2 Vue fonctionnelle processus de g n ration et validation 4 2 1 Production des signatures XML 42 2 Types des signatures XML 4 2 3 Validation des signatures XML 4 3 Vue structurelle syntaxe de XMLDSIG XAdES XML ADvanced Electronic Signatures Hel Contexte juridique s n 4 4 al 4 a Es A a Sh e KKK S EA 5 2 Les type de signatures XAdES 5 2 1 XAdES BES Basic Electronic Signature 5 2 2 XAdES EPES Explicit Policy Electronic Signature 5 2 3 XAdES T Electronic Signature with Time 5 2 4 XAdES C Electronic Signature with Complete Validation Data iii CS B D ND N H A o 00 00 o 12 13 15 15 15 16 21 22 23 5 2 5 XAdES X Electronic Signature with with eXtended validation data 5 2 6 XAdES X L Electronic Signature with eXtended validation data for the long EE As E AL lh a PP Ga he al ena ae da 5 2 7 XAdES A Electronic Signature with archiving validation data 6 Impl mentation GAME sd DA Pel De AM EN ee 6 1 1 Solutions existantes 6 1 2 Solution impl ment e
102. s par la signature savoir le SignedInfo et toutes les propri t s sign es En effet la repr sentation XML de ces parties a t calcul l appel la m thode sign et ne sera pas affect e si des modifications sont faites sur les objets associ s Avant la g n ration du document XML le signataire peut ajouter des propri t s non sign es en appelant la m thode addUnsignedProperty qui prend en param tre un objet Signature Property et il peut galement ajouter des contenus XML al atoires contenant par exemple des information suppl mentaires sur la signature en appelant la m thode g n rique attach avec en param tre un objet XMLObject qui repr sente un contenu XML al atoire Enfin quand toutes les donn es suppl mentaires ont t attach es le signataire peut produire le document XML final en appelant la m thode marshal qui crit la repr sentation XML de la signature et tout les objets attach s dans un fichier ou autre support de sortie Les tapes pr c dentes permettent de param trer toutes les tapes de production d une signa ture XML Pour les cas les plus fr quents la classe XMLUtils offre des m thodes pour construire rapidement des signatures avec les param tres les plus courants en utilisant des templates pr d finis de l l ment SignedInfo voir l annexe 27 Un template pr d fini repr sente l l ment SignedInfo avec des valeurs par d faut SHA1 pour le hachage RSA SHA1 comme algorithme
103. signature XML et vice versa Elle est utilis e pour signer un contenu binaire tout en l incluant dans le document XML de la signature Les r gles de l encodage et d codage utiliser sont d finit dans la RFC 2045 13 Transformation XPath Cette transformation permet d utiliser des expressions XPath voir section 3 2 1 pour s lectionner certains parties dans le document d sign par PURI Cette transformation est un outil tr s puissant pour les applications qui signent par exemple des document HTML En utilisant des expressions XPath l utilisateur peut par exemple signer uniquement certains champ textes dans une page HTML Les l ments SignatureMethod et CanonicalizationMethod Ces l ments d signent respectivement les algorithmes de signature et canonicalization utiliser Comme pour les transformations ces algorithmes sont d finis avec des URIs Pour les algorithmes de signature XMLDSIG d finit deux URI mais d autres peuvent bien tre utilis s http www w3 org 2000 09 xmldsig dsa shal d signe un hachage en SHA1 suivi par un chiffrement DSA http www w3 org 2000 09 xmidsig rsa shal d signe un hachage SHA1 suivi par un chiffrement RSA L l ment Keylnfo Cet l ment est optionnel et offre plusieurs moyens pour int grer dans la signature des donn es cryptographiques de validation Le signataire peut par exemple donner explicitement sa cl publique ou un certificat le contenant
104. stan dards de s curit XML en g n ral Cela inclue aussi la compr hension de CMS et les principaux standards de la cryptographie cl publique certificat CRL OCSP gestion de cl s 2 R aliser une impl mentation de base de XMLDSIG 3 Ajouter une couche XAdES minimale permettant de produire et valider des signatures volu es conform ment la directive europ enne TIP Internet Protocol ICRL Certificate Revocation List OCSP Online Certificate Status Protocol Cryptolog Rapport de PFE ENSEIRB R sultats Les objectifs cit s ci dessus ont t bien men s dans les d lais En plus de XMLDSIG et XADES j ai pu particip au d veloppement d autres biblioth ques Je cite une biblioth que pour l encodage d codage en XML de param tres cryptographique algo rithmes cl s une biblioth que pour l encodage d codage en XML des politiques de validation des signatures conform ment une sp cification technique de l ETSI 8 une API g n rique pour la production des signatures en XML et CMS 19 Une impl mentation des structures des protocoles d finies par le standard DSS 6 de OA SIS 5 J ai galement particip au d veloppement des composants d un serveur de signature utilisant ces protocoles Une pr sentation de DSS ainsi qu une r flexion sur l architecture g n rale du serveur sont en annexe de ce rapport 1 3 Organisation du document La suite de ce rapport est organis
105. t End Object Manifest SignatureProperty gt lt End Signature gt lt schema gt 58 Sch mas des signatures XADES XMLDISG lt ds Signature ID gt E E lt ds SignedInfo gt lt ds CanonicalizationMethod gt lt ds SignatureMethod gt lt ds Reference URI gt lt ds Transforms gt eds DigestMethod gt lt ds DigestValue gt lt ds Reference gt lt ds SignedInfo gt lt ds SignatureValue gt lt ds KeyInfo gt lt ds Object gt lt QualifyingProperties gt lt SignedProperties gt lt SignedSignatureProperties gt SigningTime SigningCertificate SignaturePolicyIdentifier SignatureProductionPlace SignerRole lt SignedSignatureProperties gt lt SignedData0bjectProperties gt Data0bjectFormat CommitmentTypeIndication AllDataObjectsTimeStamp IndividualData0bjectsTimeStamp lt SignedData0bjectPropertiesSigned gt lt SignedProperties gt aia A e ll e _ e _ e e e e e e e e e e lt UnsignedProperties gt 59 Cryptolog Rapport de PFE ENSEIRB lt UnsignedSignatureProperties gt SignatureTimeStamp CounterSignature CompleteCertificateRefs CompleteRevocationRefs
106. t Transforms gt lt DigestMethod gt lt DigestMethod gt lt DigestValue gt lt DigestValue gt lt Reference gt Il peut tre n cessaire pour certaines applications de transformer le contenu d signer par URI avant d appliquer la signature En g n ral un utilisateur signe un contenu tels qu il le voit Les transformations peuvent tre utilis s pour appliquer des filtres sur un contenu initial Les l ments Transform permettent de d finir une s quence d algorithmes de transformations appliquer sur le contenu r f renc par l URI Ensuite l algorithme de hachage d finit par l l ment DigestMethod est utilis pour hacher le r sultat des transformations La valeur du hach ainsi obtenue d finit ensuite l l ment DigestValue Assembler l l ment SignedInfo En plus des l ments Reference le SignedInfo contient deux autres l ments qui sont Signa tureMethod et CanonicalizationMethod Le premier d signe l algorithme de signature qui va tre utilis Le deuxi me d signe l algorithme de canonicalization qui va tre utiliser pour r gulariser le contenu du SignedInfo avant de calculer la signature R sumons donc les tapes de l assemblage du SignedInfo 1 Pour chaque resource signer a former un l ment Reference avec PURI d signant la ressource signer et l ensemble des transformations appliquer avant le calcul du hach b Appliquer les transformations en s quence l e
107. t de la signature lectronique en France et plus g n rale ment en Europe est le r sultat de la la directive europ enne 1999 93 CE 4 Les principaux textes sont les suivants 1999 Directive Europ enne 1999 93 CE 2000 Loi n 2000 230 du 13 mars 2000 Prise en compte de la signature lectronique au sein du code civil La directive europ enne d finit les signatures num riques par des donn es sous forme lec tronique qui sont li es ou associ es logiquement d autres donn es lectroniques et qui servent de m thode d authentification 4 XAdES ajoute XMLDSIG les information n cessaires pour tre conforme ces d crets Une signature lectronique volu e en accord avec le pr sent document XAdES peut tre utilis e pour arbitrage en cas de litige entre le signataire et le v rificateur litige qui peut survenir plus tard ventuellement des ann es apr s 32 Une signature XAdES permet d incorporer des nouvelles structures dans une signature XMLD SIG pour fournir des indications pouvant tre trait es afin d obtenir l assurance qu une signature a t produite sous un certain engagement explicite ou implicite sous couvert d une politique de signature un instant donn par un signataire identifiable par un nom ou un pseudonyme et ventuellement un r le Syntaxiquement XAdES est d finit au dessus de XMLDSIG Toutes les structures de XAdES sont incorpor es dans une s
108. te propri t permet de trans porter et signer l identifiant du certificat du signataire La signature contient le certificat du signataire dans son l ment Keylnfo et ce dernier est couvert par la signature Chacune des r gles pr c dentes permet de signer le certificat du signataire Cette forme de signa ture permet de contrer toute attaque qui essaie simplement de substituer le certificat du signataire par un mauvais certificat Facultativement une signature BES peut contenir une ou plusieurs des propri t s suivantes Propri t s sign es qualifiant la signature SigningTime La date de la signature SignatureProductionPlace Le lieu de production de la signature SignerRole Le r le du signataire Pour certaines applications le r le du signataire exemple sa fonction au sein d une entreprise au moment de sa signature peut tre plus important que son nom Propri t s sign es qualifiant les ressources sign es DatObjectFormat Qualifie le format du contenu sign CommitmentTypelndication Indique l engagement sous lequel le signataire a produit la signature Cet engagement peut tre indiqu de fa on explicite en donnant un identifiant d engagement ou implicite en le d duisant partir de la s mantique du contenu sign 28 Cryptolog Rapport de PFE ENSEIRB AllDataObjectsTimeStamp Contient la valeur de la datation de toutes les ressources sign s Le but de cette propr
109. tement de cette transformation est simple Elle enl ve de son entr e l l ment Signa ture avec tous ses descendants contenant la transformation SOAP Simple Object Access Protocol 21 Cryptolog Rapport de PFE ENSEIRB FIG 4 1 Les types de signatures XML Signature enveloppante Une signature XML est dite signature enveloppante si la racine du contenu sign est un des cendant de la racine de la signature voir la figure 4 1 XMLDSIG d finit un conteneur sp cifique object pour ce type de signature voir 4 3 Signature d tach e 4 7 Une signature XML est dite signature d tach e si elle n est ni envelopp ni enveloppante voir la figure 4 1 Il y a deux types de signature d tach es La ressource sign e et le document contenant la signature XML sont totalement d tach s ressource distante La ressource sign e et la signature sont sur le m me document XML mais dans deux niveau d encapsulation diff rents ni la racine de la signature n est un anc tre du contenu sign ni la racine du contenu sign n est un anc tre de la signature 4 2 3 Validation des signatures XML La validation d une signature XML peut se faire en deux tapes La premi re consiste valider les hach s des ressources sign s d finis dans les l ments Reference La deuxi me tape consiste a valider la valeur de la signature contenue dans l l ment Signature Value Etape 1
110. torit qui l a mis m me s il est encore dans sa p riode de validit Par exemple si un employ est renvoy son certificat doit tre r voqu pour emp cher toute utilisation malicieuse La r vocation des certificats peut tre g r de plusieurs mani res Une approche largement utilis e est la publication p riodique de la liste des des num ros de s rie des certificats invalider Cette liste dite CRL est sign e avec la cl priv de l autorit mettrice et peut tre publi e via le m me annuaire de publication des certificats A chaque requ te de validation l administrateur doit v rifier que le certificat n est pas cit dans aucune CRL Les signatures num riques Le chiffrement permet d assurer la confidentialit des donn es et donc d viter les attaques de type coute clandestine voir 3 1 Cependant il ne prot ge pas les donn es contre l alt ration et l usurpation d identit L int grit des donn es peut tre assur e par des fonctions cryptographiques appel es fonctions de hachage hash functions Une fonction de hachage est une fonction permettant de calculer partir d une entr e initiale une valeur appel empreinte num rique ou hach de taille plus petite Un algorithme de hachage doit avoir les deux propri t s suivantes A partir de la valeur de l empreinte il est impossible de revenir l entr e initiale 10 Cryptolog Rapport de PFE ENSEIRB Pour une entr e donn
111. tre une signature XAdES C Syntaxiquement cette forme ajoute les deux propri t s non sign es suivantes CompleteCertificateRefs et C ompleteRevocationRefs OCSP Online Certificate Status Protocol 29 Cryptolog Rapport de PFE ENSEIRB XAdES T Signature lectronique volu e XML R f rences XAdES compl tes Estampille sur F aux Infos Signature Infos Propri t s Propri t s la HESE certificats sign es cl sign es non sign es num rique et r vocations FIG 5 2 Signature num rique volu e forme XAdES C 5 2 5 XAdES X Electronic Signature with with eXtended validation data Cette forme peut tre cr par le signataire ou le v rificateur en datant l ensemble des donn es de validation transport es par la forme pr c dente Elle permet de garder la validit de la signature m me si une partie de ces donn es sont compromis apr s la production de la signature ou apr s la premi re v rification Pour une protection plus maximale un v rificateur peut m me incoprpoer la totalit des donn es de validation dans la signature ce qui construit la forme suivante 5 2 6 XAdES X L Electronic Signature with eXtended validation data for the long term Cette forme permet de transporter la totalit des information de validation voir la section 4 3 Elle est n cessaire pour garantir la validit de la signature long terme et en particulier dans le cas o les donn es de validation ne sont
112. tring String getXMLNSprefix Vector getXMLNS Vector getQName localPart String namespace String String newElement localName String namespace String Element newElement localName String Element getEncoding String toString String stringToBoolean value String boolean booleanToString value boolean String extractFragmentID xpointer String String buildXPointer fragmentID String String oidToURN oid String String urnToOID urn String String XML Structure XMLData uri String OCTET STREAM int NODE SET STREAM int DATA STREAM int getType int convertToNodeSetData NodeSetData convertToOctetStreamData OctetStreamDataz getURI String setURI uri String void XMLStructure getDefaultXMLContext XMLContext setParent parent XML Structure void getParent XML Structure toNodeSetData NodeSetData toOctetStreamData OctetStreamDataz putintoObject id String encoding String mimeType String namespace String XMLObject getlD String setID id String void getXMLContext XMLContext setXMLContext xmiContext XMLContext void updateXMLContext xmiContext XMLContext void newElement localName String Element A A A XML Type XMLObject XMLProperty
113. tureValue gt lt SignatureValue gt lt Signature gt lt C ID signme xmlns amp baz gt lt B gt lt SOAP Body gt lt SOAP Envelope gt XAdES est une extension de XMLDSIG qui permet de lui ajouter la notion de non r pudiation XAdES est aussi conforme la Directive 1999 93 EC du Parlement Europ en et du Conseil du 13 d cembre 1999 sur le cadre communautaire des signatures lectroniques et qui peut donc tre utilis e pour arbitrage en cas de litige entre le signataire et le v rificateur L existant Il existe actuellement plusieurs impl mentations Java de XMLDSIG Les deux les plus impor tantes JSR Java Specification Request 105 par SUN Cette impl mentation fait partie int grante de l API stanadrd Java partir de sa version 1 6 Apache XML Project Les standards de signature et chiffrement XML sont impl ment s par le composant XML Security du projet apache Bien que les licences de ces deux impl mentations sont compatibles avec une utilisation commer ciale plusieurs raisons ont amen es l entreprise penser a faire sa propre impl mentation Parmi lesquels La JSR n est disponible qu partir de java 6 Cependant la majorit des clients de l entreprise utilisent encore les versions 3 et 4 Il y a m me des clients qui utilisent encore les versions 1 et 2 Le projet Apache ainsi que la JSR utilisent la JCA Java Cryptography Architecture int gr Java en parti
114. ure ENVELOPING false 2 Now you can create the SignedInfo This element represents the content that will be covered by the signature value In addition to the list of the Reference addressing the signed data objects it contains the signature and the canonicalization algorithm identifiers We will use the EXCLUSIVE canonicalization algorithm and RSA for the signature ector refs new Vector fefs add ref JignedInfo si new SignedInfo new CanonicalizationMethod TransformFactory EXC_C14N new SignatureMethod Algo RSASignature_PKCS1_SHA1 refs Document generated by Confluence on Jul 30 2007 16 07 Page 1 3 Now you have just to sign the created SignedInfo to obtain the XMLSignature The signer can send into the signature any information DN certificates which can be used by the verifier to select its public key For example he can add explicitly its public key IMLSignature xmls si sign new KeyInfo null new ReyValue publicRey null dignatureGenerator 4 The obtained XML signature is ready to be marshaled to obtain the XML representation of the signature Before the marshaling you can attach unsigned signature properties or any arbitrary XML data mls addUnsignedProperty property mls marshal System out Method 2 The XMLSigUtils class provides helpful methods to quickly create a SignedInfo ready to be signed SignedInfoTemplate sit XMLSigUtils nevSignedInfoTemplate tt
115. ure XML o indique que l l ment peut apparaitre une ou plusieurs fois indique que l l ment peut apparaitre au plus une fois et P indique que l l ment peut appara tre z ro ou plusieurs fois 23 Cryptolog Rapport de PFE ENSEIRB 1 lt Signature ID gt 2 lt SignedInfo gt 3 lt CanonicalizationMethod gt 4 lt SignatureMethod gt 5 lt Reference URI gt 6 lt Transforms gt 7 lt DigestMethod gt 8 lt DigestValue gt 9 lt Reference gt 10 lt SignedInfo gt 11 lt SignatureValue gt 12 lt KeyInfo gt 13 lt Object ID gt 14 lt Signature gt FIG 4 2 La structure simplifi e d une signature XML On va se limiter dans cette section aux l ments les plus importants l tude exhaustive des l ments XMLDSIG peut n cessiter tout un rapport On abordera aussi certains l ments qui bien qu ils sont optionnels peuvent avoir plusieurs applications pratiques L l ment SignedInfo L l ment SignedInfo contient la structure XML effectivement couvert par la signature Il est constitu par 3 type d l ments L l ment Reference Un SignedInfo doit contenir au moins un l ment Reference d signant la ressource signer par un attribut URI Cet l ment permet aussi de qualifier la ressource par d autres attributs qui peuvent aider l application r soudre et d coder PURI A savoir Encoding d crit l encodage de la ressource Type
116. vious parameters 9 The following figure summarizes the interactions between the server modules to handle a SignRequest Key Signature module module getSig nG n erator signeriD Request handler Sign Request d ocument signeriD i profil sigType options i i SignatureGenerator Sign document type sigGen attributes Response H constructor Sign Respons signature profile request result output options Handling the SignRequest options The ServicePolicy option This option indicates a specific signature policy to use This option is mandatory if the server can support multiple policies B The ClaimedIdentity option This option indicate the identity of client making the request 9 The SignatureType option Indicates the type of the signature CMS or XML This option is mandatory The SignatureForm option This option indicates the form of the signature if a XADES or CADES signature is required The required signature form must be compatible with the selected signature policy For instance if the signature policy implies that the SigningCertificate property must be present the required form must be at least XADES T Document generated by Confluence on Jul 30 2007 16 08 Page 3 or CADES T The Properties option This option indicates a set of signed and unsigned properties to add to the signature being created The properties are indicated usin
117. x tapes pr c dentes ont t valid es Impossible de r soudre une URI les ressources sign es sont adress es avec des URI L chec de la r solution d une de ces URI entra ne naturellement l chec de la premi re tape D autre part l application peut bien ignorer cet attribut si elle est capable de r cup rer directement partir d un cache par exemple le contenu sign XMLDSIG permet m me dans ce cas d omettre l attribut URI Cependant pour viter toute ambigu t au plus un l ment Refrence sans URI peut tre pr sent dans une signature XML 4 3 Vue structurelle syntaxe de XMLDSIG La recommandation W3C sp cifie de fa on exhaustive tous les l ments d une signature XML Les structures sont d finis gr ces des DTD 34 Document Type Definition et des sch mas XML voir section 3 2 1 Il est cependant conseill d utiliser les sch mas car contrairement aux DTD ils supportent la notion des espace de noms Le sch ma complet des signatures XML est donn dans l annexe 7 3 2 La recommandation d finit galement l espace de noms des signature XML Une signature conte nant un l ment ext rieur cet espace de noms peut tre consid r e invalide Cependant XMLDSIG pr voit un l ment sp cifique pour contenir toute structure ext rieur l espace de noms de la si gnature Ce conteneur va tre d taill dans les sections suivantes La figure 4 2 donne la structure g n rale d une signat

Download Pdf Manuals

image

Related Search

Related Contents

BENUTZERHANDBUCH  00 - GDV Imports - Front Face Business  Bedienungsanleitung  Cochise Regional Hospital Hematology and Urinalysis Policies and  SFC AXX-1 Bedienungsanleitung  Manual de Calibração e Operação  User Manual  THERMO RECORDER WIDE RT-50 取扱説明書  

Copyright © All rights reserved.
Failed to retrieve file