digital-signatures-fr: Difference between revisions
Line 89: | Line 89: | ||
</pre> | </pre> | ||
== Détails sur " | == Détails sur "Manifest" et génération de sig == | ||
Dans notre prototype, le "manifest" est stocké sous le nom de classe "manifest" (voir au-dessus). Le "manifest" est aussi encapsulé dans la signture ce qui aide à la sécurité. Le "manifest" identifie d'abord pour quelle structure de microformat la signature a été générée. | Dans notre prototype, le "manifest" est stocké sous le nom de classe "manifest" (voir au-dessus). Le "manifest" est aussi encapsulé dans la signture ce qui aide à la sécurité. Le "manifest" identifie d'abord pour quelle structure de microformat la signature a été générée. |
Latest revision as of 13:29, 5 August 2007
Signatures Digitales
Cette page documente une discussion traitant des données de signatures digitales microformatées.
Introduction
Les microformats définis tels que hCard, hCalendar ou hReview peuvent être formatés poru inclure une signature digitale. Ce document est une définition d'un format proposé pour la signature digitale de données microformatées. Le fait que ce format soit agnostique au contenu, il peut être utilisé pour construire des Microformats composés de signature à partir de tous les microformats existants et futurs.
Au sens large, ce format (parfois appelé hSig) vise à protéger l'authenticité et l'autorité du contenu qui a été rendu lisible par une machine à travers l'utilisation d'annotations sémantiques. (par ex des données microformatées).
Format
La structure et les noms sont choisisi dans la style de la Recommandation du W3C pour la Syntaxe et le Traitement de la Signature-XML [1], la structure XML existante pour les signatures digitales.
// Proposed format with example values .... <div class="hsig"> <a class="canonicalizationmethod url" href="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"> </a> Signed using <span class="signaturemethod">RSA</span>. Hashed using <span class="digestmethod">SHA1</span>. <abbr class="manifest" title="vcard:fn,vcard:email"> Name and eMail signed. </abbr> <abbr class="digestvalue" title="57c8105e6d944[...]a14c4cea7f53"> The Hash. </abbr> <abbr class="signaturevalue" title="7m6NS6ANCa[...]Kl42Rr+Pfw=="> The signature. </abbr> <abbr class="keyinfo" title="X509"> I have an X509 certified key. </abbr> <abbr class="keyvalue" title="-----BEGIN CERTIFICATE----- E693c4[...] [...]MIICIzCCAc2gAgANB-----END CERTIFICATE-----" > My X509 certificate containing my public-key. </abbr>. </div> ...
Il y a plusieurs différences entre ce format et la structure de la signature XML originale existante :
- Most notably, the proposed Microformat is less nested. For example, instead of placing digestmethod and digestvalue into a sub-container called reference, the structure was flattened.
- Fields were added which allow more room for capturing different signature formats. For example, in addition to flattening keyinfo keyvalue was added, which stores information about the key.
Intégration de la signature
To bind the signature to existing Microformatted content, there are three possibilities (again conforming to the use of XML Signatures).
Signature enveloppante
For an enveloping signature the hsig container contains the Microformatted content that is signed. The content's sub-properties are referenced in the manifest using the Microformat's name followed by the sub-property, separated by a colon (e.g. vcard:fn).
Signature enveloppée
In the case of an enveloped signature the hsig container is contained within the Microformatted micro content that is signed. Again the micro content's sub-properties are referenced in the manifest using the Microformat's name followed by the sub-property, separated by a colon (e.g. vcard:fn ). Figure 2 shows this case.
Signature détachée
This case is needed when a signature shall cover more than one micro content from that page. The micro contents that are part of the signature are then referenced using an <object> or <a> HTML element inside the hsig -section. In this case the micro content needs an id, which is then used for reference instead of the Microformat's name. This case is the most complex one and is not further elaborated for brevity.
// Signed content using an enveloped hsig <div class="vcard"> <h1 class="fn">SVS - Office</h1> <a href="mailto:svs-office@informatik.uni-hamburg.de" class="email">Email us.</a><br/> Tel.: <span class="tel">+49 40 42883 - 2510</span><br/> Fax: +49 40 42883 - 2086 <br/> Room: F-631 <br> <div class="hsig"> <abbr class="manifest" title="vcard:fn, vcard:tel, vcard:email"> This </abbr> <abbr class="digestvalue" title="57c8105e6dd944[...]a14c4cea7f53"> content </abbr> <abbr class="signaturevalue title="7m6NS6NCa[...]Kl42Rr+Pfw=="> is signed. </abbr> <abbr class="digestmethod" title="SHA1">It was hashed using SHA1.</abbr> <abbr class="signaturemethod" title="RSA">And signed using RSA.</abbr> <abbr class="keyvalue" title="-----BEGIN CERTIFICATE----- [....] [...] CIzCCAc2gAgA-----END CERTIFICATE-----" > My <span class="keyinfo">X509</span> public-key certificate. </abbr>. </div> </div>
Détails sur "Manifest" et génération de sig
Dans notre prototype, le "manifest" est stocké sous le nom de classe "manifest" (voir au-dessus). Le "manifest" est aussi encapsulé dans la signture ce qui aide à la sécurité. Le "manifest" identifie d'abord pour quelle structure de microformat la signature a été générée.
Après l'identifiant Microformat, les sous-propriétés sont exprimées en utilisant leurs noms de classes (par ex vcard:fn). Les hashes sont traités sur chaque sous-propriété dans le manifest et le manifest lui-même. Les hashes sont ensuite concaténés dans leur odre d'apparition dans le manifest avec en premier le hash du manifest. Cette concaténation de hashes est hashée à nouveau et stockée dans la "digestvalue".
Pour finir, c'est signé digitalement en utilisant un algorithme de signature digitale (spécifié dans la méthode de signature) et la valeur est stockée dans "signaturevalue". Pour permettre une vérification plus facile de la signature et aider à l'authentification du signataire, la clé peut être ajouté à hSig sous une "keyvalue". La clé pourrait être tout allant d'une clé PGP jusqu'à un Certificat X509 provenant d'un CA. Ce qui serait exactement l'information ajoutée de la key serait spécifié dans "keyinfo" même si ce pourrait être déductible des valeurs de la clé en elle-même ou la méthode de signature utilisée.