Documentation
Décider qui parle à quoi
Appartenir à un réseau VIGIL-MESH ne signifie pas tout voir : ce sont les listes de contrôle d'accès (ACL) qui décident, pour chaque membre, ce qu'il a le droit de joindre. Les règles sont ordonnées et s'évaluent dans l'ordre, ce qui rend la politique lisible et prévisible. Surtout, chaque changement produit une nouvelle génération signée par le contrôleur : le client la vérifie contre la clé publique du contrôleur, y compris hors ligne, avant de l'appliquer. C'est le socle du modèle Zero Trust.
Le principe des ACL ordonnées
Une ACL VIGIL est une liste de règles ordonnée. Chaque règle exprime une intention simple : telle source a le droit (ou non) de joindre telle destination, éventuellement restreinte à certains services. Pour un flux donné, le contrôleur parcourt la liste dans l'ordre et applique la première règle qui correspond. L'ordre est donc porteur de sens : une règle placée plus haut l'emporte sur une règle plus bas.
Sources et destinations ne se désignent pas par des adresses IP fragiles mais par l'identité : une machine, un groupe, un rôle, une étiquette (tag) attribuée à l'enrôlement. Une règle écrite pour un groupe reste vraie quand une machine rejoint ou quitte ce groupe, sans réécriture. C'est ce qui permet à la politique de survivre au temps et aux changements de parc.
- 1Un flux se présenteUne source cherche à joindre une destination sur un service donné, à l'intérieur d'un réseau.
- 2Les règles sont évaluées dans l'ordreLe contrôleur parcourt l'ACL de haut en bas et retient la première règle dont la source, la destination et le service correspondent au flux.
- 3La décision s'applique — refus par défautSi aucune règle n'autorise le flux, il est refusé. On n'autorise que l'explicite : ce qui n'est pas permis est interdit.
Générations signées, vérifiables hors ligne
La politique n'est pas un état mutable que l'on modifie sur place. Chaque changement — ajout d'une règle, modification d'un groupe, publication d'un service — produit une nouvelle génération complète de la politique. Cette génération est signée par le contrôleur, puis distribuée aux membres du réseau. Les générations se succèdent, numérotées, ce qui donne un historique clair de la politique dans le temps.
Le point décisif est la vérification côté client. Un nœud n'applique une génération qu'après avoir vérifié sa signature contre la clé publique du contrôleur, qu'il connaît déjà. Cette vérification est cryptographique et locale : elle ne dépend d'aucune connexion en direct au contrôleur au moment de l'application. Un client peut donc valider l'authenticité et l'intégrité de la politique qu'il reçoit même hors ligne.
Authenticité
La signature atteste que la génération provient bien du contrôleur du réseau, et de personne d'autre.
Intégrité
La moindre altération de la politique en transit invalide la signature : une génération modifiée est rejetée, pas appliquée.
Vérifiable hors ligne
Le client vérifie contre la clé publique qu'il détient déjà. Aucun aller-retour en direct n'est requis pour établir la confiance dans la génération reçue.
Cette signature s'inscrit dans le modèle de confiance d'ensemble — clés publiques du contrôleur, identités des machines, chiffrement de bout en bout. L'articulation complète est décrite dans le modèle de sécurité.
Exemples de règles
Le tableau ci-dessous illustre la logique d'une ACL ordonnée. Chaque ligne est une règle ; elles sont lues de haut en bas, et la première qui correspond à un flux décide. La dernière ligne rappelle le comportement par défaut, qui refuse ce qu'aucune règle n'a autorisé.
| Source | Destination | Action |
|---|---|---|
| groupe:admins | réseau:prod (tous services) | Autoriser |
| groupe:ops | tag:cameras (RTSP) | Autoriser |
| groupe:dev | tag:bdd (5432) | Autoriser |
| tag:cameras | groupe:ops (services de gestion) | Autoriser |
| groupe:invites | tag:bdd | Refuser |
| (toute source) | (toute destination) | Refuser par défaut |
On lit dans cet exemple plusieurs traits du modèle : les entités sont désignées par groupe ou par étiquette, jamais par IP ; certaines règles restreignent le service autorisé (RTSP, port de base de données) ; l'ordre compte, puisqu'une règle de refus explicite peut précéder une règle plus large ; et faute d'autorisation, le flux tombe sur le refus par défaut.
Zero Trust : l'accès suit l'identité
Le modèle ne fait confiance ni au réseau physique, ni à l'emplacement, ni au simple fait d'avoir rejoint le mesh. L'accès découle de l'identité vérifiée de la machine et des règles qui la concernent. Être membre d'un réseau n'ouvre aucun droit en soi : sans règle qui l'autorise, un flux est refusé. C'est le principe Zero Trust appliqué au maillage.
- Aucune confiance implicite : la position sur le réseau ne confère pas de droit, seule la politique le fait.
- Accès par identité : sources et destinations sont des machines, des groupes et des étiquettes, pas des adresses.
- Moindre privilège : on autorise l'explicite et le nécessaire ; le reste tombe sur le refus par défaut.
- Politique vérifiable : chaque génération est signée et contrôlée par le client contre la clé publique du contrôleur.
Ce modèle est précisément ce qui permet de remplacer un VPN d'entreprise en étoile par un maillage segmenté par la politique. La déclinaison de ce cas — accès par identité, ACL ordonnées, audit — est développée dans Remplacer un VPN d'entreprise par un mesh Zero Trust.
In English
Access control in VIGIL-MESH is an ordered list of rules: for a given flow, the controller reads the ACL top to bottom and the first matching rule decides. Sources and destinations are identities — machines, groups, tags — not fragile IP addresses, and anything not explicitly allowed is denied.
Every change produces a new signed generation of the policy. A node applies a generation only after verifying its signature against the controller's public key, which it can do offline. That signed, verifiable policy — driven by identity rather than location — is the core of the Zero Trust model.