Développer un système terminal-only privé et sécurisé nommé IRIS. Ce système agira comme un client TUI/CLI et un serveur backend, offrant :
- Une messagerie sécurisée et versionnée (boîte mail et temps réel).
- Un système de permissions granulaires.
- Un mécanisme de "lockdown" à 3 niveaux (manuel et automatique).
- Des bots et une IA pour la collecte et l'enrichissement de données.
- Un module de supervision (IRIS).
- Un stockage d'entités type "Orwell-like" pour personnes, organisations, sites, etc.
- Des garanties fortes d'audit et de chiffrement.
L'interface principale sera une TUI (Text-based User Interface) riche et interactive, fonctionnant entièrement dans un terminal.
- Description : Connexion via token ou clé asymétrique (challenge-response). Les sessions seront à durée de vie courte et révocables. Une commande
whoamiaffichera les informations de l'utilisateur (user, group, level). - Critères d'acceptation :
- Le login fonctionne avec un token et un challenge de clé.
- Un token de session peut être révoqué par un administrateur.
whoamiretourne l'utilisateur, son groupe et son niveau de permission.
- Description : Modèle RBAC avec 8 niveaux principaux (0-7) et des sous-rôles (ex: 3.1 à 3.12) pour une granularité fine (lecture, écriture, gestion des bots, import, etc.). Chaque ressource aura un
required_min_levelet une ACL optionnelle. - Critères d'acceptation :
- L'accès est refusé si
user.level < required_min_level. - Les exceptions définies dans les ACL sont respectées.
- L'accès est refusé si
- Description : 3 niveaux d'urgence pour sécuriser le système.
- LV1 : Affiche une bannière d'alerte, force tout le trafic à passer par Tor.
- LV2 : Déconnecte toutes les sessions, restreint les interactions avec la base de données (sauf pour déverrouillage).
- LV3 : Exporte les données chiffrées, suivi d'une suppression contrôlée nécessitant une approbation multiple.
- Critères d'acceptation :
- L'activation de chaque niveau est une action signée et auditée.
- LV2 invalide toutes les sessions actives.
- LV3 ne s'enclenche qu'après approbation multiple et génère un export chiffré avant toute suppression.
- Description : Des règles configurables (ex: X échecs de login, connexion sans token, lectures massives) déclenchent automatiquement un niveau de lockdown.
- Critères d'acceptation :
- Une règle (ex: 5 échecs en 1 min) déclenche LV1.
- Une autre règle (ex: lectures massives) déclenche LV2.
- Description : Messages chiffrés de bout en bout (E2E). Chaque message a un
msg_idet est versionné. La modification d'un message crée une nouvelle version qui référence l'ancienne. - Critères d'acceptation :
- Un message envoyé est chiffré, et sa signature peut être vérifiée par le destinataire.
- La mise à jour d'un message crée une nouvelle version liée à la précédente.
- Description : Canaux de discussion éphémères (par défaut) ou persistants (optionnel). Utilise le PFS (Perfect Forward Secrecy). Les conversations peuvent être archivées dans la mailbox.
- Critères d'acceptation :
- Une session de chat temps réel peut être établie.
- L'option
persist=truesauvegarde la conversation dans la mailbox.
- Description : Chiffrement E2E pour tout contenu utilisateur. Signatures pour la non-répudiation. Chaînage des données avec
prev_hashpour garantir l'intégrité. Les clés privées restent côté client. - Critères d'acceptation :
- Le serveur ne peut pas déchiffrer les données des utilisateurs.
- Le client vérifie les signatures et l'intégrité de la chaîne de données.
- Description : Le client peut forcer l'utilisation de Tor. L'interface affiche l'état de Tor et l'IP fournie par le réseau. L'IP réelle est masquée par défaut. Le serveur peut exposer un service Onion.
- Critères d'acceptation :
- Le client peut router son trafic via un proxy SOCKS5 local.
- L'interface utilisateur affiche clairement si Tor est actif.
- Description : Interface terminal modulaire et responsive qui s'adapte à la taille du terminal. Zones définies (bannière, statut, zones multi-fonctions). Gestion des clics de souris.
- Critères d'acceptation :
- L'affichage s'adapte aux terminaux de différentes tailles (small, medium, large).
- Un clic sur un bouton déclenche l'action correspondante.
- Description : Plusieurs thèmes (Neon, Glass, Retro, etc.). Les couleurs s'adaptent au niveau de lockdown. Affichage de sparklines pour CPU/RAM.
- Critères d'acceptation :
- Le changement de thème modifie la palette de couleurs.
- La bannière de lockdown change de couleur selon le niveau d'alerte.
- Description : Stockage d'entités (personne, organisation, site, etc.) avec provenance, liens, et tags. Possibilité d'attacher des notes et de lier des entités entre elles.
- Critères d'acceptation :
- On peut créer une fiche entité, y lier des médias, et définir son niveau d'accès.
- Description : Les fichiers (images, documents) sont stockés chiffrés. L'accès se fait via des liens signés à courte durée de vie, générés en fonction des permissions.
- Critères d'acceptation :
- Un fichier uploadé est chiffré sur le serveur.
- Un lien généré expire correctement.
- Description : Des bots peuvent être lancés pour crawler des domaines approuvés, extraire du contenu (texte, médias), et créer des brouillons d'entités pour le pipeline d'enrichissement. La provenance et un score de confiance sont stockés.
- Critères d'acceptation :
- Un job de crawl simple extrait les titres, liens et images d'une page et crée des entités.
- Description : Un pipeline IA analyse le contenu collecté, effectue de la reconnaissance d'entités (NER), relie les informations, et enrichit la base de données. Les entités créées sont marquées
bot:created. - Critères d'acceptation :
- L'analyse d'une page (ex: Wikipedia) produit des entités structurées avec nom, rôle, et source.
- Description : Agents déployables pour superviser des systèmes distants (logs, shell, processus). Le consentement de l'utilisateur est requis par défaut. Un mode d'urgence avec approbation multiple est disponible.
- Critères d'acceptation :
- Une requête de remote shell nécessite un consentement ou une approbation multiple.
- La session est enregistrée et peut être auditée.
- Description : Moteur de recherche sur les entités, métadonnées des messages, et tags des médias, avec des facettes (type, date, provenance).
- Critères d'acceptation :
- Une recherche par nom retourne les entités pertinentes avec un score de pertinence.
- Description : Toutes les actions sensibles (lockdown, actions IRIS, purge) sont enregistrées dans un journal
append-onlyet signées. - Critères d'acceptation :
- L'activation du lockdown crée une entrée d'audit signée.
- Description : Le niveau de lockdown LV3 génère un export chiffré complet. La purge est une procédure contrôlée et irréversible.
- Critères d'acceptation :
- L'export est téléchargeable. La purge ne s'exécute qu'après toutes les validations.
- Description : Endpoints pour toutes les fonctionnalités principales (login, messagerie, bots, etc.). Chaque endpoint vérifie les permissions et l'état de lockdown.
- Critères d'acceptation :
- Les endpoints fonctionnent comme prévu sans jamais exposer de données chiffrées en clair.
- Description : Règles pour détecter et bloquer les comportements anormaux (rafales d'échecs, utilisation abusive de l'API).
- Critères d'acceptation :
- Une simulation d'attaque déclenche la règle et la réponse attendue (ex: auto-lock).
- Description : Palette de commandes (Ctrl+P), aperçu rapide (Espace), réponse rapide (r), etc.
- Critères d'acceptation :
- Les raccourcis clavier sont fonctionnels.
- Description : Processus pour le droit à l'oubli (DSAR), logs d'accès, approbation multiple pour les actions invasives.
- Critères d'acceptation :
- Une documentation de conformité est maintenue. Les actions IRIS suivent un workflow d'approbation.
- Login via token & clé (challenge)
- Envoi/réception message E2E + signature vérifiable
- Affichage & bascule du statut Tor
- Activation manuelle des flux LV1, LV2, LV3
- Job de bot minimal qui crée une entité depuis une URL
- Requête IRIS nécessite un consentement et est enregistrée
- Upload d'image + expiration du lien signé
- Fondations : Authentification, sessions,
whoami, et une boîte de réception minimale. - Interface : Squelette de la TUI responsive avec gestion des clics.
- Crypto : Chiffrement E2E des messages et stockage des données chiffrées.
- Sécurité : Lockdown manuel, une règle d'auto-lock (échec auth), et logging des audits.
- Contenu : Un job de bot simple pour créer une entité avec sa provenance.
- Légalité : Ne pas inclure de fonctionnalités invasives sans un processus légal clair.
- Provenance : Toujours stocker la provenance pour chaque donnée importée.
- Anonymat : Masquer l'IP réelle par défaut ; l'affichage de l'IP Tor est opt-in.
- Irreversibilité : Toute opération destructive nécessite une approbation multiple et un audit signé.