№ 003 Sécurité Architecture défensive en couches

La sécurité
n'est pas une option.
C'est l'architecture.

Chaque décision technique du Pack a été prise en interrogeant d'abord son comportement en cas de compromission. Le moteur Veil™, la cryptographie, l'authentification par eID, l'audit chaîné, la distribution signée — chaque couche est conçue pour tenir seule si toutes les autres tombent. Voici ce qui est en place, sans broderie marketing.

№ 01 — Défense en profondeur

Sept couches successives.
Aucune n'est l'unique rempart.

01

Périmètre physique

Serveur d'inférence installé dans l'étude, sous votre contrôle direct. Aucune route latérale par cloud distant pour les données sensibles.

02

Identité authentifiée

Authentification triple facteur par eID belge. Sans la carte, sans la passphrase, sans le poste — aucun accès possible.

03

Chiffrement au repos

AES-256-GCM applicatif, SQLCipher pour les bases d'application, chiffrement disque AES-256 pour PostgreSQL. La clé maître ne quitte jamais le poste.

04

Anonymisation Veil™

Aucune donnée d'étude ne franchit le périmètre local sans avoir traversé les trois couches du moteur Veil™. En cas de doute : sortie locale uniquement.

05

Cloisonnement par rôle

Granularité des accès par utilisateur (notaire, juriste, post-acte, secrétaire). Le secret professionnel n'est pas une norme — c'est un mécanisme.

06

Journalisation cryptographique

Chaque opération sensible est consignée dans un journal d'audit chaîné HMAC-SHA256. Toute altération est mécaniquement détectable.

07

Intégrité du logiciel

Code-signing EV par GlobalSign. Mises à jour signées Ed25519. Aucun installeur tiers, aucune mise à jour latérale n'est techniquement possible.

C1 — Règles déterministes

Onze patterns belges

Expressions régulières et dictionnaires calibrés. Onze règles successives détectent les Numéros National (avec validation modulo 97), BCE, IBAN, comptes belges, codes postaux, dates ISO et françaises, téléphones internationaux et nationaux, plaques, parcelles cadastrales CADNET, RPM, dénominations sociales. Faux positifs réduits par filtres contextuels.

C2 — NER bilingue

spaCy français et néerlandais

Reconnaissance d'entités nommées bilingue. Détection des entités contextuelles que les règles ne capturent pas : noms, fonctions, lieux, qualifications juridiques. Confiance par token et seuils d'acceptation calibrés.

C3 — Critic LLM local

Llama exécuté sur le serveur d'inférence

Un modèle linguistique exécuté localement relit la sortie des deux premières couches et signale les fuites résiduelles que ni les règles ni le NER n'ont attrapées. La critique est elle-même tracée — auditable.

Orchestrateur

Pipeline trois couches avec table de réversion RAM

L'orchestrateur compose les trois couches, retient en mémoire vive (pas sur disque) la table de correspondance pseudonyme → identité réelle, et la zéroïse à la fin de la session. La sortie pseudonymisée part au modèle distant ; la réponse est dé-masquée localement avant remise au notaire.

Kill-switch

Mode dégradé propagé jusqu'à l'agent

Si la pipeline détecte une incertitude (couverture incomplète, suspicion de fuite, indisponibilité d'une couche), elle propage un drapeau degraded jusqu'à l'agent. L'agent bascule alors automatiquement sur sensitivity: raw_local_only et refuse toute interaction avec un modèle distant. Le rideau tombe sans intervention humaine.

Validation

Corpus d'évaluation 20 cas — taux de non-fuite

Un mini-corpus de cas non-leak (vingt scénarios reproductibles) est intégré au harnais de tests. À chaque livraison, la pipeline est vérifiée contre ce corpus. Un seul échec bloque le déploiement.

№ 03 — Veil C1 — les onze règles déterministes

La couche la plus simple
est aussi la plus exhaustive.

Onze règles écrites une à une, chacune testée contre des cas vrais et des cas faux. Aucune n'embrasse plus que ce qu'elle peut prouver. Les seuils sont conservateurs — préférer un faux positif corrigible à un faux négatif qui fuit.

01

NRN — Numéro National

Format jjmmaaa-xxx.cc avec contrôle modulo 97 sur les deux variantes (XX et 20XX). Les NRN sans checksum valide sont rejetés.

02

BCE / TVA BE

Format BE 0/1.xxx.xxx.xxx avec validation du préfixe. Variantes typographiques et séparateurs absorbés.

03

IBAN belge

BE + 14 chiffres, validation par modulo 97 conforme à la norme ISO 13616. Faux positifs réduits par contexte.

04

Compte bancaire format BBAN

Trois groupes de chiffres séparés par tirets ou espaces. Filtre contextuel pour rejeter les références non bancaires.

05

Code postal belge

Quatre chiffres en plage 1000–9999. Filtres contextuels rejettent les séquences de dates qui ressembleraient à un code postal.

06

Dates ISO et françaises

YYYY-MM-DD, DD/MM/YYYY, DD.MM.YYYY. Validation calendaire (mois, jours selon mois). Les dates dans le futur conservées sans masquage par défaut.

07

Téléphone international

+32 et +33 prioritaires, autres E.164 acceptés. Variantes nationales avec ou sans préfixe.

08

Plaque d'immatriculation belge

Format 1-ABC-123 et historiques. Filtre contextuel pour rejeter les abréviations administratives.

09

Parcelle cadastrale CADNET

Format avec division, section, numéro de parcelle (3 à 4 chiffres, ajusté après test de corpus), suffixe alphanumérique.

10

RPM — Registre des Personnes Morales

Forme courte et longue. Variations régionales prises en charge.

11

Dénomination sociale et forme juridique

SRL / SA / SPRL / SCRL / SCRI / ASBL / etc. avec suffixe et préfixe. Confidentialité partagée avec le NER (C2) pour les noms commerciaux.

Chiffrement authentifié

AES-256-GCM (Rust auditable)

Le coffre est chiffré par AES-256-GCM, implémentation Rust (nota-crypto), couverte par un harnais de tests incluant le round-trip, le rejet de clé erronée, la détection de manipulation (tampering), et un fuzz test. Le tag GCM garantit l'intégrité de chaque bloc.

Dérivation de clé

Argon2id — 64 MiB, 3 itérations, 4 lanes

La clé maître est dérivée d'une triple-entrée (PIN eID + passphrase + sel TPM) par Argon2id paramétré à 64 MiB de mémoire, trois passes, quatre voies. Choix calibré pour résister aux attaques par dictionnaire matériel à l'horizon de la durée de vie d'une étude.

Bases chiffrées

SQLCipher 4.6 et chiffrement disque Postgres

Les bases d'application sont SQLCipher 4.6. Le PostgreSQL applicatif tourne sur un volume chiffré AES-256. Les vecteurs pgvector sont chiffrés au repos comme tout le reste de la base.

Intégrité de journal

HMAC-SHA256 séquentiel

Chaque entrée du journal d'audit inclut le condensat HMAC-SHA256 de l'entrée précédente. Toute rupture est détectable. La clé HMAC est dérivée de la clé maître et reste locale.

Signature de mises à jour

Ed25519 pour les mises à jour et la licence

Les mises à jour applicatives et la licence d'utilisation sont signées Ed25519 par LTC Group. Votre poste vérifie chaque signature avant installation ou démarrage. Toute version signée par une clé inconnue est refusée.

Sauvegarde côté client

scrypt + AES-256-GCM, magic header NOTA-BACKUP-V1

Les sauvegardes locales sont chiffrées avant transfert. Le format combine dérivation scrypt (calibrée pour passphrase humaine) et chiffrement authentifié AES-256-GCM. Une enveloppe identifiable empêche la confusion avec d'autres formats.

Lecture carte

PC/SC et APDU Belpic

Pilote standard PC/SC pour le lecteur de carte. Dialogue APDU conforme à la spécification Belpic du Registre National. Parsing TLV de l'EF.ID_RN avec votre accord explicite à chaque session — récupération du nom, du NRN, de la date de naissance.

PIN

Saisie matérielle dédiée, jamais persistée

Le PIN eID est saisi via clavier. La politique interne refuse explicitement les saisies par PinPad logiciel pour la V1 — décision consignée au code. Aucun stockage en clair ni en mémoire au-delà de la dérivation immédiate.

Passphrase

Phrase de passe propre à l'utilisateur

Choisie par chaque collaborateur, contrôlée localement par mesure d'entropie. Jamais stockée ; jamais transmise. Récupération possible uniquement par la procédure backup dûment documentée.

Sel matériel

TPM local du poste

Un sel cryptographique généré par le module de plateforme sécurisée (TPM) du poste. Lie l'authentification au matériel précis. Une session ne peut être ouverte sur un autre poste sans procédure de réinitialisation.

Limiteur de tentatives

Lockout exponentiel capé à 5 min

Limiteur de tentatives à montée exponentielle, plafonné à cinq minutes — calibré pour rendre tout brute-force impraticable sans bloquer un utilisateur légitime distrait.

Sessions

Panneau de sessions actives, révocation immédiate

Les sessions actives sont visibles dans un panneau dédié. Révocation possible à tout moment, immédiate, traçable. Health check applicatif et ré-authentification gracieuse en cas d'expiration.

Local par défaut

Serveur d'inférence installé dans l'étude

Le serveur d'inférence vit dans votre étude, sous votre contrôle physique. Il héberge les modèles linguistiques sensibles, le vault, la base vectorielle pgvector des archives. Hors mises à jour signées, il fonctionne en autonomie réseau complète.

Cloud souverain UE

OVHcloud Strasbourg ou Scaleway Paris

Les composants en ligne (modèles génériques publics, distribution de mises à jour) sont hébergés exclusivement chez OVHcloud Strasbourg ou Scaleway Paris. Localisation contractuelle UE garantie. Aucune donnée d'étude n'y est stockée en clair.

Pas de cloud US

CLOUD Act évité par conception

L'absence totale de fournisseurs cloud US dans la chaîne de traitement écarte par conception le risque d'injonction de communication transatlantique (Cloud Act, FISA Section 702). C'est un choix architectural, pas commercial.

Transit chiffré

TLS 1.3 strict, certificat épinglé

Les rares communications nécessaires entre le local et l'hébergement UE sont protégées en TLS 1.3 strict avec certificat épinglé (certificate pinning). Toute déviation est refusée par le client.

Treize événements typés

Couverture exhaustive du fonctionnel sensible

Authentification, déverrouillage du coffre, accès à un dossier, lecture d'archive, appel à un modèle (avec nom et fournisseur), génération d'acte, export, signature, sauvegarde, restauration, mise à jour applicative, rotation de clé, révocation de session.

Chaînage cryptographique

HMAC-SHA256 séquentiel reproductible

Chaque entrée contient le condensat HMAC de l'entrée précédente. Une rupture, une suppression, une modification deviennent immédiatement détectables par re-vérification. La clé HMAC est dérivée localement.

Vérification externe

Procédure documentée, reproductible

La vérification d'intégrité ne requiert aucune authentification éditeur. Un auditeur externe peut, depuis votre poste, reproduire les condensats et certifier l'intégrité du journal. Aucune dépendance à un service en ligne.

Conservation et purge

Durées paramétrables par catégorie

Conformément au RGPD, les durées de conservation sont paramétrables par catégorie d'événement. Les purges elles-mêmes sont consignées (suppression du contenu, conservation du condensat de chaînage pour maintenir l'intégrité).

Application desktop

Tauri 2, périmètre de capacités en liste blanche

Application native bâtie sur Tauri 2 (framework Rust). Surface d'attaque réduite. Les capacités Tauri sont en liste blanche stricte — aucune route latérale shell, aucun accès filesystem non explicitement autorisé.

Code-signing EV

GlobalSign EV pour Windows et macOS

Le binaire est signé sous certificat de validation étendue émis par GlobalSign. Les systèmes Windows et macOS reconnaissent immédiatement l'éditeur. Aucun écran d'avertissement « éditeur inconnu ». Aucune procédure de débridage à demander à votre informaticien.

Updater

Vérification Ed25519 avant installation

L'updater vérifie la signature Ed25519 de chaque mise à jour avant installation. Une mise à jour non signée ou signée par une clé inconnue est refusée. Le mécanisme est conforme aux pratiques de chaîne d'approvisionnement modernes (SLSA).

CSP applicatif

frame-ancestors 'none', form-action 'none', object-src 'none'

L'interface applicative est durcie par une politique de sécurité de contenu stricte : pas d'iframing tiers, pas de soumission de formulaire vers une URL externe, pas d'objet externe, base-uri restreinte à self. Les inline scripts sont autorisés uniquement par hash SHA-256 nommé.

Télémétrie

Sentry opt-in, PII scrub avant émission

La télémétrie d'erreur (Sentry) est strictement opt-in. Un hook before_send nettoie systématiquement les données personnellement identifiables avant émission — selon les mêmes règles que Veil. Aucune fuite par les traces d'erreur.

Variables d'environnement

Helper requireEnv centralisé

Les variables d'environnement sensibles sont chargées par un helper centralisé qui refuse les valeurs vides, les valeurs par défaut hardcodées, et émet une erreur claire au démarrage si une clé manque. Aucun fallback silencieux.

Limites de débit

Rate limiter exponentiel sur authentifications

Les tentatives d'authentification sont soumises à un limiteur de débit à délai exponentiel, plafonné à cinq minutes. Calibré pour rendre le brute-force impraticable sans bloquer l'utilisateur légitime.

Capabilities Tauri

Liste blanche stricte, refus par défaut

Les capacités natives de l'application Tauri sont en liste blanche explicite. Toute capacité non listée est refusée. La revue des capacités est intégrée au harnais de tests — une nouvelle capacité requiert une revue dédiée.

Sub-processors

Registre des sous-traitants tenu à jour

Tous les sous-traitants ultérieurs (hébergement, télémétrie, modèles linguistiques distants) sont listés au registre. Le DPA prévoit une notification préalable de tout ajout. Le registre est annexé au contrat.

Mises à jour modèles

Modèles signés, versions traçables

Les modèles linguistiques locaux (Veil C3, agent embarqué) sont distribués par paquets signés avec versions traçables. Pas de mise à jour silencieuse de modèle, pas de comportement qui change sans entrée au changelog.

№ 10 — Validation externe

La sécurité ne se déclare pas.
Elle se mesure.

Tests automatisés

Plus de 300 tests Vitest, 48 tests Cargo

Le harnais de tests couvre l'authentification, la cryptographie (round-trip, mauvaise clé, tampering, fuzz), la pipeline Veil (vingt cas non-leak), les templates de pré-rédaction, les connecteurs aux registres officiels, l'audit log. Chaque livraison passe l'intégralité du harnais.

Audit interne

Quatorze findings traités sur quatorze

Un audit interne mené sur la sécurité applicative a remonté quatorze observations classées par criticité. Toutes ont été traitées avant l'ouverture aux études pilotes — sans exception. Le rapport interne est tenu à disposition sous NDA.

Audit externe SOC 2

Posture préparée pour Type 1

L'architecture, la journalisation, la documentation des procédures et le registre des contrôles sont conçus pour soutenir un audit SOC 2 Type 1 dès qu'un nombre suffisant d'études le justifie. Les éléments probatoires sont accessibles aux clients.

Conformité RGPD

DPA Art. 28 signé à la commande

Un Data Processing Agreement conforme à l'article 28 du RGPD est signé à la commande. Annexé au contrat. Désigne LTC Group SRL comme sous-traitant. Fixe les finalités, les durées, les sous-traitants ultérieurs (uniquement UE), vos droits de contrôle et d'audit.

Télécharger le modèle de DPA →

Réversibilité contractuelle

Export ouvert, sans frais

À tout moment, vos données vous sont restituées dans des formats ouverts (PDF/A, JSON, CSV, SQL). Aucun verrou propriétaire. Aucune dépendance technique. La clause de réversibilité figure au contrat en lettres explicites.

Revue technique sur demande

Documents probants tenus prêts

L'architecture de référence, le rapport d'audit interne, le DPA, la liste des sous-traitants, la procédure de vérification du journal d'audit, la politique de gestion des clés — tous documents sont tenus prêts pour les revues techniques de votre informaticien ou DPO.

Pour démarrer

Demandez
la revue technique.
Avant tout engagement.

La sécurité d'une étude ne se confie pas sur la foi d'une plaquette. Le diagnostic offert est l'occasion d'une revue technique — votre informaticien, votre DPO, votre conseil peuvent y assister. Aucun engagement n'est demandé avant que toutes les questions soient répondues.

Réserver une revue technique Voir les garanties →