Signatures numériques évoluées en XML Soutenance PFE ENSEIRB Moez Ben M'Barka 25 Septembre 2007
Plan 1 2 3 4 5 Introduction Contexte général. Préliminaires. Les signatures évoluées en XML. Tests d'intéropérabilité. Conclusion et perspectives.
1 Introduction Cryptolog Cryptolog Contexte général Préliminaires Cryptolog : un des leaders européens des solutions de gestion des identités numériques. Solutions Cryptolog : Signature électronique. Messagerie sécurisée. L'authentification forte. Dématérialisation des Procédures.
1 Introduction Cryptolog Cryptolog : un des leaders européens des solutions de gestion des identités numériques. Cryptolog Contexte général Préliminaires Solutions Cryptolog : Signature électronique. Messagerie sécurisée. L'authentification forte. Dématérialisation des Procédures. Produits Cryptolog : Cryptolog Unicity : un système de gestion et stockage clés. Cryptolog Universal Token Interface : un outil de gestion des certificats numériques. Cryptolog Eternity : un serveur d'horodatage.
2 Introduction Contexte Général Contexte général Préliminaires Internet : plateforme universelle d'échange de produits et services Utilisation professionnelle : B2B (Business to Business). B2C (Business to Consumer). Dématérialisation des Procédures : payement en ligne. facturation. contractualisation. Sensibilité croissante des transactions Besoins croissants en sécurité Les exigences de base : Confidentialité, intégrité et authentification.
3 Préliminaires La cryptographie comme solution Préliminaires Confidentialité Algorithmes de chiffrement/déchiffrement. Authentification certificat : pair de clé = personne absf fsfsmb sbfsmdnfbsdm dgdf gd fsnd fsm Chiffrement avec la clé publique 01010101101 010101010 010101101001 Déchiffrement avec la clé privée Cryptographie a clé publique : absf fsfsmb sbfsmdnfbsdm dgdf gd fsnd fsm une pair de clés : une secrète et une publique
3 Préliminaires La cryptographie comme solution Préliminaires Confidentialité Algorithmes de chiffrement/déchiffrement. Authentification certificat : pair de clé = personne absf fsfsmb sbfsmdnfbsdm dgdf gd fsnd fsm Chiffrement avec la clé publique 01010101101 010101010 010101101001 Déchiffrement avec la clé privée Cryptographie a clé publique : absf fsfsmb sbfsmdnfbsdm dgdf gd fsnd fsm une pair de clés : une secrète et une publique Intégrité Fonctions de hachage. absf fsfsmb sbfsmdnfbsdm dgdf gd fsnd fsm 0101010 11010 Fonction de hachage
3 Préliminaires La signature numérique Préliminaires La signature numérique = intégrité + authentification. Bob Certificat AC Autorité de certification Clé publique Serveur PKI
3 Préliminaires La signature numérique Préliminaires La signature numérique = intégrité + authentification. Bob Certificat AC Autorité de certification Clé publique Serveur PKI
3 Préliminaires La signature numérique Préliminaires Bob Certificat AC Autorité de certification Clé publique Serveur PKI Alice
3 Préliminaires Formats des signatures numériques Préliminaires Pour vérifier une signature : La valeur de la signature. Le document original. L'algorithme de hachage. L'algorithme de chiffrement. Un identifiant du signataire. Données de validation.
3 Préliminaires Formats des signatures numériques Préliminaires Pour vérifier une signature : La valeur de la signature. Le document original. L'algorithme de hachage. L'algorithme de chiffrement. Un identifiant du signataire. Données de validation. Deux formats : CMS : Cryptographic Message Syntax Basé sur un encodage binaire brut. Format très utilisé. RFC IETF depuis 1999.
3 Préliminaires Formats des signatures numériques Préliminaires Pour vérifier une signature : La valeur de la signature. Le document original. L'algorithme de hachage. L'algorithme de chiffrement. Un identifiant du signataire. Données de validation. Deux formats : CMS : Cryptographic Message Syntax Basé sur un encodage binaire brut. Format très utilisé. RFC IETF depuis 1999. Signatures XML : Utilise XML comme support de donnée. Format récent Recommandation W3C depuis 2002.? Pourquoi XML?
3 Préliminaires XML? Préliminaires Pourquoi XML : Langage structuré et flexible. Standarisé par le W3C. Plusieurs outils pour la manipulation des données XML : Xpath, Xpointer, XSLT... De plus en plus utilisé sur Internet comme support de données. En particulier, par les services web : Besoin de le doter de services de sécurité.
4 Implémentation Intéropérabilité 1.Produire une signature XML : une URI désignant le document. le document a signer. le hachée du document. une forme transformée du document.
4 Implémentation Intéropérabilité 1.Produire une signature XML : le document a signer. une URI désignant le document. le hachée du document. une forme transformée du document. Types des Signatures XML: Signatures sur des portions de documents le document peut être recomposé/transformé par le récepteur
4 Implémentation Intéropérabilité 1.Produire une signature XML : le document a signer. une URI désignant le document. le hachée du document. une forme transformée du document. Types des Signatures XML: Signatures sur des portions de documents le document peut être recomposé/transformé par le récepteur Signatures par plusieurs signataires note de frais devant être signées par plusieurs personnes billet combiné (avion + rail)
4 Implémentation Intéropérabilité 1.Produire une signature XML : le document a signer. une URI désignant le document. le hachée du document. une forme transformée du document. Types des Signatures XML: Signatures sur des portions de documents le document peut être recomposé/transformé par le récepteur Signatures par plusieurs signataires note de frais devant être signées par plusieurs personnes billet combiné (avion + rail) Signature apposée sur plusieurs objets distincts 1 document HTML + image de bannière.
4 Implémentation Production d'une signature XML Intéropérabilité 1.Produire une signature XML : une URI désignant le document. le document a signer. le hachée du document. une forme transformée du document. Pour chaque document :
4 Implémentation Production d'une signature XML Intéropérabilité Signature SignedInfo Le contenu effectivement signé : Références vers les ressources signées. Algorithmes de transformations. Algorithmes de hachages. Algorithme de signature. Algorithme de normalisation.
4 Implémentation Production d'une signature XML Intéropérabilité Signature SignedInfo Le contenu effectivement signé. SignatureValue La valeur de la signature : 1. Normaliser le contenu du SignedInfo. 2. Hacher le résultat de la normalisation. 3.Chiffrer le résultat avec la clé privé.
4 Implémentation Production d'une signature XML Intéropérabilité Signature SignedInfo Le contenu effectivement signé. SignatureValue La valeur de la signature. KeyInfo Des données de validation : La clé publique. Des certificats. Des identifiants....
4 Implémentation Production d'une signature XML Intéropérabilité Signature SignedInfo Le contenu effectivement signé. SignatureValue La valeur de la signature. KeyInfo Des données de validation : clés, certificats... Objects Des données supplémentaires : La date de la signature. Matériel cryptographique utilisé....
4 Implémentation Intéropérabilité 1.Produire une signature XML : 2.Valider une signature XML : le document a signer. une URI désignant le document. le hachée du document. une forme transformée du document. valider les références signées. valider la valeur de la signature.
4 Implémentation Validation d'une signature XML Intéropérabilité Validation des références : Pour chaque ressource signée :
4 Implémentation Validation d'une signature XML Intéropérabilité Validation des références : Pour chaque ressource signée : Validation de la valeur de la signature : Utiliser les données du KeyInfo pour récupérer la valeur de la clé publique. Valider la clé publique. Déchiffrer la valeur de la signature. Comparer le résultat obtenu avec le haché du SignedInfo après normalisation.
4 Implémentation Intéropérabilité 1.Produire une signature XML : 2.Valider une signature XML : 3.Modifier une signature XML : le document a signer. une URI désignant le document. le hachée du document. une forme transformée du document. valider les références signées. valider la valeur de la signature. Ajouter une co signature. Ajouter une contre signature.
5 Implémentation Intéropérabilité Conclusion Directive Européenne 1999/93/CE : Avec l'importance croissante des transactions effectuées sur Internet : Un cadre juridique a doté les signature numérique d'une valeur légales.
5 Implémentation Intéropérabilité Conclusion Directive Européenne 1999/93/CE : Avec l'importance croissante des transactions effectuées sur Internet : Un cadre juridique a doté les signature numérique d'une valeur légales. Nouvelles exigences : Non répudiation. Notion d'engagement. Archivage. Validité a long terme.
5 Implémentation Intéropérabilité Conclusion Directive Européenne 1999/93/CE : Avec l'importance croissante des transactions effectuées sur Internet : Un cadre juridique a doté les signature numérique d'une valeur légales. Nouvelles exigences : Non répudiation. Notion d'engagement. Archivage. Validité a long terme. XADES définit 6 formes au dessus de. Chaque forme ajoute un ensemble de propriétés à la signature qualifiant le signataire ou les ressources signées.
5 Implémentation Intéropérabilité Conclusion Construction et validation d'une signature XADES : Signature SignedInfo La forme XADES BES (Basic Electronic Signature) : Le certificat du signataire. Le rôle du signataire. Le temps de la signature. Datation des ressources signées. Format des ressources signées.
5 Implémentation Intéropérabilité Conclusion Construction et validation d'une signature XADES : Signature SignedInfo La forme XADES BES (Basic Electronic Signature) : Le certificat du signataire. Le rôle du signataire. Le temps de la signature. Datation des ressources signées. Format des ressources signées. SignatureValue Objects Les formes C, X L, A : Les valeurs de tous les données de validation. Datation des données de validation. Datation du document de la signature.
6 Standards implémentés : Implémentation Intéropérabilité XML Signature Syntax and Processing (RFC 3275). XML Advanced Electronic Signatures (ETSI TS 101 903). XML format for signature policies (ETSI TR 102 038). Intéropérabilité Conclusion
6 Standards implémentés : Implémentation Intéropérabilité XML Signature Syntax and Processing (RFC 3275). XML Advanced Electronic Signatures (ETSI TS 101 903). XML format for signature policies (ETSI TR 102 038). Intéropérabilité Conclusion Résultats des tests :
Conclusion Intéropérabilité Conclusion Vue les résultats des tests d'intéropérabilité, l'api nécessite plusieurs améliorations : Supports de plusieurs éléments décrits dans le standard. Support de certains algorithmes de transformation largement utilisés. Développement de modules par profil d'utilisation. Exemple : OASIS Web Services Security
Conclusion Intéropérabilité Conclusion Vue les résultats des tests d'intéropérabilité, l'api nécessite plusieurs améliorations : Supports de plusieurs éléments décrits dans le standard. Support de certains algorithmes de transformation largement utilisés. Développement de modules par profil d'utilisation. Exemple : OASIS Web Services Security Les signatures évoluées : équivalent numérique avec une valeur juridique de la signature classique papier.
Conclusion Intéropérabilité Conclusion Vue les résultats des tests d'intéropérabilité, l'api nécessite plusieurs améliorations : Supports de plusieurs éléments décrits dans le standard. Support de certains algorithmes de transformation largement utilisés. Développement de modules par profil d'utilisation. Exemple : OASIS Web Services Security Les signatures évoluées : équivalent numérique avec une valeur juridique de la signature classique papier. La croissance de l'utilisation de XML dans des transactions sensibles a mené a la définition de plusieurs standards de sécurité basés sur XML. D'autres standards : chiffrement, politiques de contrôle d'accès. Domaine d'application : les services web.
Questions? Moez Ben Mbarka 25 Septembre 2007
Références M. Bartel, J. Boyer, B. Fox, B. LaMacchia, E. Simon, XML Signature Syntax and Processing, W3C recommendation (12 February 2002), IETF RFC 3275. J. Reagle, XML Signature Requirments, W3C Working Draft 14 October 1999. JC. Cruellas, G. Karlinger, D. Pinkas, J. Ross, XML Advanced Electronic Signatures, W3C Note 20 February 2003. XML Advanced Electronic Signatures (). ETSI technical Specification, v1.3.2 March 2006. XML Key Management Specification (XKMS), W3C Note 30 March 2001. W. DIFFIE and M. HELLMAN, New directions in cryptography, IEEE Trans. Inform. Theory, 22 (1976), pp. 644 654. S.Bakhtiari, R.Safavi and J.Pieprzyk, Cryptography hash functions : A survey. Sun Documentation, Introduction to Public Key Cryptography, http ://docs.sun.com/source/816 6154 10/. R. Housley, W. Ford, W. Polk, D. Solo, Internet X.509 Public Key Infrastructure : Certificate and CRL Profile, IETF RFC 2459. Directive 1999/93/CE du Parlement européen et du Conseil, du 13 décembre 1999, sur un cadre communautaire pour les signatures électroniques. 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).
Conclusion Sécurité XML : Application Moez Ben Mbarka 25 Septembre 2007 Exemple d'application : les services web. Sécurité au niveau du transport. Authentification de l appelant XML Client Intégrité des messages Confidentialités des messages Service XML Transport Transport sécurisé Transport
Conclusion Sécurité XML : Application Exemple d'application : les services web. Sécurité au niveau des messages. Les messages XML transmettent des informations de sécurité XML Client Informations d'identification Signatures numériques Les messages peuvent être cryptés Service XML Transport Tout transport Transport XML XML La sécurité est indépendante du protocole de transport Moez Ben Mbarka 25 Septembre 2007
Conclusion Sécurité XML La croissance de l'utilisation de XML dans des transactions sensibles a mené a la définition de plusieurs standards de sécurité basés sur XML. Les besoins de sécurité a satisfaire : Confidentialité. Intégrité Authentification. Gestion de droits d'accès. XML Encryption XKMS SAML XACML Confidentialité Intégrité Authentification Politique de contrôles d'accès XML (Xpath, Xpointer, XSLT...)
Serveur de signature Architecture de base : Serveur de signatures Configuration Production XML Production CMS Validation XML Validation CMS Module de gestion de clés Module cryptographique Module PKI¹ Modules serveur Support sécurisé de clés Annuaire (certificats, clés..) PKI¹ : Public Key Infrastructure.
Serveur de signature Processus de production Production XML Module cryptographique Module de gestion de clés Support sécurisé de clés créer(document, id, params...) hacher(document) signer(haché, id) signer(haché, id) Signature
Serveur de signature Processus de validation Validation XML Module cryptographique Module PKI valider(signature, params...) retourner_et_valider_clé(keyinfo) valider(signature) Annuaire (certificats, CRLs...) état de la signature Moez Ben Mbarka 15 Juin 2007
Support de transport pour les services web : SOAP Annuaire UDDI Quel Service me proposes-tu et quel est le format d appel Contrat? Je recherche des Services WEB Exemple d'application : les services web. Voici mon contrat (WSDL) XML SOAP Client J ai compris comment invoquer ton Service et je t envoie un document XML représentant ma requête SOAP/XML Serveur SOAP : Simple Object Access Protocol. WSDL : Web Services Description Language. J ai exécuté ta requête et je te retourne le résultat SOAP/XML
La cryptographie Cryptographie symétrique/asymétrique Moez Ben Mbarka 25 Septembre 2007 Chiffrement avec la clé secrète Déchiffrement avec la clé secrète Chiffrement avec la clé publique Déchiffrement avec la clé privée absf fsfsmb sbfsmdnfbsdm dgdf gd fsnd fsm 01010101101 010101010 010101101001 absf fsfsmb sbfsmdnfbsdm dgdf gd fsnd fsm absf fsfsmb sbfsmdnfbsdm dgdf gd fsnd fsm 01010101101 010101010 010101101001 absf fsfsmb sbfsmdnfbsdm dgdf gd fsnd fsm Cryptographie symétrique : même clé pour le cryptage et décryptage. + Algorithmes généralement rapides. Gestion de clés compliquée dès qu'il y a un grand nombres de correspondants. Transmission et partage de la clé secrète. Exemple : DES Cryptographie asymétrique : Une pair de clé : une secrète et une publique + Aucune information secrète a partager. + Gestion de clés plus simple. Algorithmes plus lents. Exemples : RSA, DSA
Types des signatures XML Types de signatures XML : Enveloppante: La signature enveloppe le contenu à signer (par l'intermédiaire d'une URI interne). Envelopée: La signature est incluse dans le document qu'elle signe (URI interne). Détachée: La signature référence un document différent du document XML (référence vers une URI externe).
Exemple d'une signature XML <Signature Id="MyFirstSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"> [s02] <SignedInfo> [s03] <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/ [s04] REC-xml-c14n-20010315"/> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/> [s05] <Reference URI="http://www.w3.org/TR/2000/ REC-xhtml1-20000126/"> [s06] <Transforms> [s07] <Transform Algorithm="http://www.w3.org/TR/2001/REC-xmlc14n-20010315"/> [s08] </Transforms> [s09] <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> [s10] <DigestValue>j6lwx3rvEPO0vKtMup4NbeVu8nk=</DigestValue> [s11] </Reference> [s12] </SignedInfo> [s13] <SignatureValue>MC0CFFrVLtRlk=...</SignatureValue> [s14] <KeyInfo>...</KeyInfo> [s15] </Signature>
Les éléments SignedInfo et Reference <Signature> <SignedInfo> (CanonicalisationMethod) </SignedInfo> (SignatureValue) (KeyInfo)? (Object)* </Signature> (SignatureMethod) (<Reference (URI=)?> (Transforms)? (DigestMethod) (DigestValue) </Reference>)+ Chaque ressource à signer a son propre élément <Reference> identifié par un attribut URI. L élément <Transforms> spécifie une liste d étapes qui ont été appliquées au contenu de la ressource référencée avant la prise d empreinte. Les transformations typiques incluent la canonisation XML, Xpath et XSLT. L élément <DigestValue> contient la valeur d empreinte de la ressource référencée.
XADES : cycle de vie Signature fournie par le signataire XADES EPES
XADES : cycle de vie Signature fournie par le signataire XADES EPES 1 Processus de Validation UnsignedProperties 2 XADES T SignatureTimeStamp
XADES : cycle de vie UnsignedProperties 3 XADES T SignatureTimeStamp 4 XADES C CompleteCertificateRefs CompleteRevocationRefs
XADES : cycle de vie UnsignedProperties 3 XADES T SignatureTimeStamp 4 XADES C CompleteCertificateRefs CompleteRevocationRefs 5 XADES X L CertificateValues RevocationValues
XADES : cycle de vie 4 XADES C CompleteCertificateRefs CompleteRevocationRefs 5 XADES X L CertificateValues RevocationValues 6 XADES A ArchiveTimestamp