Architecture du canal de gestion à distance entre le serveur souverain (Abux) et les postes cibles : serveur de recette, sonde, canaux SSH & pollé, binaires, gouvernance.
PULSAR pilote des postes Windows distants depuis un serveur Linux souverain, sans aucun service cloud. Deux canaux cohabitent : SSH direct (rapide, autonome, pour le développement/diagnostic) et la sonde pollée (captures d'écran, supervision humaine, audité). Toute la chaîne reste sur le LAN ; les élévations de privilèges se font par consentement visible (UAC), jamais par contournement.
Sens des flèches : SSH Abux→WIN10 ; sonde WIN10→Abux (poll sortant) ; téléchargement des binaires depuis Abux.
serveur_recette.py — FastAPI, HTTPS auto-signé, mTLS optionnel.auth.py — PBKDF2 200k · TOTP (RFC6238) · cookies HMAC · RBAC.registre-actions.jsonl (SHA-256 hash-chaîné).commandes/ · boîte inbox/<ticket>/ (résultats + PNG).ssh WIN10 "…" — OpenSSH, clé id_ed25519, pare-feu LAN-only.scp pour les fichiers ; instance REMOTEMK autonome.win/winssh (PS encodé base64) · win/winshot (capture).pulse.py → enqueue localhost → la sonde poll en HTTPS → ticket.-EncodedCommand (zéro souci d'échappement).mode.json, idéal captures d'écran.PULSAR-Sonde.exe — C# .NET 8 WinForms, self-contained (~64 Mo), aucun pré-requis.PULSAR-Sonde-Admin.ps1 — équivalent PowerShell (BOM UTF-8).System.Drawing.sonde-exe/ — cross-build depuis Linux (EnableWindowsTargeting).$HOME/.dotnet), dotnet publish single-file.ssh WIN10 "<PowerShell>" ; exécution immédiate, stdout renvoyé. Aucun intermédiaire.pulse.py dépose une commande (POST /api/agent/commande, localhost only).mode.json : pilote (manuel), hybride (approbation console), autonome (livraison directe).GET /api/agent/commandes (jeton), exécute, capture l'écran si besoin.POST /api/agent/resultat (+ /capture binaire) → ticket dans inbox/, consigné à l'audit.| Composant | Emplacement | Rôle |
|---|---|---|
| serveur_recette.py | Abux · recette/ | API + console (FastAPI, 9333 HTTPS) |
| auth.py | Abux · recette/ | Auth PBKDF2 + TOTP + RBAC + audit |
| pulse.py | Abux · recette/ | Pilotage de la sonde (shot / run, base64) |
| win/winssh · winshot | Abux · recette/win/ | PowerShell & capture via SSH |
| PULSAR-Sonde.exe | WIN10 (servi 9345) | Sonde compilée C# .NET 8 self-contained |
| PULSAR-Sonde-Admin.ps1 | WIN10 · demo-kit/ | Sonde GUI PowerShell (équivalent) |
| Installer-Sonde-Service.ps1 | WIN10 | OpenSSH + pare-feu LAN + clé + auto-démarrage |
| REMOTEMK-DIAG.md | Abux · recette/ | Bus de coordination entre instances Claude |
| mode.json | Abux · recette/ | Gouvernance (pilote / hybride / autonome) |
fodhelper & co.) sont refusés par principe — c'est précisément le type d'élévation furtive que le control plane PULSAR est censé détecter.Compromis assumé : les commandes du canal SSH ne traversent pas l'audit hash-chaîné de PULSAR (acceptable pour un loop de développement). Pour une traçabilité complète, le canal sonde reste disponible.
Deux instances Claude collaborent via un bus fichier append-only : PULSAR (sonde + infrastructure) et REMOTEMK (développement du KVM Rust testé sur WIN10). Chacune signe ses entrées dans REMOTEMK-DIAG.md ; REMOTEMK pilote WIN10 en SSH de façon autonome, PULSAR n'intervient qu'en supervision.
ssh WIN10 whoami), instance REMOTEMK autonome..exe — C# .NET 8 self-contained, servi sur 9345.screencapture + même protocole, puis .app.