Offre d’HalloweenDes bonbons, ou on répare le film !Les trois offres sont en promotion. La licence perpétuelle vous fait économiser $30Jusqu’au 2 nov., 23:59 (heure du Pacifique)

Voir les tarifs

Local ne veut pas dire sûr : sécuriser le canal entre un assistant IA et une application de bureau

Un lien MCP local reste exposé : canal nommé par utilisateur, première instance, jeton de 128 bits, comparaison à temps constant, échec en mode fermé.

L’essentiel

  • Une connexion locale entre un assistant IA et une application de bureau reste accessible aux autres utilisateurs du même PC, aux clients distants et à un programme qui s’empare le premier du nom du canal.
  • Sous Windows, le canal de KwaFlux est un canal nommé que seul votre compte peut ouvrir, que KwaFlux réserve en premier et qui refuse les clients distants. Sur Mac, c’est un socket dont les permissions sont réservées à votre compte.
  • Chaque connexion commence par un jeton aléatoire de 128 bits, vérifié en temps constant et tenu à l’écart des journaux. Vous pouvez le réinitialiser dans les Paramètres.
  • Le fichier qui transmet le jeton au serveur MCP est écrit de façon atomique, avec des permissions réservées au propriétaire. Si ces permissions ne peuvent pas être appliquées, KwaFlux ne le publie pas.

Un assistant IA dialogue avec KwaFlux par un canal situé sur votre propre ordinateur. On en déduit facilement que personne d’autre ne peut l’atteindre. Ce n’est pas automatiquement vrai. Sous Windows, un canal nommé créé avec les réglages par défaut peut être lu par n’importe quel utilisateur, être atteint depuis le réseau et être réservé par le premier processus qui le crée.

KwaFlux ferme chacune de ces portes, et cet article explique comment.

Dans ce guide, vous verrez les trois façons dont on atteint un canal local, les défenses que KwaFlux oppose à chacune, comment le jeton parvient au serveur MCP en sécurité, et ce contre quoi un canal local ne peut pas protéger.

Sommaire

  1. Qu’est-ce qu’un canal IPC local ?
  2. Trois façons dont « local » tourne mal
  3. Couche 1 : qui peut ouvrir le canal
  4. Couche 2 : un jeton à chaque connexion
  5. Couche 3 : publier le jeton sans le divulguer
  6. Couche 4 : des limites pour tenir un client en respect
  7. Ce contre quoi le canal ne protège pas
  8. Comment nous le testons
  9. Questions fréquentes

Qu’est-ce qu’un canal IPC local ?

Un canal IPC (communication inter-processus) local est une connexion qui permet à deux programmes d’un même ordinateur d’échanger des messages sans passer par la pile réseau. Les canaux nommés sous Windows et les sockets de domaine Unix sous macOS en sont des exemples courants.

Dans la configuration MCP de KwaFlux, votre assistant IA démarre le serveur KwaFlux MCP, pour des traitements comme la réparation de fichier ou la conversion, et ce serveur se connecte à l’application KwaFlux en cours d’exécution par un tel canal. L’article sur le plan de contrôle montre où il se situe parmi les autres couches.

Trois façons dont « local » tourne mal

RisqueÀ quoi cela ressemblePourquoi c’est important
Autres comptes sur le PCUn ordinateur familial, un poste de travail partagé ou un serveur de bureau à distance avec plusieurs utilisateursMicrosoft indique que le descripteur de sécurité par défaut d’un canal nommé accorde « un accès en lecture aux membres du groupe Everyone et au compte anonyme »
Clients distantsUn canal nommé peut s’ouvrir par son nom depuis le réseauMicrosoft précise qu’un canal qui accepte les clients distants ne les contrôle qu’au regard de son descripteur de sécurité
Usurpation du nomUn autre programme crée un canal portant le nom attendu avant le démarrage de KwaFluxLe serveur MCP remettrait ses requêtes, et son jeton, à l’imposteur

Aucun de ces cas ne demande une attaque sophistiquée. Ils découlent des réglages par défaut.

Couche 1 : qui peut ouvrir le canal

KwaFlux crée son canal Windows avec trois réglages qui répondent aux trois risques :

  • Un descripteur de sécurité limité à votre compte. Au lieu du descripteur par défaut, qui donne le contrôle total au système et aux administrateurs et un accès en lecture à Everyone, la liste d’accès du canal désigne l’utilisateur actuel.
  • Première instance seulement. KwaFlux crée le canal avec FILE_FLAG_FIRST_PIPE_INSTANCE. Selon la documentation de Microsoft, avec cet indicateur, « la création de la première instance réussit, mais la création de l’instance suivante échoue avec ERROR_ACCESS_DENIED ». Si un autre programme possède déjà le nom, KwaFlux s’en aperçoit et ne sert pas sur un canal qui ne lui appartient pas.
  • Pas de clients distants. Le canal utilise PIPE_REJECT_REMOTE_CLIENTS, que Microsoft décrit sobrement : « Les connexions des clients distants sont automatiquement rejetées. »

Sous macOS, l’application écoute sur un socket de domaine Unix dont les permissions de fichier sont 0600 : seul votre compte peut l’ouvrir.

À noter : les recommandations de sécurité de la spécification MCP donnent le même conseil pour les serveurs locaux : utiliser le transport stdio pour limiter l’accès au client MCP et, si un serveur utilise d’autres transports, exiger un jeton d’autorisation ou passer par un IPC « à accès restreint ». KwaFlux fait les deux. L’hôte atteint le serveur MCP via stdio, et le serveur MCP atteint l’application par un canal restreint, avec un jeton.

Couche 2 : un jeton à chaque connexion

Les permissions décident qui peut ouvrir le canal. Un jeton prouve que le programme à l’autre bout est bien celui que KwaFlux a configuré.

  • Génération. Au démarrage, KwaFlux crée un jeton de 128 bits à partir du générateur de nombres aléatoires cryptographique du système d’exploitation.
  • Poignée de main. Chaque connexion doit s’ouvrir par un message hello qui contient le jeton. Tant que cet échange n’a pas réussi, l’application n’accepte rien d’autre sur cette connexion.
  • Comparaison en temps constant. KwaFlux compare le jeton octet par octet d’une manière qui prend le même temps, que l’erreur porte sur le premier ou sur le dernier octet : le temps de réponse ne révèle donc pas à quel point une tentative était proche.
  • Tenu à l’écart des journaux. Le jeton n’apparaît ni dans les journaux de KwaFlux ni dans la liste d’activité des Paramètres.
  • Réinitialisation. Dans les Paramètres, Réinitialiser le jeton d’accès des agents le remplace par un nouveau jeton aléatoire. Les connexions d’agents actuelles sont coupées, et les hôtes configurés se reconnectent avec le nouveau jeton à leur prochain appel. Faites-le si vous pensez qu’un programme a pu lire l’ancien.

Couche 3 : publier le jeton sans le divulguer

Le serveur MCP a besoin du jeton, et il le récupère dans un petit fichier de contrôle que KwaFlux écrit au démarrage. Ce fichier est le point le plus faible s’il est traité à la légère : c’est donc lui qui reçoit le plus d’attention.

Publication du fichier de contrôle en cinq étapes : créer le dossier de contrôle ; restreindre sa liste d’accès à l’utilisateur actuel ; vérifier que le propriétaire du dossier est l’utilisateur actuel ; écrire le jeton dans un fichier temporaire soumis à la même restriction ; remplacer de façon atomique le fichier de contrôle par le fichier temporaire. Si une étape liée aux permissions échoue, KwaFlux s’arrête et ne publie pas le fichier
  1. Créer le dossier de contrôle dans votre profil utilisateur.
  2. Le réserver à votre compte. La liste d’accès du dossier ne désigne que l’utilisateur actuel, sans hériter de permissions plus larges du dossier parent.
  3. Vérifier le propriétaire. KwaFlux s’assure que le dossier appartient à l’utilisateur actuel, pour ne pas faire confiance à un dossier placé à l’avance par quelqu’un d’autre.
  4. Écrire dans un fichier temporaire soumis à la même restriction.
  5. Remplacer le fichier de contrôle de façon atomique, pour qu’un lecteur voie soit l’ancien fichier, soit le nouveau, mais pas un fichier à moitié écrit.

La règle importante, c’est ce qui se passe en cas d’échec. Une version antérieure écrivait d’abord le fichier et resserrait ses permissions ensuite, en se contentant de consigner un avertissement si cela échouait. Désormais, si KwaFlux ne parvient pas à appliquer les permissions, il ne publie pas du tout le fichier. MCP cesse de fonctionner jusqu’à ce que le problème soit réglé, et c’est le bon compromis : une connexion en panne se voit, un jeton lisible ne se voit pas.

Couche 4 : des limites pour tenir un client en respect

Même un client correctement authentifié a des limites, parce que l’IA qui se trouve derrière peut être orientée par ce qu’elle lit :

LimiteValeur
Connexions simultanées8
Taille d’un message64 Kio
Connexion inactiveFermée au bout de 5 minutes
Nouveaux traitements10 par minute au total, 6 par connexion
Contrôle des tâchesUniquement les tâches soumises par l’agent de cette connexion
Interrupteur généralUn seul réglage dans KwaFlux coupe tout accès des agents

Ces limites servent à contenir un assistant désorienté ou manipulé, un sujet que l’article sur les chemins et la confidentialité et l’article sur la SSRF abordent sous d’autres angles.

Ce contre quoi le canal ne protège pas

Nous tenons à être précis sur la limite, parce que des promesses de sécurité exagérées font plus de mal que pas de promesse du tout.

Les défenses du canal arrêtent les autres comptes utilisateur, les autres ordinateurs et les programmes qui tentent de se faire passer pour KwaFlux en s’emparant du nom du canal. Elles n’arrêtent pas un logiciel malveillant qui tourne déjà sous votre propre compte. Un programme qui s’exécute en votre nom peut déjà lire vos fichiers, les données de votre navigateur et tout ce à quoi vous avez accès ; aucune application locale ne peut s’isoler de cela. Tenir ce genre de logiciel à l’écart de votre ordinateur relève du système d’exploitation et de votre logiciel de sécurité.

À noter : le durcissement de la couche 3 et la réinitialisation du jeton arrivent d’abord sous Windows. La version Mac utilise déjà le socket réservé au propriétaire et la poignée de main par jeton ; nous mettrons cet article à jour quand les éléments restants y seront livrés.

Un changement figure sur notre liste pour plus tard : une poignée de main où chaque côté prouve son identité sans que le secret lui-même transite par le canal. Nous l’avons mis de côté pour l’instant, parce qu’il modifie le protocole aux deux bouts à la fois, qu’un bogue de poignée de main mettrait MCP hors service pour tout le monde, et que l’essentiel de ce qu’il apporterait est déjà couvert par la réservation de la première instance et par la vérification, côté serveur, que l’application est bien en vie.

Comment nous le testons

Le traitement des requêtes par le plan de contrôle est couvert par 341 assertions. Une suite de bout en bout distincte démarre le vrai plan de contrôle et un vrai processus MCP, et exécute 12 groupes de cas de sécurité, dont les vérifications de canal et de chemin décrites ici. Les deux font partie des tests automatisés de KwaFlux : une modification qui affaiblit l’une de ces règles se traduit par un test en échec.

Conclusion

« Il n’écoute qu’en local » : c’est là que commence la sécurité d’un canal local, pas là qu’elle s’arrête. Restreignez qui peut l’ouvrir, assurez-vous de posséder le nom, authentifiez chaque connexion, publiez le secret avec soin ou pas du tout, et dites clairement ce qui sort du périmètre. C’est ainsi que KwaFlux traite le lien entre votre assistant IA et l’application.

Un serveur MCP local conçu avec soin

KwaFlux se connecte à Codex, Claude, Cursor et aux autres applications MCP par un canal que seul votre compte peut ouvrir. Le traitement IA tourne sur votre propre GPU et vos fichiers média ne sont pas envoyés pour être traités. KwaFlux fonctionne sous Windows 10 (64 bits, version 1809 ou plus récente), Windows 11 et macOS 12 ou plus récent sur Apple Silicon. Importer des fichiers et explorer l’app ne demandent pas de compte. Une connexion avec un forfait payant n’est requise que pour exporter, convertir, réparer un fichier ou télécharger un fichier depuis un lien.

Télécharger KwaFlux · Voir les offres

Testez sur vos propres images

Téléchargez KwaFlux et prévisualisez gratuitement les effets sur vos propres images avant de payer — sans compte, traitement sur votre GPU, sans envoi de vos médias pour le traitement. Les aperçus vidéo durent 1, 3 ou 5 secondes, ceux de la stabilisation 5, 15 ou 30 secondes.

Questions fréquentes

Les canaux nommés sont-ils sûrs sous Windows ?

Ça dépend de la façon dont ils sont créés. Un canal créé avec le descripteur de sécurité par défaut accorde un accès en lecture à Everyone et accepte les clients distants. Avec une liste d’accès explicite, PIPE_REJECT_REMOTE_CLIENTS et FILE_FLAG_FIRST_PIPE_INSTANCE, il est limité à votre compte sur cet ordinateur.

Peut-on accéder à un canal nommé depuis le réseau ?

Oui, par défaut. Windows permet aux clients d’ouvrir par son nom un canal situé sur une autre machine, et un canal qui accepte les clients distants ne les contrôle qu’au regard de son descripteur de sécurité. Passer PIPE_REJECT_REMOTE_CLIENTS à la création du canal permet de les refuser.

Qu’est-ce que l’usurpation de canal nommé (named pipe squatting) ?

C’est le cas où un programme crée un canal portant le nom qu’attend une autre application, avant que celle-ci ne démarre, si bien que les clients se connectent à l’imposteur. Créer le canal avec FILE_FLAG_FIRST_PIPE_INSTANCE permet au vrai serveur de remarquer que le nom est déjà pris.

Pourquoi comparer les jetons en temps constant ?

Parce qu’une comparaison ordinaire s’arrête au premier octet erroné : une tentative qui contient plus d’octets justes prend donc un peu plus de temps. Mesurer cette différence peut révéler le secret octet par octet. Une comparaison en temps constant prend le même temps dans tous les cas.

Un serveur MCP local met-il mes données à l’abri des autres programmes ?

En partie. Un serveur local bien conçu tient à l’écart les autres comptes, les autres ordinateurs et les programmes imposteurs. Il ne peut pas arrêter un logiciel malveillant qui tourne déjà en votre nom et peut lire tout ce que vous pouvez lire. Voyez ce qu’une application locale peut protéger, et ce qu’elle ne peut pas protéger.

Sources

  1. Microsoft Learn, "CreateNamedPipeA function" (FILE_FLAG_FIRST_PIPE_INSTANCE, PIPE_REJECT_REMOTE_CLIENTS, default security descriptor) (consulté le 2026-10-25)
  2. Microsoft Learn, "Named Pipe Security and Access Rights" (consulté le 2026-10-25)
  3. Model Context Protocol, security guidance for implementers (2026-07-28; Local MCP Server Compromise) (consulté le 2026-07-28)
  • tutoriel
  • MCP

Auteur et éditeur chez KwaFlux. Les articles sont relus par la rédaction de KwaFlux et s’appuient sur nos notes de recherche produit et les spécifications publiées.