Veille Sécurité

Synthèses (via IA) en français de publications en sécurité matérielle et logicielle.

Sécurité matérielle — CHERI, CheriBSD et Morello Linux

A Security Analysis of CheriBSD and Morello Linux
Guzairov, Potanin, Kell, Tiu — arXiv:2601.19074v1, janvier 2026

Qu'est-ce que CHERI ?

CHERI (Capability Hardware Enhanced RISC Instructions) est une architecture de sécurité matérielle qui remplace les pointeurs mémoire classiques (64 bits) par des "fat pointers" de 128 bits. Chaque pointeur embarque directement dans le matériel :

  • L'adresse mémoire standard (64 bits)
  • Les bornes (base et longueur) de la zone mémoire accessible
  • Un masque de permissions (lecture, écriture, exécution)
  • Un bit de validité ("tag bit") stocké hors-bande dans les bits ECC de la RAM, impossible à forger par logiciel

Le processeur vérifie automatiquement, à chaque accès mémoire, que le pointeur est valide, que l'accès est dans les bornes, et que les permissions sont respectées. Aucun logiciel ne peut contourner ces vérifications : elles sont atomiques et matérielles.

CHERI propose aussi un mécanisme de "scellement" (sealing) : un pointeur scellé devient immuable et ne peut plus être déréférencé. Un "sentry" est un pointeur exécutable scellé qui ne peut être appelé qu'à son point d'entrée désigné.

L'argument central : en compilant des programmes C/C++ pour CHERI, on obtient une sécurité mémoire comparable à Rust, avec des pénalités de performance relativement faibles.

Au-delà de la sécurité mémoire, CHERI permet la compartimentation : diviser un binaire en composants isolés avec des privilèges limités, le tout appliqué par le matériel. Cela évite le coût des communications inter-processus (IPC) traditionnelles en permettant le partage de données à la granularité de l'octet dans un seul processus.

Qu'est-ce que CheriBSD ?

CheriBSD est un portage de FreeBSD sur l'architecture CHERI, maintenu par le projet CTSRD-CHERI de l'Université de Cambridge. C'est le système d'exploitation CHERI le plus mature et activement développé. Il apporte deux mécanismes de sécurité absents de Morello Linux :

  • c18n (compartimentation de bibliothèques) : chaque compartiment reçoit sa propre zone de pile isolée et non chevauchante. Un attaquant dans une bibliothèque malveillante ne peut pas scanner la pile des autres compartiments — même avec un parcours récursif, les seuls pointeurs visibles sont scellés ou pointent vers la pile isolée du compartiment malveillant.
  • MRS (Malloc Revocation Shim) : quand la mémoire du tas est libérée, elle est placée en quarantaine. Après un délai configurable, tous les pointeurs vers cette zone sont invalidés. Cela empêche les attaques "use-after-free" (heap storing) car les pointeurs conservés par l'attaquant deviennent invalides avant que la mémoire ne soit réallouée.

CheriBSD bloque avec succès 2 des 4 attaques présentées dans l'article (stack walking et heap storing), mais reste vulnérable à la fuite d'information par dlopen et au "heap scavenging".

Qu'est-ce que Morello ?

Morello est la plateforme matérielle prototype d'ARM implémentant l'architecture CHERI. C'est une carte de développement physique basée sur ARMv8-A avec extensions CHERI, qui permet d'exécuter des logiciels CHERI réels. CheriBSD et une version CHERI de Linux ("Morello Linux") fonctionnent sur ce matériel.

L'article caractérise Morello Linux comme "un système beaucoup plus faible et moins développé que CheriBSD", dépourvu de mécanismes de compartimentation intégrés au-delà des capacités de base. Morello Linux est vulnérable aux 4 attaques présentées.

Les 4 attaques identifiées

L'article analyse l'efficacité de la compartimentation CHERI contre une bibliothèque malveillante opérant dans un compartiment. Le modèle de menace suppose un attaquant avec exécution de code arbitraire dans une bibliothèque non privilégiée (par ex. compromission de la chaîne d'approvisionnement), qui cherche à s'échapper de l'isolation.

Attaque 1 — Stack Walking (parcours de pile)

Sur Morello Linux, une bibliothèque malveillante peut lire l'intégralité de la pile, y compris les frames précédentes. Cela révèle des pointeurs d'autres compartiments : adresses de base de la libc (permettant d'appeler des fonctions arbitraires non déclarées dans le linkage ELF) et clés de scellement laissées dans d'anciennes frames.

Résultat : Bloquée sur CheriBSD (c18n). Réussie sur Morello Linux.

Attaque 2 — Fuite d'information par dlopen()

La fonction dlopen() retourne un struct Obj_Entry interne casté en void*. Ce struct contient mapbase — un pointeur couvrant toute la section .text de la bibliothèque chargée. Le struct fait partie d'une liste doublement chaînée qui peut être parcourue pour énumérer chaque bibliothèque chargée et le binaire principal.

Résultat : Réussie sur les DEUX plateformes. C'est la vulnérabilité la plus grave.

Attaque 3 — Heap Scavenging (fouille du tas)

Quand la mémoire du tas est libérée sans être mise à zéro, une bibliothèque malveillante peut allouer et scanner répétitivement la mémoire pour trouver des pointeurs laissés par des allocations précédentes.

Résultat : Réussie sur les deux plateformes (échoue avec l'allocateur snmalloc).

Attaque 4 — Heap Storing (stockage de pointeurs libérés)

L'attaquant alloue et libère immédiatement des milliers de blocs mémoire, conservant les pointeurs libérés. Quand du code légitime alloue ensuite la même mémoire, l'attaquant y accède via les pointeurs conservés (use-after-free).

Résultat : Bloquée sur CheriBSD (MRS). Réussie sur Morello Linux.

Preuve de concept : extraction de clé RSA privée

L'article démontre une attaque réaliste extrayant une clé RSA privée 1024 bits générée par OpenSSL depuis un binaire compartimenté sur CheriBSD. Via la fuite dlopen, la bibliothèque malveillante obtient des pointeurs vers libthr (la bibliothèque de threads), qui expose 75 pointeurs — bien plus que prévu. De là, l'attaquant scanne la mémoire à la recherche de l'en-tête PEM ("BEGIN RSA PRIVATE KEY") et extrait la clé complète, malgré l'ASLR et la compartimentation active.

L'article introduit aussi une technique de scan récursif de pointeurs qui découvre la fermeture transitive de tous les pointeurs atteignables depuis un pointeur initial, en parcourant la mémoire octet par octet.

Résultats synthétiques

Attaque Morello Linux CheriBSD
Stack Walking Vulnérable Bloquée (c18n)
Dlopen info leak Vulnérable Vulnérable
Heap Scavenging Vulnérable Vulnérable
Heap Storing Vulnérable Bloquée (MRS)

Pourquoi c'est important

  • Écart entre garanties matérielles et implémentation logicielle. CHERI fournit une sécurité mémoire matérielle forte, mais la compartimentation dépend d'une implémentation logicielle correcte. Le linker dynamique, l'allocateur mémoire et la gestion de pile introduisent des vulnérabilités que le matériel ne peut empêcher.
  • Les attaques supply-chain sont en hausse. Le modèle de menace d'une bibliothèque malveillante est très réaliste (paquets npm compromis, mises à jour backdoorées). La compartimentation CHERI est censée contenir ces menaces, mais l'article montre qu'on peut s'en échapper.
  • La sécurité mémoire seule ne suffit pas. Même avec vérification des bornes et protection par pointeurs, les fuites d'information par interfaces légitimes (dlopen, mémoire du tas non nettoyée, frames de pile) permettent l'échappement de compartiment.
  • Le problème de la fermeture transitive est fondamental pour tout système à base de capabilities faisant de la compartimentation intra-processus : "Même une seule fuite de pointeur peut permettre à une bibliothèque malveillante de contourner la compartimentation et d'accéder à la quasi-totalité de l'espace d'adressage."
  • Les défenses en profondeur de CheriBSD fonctionnent. Le fait que CheriBSD bloque 2 des 4 attaques valide l'approche de défense en profondeur (c18n + MRS). L'article fournit une feuille de route pour combler les failles restantes.

Contre-mesures proposées

  • Sceller la valeur de retour de dlopen() avant de la renvoyer, ne la desceller que dans dlsym
  • Piles isolées par compartiment (déjà implémenté dans c18n de CheriBSD)
  • Révocation des allocations mémoire (déjà implémenté dans MRS de CheriBSD)
  • Mettre à zéro la mémoire du tas avant réallocation
  • Sceller les données sensibles avec des clés stockées dans la base de confiance (TCB)
  • Utiliser des allocateurs durcis comme snmalloc

Source : arXiv:2601.19074v1 — Projet CHERI : cheri.cst.cam.ac.uk — CheriBSD : github.com/CTSRD-CHERI/cheribsd

IA embarquée — Architecture FPGA neuromorphique pour réseaux de neurones impulsionnels (SNN)

FPGA-Based Neuromorphic Architecture for Spiking Neural Network Emulation
Aurélie Saulquin — Thèse de doctorat, Université de Lille, laboratoire CRIStAL (UMR 9189), 2025. Financée par la Région Hauts-de-France. Directeurs : Prof. Samy Meftali & Prof. Pierre Boulet.

Contexte et problématique

Les réseaux de neurones artificiels (ANNs) donnent des résultats remarquables mais sont coûteux à déployer sur des systèmes embarqués à ressources limitées (IoT, edge computing). Deux approches existent : déléguer au cloud (latence, confidentialité) ou utiliser des accélérateurs matériels spécialisés — GPU, TPU, ASIC, FPGA. Une troisième voie, le calcul neuromorphique, s'inspire directement du cerveau humain.

Les réseaux de neurones impulsionnels (SNN)

Contrairement aux ANNs classiques qui traitent des valeurs continues, les SNN représentent l'information sous forme d'impulsions discrètes dans le temps (spikes), à l'image des neurones biologiques. Chaque neurone accumule les impulsions entrantes dans une variable interne — la tension de membrane. Quand elle dépasse un seuil, le neurone émet une impulsion et se réinitialise. Ce principe, proposé par Mead dès 1988, permet une consommation énergétique très faible : les neurones ne calculent que lorsqu'un spike arrive.

Pourquoi le FPGA plutôt qu'une puce neuromorphique dédiée ?

Les puces neuromorphiques spécialisées (Intel Loihi, IBM TrueNorth) sont peu reconfigurables : modèle de neurone fixé, apprentissage en ligne limité, connectivité contrainte. Les FPGA (circuits logiques reprogrammables) offrent la flexibilité nécessaire à la recherche. En 2022, au démarrage de la thèse, aucun émulateur FPGA de SNN n'était disponible en open source. En 2025, trois ont été publiés — dont ModNEF, développé dans ces travaux.

Contribution principale : ModNEF

ModNEF (Modular Neuromorphic Emulator for FPGA) est une architecture FPGA modulaire et open source permettant l'émulation de SNN complexes. Son principe : interconnecter des modules indépendants et réutilisables représentant les différents composants du réseau (neurones, synapses, couches). Cette modularité offre :

  • Plusieurs modèles de neurones supportés (LIF — Leaky Integrate-and-Fire, et variantes)
  • Deux stratégies d'émulation : pilotée par horloge (clock-driven) ou par événements (event-driven)
  • Un environnement logiciel complet couvrant toute la chaîne : entraînement du modèle, quantification, déploiement sur carte FPGA
  • Des outils de quantification (PTQ — Post-Training Quantization, et QAT — Quantization-Aware Training) pour minimiser la consommation sans dégrader la précision

Validation et résultats

L'architecture a été validée sur quatre jeux de données neuromorphiques standards :

  • MNIST & N-MNIST — classification de chiffres manuscrits (version classique et version neuromorphique événementielle)
  • SHD (Spiking Heidelberg Digits) — reconnaissance de chiffres parlés
  • DVS Gesture — reconnaissance de gestes capturés par caméra événementielle

Un cas d'usage réel et original a également été démontré : la détection de cachalots en mer Méditerranée, avec une intégration complète en System-on-Chip (SOC). Ce cas valide la capacité de ModNEF à fonctionner en classification embarquée basse consommation pour la surveillance environnementale.

Les résultats confirment que ModNEF atteint des niveaux de précision comparables aux solutions de référence, tout en offrant une consommation énergétique réduite et une flexibilité d'implémentation inédite dans le domaine open source.

Publication associée

Aurélie Saulquin, Mazdak Fatahi, Pierre Boulet, Samy Meftali. ModNEF: An Open Source Modular Neuromorphic Emulator for FPGA for Low-Power In-Edge Artificial Intelligence. ACM Transactions on Architecture and Code Optimization, vol. 22, n°2, article 73, juin 2025.

Source : HAL tel-05543829 — PDF : Télécharger la thèse (8 Mo) — Licence : CC BY-NC-ND 4.0

🎲 Générateurs de nombres aléatoires : FPGA (TRNG) & Photonique quantique (QRNG)

La qualité de l'aléa est un fondement de la cryptographie. Deux familles de générateurs matériels s'imposent : les TRNG sur FPGA (exploitant le bruit thermique, la gigue d'oscillateurs ou les MTJ) et les QRNG photoniques (fluctuations du vide quantique, photons uniques). Tour d'horizon des publications récentes 2023–2025.

⚙ Partie 1 — TRNG sur FPGA

Zhang Y., Zhong K., Zhang J. — arXiv:2502.01066

Architecture combinant plusieurs sources d'entropie (gigue d'oscillateurs + métastabilité) avec commutation dynamique. Résultat : 670 Mbps sur Xilinx avec seulement 8 slices logiques, sans post-traitement. Valide NIST SP 800-22 et AIS-31. Amélioration de 2,63× sur l'état de l'art en débit/surface/énergie.

Yayla O., Yılmaz Y.E. — IACR ePrint 2024/1442

Exploite les PLLs embarqués dans le FPGA comme source d'entropie isolée. Un algorithme de backtracking optimise les paramètres PLL pour maximiser le débit en respectant la qualité d'entropie. Validé sur 3 cartes, conformité complète AIS-20/31 sans composant externe.

Lubicz D., Skorski M. — arXiv:2410.08259

Les mesures différentielles sur TRNG à oscillateurs en anneau suppriment le bruit commun mais empêchent le calcul du taux d'entropie par oscillateur. Cadre mathématique de transfert de gigue permettant les preuves de sécurité formelles (AIS-31 / NIST SP 800-90B) — comble un écart critique entre implémentation pratique et garanties théoriques.

Cazzola R. et al. — arXiv:2506.17795

Combine une PUF (Physical Unclonable Function) et un TRNG sur FPGA Zynq. L'entropie statique de la PUF + le bruit de délai dynamique sont traités par une fonction éponge sur données non-binarisées. Première architecture permettant authentification matérielle et génération d'aléa depuis une seule hardware root of trust. Validé NIST SP 800-22, SP 800-90B, AIS-31, DieHarder.

💡 Partie 2 — QRNG photoniques (quantique)

Wang X. et al. — arXiv:2401.11099

Module 8,8 × 2,6 × 1 mm³ pour 80 mW. Détection homodyne équilibrée GeSi, rejection mode commun >40 dB, rapport bruit quantique/classique ~9 dB. Source : fluctuations du vide quantique. Approche hybride III-V/SiPh reproductible industriellement.

Du Y. et al. — arXiv:2312.17011

QRNG à variable discrète, source-indépendant (SI) : sécurité certifiée sans faire confiance au dispositif de préparation quantique. Record 7,9 Mbit/s sur chip silicium. Modèle semi-device-independent — résiste à un contrôle partiel adversarial de la source (supply chain compromise).

Zhang G. et al. — arXiv:2411.13712

Niveau de sécurité maximal (self-testing) sur plateforme silicium photonique standard foundry. Détecteur homodyne vérifié in-situ par états cohérents QPSK — aucune caractérisation externe requise. 15,33 Mbits/run à 10 MHz. Ouvre la voie à des QRNG certifiables à l'échelle de la production industrielle.

Hua X. et al. — arXiv:2505.01701

Laser III-V + silicium photonique + photodiodes GeSi dans un boîtier butterfly 42 × 24 mm. Bande passante >500 MHz, débit 6,57 Gbps. Lève le verrou de l'intégration laser-on-chip. Déployable directement dans les HSM et équipements réseau chiffrés.

Carver C. et al. — arXiv:2412.02077

Détection simultanée sur les deux quadratures I et Q (double l'entropie extraite). Shot noise clearance 25,6 dB, rejection mode commun 69 dB. Post-traitement hash de Toeplitz sur FPGA. Validé NIST SP 800-22.

Kincaid P.S. et al. — arXiv:2510.18700

Premier QRNG source-device-independent (SDI) entièrement monolithique sur PIC InP. Détection hétérodyne cohérente des fluctuations du vide, boîtier "boîte noire" (I/O électriques seuls), 35 Gbit/s. Sécurité SDI : les preuves tiennent même si le laser est partiellement compromis — critique pour QKD.

Contexte sécurité : Les standards NIST SP 800-90B et AIS-31/AIS-20 définissent les exigences d'entropie pour les TRNG/QRNG en cryptographie. La résistance post-quantique (PQC — CRYSTALS-Kyber/ML-KEM, CRYSTALS-Dilithium) repose directement sur la qualité des générateurs d'aléa pour la génération de clés. Un TRNG/QRNG compromis (attaque side-channel, injection de fautes, backdoor matérielle) annule toute sécurité cryptographique en amont.

🌐 RINA — Recursive InterNetwork Architecture

Architecture réseau récursive conçue par John Day comme alternative structurelle à TCP/IP. Principe : une seule couche protocolaire répétée récursivement (Distributed IPC Facility — DIF), offrant une sécurité, une mobilité et une gestion du réseau intrinsèquement meilleures. Tour d'horizon des publications 2023–2026.

Ramezanifarkhani T., Teymoori P. — Computers (MDPI), vol. 15, n°2, article 125

Chaque couche DIF instancie des mécanismes identiques et expose la même interface, quel que soit son niveau hiérarchique. Résultat : RINA permet simultanément le chiffrement de bout en bout et l'inspection de flux aux nœuds intermédiaires (PEP) — un compromis impossible dans TCP/IP. Démonstration formelle sur deux cas d'usage IoT (maison connectée, surveillance médicale).

Feldmann M. et al. — arXiv:2510.27325

Intégration de la récursivité RINA dans les protocoles DTN (Delay/Disruption-Tolerant Networking) via Bundle-in-Bundle Encapsulation (BIBE). Première démonstration opérationnelle avec l'ESA dans un scénario Solar System Internet (drones + relais satellitaires). Valide la viabilité de RINA pour les communications spatiales interplanétaires.

Sarabia-Jácome D., Grasa E., Catalán M. (i2CAT) — HardwareX (Elsevier), article e00719

Nœud IoT open-source sur ESP32 basse consommation avec firmware RINA embarqué. Capteurs environnementaux (température, humidité, CO). Performances mesurées : RTT moyen 2,05 ms, réduction de 82 % de la consommation par rapport à une configuration non optimisée. Première plateforme matérielle dédiée à l'expérimentation RINA sur dispositifs contraints.

Sarabia-Jácome D. et al. — Applied Sciences (MDPI), vol. 14, n°6, article 2300

Architecture hybride RINA + SDN permettant une migration incrémentale sans rupture avec l'existant. DAF RINA + driver southbound RINA-SDN + L2VPN RINA. Déployé sur un cas d'usage smart building. Répond au principal frein à l'adoption de RINA : la coexistence avec les infrastructures TCP/IP en place.

Sarabia D., Grasa E., Catalán M. — IEEE CIoT 2023, Lisbonne — DOI:10.1109/CIoT57267.2023.10084905

Premier portage fonctionnel de RINA sur microcontrôleur embarqué contraignant (ESP32, FreeRTOS, C). Connexion à une passerelle IRATI via Wi-Fi. Débit mesuré : 1,18 Mbps, perte de paquets 0,01 %, délai moyen 2,3 ms. Financé par la Commission Européenne (programme TERMINET, grant 957406).

Ramezanifarkhani T., Teymoori P. — European Cybersecurity Competence Centre (ECCC), 23 oct. 2024

Keynote institutionnelle de 35 min sur RINA comme architecture de sécurité par conception, dans le cadre des initiatives cybersécurité de l'Union Européenne. Positionnement de RINA face aux enjeux IoT/5G/6G.

Contexte BTT : RINA est directement lié aux travaux de John Day référencé dans la page Activités. Les axes de recherche actifs convergent vers trois domaines : IoT embarqué contraignant (ESP32/FreeRTOS), intégration progressive avec SDN/NFV existants, et communications spatiales DTN (ESA). La Pouzin Society maintient la référence théorique : pouzinsociety.org/publications.

🇺🇸 NIST — Post-Quantum Cryptography (PQC)

Publications récentes du NIST CSRC sur la cryptographie post-quantique et les standards associés (2025–2026).

Algorithmes PQC sélectionnés & finalisés

KEM basé sur les codes correcteurs d'erreurs (Hamming Quasi-Cyclic). Fondement mathématique radicalement différent de ML-KEM (lattices), apportant une diversité algorithmique critique. Draft standard attendu ~2026, finalisation 2027.

2025 — en cours FIPS 206 — FN-DSA (FALCON)

Signature numérique lattice basée sur NTRU. Signatures très compactes (~666 bytes pour FN-DSA-512), adaptées aux environnements contraints en bande passante. Soumis en clearance interne NIST/DoC, finalisation 2026-2027.

Compte-rendu de l'évaluation Round 4 : rationale de sélection de HQC, statut des candidats restants. Complément aux FIPS 203/204/205 finalisés en août 2024.

Feuille de route & transition

Feuille de route fédérale US : RSA, ECC et autres algorithmes vulnérables aux ordinateurs quantiques seront dépréciés et retirés des standards NIST d'ici 2035. Les systèmes à haut risque doivent migrer bien avant.

Guide pour concevoir des systèmes crypto-agiles : capables de remplacer rapidement des algorithmes sans refondre l'infrastructure. Essentiel pour planifier la migration PQC.

Nouveaux standards cryptographiques

Premier document NIST dédié aux KEM. Définitions, propriétés de sécurité et recommandations d'implémentation, incluant ML-KEM (FIPS 203).

Standard pour la famille Ascon : AEAD128, Hash256, XOF128, CXOF128. Conçu pour IoT, capteurs et systèmes très contraints en ressources.

Construction sécurisée de générateurs de bits aléatoires pour usage cryptographique. Infrastructure fondamentale pour toutes les implémentations PQC.

Gestion des clés & protocoles

Révision des recommandations de gestion des clés cryptographiques, mise à jour pour intégrer les algorithmes PQC et les exigences de cycle de vie modernes.

Mise à jour de SP 800-56Ar3 et SP 800-56Cr2 pour aligner les protocoles d'accord et de dérivation de clés avec les algorithmes PQC.

Appel à propositions pour des schémas distribués de signature et de déchiffrement, éliminant les points uniques de compromission dans les opérations sur les clés.

Identité numérique & framework

Refonte majeure du framework d'identité numérique fédérale : proofing, authentification, fédération. Remplace SP 800-63-3.

Guide mis à jour pour déployer et sécuriser l'infrastructure DNS fédérale, incluant DNSSEC.

Guides pratiques pour l'application du Cybersecurity Framework 2.0 : gestion des risques, gouvernance et gestion de la workforce.