[{"data":1,"prerenderedAt":380},["ShallowReactive",2],{"navigation_docs_fr":3,"-fr-architecture-securite":78,"-fr-architecture-securite-surround":375},[4,14,40,54,60,66,72],{"title":5,"path":6,"stem":7,"children":8},"L'essentiel","/fr/proposition","fr/1.proposition/1.index",[9,10],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"Votre besoin, compris","/fr/proposition/comprehension","fr/1.proposition/2.comprehension",{"title":15,"path":16,"stem":17,"children":18},"Vue d'ensemble","/fr/architecture","fr/2.architecture/1.index",[19,20,24,28,32,36],{"title":15,"path":16,"stem":17},{"title":21,"path":22,"stem":23},"Les choix techniques","/fr/architecture/stack","fr/2.architecture/2.stack",{"title":25,"path":26,"stem":27},"Sécurité & conformité","/fr/architecture/securite","fr/2.architecture/3.securite",{"title":29,"path":30,"stem":31},"Les modules","/fr/architecture/modules","fr/2.architecture/4.modules",{"title":33,"path":34,"stem":35},"Intégration partenaires","/fr/architecture/partenaires","fr/2.architecture/5.partenaires",{"title":37,"path":38,"stem":39},"Système d'information","/fr/architecture/systeme-information","fr/2.architecture/6.systeme-information",{"title":41,"path":42,"stem":43,"children":44},"Le planning","/fr/roadmap","fr/4.roadmap/1.index",[45,46,50],{"title":41,"path":42,"stem":43},{"title":47,"path":48,"stem":49},"La méthode","/fr/roadmap/methodologie","fr/4.roadmap/2.methodologie",{"title":51,"path":52,"stem":53},"Le budget","/fr/roadmap/budget","fr/4.roadmap/3.budget",{"title":55,"path":56,"stem":57,"children":58},"Vortex-Soft","/fr/equipe","fr/5.equipe/1.index",[59],{"title":55,"path":56,"stem":57},{"title":61,"path":62,"stem":63,"children":64},"Cahier des charges","/fr/cdc","fr/6.cdc/1.index",[65],{"title":61,"path":62,"stem":63},{"title":67,"path":68,"stem":69,"children":70},"Infrastructure","/fr/infrastructure","fr/7.infrastructure/1.index",[71],{"title":67,"path":68,"stem":69},{"title":73,"path":74,"stem":75,"children":76},"Maquette","/fr/maquette","fr/8.maquette/1.index",[77],{"title":73,"path":74,"stem":75},{"id":79,"title":25,"badge":80,"body":81,"category":80,"description":368,"extension":369,"links":80,"meta":370,"navigation":372,"path":26,"seo":373,"stem":27,"tags":80,"__hash__":374},"docs_fr/fr/2.architecture/3.securite.md",null,{"type":82,"value":83,"toc":359},"minimark",[84,93,98,115,122,126,129,137,144,148,174,178,200,203,207,238,242,245,248,317,324,328,355],[85,86,87,88,92],"p",{},"La sécurité est posée dans le modèle de données, pas ajoutée à la fin. Dans un système financier, la question n'est pas seulement « qui peut entrer », mais ",[89,90,91],"strong",{},"« que peut-on prouver six mois plus tard »",".",[94,95,97],"h2",{"id":96},"limmuabilité-imposée-par-la-base-pas-par-la-discipline","L'immuabilité imposée par la base, pas par la discipline",[99,100,105],"pre",{"className":101,"code":102,"language":103,"meta":104,"style":104},"language-sql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","REVOKE UPDATE, DELETE ON journal_entries, postings FROM amtm_app;\n","sql","",[106,107,108],"code",{"__ignoreMap":104},[109,110,113],"span",{"class":111,"line":112},"line",1,[109,114,102],{},[85,116,117,118,121],{},"Une écriture ne peut pas être modifiée, ni effacée. Pas parce que le code s'en abstient — parce que ",[89,119,120],{},"la base refuse",". Un bug applicatif, une erreur de manipulation ou une intervention malveillante ne peuvent physiquement pas corrompre l'historique. Une correction est une contre-passation : l'erreur et sa correction restent toutes deux visibles.",[94,123,125],{"id":124},"piste-daudit-à-chaînage-cryptographique","Piste d'audit à chaînage cryptographique",[85,127,128],{},"Chaque ligne du journal d'audit intègre le hachage de la précédente :",[99,130,135],{"className":131,"code":133,"language":134},[132],"language-text","hash = sha256( prev_hash ‖ seq ‖ horodatage ‖ acteur ‖ action ‖ données )\n","text",[106,136,133],{"__ignoreMap":104},[85,138,139,140,143],{},"Toute modification a posteriori d'une ligne ",[89,141,142],{},"casse la chaîne et devient détectable",". Un auditeur externe peut vérifier l'intégrité de la totalité de l'historique sans nous faire confiance, et sans nous demander quoi que ce soit.",[94,145,147],{"id":146},"séparation-des-tâches","Séparation des tâches",[149,150,151,158,164,171],"ul",{},[152,153,154,157],"li",{},[89,155,156],{},"RBAC"," granulaire : rôle × agence × plafond. Un caissier ne voit que sa caisse.",[152,159,160,163],{},[89,161,162],{},"Celui qui saisit ne valide pas."," Au-delà d'un seuil paramétrable, double validation obligatoire.",[152,165,166,167,170],{},"Chaque compte est ",[89,168,169],{},"nominatif",". Aucun compte partagé, jamais — c'est la première faille de ce type d'exploitation.",[152,172,173],{},"Sessions expirantes, déconnexion forcée à distance, journal des connexions.",[94,175,177],{"id":176},"le-cloisonnement-est-dans-la-base","Le cloisonnement est dans la base",[99,179,181],{"className":101,"code":180,"language":103,"meta":104,"style":104},"ALTER TABLE postings ENABLE ROW LEVEL SECURITY;\nCREATE POLICY tenant_isolation ON postings\n  USING (tenant_id = current_setting('app.tenant_id')::uuid);\n",[106,182,183,188,194],{"__ignoreMap":104},[109,184,185],{"class":111,"line":112},[109,186,187],{},"ALTER TABLE postings ENABLE ROW LEVEL SECURITY;\n",[109,189,191],{"class":111,"line":190},2,[109,192,193],{},"CREATE POLICY tenant_isolation ON postings\n",[109,195,197],{"class":111,"line":196},3,[109,198,199],{},"  USING (tenant_id = current_setting('app.tenant_id')::uuid);\n",[85,201,202],{},"Même si le code applicatif se trompe, la base ne rend pas les lignes d'un autre client. C'est ce qui rend la revente à d'autres sous-agents défendable devant un tiers.",[94,204,206],{"id":205},"kyc-aml","KYC / AML",[149,208,209,220,226,232],{},[152,210,211,214,215,219],{},[89,212,213],{},"Identifiants secondaires obligatoires dès la saisie"," : nom seul ne suffit pas. Date de naissance, nationalité et pièce d'identité sont ce qui permet de confirmer ",[216,217,218],"em",{},"ou d'écarter"," un candidat, avec une justification documentée.",[152,221,222,225],{},[89,223,224],{},"Filtrage flou"," des listes de sanctions : phonétique, translittération, alias — le filtrage sur nom exact rate trop de vrais positifs.",[152,227,228,231],{},[89,229,230],{},"Rescreening automatique"," de la base existante à chaque mise à jour de liste, pas seulement un contrôle à l'entrée.",[152,233,234,237],{},[89,235,236],{},"Surveillance"," : règles de seuils, détection de fractionnement, corridors à risque, génération et suivi des déclarations de soupçon.",[94,239,241],{"id":240},"continuité","Continuité",[85,243,244],{},"Chiffrement TLS partout, chiffrement au repos des pièces d'identité, secrets hors du code, sauvegardes WAL avec restauration à un instant précis.",[85,246,247],{},"Les objectifs ne sont pas des intentions, ils sont chiffrés et engagés dans la proposition :",[249,250,251,267],"table",{},[252,253,254],"thead",{},[255,256,257,261,264],"tr",{},[258,259,260],"th",{},"Engagement",[258,262,263],{},"Valeur",[258,265,266],{},"Ce que cela veut dire",[268,269,270,287,302],"tbody",{},[255,271,272,278,284],{},[273,274,275],"td",{},[89,276,277],{},"RPO",[273,279,280,281],{},"moins de ",[89,282,283],{},"5 minutes",[273,285,286],{},"La quantité de données perdues au pire d'un sinistre. Le standard des systèmes bancaires critiques se situe entre une et cinq minutes.",[255,288,289,294,299],{},[273,290,291],{},[89,292,293],{},"RTO",[273,295,280,296],{},[89,297,298],{},"1 heure",[273,300,301],{},"Le délai avant reprise du service. Mesuré lors d'un exercice réel, chronomètre remis.",[255,303,304,309,314],{},[273,305,306],{},[89,307,308],{},"Disponibilité",[273,310,311],{},[89,312,313],{},"99,5 %",[273,315,316],{},"Soit 3 h 39 d'indisponibilité tolérées par mois. C'est un budget d'erreur : il se consomme, il se mesure, et quand il est épuisé on arrête de livrer des fonctionnalités pour rétablir la fiabilité.",[318,319,320,323],"note",{},[89,321,322],{},"Une sauvegarde jamais restaurée n'est pas une sauvegarde."," L'exercice de restauration est testé et chronométré avant la mise en production, et le résultat vous est remis par écrit.",[94,325,327],{"id":326},"ce-que-nous-prouvons-avant-le-lancement","Ce que nous prouvons avant le lancement",[149,329,330,337,342,348],{},[152,331,332,333,336],{},"Rapport de ",[89,334,335],{},"test d'intrusion"," (méthodologie OWASP)",[152,338,332,339],{},[89,340,341],{},"test de charge",[152,343,332,344,347],{},[89,345,346],{},"restauration"," : durée mesurée, données vérifiées",[152,349,350,351,354],{},"Vérification de l'",[89,352,353],{},"intégrité de la chaîne d'audit"," sur un jeu de données de recette",[356,357,358],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":104,"searchDepth":190,"depth":190,"links":360},[361,362,363,364,365,366,367],{"id":96,"depth":190,"text":97},{"id":124,"depth":190,"text":125},{"id":146,"depth":190,"text":147},{"id":176,"depth":190,"text":177},{"id":205,"depth":190,"text":206},{"id":240,"depth":190,"text":241},{"id":326,"depth":190,"text":327},"Piste d'audit inviolable, séparation des tâches, KYC/AML — le niveau exigé par votre métier.","md",{"icon":371},"lucide:shield-check",true,{"title":25,"description":368},"zh76TtebWsuSR1pdoGzVq1FP7ovRPXM7BqNUcmiQc3U",[376,378],{"title":21,"path":22,"stem":23,"description":377,"children":-1},"Chaque technologie justifiée par une contrainte de votre métier.",{"title":29,"path":30,"stem":31,"description":379,"children":-1},"La couverture fonctionnelle complète, famille par famille.",1787177556028]