Authentification contextuelle des transactions financières basée sur l’environnement d’exécution
Vers une architecture distribuée combinant cryptographie, virtualisation, orchestration, réseau et attestations matérielles pour les infrastructures financières critiques.
ACTEF, le Graphe d’Exécution Attesté, l’Enveloppe de Provenance Transactionnelle, le calcul de confiance et le critère de coupure attestée sont des propositions originales. Les données des figures sont illustratives. Aucun résultat n’est présenté comme mesuré.
Résumé#
Une signature authentifie des octets et une clé, mais n’établit ni l’image qui a formulé la décision, ni l’hyperviseur, le placement, la route, l’époque de stockage ou l’état du pool HSM. Nous proposons ACTEF, Authentification Contextuelle des Transactions par Environnement Fédéré. ACTEF représente l’exécution par un graphe acyclique de reçus cryptographiques, le Graphe d’Exécution Attesté ou GEA. Une Enveloppe de Provenance Transactionnelle ou EPT engage le haché du message, la racine du graphe, la politique, le nonce, l’époque et les bornes temporelles.
La contribution sépare vérité, preuve et appréciation du contexte ; définit une coupure attestée couvrant toute transition sensible ; propose un vecteur à huit dimensions avec prédicats impératifs ; et décrit une vérification rapide sur reçus prévalidés suivie d’un audit des preuves. L’approche est confrontée à RATS, EAT, TPM, DICE, HSM, SGX, TDX, SEV-SNP, Arm CCA, PCI DSS, SWIFT CSP, ISO 20022 et ISO 8583. La validation proposée injecte les attaques au lieu d’inventer des résultats.
Abstract#
Message integrity does not establish the conditions under which a financial transaction was produced. ACTEF binds a transaction to an acyclic graph of cryptographic execution receipts. It separates contextual truth, evidence and appraisal, defines an attested-cut criterion, introduces a non-compensatory trust vector, and specifies a two-tier verification protocol. Quantitative figures are illustrative, not experimental results.
1. Problème et hypothèses#
Pour (x) et \(\sigma=\operatorname{Sign}_{k}(H(x))\), la vérification établit que le détenteur de (k) a engagé (H(x)). Elle ne démontre ni le binaire de l’appelant du HSM, ni l’absence de rollback, ni que le moteur de risque et le stockage ont vu la même version. Les infrastructures disposent déjà de quotes TPM, rapports TEE, certificats mTLS, journaux de consensus et époques de stockage. La lacune est leur composition causale.
ACTEF teste cinq hypothèses : un graphe lié résiste mieux à la substitution que des journaux corrélés ; une coupure est plus informative qu’un décompte de preuves ; des gardes impératifs évitent la compensation ; des certificats courts bornent le coût ; une enveloppe compagnon permet l’adoption sans altérer la sémantique ISO.
2. État de l’art et lacune#
RATS sépare Attester, Verifier, Relying Party, Evidence, Endorsements et Attestation Results [R1]. EAT structure les claims [R2]. TPM 2.0 fournit PCR, quotes et scellement [R3]. DICE dérive des identités de couches [R4]. FIPS 140-3 qualifie des modules, sans prouver la légitimité métier de chaque appel [R5]. SGX, TDX, SEV-SNP et Arm CCA proposent des frontières et claims hétérogènes [R6-R9]. Une mesure de lancement ne prouve pas un comportement, l’ordre du broker ou la finalité du stockage.
PCI DSS et SWIFT CSCF contrôlent un périmètre [R10][R11]. ISO 20022 fournit un méta-modèle et un répertoire [R12]. ISO 8583 structure les échanges carte. Aucun ne lie nativement chaque message à sa trajectoire d’exécution.
| Mécanisme | Propriété | Lacune | Rôle ACTEF |
|---|---|---|---|
| signature | attribution à une clé | état appelant absent | signature EPT |
| TLS ou QUIC | canal et pairs | exécution absente | reçu transport |
| RATS ou EAT | résultat d’attestation | causalité absente | reçu technologique |
| TPM ou DICE | mesure et identité | cluster absent | délégation courte |
| HSM ou FIPS | module cryptographique | intention absente | reçu opération |
| TEE ou CVM | isolement mesuré | ordre absent | profil exécution |
3. Architecture financière distribuée#
Le chemin couvre API Gateway, reverse proxy, load balancer L4/L7, broker, event bus, queue, scheduler, workers, processing cluster, validation cluster, fraud engine, pool HSM, KMS, base, stockage, réplication et DR. Monitoring, PKI, synchronisation, SDN, fabric et service mesh modifient aussi le contexte. Les domaines métier, calcul, cryptographie, réseau, stockage, temps et preuve doivent être distincts. Deux reçus sous le même hyperviseur et la même autorité ne sont pas indépendants.
4. Modèle conceptuel ACTEF#
Soit (C_x) le contexte réel, (E_x) les preuves et (P) la politique :
\[A_x=\operatorname{Appraise}(E_x,P,R,\Theta).\]
(A_x) n’est pas (C_x), mais une affirmation conditionnelle. Le GEA est :
\[G_x=(V_x,E_x,\lambda,\eta,\tau,\alpha).\]
Un sommet contient type, entrées, sorties, politique, époque, nonce, intervalle, émetteur, référence de preuve et signature. Son identifiant est :
\[id(v)=H(\operatorname{canon}(type,in,out,policy,epoch,nonce,interval,issuer,evidence)).\]
La racine est :
\[r_G=H(\text{ACTEF-GEA-v1}\parallel H(M_P)\parallel \operatorname{MerkleRoot}(\operatorname{sort}(id(v)))).\]
(M_P) est le manifeste de rôles, nécessaire contre la troncature. Pour les transitions sensibles (S), la couverture proposée est :
\[\kappa(u)=1-\prod_{w\in\Gamma(u)}(1-q_w)(1-d_{uw}),\qquad K(G_x)=\min_{u\in S}\kappa(u).\]
(q_w) décrit la qualité de preuve et (d_{uw}) la dépendance. Le minimum interdit la compensation d’une transition non couverte.
Le vecteur est :
\[\mathbf{T}_x=(T_I,T_E,T_H,T_N,T_S,T_K,T_{\tau},T_D),\]
pour identité, exécution, hyperviseur, réseau, stockage, clés, temps et coordination. Après les prédicats impératifs :
\[CT_x=K(G_x)\left(\prod_{i\in A}T_i^{w_i}\right)^{1/\sum w_i}\exp(-\lambda U_x-\mu L_x-\nu C_x).\]
Le verdict reste classe, vecteur, score, incertitude et explications, et non un seuil isolé.
5. Virtualisation, réseau et stockage#
KVM, QEMU et libvirt exigent un reçu liant versions, configuration machine, firmware invité, modèle CPU, mémoire, périphériques et image [R13][R14]. OpenStack distingue intention Placement et réalisation Nova. Kubernetes distingue admission, scheduling et exécution [R15]. Firecracker, Kata et gVisor changent la frontière, sans prouver le scheduler [R16][R17].
Dans une CVM, les données invitées engagent (H(k_c\parallel workload\parallel policy\parallel epoch)). Une migration lie source, destination, état et époques. Un snapshot ne capture pas l’Epoch Authority externe. SR-IOV, VFIO et IOMMU exigent groupe, firmware, ACS, mapping et politique de reset [R18].
Le réseau authentifie une classe de chemin. Pour Clos et ECMP, le reçu engage leafs, VRF, chiffrement et époque. Pour VXLAN/EVPN, il engage VNI, route targets, VTEP et politique [R19][R20]. mTLS engage les sidecars, puis une preuve locale les lie aux workloads. RDMA exige QP, région mémoire et périphérique. PTP apporte précision, pas automatiquement authenticité [R21].
Ceph exige pool, PG, map epoch, version, acquittements et politique [R22][R23]. SAN et NVMe-oF exigent génération de volume, réplication et contrôleurs [R24]. Un journal append-only reste tronquable sans checkpoint externe. En DR, un fencing token empêche deux sites de prolonger la même époque.
6. Ordre distribué et menaces#
Le broker lie message, partition, offset et leader epoch. Le worker lie offset, code, sortie et tentative. Une élection lie terme, index et membres. Un verrou contient ressource, terme et fencing token. Une transition de machine à états engage :
\[R_{sm}=H(state_i\parallel command\parallel state_{i+1}\parallel logIndex\parallel term\parallel policy).\]
Le modèle couvre DMA, firmware, supply chain, replay, rollback, hyperviseur, attaques internes, physique, réseau, HSM et quantique. Nonce, tentative, compteur et époque traitent le replay. Une CVM réduit certaines capacités du VMM, mais pas disponibilité et canaux auxiliaires. Un HSM compromis peut forger une signature. Un quorum et un journal réduisent le compromis simple, pas la collusion commune. FIPS 203, 204 et 205 fournissent ML-KEM, ML-DSA et SLH-DSA pour la transition post-quantique [R25-R27].
7. Algorithme et implémentation#
APPRECIER(transaction, reçus, politique):
vérifier le haché transactionnel
indexer et authentifier les reçus
vérifier époque, fraîcheur et références
construire les arêtes causales
refuser cycles et doublons
vérifier manifeste et coupure attestée
appliquer les prédicats impératifs
calculer vecteur, incertitude et corrélation
calculer la racine Merkle
obtenir le quorum de résultats
signer et publier l’EPT
La construction vaut (O(|V|+|E|)), le tri Merkle (O(|V|\log|V|)). Les erreurs IORT_CYCLE, EPOCH_ROLLBACK, HSM_POLICY_MISMATCH et ATTESTED_CUT_MISSING sont des codes stables, désormais visuellement renforcés.
| Méthode | Route | Sortie |
|---|---|---|
| POST | /v1/evidence | content-id |
| POST | /v1/receipts | receipt-id |
| POST | /v1/graphs/appraise | verdict |
| POST | /v1/envelopes | EPT |
| POST | /v1/epochs/advance | lease |
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
#include <string.h>
struct actef_view { const uint8_t *tx, *root, *policy, *claims; size_t len; };
static uint32_t be32(const uint8_t p[static 4]) {
return ((uint32_t)p[0]<<24)|((uint32_t)p[1]<<16)|((uint32_t)p[2]<<8)|p[3];
}
bool actef_parse(const uint8_t *b, size_t n, struct actef_view *o) {
if (!b || !o || n < 168 || memcmp(b,"ACTF",4)) return false;
uint32_t len=be32(b+164);
if ((size_t)len > SIZE_MAX-168u || 168u+len > n) return false;
*o=(struct actef_view){b+16,b+48,b+80,b+168,len}; return true;
}
use std::collections::HashMap;
pub struct Receipt { pub id:[u8;32], pub inputs:Vec<[u8;32]>, pub before:u64, pub after:u64 }
pub fn verify(rs:&[Receipt], now:u64)->Result<(), &'static str>{
let mut index=HashMap::new();
for r in rs { if now<r.before||now>r.after{return Err("EXPIRED")}
if index.insert(r.id,r).is_some(){return Err("DUPLICATE")} }
for r in rs { for i in &r.inputs { if !index.contains_key(i){return Err("MISSING_INPUT")} } }
Ok(())
}
Ces extraits illustrent parsing borné et indexation, pas une bibliothèque de production.
8. Validation, limites et perspectives#
Le banc comprend deux clusters, un pool HSM ou simulateur identifié, Ceph, NVMe-oF, fabric, PTP, broker, base et trois vérificateurs. Il compare KVM/QEMU, Kubernetes OCI, Kata, Firecracker et gVisor, avec TDX, SEV-SNP et Arm CCA si disponible. Les scénarios injectent replay, rollback, détournement EVPN, proxy hors politique, PTP fautif, firmware révoqué, HSM de secours, migration non conforme, VF substituée et preuve tronquée.
Les métriques sont p50 à p99.9, débit, octets de preuves, détection, faux rejets, indétermination, âge, disponibilité et temps d’audit. Chaque attaque possède un oracle établi avant essai. Les ablations retirent témoin réseau, époque externe, reçu stockage, quorum, manifeste et pénalité de corrélation.
Une mesure ne prouve pas un comportement. Une transition oubliée peut contourner la coupure. L’indépendance est difficile à quantifier, les preuves ajoutent des causes de refus et les attestations restent hétérogènes. Les intégrations futures concernent libvirt, QEMU, Kubernetes, OpenStack et Proxmox. Une normalisation devrait viser claims, décisions, canonicalisation, fraîcheur et références, sans imposer une technologie TEE.
Conclusion#
L’authenticité du message ne décrit pas celle de sa production. ACTEF ajoute graphe causal, enveloppe compacte, coupure attestée et décision non compensatoire. Sa valeur dépendra de résultats falsifiables : couverture démontrée, coût mesuré, attaques injectées et indéterminations publiées.
Références#
- IETF, RFC 9334, RATS.
- IETF, RFC 9711, EAT.
- TCG, TPM 2.0 Library.
- TCG, DICE Attestation Architecture.
- NIST, FIPS 140-3.
- Intel, SGX Attestation.
- Intel, TDX Documentation.
- AMD, SEV-SNP ABI.
- Arm, Confidential Compute Architecture.
- PCI SSC, PCI DSS v4.0.1.
- SWIFT, CSCF v2025.
- ISO, ISO 20022 Repository.
- Linux, KVM API.
- QEMU, Migration.
- Kubernetes, Admission Control.
- Kata Containers, Documentation.
- gVisor, Security Model.
- Linux, VFIO.
- IETF, RFC 7432, EVPN.
- IETF, RFC 8365, EVPN Overlays.
- IEEE 1588, PTP Profiles.
- Ceph, Architecture.
- Ceph, Erasure Code.
- NVM Express, NVMe-oF.
- NIST, FIPS 203.
- NIST, FIPS 204.
- NIST, FIPS 205.