Bonjour, ou peut-être bonsoir,
Tout d'abord sachez que je suis relativement novice dans le domaine du XML.
Et merci du temps que vous prendrez pour lire ceci.
Je me suis renseigné sur les différente normes :
- XMLDsig
- XAdES (avec toutes les lettres qui vont bien derrière :p)
Et je me suis heurté, au plus souvent, des pages traduite (mais pas réelement
BIEN traduite ce qui donne quelque chose d'assez peu comprehensible) ou alors des
page en anglais (même en ayant un bon niveau d'anglais, me farcir 44pages de norme
ou je comprend déjà pas 10 mots de ce qu'ils veulent dire, ça me donne mal a la tête).
En bref je doit créer un outil qui signe les documents en XML.
Alors voila ce que j'ai compris :
1) Le document à signer n'est pas présent dans la feuille XML, seul la signature y est (on peut bien sur inclure le nom du doc.).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> <Reference> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>chiffresetlettrespasbeau</DigestValue> </Reference> </SignedInfo> <SignatureValue>tralalaletrucsigné</SignatureValue> <KeyInfo> <KeyName>blablabla</KeyName> </KeyInfo> <Signature>
2) <Signature xmlns="..."> précise que la signature est conforme a la norme du w3c.
3) <CanonicalizationMethod Algorithm="..."/> canonise le document à signer (le remet en forme ?).
4) <SignatureMethod Algorithm="...#rsa-sha1"/> chiffrement via algorithme RSA-SHA1.
5) <DigestMethod Algorithm="...#sha1"/> le doc canonisé sera HASHé via algo SHA1.
6) <DigestValue> est le HASH créé par SHA1.
7) <SignatureValue> et le "chiffré" du HASH soit la signature en elle-même.
8) <KeyName> la clé PUBLIQUE utilisé pour chiffré le HASH.
J'aurait aimé avoir des explication sur la canonisation (je n'ai pas réelement compris le but)
et j'ai aussi lu tout plein de choses surement interressante a propos des REFERENCE
mais mon cerveau n'a pas gardé les infos >.<
Si on pouvait m'expliquer un peu plus le principe ?
N'hésité pas a me poser des question ne serait-ce que pour voir si j'ai bien "pigé" le truc.
Merci beaucoup.
Cordialement,
Rilou
Partager