Le chiffrement cache ce que vous avez dit. Ceci cache que vous avez parlé.
Le chiffrement garde privé le contenu d’un message. Il ne cache pas que le message a eu lieu. Un observateur qui surveille le réseau voit toujours qui parle à qui, quand, et combien de kilooctets (Ko) ont circulé — ce qui, dans un contexte sensible, peut compter autant que les mots. AEGIS maintient le trafic entre les membres d’un groupe fermé à débit constant, qu’il y ait quelque chose à envoyer ou non, si bien que le rythme et le volume ne portent aucun signal.
“Rien n’est fait tant qu’une simulation d’attaque ne l’a pas confirmé.”
L’intuition sur l’analyse de trafic s’est trompée à plusieurs reprises pendant le développement. Seul le banc de simulation s’est révélé digne de confiance, il est donc devenu le contrôle. Le banc Python dans
sim/ est le registre de preuves derrière chaque chiffre de la spécification — pas un ajout après coup qui valide une conception déjà livrée.
Ce que c’est, en une minute
Qui peut observer le réseau n’a pas besoin de casser le chiffrement. Il voit qu’un point a émis 14 Ko à 09:41:03 et qu’un autre a reçu 14 Ko trois secondes plus tard, et que la même chose se produit deux fois par jour pendant onze semaines. Répété assez souvent, c’est une carte de qui travaille avec qui, dessinée sans lire un seul message.
AEGIS fait en sorte que le fil ait toujours la même allure. Le trafic sort à débit constant qu’il y ait quelque chose à envoyer ou non, et ce qui arrive est rempli jusqu’à une taille fixe, si bien qu’il n’y a pas de rafale d’un côté à faire correspondre à une rafale de l’autre. Ça coûte de la bande passante et ça ajoute du délai ; la démonstration ci-dessous montre la protection et son prix côte à côte.
Les rédactions et quiconque protège une source, où l’heure et la taille d’un contact sont ce qui expose une personne. Les banques, les assureurs et les fédérations professionnelles qui se concurrencent et doivent tout de même échanger des données. Les organisations qui partagent des alertes d’attaque, où être vu en train de partager peut être en soi la partie sensible.
Les métadonnées, c’est la partie qui vous identifie
Un adversaire passif global ne peut pas lire vos messages. Il n’en a pas besoin. Il observe tous les liens à la fois et corrèle : ce point a émis 14 Ko à 09:41:03, cet autre a reçu 14 Ko à 09:41:06, et le motif se répète deux fois par jour pendant onze semaines.
Le volume et le rythme suffisent à reconstituer le graphe des relations d’une organisation entière sans casser un seul chiffrement. Pour un consortium — des banques qui se règlent entre elles, des hôpitaux qui partagent des dossiers, des rédactions avec des sources — le graphe est l’information sensible.
AEGIS transforme le fil en un mur plat et immuable. Débit constant quoi qu’il se passe en dessous, si bien que le volume et le rythme ne portent aucun signal. La démonstration ci-dessous vous laisse lancer l’attaque contre les deux configurations et voir la différence.
Mixnet mis en forme
Données petites et en rafales, plus tout le trafic de contrôle. Paquets Sphinx émis à débit constant, avec un remplissage plafonné côté récepteur pour que le volume entrant d’un récepteur soit lui aussi fixe.
Plan de volume
Transfert de gros fichiers avec un niveau de sécurité réglable — brut, par paliers, ou groupé uniformément. Vous choisissez où vous vous placez sur la courbe de coût ; rien n’est caché sur le prix.
Soyez l’adversaire passif global
Cinq émetteurs parlent chacun à exactement un des cinq récepteurs. Vous ne voyez que le volume de trafic sur chaque lien — jamais le contenu, jamais le routage. Corrélez les séries et essayez de retrouver l’appariement. Puis activez la défense à débit constant et réessayez.
banc d’analyse de trafic
Conclusion de l’adversaire
Coût de la défense
Le hasard, c’est 20 % — une paire sur cinq retrouvée en devinant. Tout ce qui dépasse nettement ce seuil, c’est l’adversaire qui gagne. Les chiffres de coût sont l’autre moitié honnête : la mise en forme à débit constant n’est pas gratuite, et AEGIS ne prétend pas le contraire.
Huit phases, chacune derrière un contrôle d’équipe rouge
L’implémentation est complète jusqu’à la phase 8, le durcissement. Voici les chiffres que rapporte le dépôt : le fuzzing a tourné sous Windows Subsystem for Linux (WSL), et le testnet sur de vraies sockets du protocole de contrôle de transmission (TCP).
| Domaine | Résultat | Notes |
|---|---|---|
| Vecteurs cryptographiques | 36 / 36 | |
| Routage par relais | 14 / 14 | |
| Topologie | 41 / 41 | |
| Négociateur / corrélation de volume | 25 / 25 | |
| Tests du workspace | 195 | Tous réussis |
| Fuzzing de sécurité | 1.17M+ | libFuzzer via WSL, zéro plantage |
| Testnet | TCP réel | Routage de paquets Sphinx sur de vraies sockets |
| Analyse de traces | Bénin vs malveillant | Comparaison sur traces réelles |
Cache qui parle, pas seulement ce qui a été dit
Brouiller un message est un problème résolu. Ce que cela ne cache pas, c’est que vous en avez envoyé un, à qui, quand et combien. Ce seul motif suffit souvent à identifier des personnes.
Rédactions et quiconque protège une source
Personne n’a besoin de lire le message s’il peut voir qu’une personne précise a contacté un journaliste précis à deux heures du matin. Ce sont l’horaire et la taille qui exposent les gens.
Des entreprises rivales qui doivent quand même partager des données
Banques, assureurs et groupements professionnels échangent des informations tout en se faisant concurrence. À qui vous vous mettez soudain à parler, et à quelle fréquence, révèle ce sur quoi vous travaillez.
Des organisations qui s’échangent des alertes sur des attaques
Partager des informations sur les menaces est utile, mais être vu en train de le faire peut être en soi la partie sensible. Ceci garde privé le fait même de la conversation, pas seulement son contenu.
Ce qui se pose par-dessus la mise en forme
- Poignées de main à confidentialité persistante. La compromission des clés de long terme n’expose pas rétroactivement les sessions.
- Sélection de chemin sensible à la réputation. Les routes préfèrent les relais au comportement établi.
- Balises d’aléa distribuées. Aucune partie ne contrôle à elle seule l’entropie de sélection des chemins.
- Preuves de réputation à divulgation nulle. Un relais prouve qu’il dépasse un seuil de réputation sans révéler son score.
- Sélection des nœuds de garde. Résistance aux attaques Sybil là où elle compte le plus.
Où les garanties s’arrêtent
- Trafic interne uniquement. Les garanties fortes s’appliquent à l’intérieur du consortium. La sortie en clair est plus faible et rien d’autre n’est prétendu.
- Empirique, pas démontré. Les résultats sont des bornes empiriques sous le modèle d’adversaire énoncé. Ce ne sont pas des démonstrations mathématiques.
- La latence est inhérente. Une latence de plusieurs secondes est une propriété de la conception, pas un problème de réglage qu’on finira par optimiser.
- Mauvais outil pour deux parties. AEGIS convient pour cacher un graphe de relations entre de nombreux points. Pour un lien entre deux parties, les défenses de couche liaison font mieux.
- Il reste de la recherche ouverte.
docs/ops/RESEARCH_AGENDA.mdest le carnet honnête de ce qui n’est pas fini.
cargo deny et une politique à l’échelle du workspace interdisant le code unsafe. Pour une pile réseau Rust qui traite des entrées hostiles, #![forbid(unsafe_code)] sur tout le workspace est la ligne la plus porteuse du projet.