Présentation
Le projet Rohan propose un in‑memory security proxy destiné aux outils Model Context Protocol (MCP). La version publique beta (v0.6.0) introduit deux mécanismes principaux : le V‑01 Semantic Firewall, qui filtre les caractères Unicode cachés et les injections de prompts, et le V‑02 Deterministic Zeroize, qui efface immédiatement les tampons contenant des secrets en RAM. L’objectif est d’empêcher que des paramètres sensibles (ex. : clés API, mots de passe) ne soient injectés dans le contexte du modèle de langage et ainsi ne soient jamais consignés dans les logs d’inférence.
Architecture technique
Le serveur MCP officiel, publié sur npm sous le nom @rohan-protocol/mcp, s’exécute en mode stdio et respecte la spécification Anthropic MCP. Il se compose de trois couches : le serveur MCP (packages/mcp), le moteur d’engagement en mémoire (packages/sdk) et le relayer paymaster qui assure la transaction sans frais. Le moteur crée un hash d’intention de 32 octets stocké uniquement en RAM, puis applique le zeroize qui overwrite les buffers dès que le traitement est terminé. Aucun écrit disque n’est réalisé, aucune donnée ne transite par le swap, ce qui réduit la surface d’exposition aux attaques de récupération de mémoire résiduelle.
# Cloner et lancer le serveur Rohan
git clone https://github.com/rohan-protocol/sdk.git
cd sdk
npm install
npm run build
node packages/mcp/dist/server.js
Sécurité et limites
Le V‑01 Semantic Firewall agit comme un filtre de caractères Unicode invisibles et de séquences de prompt injection avant que les arguments ne soient transmis au modèle. Cette approche empêche les agents malveillants d’injecter des instructions qui pourraient détourner le modèle. Le V‑02 Zeroize garantit que les secrets restent uniquement dans la mémoire volatile pendant la durée d’exécution d’une requête. Cependant, la protection repose sur la bonne implémentation du zeroize par le runtime JavaScript/Node ; toute fuite due à un garbage collector ou à une copie non contrôlée pourrait contourner le mécanisme. De plus, le projet indique que les circuits ZK‑SNARK côté client sont encore en phase de recherche (Milestone 1), ce qui signifie que la preuve cryptographique de non‑exposition n’est pas encore disponible.
Mise en œuvre et perspectives
Pour intégrer le bouclier, les utilisateurs ajoutent simplement une entrée rohan-shield dans le fichier de configuration MCP (ex. : claude_desktop_config.json) et spécifient la commande npx -y @rohan-protocol/mcp@latest. Le relayer paymaster, hébergé sur la blockchain Midnight, fournit une protection contre la relecture grâce à un identifiant de transaction immuable. À terme, le projet prévoit d’étendre l’isolation au niveau du DOM (V‑07 DOM isolation) pour les applications web, ainsi que d’intégrer des preuves ZK‑SNARK afin de rendre la confidentialité vérifiable de façon stateless. En l’état, Rohan constitue une avancée concrète pour réduire les fuites de contexte dans les workflows d’agents autonomes, tout en exposant clairement les zones où la recherche cryptographique reste à finaliser.