Manifeste technique souverain

Auteur: Franck DutouronIdentifiant: QUESTION 0620172485 — coeurs.netVersion: 1.0.0Créé: 2025-09-28

Intentions: Ce document formalise une architecture sobre, auditable et souveraine pour la manipulation de données locales, avec pivot SVG filtré et JavaScript local, cloisonnement strict Public Core / Private Core, et contraintes MMU/DataType pour la sécurité par conception.

Principes directeurs

Architecture distant et local

Distant (zone publique)

  • Sources: Web renderer → SVG, App’s Store, Download Requests, Internet Security.
  • Frameworks sensibles: Parties O.S. Sensibles (style .NET) utilisés uniquement en lecture et conversion.
  • ROM/Stack: Noyau, File System, O.S., TCP/IP — pas de logique critique ici.
  • Filtrage: SVG frames reçues ou filtrées, jamais exécutées directement; conversion assurée par pipeline minimal.

Local (zone privée)

  • Private RAM: Mémoire dédiée aux opérations sensibles; aucune exposition aux flux publics.
  • Private Core: Manipulation des fichiers avec Private RAM; accès aux Clean App’s Binaries uniquement.
  • Public Core (local): Interface tampon avec règles strictes; autorisé pour stockage temporaire uniquement.
  • MMU/DataType: Critical Data Modifier avec contraintes de type et ressources; refuse formats ambigus.
  • Temp files: Temporary Files Storage isolé pour manipulations éphémères.
  • Clean to go: Documents purgés et validés sortent du pipeline avec traçabilité.
Schéma de flux — représentation ASCII auditable
[DISTANT / PUBLIC]
  Web → Renderer → SVG Frames (filtrées)
  App's Store / Downloads / Internet Security
  └─(conversion pivot SVG)─► [PUBLIC CORE local] ─► (tampon strict)

[LOCAL / PRIVÉ]
  [PRIVATE RAM] ⇄ [PRIVATE CORE] ⇄ [MMU/DataType Modifier]
                      │
                      ├─► Temporary Files Storage (isolé, éphémère)
                      └─► Clean App's Binaries (lecture seule)

Sortie
  Clean to Go… Documents (signés, traçables)
      

Modèle de sécurité par conception

Règles MMU/DataType (extrait)
  • Types sûrs: Accepter uniquement: SVG, TXT, JSON strict (RFC-8785), PNG sans exif.
  • Quotas RAM: Budgets mémoire par opération; refus si dépassement ou ambiguïté d’encodage.
  • Transitions: Toute promotion de données du Public Core vers le Private Core exige filtre + hash + validation de schéma.

Processus de manipulation et de sortie

  1. Réception: Entrées publiques converties en SVG frames filtrées (aucun script, aucun lien externe).
  2. Tampon public: Public Core stocke temporairement; pas d’accès aux secrets.
  3. Promotion privée: Validation → hash → typage → passage en Private RAM pour traitement.
  4. Transformation: Private Core + MMU/DataType appliquent les règles; journaux locaux sobres.
  5. Nettoyage: Destruction des temporaires après succès; sinon quarantaine.
  6. Sortie signée: Clean to Go… Documents accompagnés de hash et signature détachée.

Licence et conditions de transmission

Licence: Ce manifeste est publié sous CC BY-SA 4.0 ou MIT (au choix du déposant), à condition de préserver la mention d’auteur et l’intégrité du modèle.

Transmission: Libre réutilisation pédagogique et industrielle, sans ajout de dépendances opaques dans la partie privée.

Intégrité, hash et signature détachée

But: Vérifier l’intégrité du manifeste localement et associer une signature auditable.

Empreinte SHA-256 (calcul local)

Calcul en cours…


      
Source du calcul (JavaScript local)

// Empreinte SHA-256 sur le bloc <main> (texte normalisé)
(async function computeHash() {
  const main = document.querySelector('main');
  if (!main) return;
  const encoder = new TextEncoder();
  // Normalisation: innerText (sans balises), trim des espaces multiples
  const normalized = main.innerText.replace(/\s+/g, ' ').trim();
  const data = encoder.encode(normalized);
  const digest = await crypto.subtle.digest('SHA-256', data);
  const bytes = Array.from(new Uint8Array(digest));
  const hex = bytes.map(b => b.toString(16).padStart(2, '0')).join('');
  document.getElementById('doc-hash').textContent = hex;
  document.getElementById('hash-status').textContent = 'Empreinte SHA-256 (normalized innerText):';
})();
        

Signature détachée (placeholder)

Format: RFC-8785 canonical JSON + SHA-256 + Ed25519 (recommandé).

{
  "doc-id": "coeurs.net/0620172485",
  "version": "1.0.0",
  "created": "2025-09-28",
  "hash-alg": "SHA-256",
  "hash": "",
  "sig-alg": "Ed25519",
  "signature": "",
  "signer": "Franck Dutouron",
  "comment": "Manifeste technique souverain — Public/Core privé, MMU/DataType, pivot SVG/JS"
}
      

Vérification: La signature est détachée et peut être vérifiée avec un outil local minimal (ex. script PowerShell ou OpenSSL/libsodium).

Annexes techniques

Politique d’entrée — SVG frames
  • Autorisé: <svg> statique, <path>, <rect>, <text>, styles inline simples.
  • Interdit: <script> dans SVG, foreignObject, liens externes, data: URI non validés.
  • Conversion: Toute ressource distante est convertie en SVG local avant affichage; aucune exécution distante.
Politique des temporaires
  • Isolation: Répertoire dédié, non synchronisé, purgé après opération.
  • Traçabilité: Horodatage local minimal, empreinte, et motif d’usage.
  • Quarantaine: En cas d’échec de validation, déplacer en zone de quarantaine hors du pipeline privé.