# SIGNATURES — Politique de signature DOMINIZ ## 1. Objet Ce document décrit les règles de signature électronique et de gestion des clés dans le cadre de la **Norme DOMINIZ (DOM-00)**. Il définit comment les documents sont scellés, validés et vérifiés par l’écosystème **ORVEX / AG2I GLOBAL**. ## 2. Types de signature | Type | Algorithme | Usage | | ------------------------ | -------------------- | ----------------------------------------------------------------- | | **Signature primaire** | RS256 | Émise par l’autorité principale (AG2I GLOBAL, État, institution). | | **Signature secondaire** | RS256 ou HMAC-SHA256 | Ajoutée par des co-signataires ou validateurs (multi-JWS). | | **Signature locale** | HMAC-SHA256 | Utilisée en interne ou hors-ligne (non publique). | ## 3. Structure d’une signature JWS Chaque signature DOMINIZ suit le format compact JSON Web Signature : ``` BASE64URL(header).BASE64URL(payload).BASE64URL(signature) ``` ### Exemple : ```json { "alg": "RS256", "kid": "ag2i-sg-2026", "jws": "eyJhbGciOiJSUzI1NiIsImtpZCI6ImFnMmktc2ctMjAyNiJ9.eyJkb2N1bWVudFR5cGUiOiJBdHRlc3RhdGlvbiIsImRvbWluaXoiOnsi..." } ``` ## 4. Multi-signature (Co-signature) La norme DOMINIZ permet la signature par plusieurs autorités : ```json "multi": { "required": 2, "jws": ["", ""] } ``` * `required` : nombre minimal de signatures valides nécessaires pour l’authenticité complète. * Chaque signature doit référencer un `kid` valide dans le **KID Registry**. ## 5. KID Registry Le **KID Registry** est un fichier JSON public (`/dom-00/kid_registry.json`) contenant : * `kid` : identifiant unique de la clé publique. * `spki_pem_url` : lien vers la clé publique SPKI PEM. * `issuer` : entité émettrice. * `validFrom` / `validTo` : période de validité. ### Exemple : ```json { "keys": [ { "kid": "ag2i-sg-2026", "issuer": "AG2I GLOBAL / Secrétariat Général", "spki_pem_url": "https://ag2i-global.org/dom-00/keys/ag2i-sg-2026.pem", "validFrom": "2025-01-01T00:00:00Z", "validTo": "2027-12-31T23:59:59Z" } ] } ``` ## 6. Revocation List Le fichier `/dom-00/revocations.json` contient la liste des documents ou clés révoqués : ```json { "revoked": [ { "serial": "DOM-00-AG2I-2025-000012", "reason": "Erreur d’émission", "revokedAt": "2025-09-10T12:00:00Z" }, { "kid": "ag2i-sg-2024", "reason": "Clé compromise", "revokedAt": "2025-02-01T00:00:00Z" } ] } ``` ## 7. Cycle de vie des clés | Phase | Description | Durée typique | | -------------- | --------------------------------------------------- | ----------------- | | **Création** | Génération hors ligne (RSA 4096 bits min.). | 0 | | **Activation** | Publication dans le `kid_registry.json`. | jusqu’à 24 mois | | **Rotation** | Nouvelle clé active, l’ancienne passe en rétention. | 24–30 mois | | **Révocation** | Ajout dans `revocations.json`. | dès compromission | | **Archivage** | Conservation des clés expirées à des fins d’audit. | 10 ans | ## 8. Bonnes pratiques de signature * Les clés privées ne doivent jamais être exposées sur des systèmes connectés. * Toute signature publique doit être traçable à un `kid` actif dans le registre. * Les signatures internes (HMAC) doivent rester confinées à leur contexte local. * Chaque document doit contenir au moins **une signature valide RS256**. ## 9. Exemple complet de section `proof` ```json "proof": { "pdf": { "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" }, "json": { "alg": "RS256", "kid": "ag2i-sg-2026", "jws": "" }, "multi": { "required": 2, "jws": ["", ""] } } ``` ## 10. Gouvernance Les signatures officielles DOMINIZ sont gérées sous la supervision du **Conseil de Sécurité Cryptographique d’AG2I GLOBAL**, garant de : * la rotation régulière des clés KID, * la conformité FIPS des modules de signature, * et la validation des registres publics DOM-00. --- > *« Une signature DOMINIZ n’atteste pas seulement un document : elle proclame la vérité numérique d’une institution. »*