Sécurité & IA2026
SynthID-Graph
Seul, un fraudeur rusé est invisible. Son réseau, lui, le trahit.
Détecter les anneaux d'identités synthétiques avant qu'ils ne vident les comptes, par l'analyse de graphe et une coopération entre banques chiffrée de bout en bout. Preuve de concept sur des données entièrement simulées.

En bref
- Le problème
- Une identité synthétique associe un vrai numéro d'identité à un nom et à des contacts inventés. Elle se comporte en client modèle pendant des mois, puis vide d'un coup tous ses plafonds de crédit : c'est le « bust-out ». Vue seule, elle est irréprochable, et les règles classiques passent à côté.
- L'objectif
- Tester une hypothèse : un fraudeur gère des dizaines d'identités à la fois, et elles partagent forcément des traces — un téléphone, un appareil, un employeur fictif. Le réseau devrait trahir ce que le profil cache, à condition de croiser les données de plusieurs banques sans qu'aucune donnée personnelle ne circule.
- Ma contribution
- Seul contributeur du dépôt public : simulateur, graphe, modèles, couche cryptographique, tests et rapport.
- Technologies
- Python
- Neo4j · GDS
- PyTorch Geometric
- LightGBM
- OPRF · Paillier
- Docker
La démarche (CRISP-DM)
Simuler le terrain : un simulateur multi-agents produit 3 banques, 20 684 identités et 110 anneaux de fraude sur 36 mois, avec des pièges réalistes — foyers, colocations, IP mobiles partagées, impayés légitimes.
Protéger les données dès l'entrée : chaque donnée personnelle devient un jeton HMAC propre à la banque, après résolution des quasi-doublons.
Construire le graphe : 198 000 nœuds et 682 000 relations dans Neo4j, explorés en Cypher et avec Graph Data Science (WCC, Louvain).
Calculer les caractéristiques « à la date T » — profil, comportement, graphe — sans jamais utiliser d'information future, ce que vérifie un test automatisé.
Comparer règles classiques, LightGBM, GCN et GraphSAGE hétérogène (PyTorch Geometric), sur un découpage temporel avec des anneaux jamais vus à l'entraînement.
Faire coopérer les banques sans partager de données : jetons communs par OPRF et compteurs chiffrés Paillier 3072 bits, agrégés sans être lus.
Produire des alertes exploitables : budget d'alertes réaliste et dossier d'enquête généré pour chaque alerte.
Résultats
- des anneaux les plus rusés détectés avant le bust-out, contre 15 % avec les règles classiques
- d'anticipation médiane avant le bust-out
- donnée personnelle reçue par le serveur commun aux banques
Autres résultats mesurés
- PR-AUC de 0,765 pour le meilleur ensemble (LightGBM + GraphSAGE), mesurée à une prévalence de fraude de 1 %.
- Une attaque par dictionnaire retrouve 100 % des valeurs protégées par un simple SHA-256, 0 % avec les jetons OPRF.
- 1,2 % des clients honnêtes qui partagent des traces (foyers, colocations) sont alertés, contre 2,0 % avec les règles.
- 18 tests automatisés : absence de fuite temporelle, absence de données personnelles, exactitude cryptographique.
À savoir
Limites, documentées dans le dépôt
- Les données sont entièrement simulées : les chiffres dépendent des hypothèses du générateur.
- Une seule graine aléatoire et 20 anneaux rusés au test : 5 points d'écart représentent un seul anneau.
- Le réseau de neurones sur graphe seul ne bat pas un LightGBM nourri de bonnes caractéristiques de graphe ; c'est leur combinaison qui l'emporte.
Sources des informations de cette page : README du dépôt synthid-graph (nouvel onglet).