système : OPÉRATIONNEL
← retour à tous les hacks
RESEARCH MEDIUM NEW

Quatre façons d'obfusquer une matrice de poids, une chose qu'elles laissent toutes derrière

Un papier CCS du 9 septembre 2026 montre que les astuces de permutation, mise à l'échelle et masquage utilisées pour déporter des couches LLM vers un GPU non fiable préservent toutes la direction des colonnes.

2026-09-18 // 9 min affects: bert-base, vit-base, qwen2.5-0.5b, qwen2.5-1.5b, tee-shielded-inference

De quoi s’agit-il ?

Le 9 septembre 2026, six chercheurs de l’université Tsinghua ont publié un papier — Hanyi Zhou, Chenyang Li, Yuanzhe Pang, Ke Xu, Mingwei Xu et Zhuotao Liu, accepté à ACM CCS 2026 (Cycle B) — qui fait ce que la littérature sur la protection des modèles embarqués n’avait pas fait : elle cesse d’attaquer ces schémas un par un et se demande ce qu’ils ont en commun.

La cible est un patron de conception appelé TEE-Shielded LLM Partition (TSLP). Vous voulez exécuter un modèle propriétaire sur l’appareil d’un utilisateur sans lui remettre les poids. Un environnement d’exécution de confiance — Intel SGX, Arm TrustZone — sert d’ancre de confiance, mais il est bien trop lent pour faire tourner un transformeur. Vous obfusquez donc les couches linéaires coûteuses, vous les confiez au GPU non fiable de l’appareil, et vous ne gardez dans l’enclave que les opérations peu coûteuses. Le GPU voit une matrice de poids brouillée et calcule avec elle ; l’enclave rétablit le résultat.

Le résultat du papier est que les schémas de brouillage publiés à ce jour sont quatre astuces en diverses combinaisons, que ces quatre astuces sont closes par composition, et que toute composition de ces astuces préserve la seule propriété dont un attaquant a réellement besoin. Les auteurs nomment leur attaque Collapse et rapportent qu’elle met en défaut trois schémas issus de conférences majeures à la fois : ArrowCloak (USENIX Security’25), TSQP (IEEE S&P’25) et LoRO (NeurIPS’25).

Comment ça fonctionne

Commençons par le modèle de menace, car il est inhabituel et c’est là toute la raison pour laquelle ce travail compte. L’adversaire, ici, c’est le propriétaire de l’appareil. Il contrôle l’hôte non fiable et le GPU. Il ne peut pas casser le TEE — les canaux auxiliaires matériels et les attaques par exécution transitoire sont explicitement hors périmètre — et il respecte le protocole. Le papier parle d’un adversaire honest-but-curious : l’attaquant se contente d’enregistrer chaque tenseur qui franchit la frontière de l’enclave et de conserver les traces.

Ce point compte parce que les schémas TSLP se défendent par rotation de clés. L’enclave renouvelle ses clés d’obfuscation toutes les quelques itérations, en supposant qu’aucune clé n’est exposée assez longtemps pour permettre d’accumuler des observations utiles. L’attaque accepte cette hypothèse et travaille à partir de T vues obfusquées différentes de la même matrice, plus deux éléments de contexte : le modèle pré-entraîné public à partir duquel le modèle victime a été affiné, retrouvé par des techniques standard d’empreinte de modèle, et moins de 1 % du jeu d’entraînement d’origine en données de tâche annotées, collectées en interrogeant le modèle déployé.

Et l’objectif n’est pas une récupération exacte des poids. C’est un modèle de substitution :

  entrées de l'attaquant                 sortie de l'attaquant
  ──────────────────────                 ─────────────────────
  modèle public  M_pre           ┐
  T vues obfusquées  W̃_1..W̃_T    ├──► substitut  M_sur
  ≤1% de données annotées        ┘      (même architecture,
                                         performance comparable)

  critère de succès :  Acc(M_sur) ≥ Acc(M_vic) − δ,   δ = 0.05

Cinq points de pourcentage. Si le modèle volé se situe à moins de cinq points de l’original sur le jeu d’évaluation, la défense a échoué.

La contribution formelle est la définition d’une primitive d’obfuscation comme un couple d’opérateurs (O, ℛ) où l’enclave publie W̃ = O(W) et reconstitue ℛ(X·W̃) = XW. Une primitive n’est valide que si elle satisfait simultanément trois propriétés : correction (équivalence fonctionnelle exacte), efficacité (C(O) + C(ℛ) ≪ C(XW), faute de quoi le déport n’a aucun intérêt), et résistance à l’extraction de modèle sous les budgets d’observation et de données ci-dessus.

La clause d’efficacité est le piège. Un masque additif gaussien dense et i.i.d. serait véritablement sûr — mais calculer le terme de correction dans l’enclave coûte autant que d’y calculer la couche entière, ce que le papier qualifie d’« auto-destructeur ». Tout schéma de la littérature est donc une transformation structurée et peu coûteuse, et c’est précisément la structure dont Collapse se nourrit. Les quatre primitives existantes :

CatégoriePrimitiveEffet
Multiplicativepermutation Πréordonne les colonnes
Multiplicativemise à l’échelle Dredimensionne les colonnes
Additivemasque creux Sperturbe une faible fraction des éléments
Additivemasque de rang faible Ldissimule la matrice dans un sous-espace de faible dimension

Les auteurs démontrent que ces primitives se composent sans dégrader aucune des trois propriétés — la correction reste exacte, le coût côté enclave ne croît qu’additivement. Empiler, c’est ce que fait ArrowCloak. La forme canonique de toutes ces compositions, qu’ils nomment O_prior, constitue donc la frontière structurelle de la famille entière. Pas d’un schéma. De la famille.

Vient ensuite l’observation centrale, énoncée sans détour : les directions des colonnes de la matrice de poids protégée ne peuvent être masquées efficacement par aucune composition de ces primitives. La permutation et la mise à l’échelle ne font que réordonner et redimensionner les colonnes, si bien que les directions survivent et restent corrélées au modèle public. Un masque creux touche trop peu d’éléments pour les déplacer. Un masque de rang faible dissimule la matrice dans un seul sous-espace de faible dimension — et laisse les directions intactes dans le complément orthogonal.

Collapse procède alors en trois étapes, décrites ici au niveau auquel le papier les présente et pas plus bas : aligner les permutations entre les différentes vues observées ; combiner les vues alignées pour retrouver le masque de rang faible et localiser le support du masque creux, ce qui produit un modèle intermédiaire ; affiner ce modèle intermédiaire sur le petit jeu annoté pour effacer le masque creux résiduel et la mise à l’échelle. Le résultat est un substitut possédant l’architecture de la victime et des performances comparables, évalué sur quatre modèles : BERT-Base, ViT-Base, Qwen2.5-0.5B et Qwen2.5-1.5B.

Pourquoi c’est important

La lecture étroite est que trois schémas précis doivent être revus. La lecture utile porte sur la manière dont cette classe de défense a été évaluée.

Les attaques antérieures contre TSLP étaient spécifiques à un schéma — ArrowMatch visait les constructions à permutation et mise à l’échelle, une autre ligne de travaux visait le masquage additif. Chacune cassait un design, et chacune invitait la réponse naturelle : empiler davantage d’astuces, accélérer la rotation des clés, publier la composition. C’est exactement cette réponse que ce papier ferme. Si les primitives sont closes par composition et si toute composition préserve la direction des colonnes, alors l’empilement n’est pas un argument de sécurité. C’est un argument de performance déguisé en argument de sécurité. Nous avons déjà écrit sur le fait que les défenses d’agents ne se composent pas ; il s’agit ici du même échec dans une couche très différente de la pile, et il est cette fois démontré plutôt que mesuré.

Le deuxième point à intégrer est le budget. Un attaquant qui possède l’appareil, ne peut pas casser l’enclave et dispose de moins de 1 % des données d’entraînement n’est pas un adversaire exotique — c’est la condition de déploiement normale pour tout éditeur qui livre un modèle propriétaire affiné sur du matériel grand public. La rotation des clés, garde-fou standard du domaine, est précisément ce qui fournit les vues multiples que l’attaque consomme. Le mécanisme d’hygiène de la défense est une entrée de l’attaque.

Troisièmement : le levier de l’attaquant vient du modèle pré-entraîné public. Ce qui est protégé, c’est l’écart entre un modèle public et un modèle affiné en privé, et la moitié publique est gratuite. Identifier le modèle de base par empreinte est un problème résolu. C’est la même asymétrie qui fait de la détection d’extraction de modèle un sujet de recherche actif plutôt qu’une question réglée.

Pour situer le sujet dans un cadre plus large, la systématisation des connaissances sur la sécurité de l’IA embarquée mobile publiée le 1er juillet 2026 par Yujin Huang, Xin Zheng, Xingliang Yuan et Kwok-Yan Lam couvre le paysage des attaques et défenses pour les modèles déployés localement, ainsi que ses lacunes. Le stockage local d’un modèle est la condition racine ; TSLP est une tentative de vivre avec, et l’informatique confidentielle pour les charges agentiques en est une autre.

Défenses

Ne considérez pas la composition comme un multiplicateur de sécurité. Si votre schéma de protection est un empilement de permutation de colonnes, mise à l’échelle de colonnes, masquage creux et masquage de rang faible, ajouter une cinquième combinaison des mêmes quatre primitives ne vous fait pas sortir de O_prior. Demandez-vous quel invariant votre construction détruit, et non combien de couches elle comporte.

Demandez-vous ce qui survit à la rotation des clés, pas ce qu’une clé dissimule. La bonne question de sécurité pour un déploiement TSLP est ce qu’un adversaire apprend de T vues, pas d’une seule. Si votre modèle de menace suppose une exposition statique unique, il ne décrit pas votre déploiement.

Brisez la structure en lignes et en colonnes, pas seulement l’ordre. L’extension proposée par les auteurs, O_ext, ajoute deux primitives visant précisément ce point : une primitive multiplicative creuse qui mélange les colonnes au lieu de simplement les permuter, et une primitive multiplicative bilatérale qui perturbe conjointement lignes et colonnes. Les auteurs rapportent que cela ramène en moyenne la performance du substitut à la référence empirique en boîte noire — et ils précisent explicitement, à deux reprises, qu’ils ne revendiquent aucune sécurité universelle pour cette extension, ne l’ayant évaluée que contre le pipeline Collapse existant. Voyez-y une meilleure famille de primitives, pas un correctif.

Budgétez le substitut, pas les poids. Un écart de cinq points de pourcentage est ici la définition pratique du vol. Un schéma de protection mesuré à l’erreur de reconstruction des poids peut paraître excellent tout en échouant complètement à ce test. Évaluez sur la performance en aval d’un substitut entraîné par l’attaquant.

Réduisez l’écart avec le modèle public si la propriété intellectuelle réside dans l’affinage. Plus l’écart entre le modèle public et le modèle déployé est mince, moins l’attaquant a à récupérer. Là où c’est inacceptable, la conclusion honnête peut être que les poids ne devraient pas se trouver sur l’appareil du tout — ce qui oriente vers l’inférence côté serveur ou vers du matériel où la confidentialité est appliquée plutôt qu’obfusquée.

N’y voyez pas un verdict sur les TEE. L’attaque ne compromet pas l’enclave. Elle attaque le raccourci de déport pris pour rendre l’enclave assez rapide. Les GPU à calcul confidentiel — le papier cite H100 CC et TDX-IO — sont présentés comme complémentaires et non dépassés, et les canaux auxiliaires d’enclave, traités séparément dans la littérature sur les canaux auxiliaires d’inférence, restent un problème distinct.

Statut

ÉlémentDétail
PublicationarXiv:2609.10117v1 [cs.CR], soumis le 9 septembre 2026 ; 17 pages
ConférenceAccepté à ACM CCS 2026 (Cycle B)
AuteursHanyi Zhou, Chenyang Li, Yuanzhe Pang, Ke Xu, Mingwei Xu, Zhuotao Liu (université Tsinghua)
AttaqueCollapse — extraction de substitut guidée par primitives contre l’obfuscation composée de poids
AdversairePropriétaire de l’appareil, honest-but-curious ; contrôle l’hôte et le GPU ; ne peut compromettre le TEE
BudgetsT vues obfusquées au fil des rotations de clés ; moins de 1 % du jeu d’entraînement d’origine, annoté
Seuil de succèsSubstitut à moins de δ = 0.05 (cinq points de pourcentage) de la performance de la victime
Schémas mis en défautArrowCloak (USENIX Security’25), TSQP (IEEE S&P’25), LoRO (NeurIPS’25)
Modèles évaluésBERT-Base, ViT-Base, Qwen2.5-0.5B, Qwen2.5-1.5B
Extension proposéeO_ext — ajoute les primitives multiplicative creuse et multiplicative bilatérale
Limites de périmètreCanaux auxiliaires matériels et exécution transitoire hors périmètre ; aucune sécurité universelle revendiquée pour O_ext
ContexteSoK sur la sécurité de l’IA embarquée mobile, arXiv:2607.00362, 1er juillet 2026

Sources