Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
aegis-latent-core — Gouvernance IA et passerelle de preuves pour applications LLM multi-fournisseurs. FastAPI + cœur Rust optionnel pour politiques, WAF, trafic sortant, limites de débit, sessions, preuves durables signées et chemins d’erreur en échec fermé. Auto-hébergé ; aucune certification ni revendication de SLO. | Kitploit
Outils/GitHubGitHub/juanlunaia/aegis-latent-core
CryptographieSécurité CloudRenseignement sur les MenacesSécurité des APISécurité de l'IAAnalyse de Journaux
GitHubjuanlunaia/aegis-latent-core

aegis-latent-core

Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

À propos

Gouvernance IA et passerelle de preuves pour applications LLM multi-fournisseurs. FastAPI + cœur Rust optionnel pour politiques, WAF, trafic sortant, limites de débit, sessions, preuves durables signées et chemins d’erreur en échec fermé. Auto-hébergé ; aucune certification ni revendication de SLO.

Partager
Site web
144il y a 2 joursPas encore vérifié

Aegis Latent Core

Passerelle de gouvernance et de preuve IA pour applications LLM multi-fournisseurs.

Aegis Latent Core est une passerelle compatible OpenAI qui applique des contrôles de politique de requête, WAF, de sortie, de limite de débit et de session avant de transférer le trafic vers un fournisseur de modèle en amont. Pour le trafic gouverné, elle construit un enregistrement de preuve canonique, signe l'enregistrement, le valide dans un journal d'écriture anticipée durable, et expose l'état de la preuve à l'appelant. L'enrichissement facultatif des réponses s'exécute derrière une file d'attente bornée et ne remplace jamais la validation de preuve faisant autorité.

Périmètre du produit : Aegis est une passerelle de gouvernance et de preuve IA. Ce n'est pas un LLM, un WAF universel, une certification de conformité, une décision d'admissibilité légale, un SLO de production, ni un remplacement des contrôles réseau, d'identité, de confidentialité, de conservation ou de réponse aux incidents.

GitHub Release PyPI Package npm Package License

CI Status Security Status Tests Passed Code Coverage

Python Versions TypeScript Rust Native Engine Formal Verification Supply Chain Security

Dernière vérification : 2026-08-25 UTC Référence de version : v3.1.0 publiée Référence de source fusionnée : 2050a310ec295afc61d033ff842c9a535a4f3105 (PR #112 ; quatorze ancres de version synchronisées à 4.0.0)

Références et périmètre des revendications

La référence de version publique immuable est v3.1.0. Le commit 2050a310ec295afc61d033ff842c9a535a4f3105 est la référence source fusionnée v4 ; son contrat de publication source indique que les quatorze ancres de version sont synchronisées à 4.0.0. Le streaming SSE avec preuve pending-terminal bornée, l'API native Anthropic POST /v1/messages, les SDK Python et TypeScript, les preuves MMR portables, le tableau de bord forensique et l'export ZIP, le segment de flux auxiliaire RustWal, et le benchmark SSE sont des capacités de la source fusionnée ; elles ne sont pas attribuées au tag v3.1.0.

La source fusionnée reste non publiée et non diffusée. Lors de l'audit du 2026-08-25, il n'existait aucun tag v4.0.0, aucune version GitHub, aucune publication PyPI ni npm. Les preuves de version et les preuves d'implémentation source doivent être évaluées séparément. Le vérificateur de préparation à la publication évalue uniquement les contrats source : il ne prouve pas un tag, une approbation d'environnement GitHub, un chemin de confiance du signataire, une politique de registre, une attestation d'artefact, un runtime multi-architecture ou une acceptation externe.

Qui doit évaluer Aegis

Aegis est destiné aux équipes de plateforme, de sécurité applicative et d'ingénierie IA qui exploitent plus d'un fournisseur de modèles ou qui exigent des preuves indépendantes du fournisseur pour le trafic IA gouverné. L'orientation commerciale initiale cible les équipes de plateforme B2B SaaS, fintech et entreprises réglementées qui ont besoin d'un déploiement privé et de preuves vérifiables, sans demander à ce dépôt de devenir un produit universel d'autorisation ou de certification.

Le comité d'achat concerné comprend généralement le CISO ou le responsable AppSec, l'ingénierie de plateforme, l'ingénierie IA/ML, la conformité ou le juridique, les achats et un sponsor exécutif. La séquence de preuve recommandée est évaluation locale → relecture des preuves → pilote contrôlé → revue de sécurité → dossier d'achat → déploiement en production.

Le problème qu'Aegis résout

Les journaux d'accès standard peuvent montrer qu'un appel API a eu lieu. Ils n'établissent pas, à eux seuls, les hachages exacts de la requête et de la réponse gouvernées, le chemin de politique, la limite de validation de preuve, le schéma de signature, le prédécesseur de chaîne, ni si la requête a été rejetée avant ou après la limite de preuve. Aegis rend ces transitions explicites et vérifiables sous les contrôles de déploiement déclarés.

Cycle de vie de la requête et de la preuve```mermaid

sequenceDiagram participant C as Client participant A as Aegis Gateway participant W as Policy/WAF/Egress participant U as Upstream Model participant L as Signed WAL participant Q as Bounded Enrichment

root@kitploit:~
C->>A: Authenticated OpenAI-compatible or Anthropic request
A->>W: Size, canonicalization, WAF, session, rate-limit
W-->>C: Fail-closed response + durable error evidence when rejected
W->>U: Forward only after admission
U-->>A: Complete response or bounded SSE events
A->>L: Non-stream: hash, sign, append, flush, fsync
L-->>A: Non-stream durable evidence status
A->>Q: Optional bounded response analysis
A-->>C: Non-stream response + portable MMR proof headers
A-->>C: Stream events through bounded queue
A->>L: Stream terminal summary, sign, append, flush, fsync
L-->>A: Terminal commit complete
A-->>C: Protocol terminal marker
root@kitploit:~
Le cycle de vie strict est le suivant :

1. Authentifier l'appelant et attribuer un identifiant de requête.
2. Appliquer les limites de taille de requête et canonicaliser la représentation de la requête.
3. Appliquer les contrôles WAF, de comportement de session, de sortie et de limitation de débit.
4. Rejeter en cas d'échec d'un contrôle obligatoire au lieu d'affaiblir silencieusement le chemin de sécurité.
5. Transférer au fournisseur en amont configuré.
6. Pour les appels non diffusés en continu, capturer la réponse, calculer les hachages canoniques, signer la preuve, l'ajouter au WAL, vider le tampon et exécuter `fsync` avant de la renvoyer.
7. Pour les appels SSE, relayer les événements logiques sanitizés via une file d'attente bornée avec comptabilité d'octets. Hacher de manière incrémentale les octets exacts émis ; à la terminaison, valider un résumé terminal signé avant d'émettre le marqueur terminal du protocole. L'en-tête de diffusion initial est donc `X-Aegis-Evidence-Status: pending-terminal`, et non `durable`.
8. Exécuter l'enrichissement facultatif de la réponse via un chemin de travail borné après l'existence de l'enregistrement faisant autorité.

## Contrat principal

| Contrôle | Comportement implémenté | Preuve et limite |
|---|---|---|
| Durabilité des preuves | Pour les appels gouvernés non diffusés en continu, le proxy principal valide les preuves de requête/réponse avant de renvoyer et émet `X-Aegis-Evidence-Status: durable`. Le SSE diffusé commence par `pending-terminal` ; un résumé terminal signé est validé avant le marqueur terminal du protocole, et la preuve est récupérée après la terminaison. | `tests/test_p0_release_gates.py`, `tests/test_proxy_streaming.py`, tests de chemins de défaillance du proxy et tests d'intégrité du WAL. Le système de fichiers cible et le fournisseur de stockage nécessitent encore une validation de déploiement. |
| Erreurs terminales durables | Les réponses non-2xx en amont, les chemins de circuit ouvert et les pannes réseau utilisent le chemin de preuve d'erreur durable lorsque la limite de preuve est disponible. | `tests/test_enterprise_durable_evidence.py` et preuves de la version v3.1.0. Une défaillance de stockage après admission est un incident opérationnel à échec fermé, et non une réponse réussie. |
| Intégrité de la chaîne | Les nœuds d'audit lient le prédécesseur, le hachage de requête, le hachage de réponse, la racine de Merkle, la signature et les métadonnées de schéma. | `aegis/core/crypto_audit.py` et `verify_integrity()`. La détection de falsification n'est pas équivalente à un stockage externe immuable. |
| Signature forte | Les registres stricts rejettent le repli éphémère Ed25519. HMAC-SHA256, PKCS#11 configuré ou la signature native configurée doivent satisfaire la politique sélectionnée ; l'ancienne interface HSM échoue désormais en mode fermé au lieu de dériver une clé logicielle. | Tests de signataire et portes de démarrage strictes. Les tests PKCS#11 simulés ne sont que des preuves d'adaptateur, HMAC est symétrique, et aucune interopérabilité HSM, non-exportabilité de clé, validation FIPS ou non-répudiation tierce n'est établie. |
| Rotation des clés | Le signataire d'entreprise prend en charge un trousseau de clés HMAC versionné et atomique avec une clé active, des clés de vérification historiques, une expiration explicite et des métadonnées `key_id` non secrètes. | `aegis_server/crypto/keyring.py`, `tests/test_keyring_rotation.py`. Une preuve de déploiement à trois réplicas reste requise pour une revendication de production. |
| Limitation de débit | La limitation distribuée basée sur Redis échoue en mode fermé lorsque le backend est indisponible ; la limitation en mémoire de développement n'est pas un substitut de production. | Tests de limitation de débit et configuration de déploiement. Le comportement Redis/TLS/HA dépend du déploiement. |
| Identité d'entreprise et liaison de locataire | Le candidat non publié dérive des principaux immuables à partir de mappages de clés API configurés, de revendications OIDC strictes ou de certificats mTLS explicitement épinglés. Les en-têtes de locataire/session ne sélectionnent pas le locataire de preuve ou la clé de quota. | `aegis/auth/`, `aegis/proxy/dependencies.py` et tests d'intégration d'authentification. L'IdP, le terminateur TLS, le cycle de vie des certificats et l'acceptation Redis restent dépendants du déploiement ; la source mTLS actuelle est en mode d'épingle de feuille, et non une validation PKI universelle. |
| Archivage des segments finalisés | Les segments WAL JSONL rotatés reçoivent des manifestes versionnés et peuvent être téléchargés via l'adaptateur facultatif S3 Object Lock avec vérification SHA-256, version, mode de verrouillage et rétention. L'acceptation facultative RFC 3161 nécessite une vérification OpenSSL contre un fichier CA explicite. | `aegis/storage/`, `aegis/anchoring/` et tests ciblés. Cela ne constitue pas un WORM réglementaire, une garantie d'admissibilité légale ou de temps externe sans acceptation cible. |
| Télémétrie respectueuse de la vie privée | Les événements de sécurité à schéma fermé omettent le texte des invites/réponses/jetons, les embeddings, les identifiants bruts de locataire/session, les noms de signataires et les chaînes d'exception ; un spool SQLite borné facultatif exporte vers les encodages SIEM pris en charge. | `aegis/telemetry/` et tests sentinelles de confidentialité. La livraison en aval, la rétention, le contrôle d'accès et les SLO opérationnels sont externes. |
| Rapport de capacités | `aegis.crypto` expose un inventaire lisible par machine qui distingue les états implémenté, runtime facultatif, stub et validation externe requise. | `aegis/crypto/capabilities.py` et tests ciblés. L'API ZK actuelle est un stub de test non réel, les preuves MMR portables croissent en O(log n), et aucune validation FIPS n'est revendiquée. |
| Limite d'attestation TEE | Les nœuds de périphérique TEE sont signalés comme découverte uniquement. Les rapports hérités rédigés par l'appelant sont rejetés ; un vérificateur injecté peut fournir des revendications normalisées authentifiées pour l'évaluation de la politique de mesure exacte, de signataire, de nonce, de fraîcheur, de débogage, de TCB et de données de rapport. | `aegis/core/tee_manager.py` et tests de modules matériels. Le dépôt n'implémente pas de chargeur d'enclave, d'analyse de citations de fournisseur, de validation de certificats/collatéraux, de confidentialité de racine hôte ou d'acceptation d'attestation cible. |
| Limite de confidentialité différentielle | Une primitive interne de comptage de Laplace utilise une sensibilité de un et un CSPRNG système pour une seule publication sous adjacence d'ajout/suppression d'un enregistrement. | `aegis/core/dp_analytics.py` et tests déterministes. Aucun point de terminaison HTTP DP n'est publié ; les publications répétées nécessitent un comptable durable, une identité stable de jeu de données/requête, une mémorisation et des limites de contribution examinées qui ne sont pas implémentées ici. |
| Limite de capacité de fuzzing | Le fuzzing n'est disponible que lorsque `cargo`, `cargo-fuzz`, un espace de travail privé, un manifeste analysable borné et tous les fichiers cibles réguliers confinés exacts existent ; l'état d'exécution distingue propre, artefact de crash, erreur d'outil, délai d'attente et indisponible. | `aegis/core/fuzzing_harness.py` et tests ciblés. L'arborescence actuelle n'a pas d'espace de travail cargo-fuzz ni de harnais Kani, la couverture mesurée reste indisponible et les tests bornés ne sont pas une preuve exhaustive. |
| Contexte IA consultatif | `AGENTS.md`, `llms.txt` et `.aegis_ai_context/` fournissent la navigation du dépôt et les limites de revendication pour les assistants de codage. | Ces fichiers sont des données consultatives : ils ne peuvent pas remplacer l'autorisation, établir un comportement d'exécution ou transformer le code source fusionné en une version. |
| Limites de requête | Les corps surdimensionnés sont rejetés avant le traitement normal de l'application. | Tests de version P0/P1. Les limites doivent être dimensionnées pour le fournisseur déployé et la politique de diffusion. |
| WAF | La normalisation NFKC, le retrait des caractères de largeur nulle, les blocs de motifs critiques, la garde de profondeur structurelle et l'analyse locale pondérée s'exécutent à la limite de l'application. | `tests/data/waf_corpus_v1.json` et `tools/security/run_waf_corpus.py`. L'analyse HTTP/2 d'entrée est en dehors de la limite de l'application. |
| Sortie | Les listes d'autorisation canoniques rejettent les schémas, les userinfo, les ports malformés, les formes non prises en charge et les points de terminaison non approuvés. | `aegis/proxy/egress_guard.py` et tests. Cela ne remplace pas le pare-feu, l'espace de noms, la NetworkPolicy ou les contrôles de sortie cloud. |
| Contrôles du noyau | Le démarrage strict peut exiger les capacités Seccomp et LSM/AppArmor/SELinux et rejette l'application manquante en dehors du mode sandbox explicite. | `aegis/core/seccomp_guard.py`, `aegis/core/lsm_guard.py`, tests de déploiement. Le noyau cible nécessite encore des tests d'acceptation. |
| Enrichissement de réponse | L'analyse est bornée, observable et sérialisée par session lorsque requis. Elle est facultative et ne peut pas affaiblir le contrat de preuve durable. | Tests d'analyseurs et de files d'attente. Le comportement de la file d'attente sous saturation réelle d'E/S est décrit dans le runbook de backpressure. |
| Preuve d'inclusion portable | Chaque nouvel enregistrement de registre stocke une preuve autonome `aegis-mmr-inclusion-v1`, un digest de feuille, des pics ordonnés et une racine. Les réponses non diffusées renvoient ces éléments sous forme d'en-têtes `X-Aegis-MMR-*` ; les appels diffusés exposent un lien de preuve post-terminal authentifié. | Vecteurs dorés multilingues et tests de relecture/falsification du WAL. Une preuve valide établit l'inclusion dans la racine MMR déclarée ; elle n'établit pas en soi l'horodatage externe, la rétention ou l'admissibilité légale. |

## Démarrage rapide pour l'évaluation locale

Le chemin local est destiné au développement, aux tests et à la relecture des preuves. Il ne s'agit pas d'un profil de déploiement de production.```bash
git clone https://github.com/JuanLunaIA/aegis-latent-core.git
cd aegis-latent-core
python3 -m venv .venv
. .venv/bin/activate
python -m pip install --require-hashes -r requirements.lock
python -m pip install --no-deps -e .
python -m compileall -q aegis aegis_server
pytest -q

Pour une passerelle de checkout de source minimale, utilisez le point d'entrée console déclaré aegis avec un amont local ou simulé :```bash export AEGIS_SECURITY_ENFORCEMENT_MODE=development export AEGIS_DEBUG_MODE=true export AEGIS_AUTH_DISABLED=true export AEGIS_BACKEND_URL='http://127.0.0.1:9001/v1' export AEGIS_WAL_PATH='/tmp/aegis-evaluation.wal.jsonl' aegis

root@kitploit:~
`development` est le seul mode non strict accepté dans le modèle de configuration actuel ; l'ancienne valeur `permissive` et la commande `uvicorn aegis.main:app` sont obsolètes. Ne placez jamais de clés de fournisseur, de jetons porteurs, de secrets de signature, d'enregistrements WAL ou de charges utiles clientes dans le contrôle de source.

## SDK à source fusionnée

La distribution Python à source fusionnée dans [`sdk/python`](https://github.com/juanlunaia/aegis-latent-core/blob/HEAD/sdk/python) est une intégration prête à l'emploi qui sous-classe les clients officiels OpenAI et Anthropic. Les types de modèles de requête/réponse existants et les API de ressources synchrones/asynchrones sont préservés tandis que les en-têtes de locataire, de session et d'authentification porteur Aegis sont injectés à la construction. L'entrée native `/v1/messages` d'Anthropic nécessite `AEGIS_PROVIDER=anthropic` ; elle préserve la forme de réponse Anthropic Messages au lieu de la traduire en objets OpenAI.

Le package TypeScript à source fusionnée compatible edge dans [`sdk/typescript`](https://github.com/juanlunaia/aegis-latent-core/blob/HEAD/sdk/typescript) vérifie les preuves `aegis-mmr-inclusion-v1` avec Web Crypto et fournit des wrappers natifs au fournisseur et des options de constructeur plutôt que de redéclarer les charges utiles du fournisseur. Les packages officiels OpenAI et Anthropic sont des dépendances de pairs, donc leurs ressources natives, paramètres de requête, modèles de réponse, itérateurs de streaming, nouvelles tentatives et types d'erreur restent faisant autorité. Les deux SDK consomment les mêmes vecteurs de preuve figés sous `sdk/shared/`.

Le candidat SDK Python non publié inclut également des adaptateurs de rappel LangChain et LlamaIndex minimisant la confidentialité. Les flux de publication sont désactivés à moins que les prérequis externes d'éditeur de confiance, d'environnement, de tag signé et de variable de dépôt ne soient configurés. Voir [`docs/DEVELOPER_INTEGRATIONS_GUIDE.md`](https://github.com/juanlunaia/aegis-latent-core/blob/HEAD/docs/DEVELOPER_INTEGRATIONS_GUIDE.md).```python
from aegis_sdk.openai import OpenAI

client = OpenAI(
    aegis_api_key="gateway-token",
    gateway_url="https://aegis.internal",
    tenant_id="tenant-42",
)
response = client.chat.completions.create(
    model="gpt-4.1-mini",
    messages=[{"role": "user", "content": "hello"}],
)

La vérification des preuves est facultative, car les appelants doivent obtenir la racine MMR de confiance par un canal approuvé de manière indépendante. Activer la vérification tout en faisant confiance à la racine provenant de la même réponse non fiable détecterait la corruption, mais ne fournirait pas d'ancre de confiance indépendante.

Tableau de bord d'audit forensique à source fusionnée

Le dashboard à source fusionnée est une interface en lecture seule basée sur Next.js 16 et React 19. Elle n'affiche que des données de passerelle authentifiées : état de santé général, registre de fenêtre conservée filtrable, projections de nœuds canoniques JCS et DAG-CBOR avec identifiants CIDv1, vérificateur MMR interactif avec un bac à sable Web Crypto local, métriques dérivées de Prometheus en direct, et un flux de travail d'exportation forensique limité. Elle ne contient aucune donnée d'exemple de secours.```bash cd sdk/typescript && npm ci && npm run build cd ../../dashboard && npm ci export AEGIS_PRIMARY_BASE_URL='https://aegis.internal' export AEGIS_DASHBOARD_API_KEY='retrieve-from-your-secret-manager' npm run dev

root@kitploit:~
`AEGIS_DASHBOARD_API_KEY` est réservé au serveur et n'est jamais sérialisé dans les bundles du navigateur. Le point de terminaison d'exportation exige le périmètre `audit:export` lorsque des périmètres par clé sont configurés. Chaque ZIP borné contient un `manifest.json` JCS RFC 8785, un `ledger_slice.cbor` DAG-CBOR canonique identifié par CIDv1, un `merkle_proof.json`, un `audit_certificate.pdf` et un `VERIFY.sh`. Le certificat est un rapport d'intégrité technique, et non une certification ou une conclusion d'admissibilité juridique.

## Chemin de déploiement strict

Le mode strict est la posture de production prévue. Il exige une authentification, des preuves durables, une signature forte, des corps de requête bornés, un backend de limitation de débit distribué, un stockage durable et les contrôles du noyau configurés. Utilisez un gestionnaire de secrets et montez le WAL sur un chemin durable et lisible par le propriétaire.```bash
export AEGIS_SECURITY_ENFORCEMENT_MODE=strict
export AEGIS_API_KEYS='replace-with-a-secret-manager-reference'
export AEGIS_SIGNING_KEY='at-least-32-bytes-of-secret-material'
export AEGIS_RATE_LIMIT_BACKEND=redis
export AEGIS_REDIS_URL='rediss://redis.internal:6380/0'
export AEGIS_REQUIRE_DISTRIBUTED_LIMITER=true
export AEGIS_REQUIRE_DURABLE_EVIDENCE=true
export AEGIS_REQUIRE_LSM=true
export AEGIS_REQUIRE_SECCOMP=true
export AEGIS_MAX_REQUEST_BODY_BYTES=1048576
export AEGIS_BACKEND_URL='https://llm.internal.example/v1'
export AEGIS_WAL_PATH='/var/lib/aegis/aegis.wal.jsonl'

Pour la rotation HMAC sans redémarrage, configurez un chemin de trousseau de clés lisible par le propriétaire au lieu de vous fier à un secret unique au démarrage du processus :```bash export AEGIS_SIGNER_PROVIDER=hmac export AEGIS_HMAC_KEYRING_PATH='/var/lib/aegis/secrets/hmac-keyring.json' export AEGIS_HMAC_KEYRING_RELOAD_INTERVAL_S=1

root@kitploit:~
Le protocole du trousseau de clés, la fenêtre de chevauchement, l'expiration, la révocation et les critères d'acceptation à trois répliques sont dans [`docs/operations/KEY_ROTATION_RUNBOOK.md`](https://github.com/juanlunaia/aegis-latent-core/blob/HEAD/docs/operations/KEY_ROTATION_RUNBOOK.md). Un chemin de trousseau de clés n'est pas un gestionnaire de secrets ; le déploiement doit néanmoins établir la garde, le contrôle d'accès, la livraison atomique, la sauvegarde, la destruction et l'auditabilité.

## Modèle de preuve et de signature

Le registre local est un WAL JSONL en ajout seul avec une chaîne bornée en mémoire et des segments archivés facultatifs. Chaque enregistrement contient les hachages de requête et de réponse, la liaison de chaîne, une racine de Merkle, les métadonnées de signature et l'identifiant de requête. Le WAL est vidé et synchronisé avant que le chemin de réponse durable ne soit terminé.

Les choix de signature pris en charge dépendent du déploiement :

| Signataire | Limite appropriée | Limitation importante |
|---|---|---|
| HMAC-SHA256 | Déploiements auto-hébergés à nœud unique ou à secret partagé | Clé symétrique ; chaque vérificateur détenant la clé peut également signer. HMAC est classique, non résistant aux ordinateurs quantiques. |
| Signataire adossé à un HSM/Vault | Déploiements d'entreprise nécessitant une isolation des clés ou une garde à distance | La disponibilité, la politique, TLS/mTLS, la rotation et la vérification hors ligne nécessitent les propres preuves du déploiement cible. |
| Signataire natif ML-DSA-65 | Environnements qui compilent et chargent le véritable backend Rust | L'artefact candidat conservé de 1 M d'échantillons n'a trouvé aucune différence de temporisation significative pour `sign` (`p=0.8521504207157158`) mais n'a pas atteint le seuil pour `verify` (`p=0.0`) ; aucune revendication de temps constant n'est approuvée. Voir [`docs/security/PQC_CONSTANT_TIME.md`](https://github.com/juanlunaia/aegis-latent-core/blob/HEAD/docs/security/PQC_CONSTANT_TIME.md). |

Aegis ne fabrique pas de signatures ML-DSA lorsque le backend natif est indisponible. Il signale le backend comme indisponible et exige une politique de repli réelle explicite. Un résultat de temporisation avec `p > 0.05` signifierait uniquement qu'aucune fuite statistiquement significative n'a été détectée dans le cadre de l'expérience nommée ; cela ne prouverait pas une exécution à temps constant.

## Sémantique de contre-pression et de défaillance

La preuve durable est un invariant du chemin critique. En cas de blocage du stockage ou de `fsync`, le chemin de requête peut bloquer ou rejeter selon les limites configurées ; il ne doit pas abandonner silencieusement des preuves faisant autorité. La file d'enrichissement peut rejeter un travail facultatif, mais une politique de file ne peut pas transformer une réponse acceptée et régie en réponse non enregistrée.

Le harnais d'injection de fautes déterministe est :```bash
PYTHONPATH=. .venv/bin/python tools/benchmarks/run_backpressure_stall.py \
  --duration-s 0.25 --offered-rps 10000 --fsync-delay-ms 2 --max-workers 64 \
  --output evidence/backpressure_stall_report.json

L'exécution conservée de la v3.1.0 a offert 10 000 requêtes à 10 000 RPS avec un délai fsync injecté de 2 ms. Elle a enregistré 10 000 commits durables, zéro échec, zéro ID manquant, zéro ID en double et une intégrité de chaîne valide. La latence de commit p99 observée était de 1 189,89 ms. Il s'agit d'un résultat d'injection de pannes borné avec un file d'attente substantiel. Ce n'est pas une capacité de production ni une revendication de SLO. Voir docs/operations/BACKPRESSURE_RUNBOOK.md.

Limite WAF et d'entrée

Le corpus local couvre actuellement 15 cas malveillants exécutables et 8 cas bénins. L'exécution candidate de la v3.1.0 a enregistré zéro contournement observé et zéro faux positif bénin pour ce corpus épinglé. Comme le corpus est petit, son intervalle de confiance est large ; le résultat est un signal de régression, pas une couverture de détection universelle.

Le harnais applicatif n'exécute pas la fragmentation HTTP/2, l'ordre des pseudo-en-têtes, les différentiels de limites de continuation, les différences d'analyseur de corps compressé ni la normalisation spécifique à l'entrée. nuclei-templates/waf-bypass n'est pas traité comme exécuté à moins qu'une révision épinglée ne s'exécute contre une cible locale jetable autorisée et ne produise un artefact conservé. Voir docs/security/WAF_TESTING.md.

Observabilité et opérations

Les réponses gouvernées exposent X-Aegis-Request-ID, X-Aegis-Session-ID, X-Aegis-Evidence-Status, X-Aegis-Analysis-Status et, après un commit durable non diffusé en continu, les en-têtes de preuve X-Aegis-MMR-Format, X-Aegis-MMR-Leaf, X-Aegis-MMR-Proof et X-Aegis-MMR-Root. Les réponses diffusées en continu exposent un Link vers /v1/audit/proofs/{request_id} et restent pending-terminal jusqu'à ce que la recherche terminale authentifiée réussisse. Les enregistrements faisant autorité se trouvent dans le magasin de preuves.

Les opérateurs doivent alerter sur les échecs de commit de preuves, les échecs de synchronisation WAL, les échecs du backend de limitation de débit, la saturation de la file d'attente, l'ouverture du circuit, les pics d'erreurs en amont, les échecs de rechargement du trousseau, le chevauchement de clés manquant, l'indisponibilité du signataire, le rejet de démarrage Seccomp/LSM et l'échec de vérification d'intégrité. Préservez les segments WAL et les rapports en lecture seule pendant le traitement d'incident. Revenez à la version signée/empreinte d'image précédente lorsqu'un critère d'arrêt est atteint.

Dans la base de référence de source fusionnée, lorsque l'extension PyO3 est disponible, chaque enregistrement terminal diffusé en continu est également ajouté une fois à un segment RustWal auxiliaire tramé CRC32 et mappé en mémoire à <AEGIS_WAL_PATH>.stream.rwal dans le même appel d'exécuteur qui effectue le commit de registre JSONL faisant autorité. Le segment natif est borné à 256 Mio. Si son ajout échoue après le commit JSONL, Aegis incrémente aegis_native_stream_wal_errors_total, journalise la dégradation, désactive le segment auxiliaire pour le processus et préserve le marqueur terminal visible par le client car la chaîne JSONL reste l'autorité de relecture. La télémétrie de diffusion en continu expose également des histogrammes de durée, des compteurs de jetons et des compteurs de rédaction par catégorie bornée sans étiquettes de charge utile.

Topologies de déploiement

L'ordre d'audit global inter-réplicas et la haute disponibilité multi-régions ne sont pas revendiqués par la version actuelle. Utilisez le guide de mise à l'échelle et la feuille de route comme limite faisant autorité.

Interprétation des benchmarks

Le dépôt sépare les microbenchmarks de distribution, la surcharge de proxy visible par le client, la latence incluant l'amont, le débit de durabilité WAL, les métriques du corpus WAF et le timing crypto natif. Chaque mesure doit identifier la charge de travail, le matériel, l'échauffement, le nombre d'échantillons, la méthode de percentile, l'artefact brut et la limite.

Le résultat de 2,70 µs précédemment publié est un microbenchmark de distribution en arrière-plan, pas une latence de passerelle de bout en bout. Le débit par worker est contraint par l'interpréteur, la planification de la boucle d'événements, le comportement en amont, le stockage et la topologie de déploiement. Aucune revendication README de « latence zéro », « surcharge zéro », « capacité 10k RPS » ou « 1B RPM » n'est autorisée sans un nouvel artefact satisfaisant la matrice de revendications.

Le harnais de diffusion en continu en processus Phase 2 de la source fusionnée est benchmarks/bench_streaming_sse.py. Sa mesure conservée de l'arbre de travail est evidence/commercial_phase2_streaming_benchmark.json. Il exécute 1 000 événements SSE déterministes par cycle et rapporte la latence du premier octet, le débit de transformation, les niveaux hauts de la file d'attente et la mémoire maximale tracemalloc. Il exclut la latence réseau et WAL durable et n'est donc pas un résultat de capacité de bout en bout.

Voir docs/benchmarks/README.md, docs/BENCHMARKS.md et docs/performance/SCALING_GUIDE.md.

Posture de sécurité et de chaîne d'approvisionnement

Le processus de publication produit un lockfile, un SBOM, des résultats de dépendances/avis, une enveloppe de provenance, un enregistrement de porte de publication, un manifeste de dépôt, des hachages d'actifs et des instructions de restauration. La politique de sécurité se trouve dans SECURITY.md ; les contrôles de revendications publiques se trouvent dans docs/CLAIMS_MATRIX.md. Les rapports de vulnérabilité doivent utiliser le chemin de signalement privé décrit dans SECURITY.md, pas les commentaires publics de problèmes.

Le dépôt ne revendique pas SOC 2, HIPAA, FedRAMP, la conformité à l'AI Act de l'UE, la conformité GDPR, la validation FIPS 140 ou l'admissibilité judiciaire par lui-même. Il fournit du code et des chemins de preuves qu'une organisation peut évaluer dans le cadre d'un système de contrôle plus large et d'une évaluation indépendante. Les références de cadres sont des correspondances de contribution, pas des certifications ni des conclusions juridiques.

Parcours commercial

Le modèle commercial est intentionnellement échelonné :

Les hypothèses de tarification, les hypothèses de coût de service, les blocages d'approvisionnement et les questions des acheteurs se trouvent dans docs/COMMERCIAL_STRATEGY_US.md et docs/BUYER_GUIDE_US.md. Le dépôt ne fabrique pas de logos clients, de témoignages, de chiffres d'adoption, de couverture de support ou de garanties de ROI.

Carte du dépôt

Index de documentation

Non-objectifs et risque résiduel

Les contrôles au niveau applicatif ne remplacent pas la segmentation réseau, la politique de pare-feu, la NetworkPolicy Kubernetes, l'IAM cloud, un gestionnaire de secrets, la sauvegarde immuable, les tests de reprise après sinistre ou un programme de réponse aux incidents. Les contrôles de démarrage stricts prouvent les prérequis configurés à l'initialisation ; ils ne prouvent pas qu'un fournisseur externe, un système de fichiers, un noyau, un signataire ou un réseau reste sain indéfiniment. HMAC-SHA256 est classique et symétrique ; les preuves de longue durée ou sensibles au quantique nécessitent une migration revue ou une architecture hybride. La disponibilité de ML-DSA n'équivaut pas à une preuve à temps constant, à une validation FIPS 140 ou à une certification.

Une publication est bloquée lorsqu'une réponse acceptée gouvernée manque de preuves durables dans le périmètre de test déclaré, qu'une chaîne échoue à la vérification, qu'un cas critique du corpus WAF contourne, qu'une rotation de clés valide perd ou invalide un enregistrement, qu'une expérience de timing expose une fuite, qu'une porte de chaîne d'approvisionnement échoue ou que la documentation publique exagère les preuves. Voir docs/SECURITY_ASSURANCE_ROADMAP.md pour le chemin d'assurance externe.

Licence

Le dépôt est sous licence selon les conditions de LICENSE et COMMERCIAL.md. Les cas d'utilisation commerciale, les obligations AGPL, les exemptions, les droits de versions futures et les conditions contractuelles nécessitent le texte de licence applicable et une revue juridique ; ce README n'est pas un avis juridique.

Publication actuelle

La dernière publication publiée est v3.1.0. Le commit 2050a310ec295afc61d033ff842c9a535a4f3105 est la base de référence de source fusionnée v4.0.0 avec quatorze ancres de version 4.0.0 synchronisées, mais il reste une source non publiée : aucun tag v4, GitHub Release, package PyPI ou package npm n'est revendiqué. Aucune publication OCI, statut WORM, niveau SLSA, admissibilité juridique ou revendication de préparation à la production n'est faite. La revendication de timing verify ML-DSA reste bloquée car l'expérience conservée a renvoyé p=0.0 ; une fusion de source ou une publication n'est pas une preuve que chaque prérequis de déploiement ou exigence d'assurance externe a été satisfait.

Limites de références externes

La documentation utilise NIST AI RMF, NIST CSF, NIST FIPS 204, W3C WCAG 2.2, CISA Secure by Design, IETF HTTP/2 et d'autres sources primaires comme cadres de référence. Ces sources définissent la terminologie ou les lentilles de revue. Elles ne certifient pas Aegis et ne remplacent pas la revue juridique, de sécurité, de confidentialité ou d'accessibilité spécifique au client.

Documents connexes

  • docs/DEVELOPER_QUICKSTART.md
  • docs/DEVELOPER_INTEGRATIONS_GUIDE.md
  • docs/PLATFORM_OPERATOR_GUIDE.md
  • docs/architecture/ARCHITECTURE.md
  • docs/FAQ_TECHNICAL.md
  • docs/FAQ_SECURITY.md
  • docs/FAQ_PROCUREMENT.md
  • docs/compliance/COMPLIANCE_MAPPING.md
Télécharger l’outil
TopologieUtilisationLimite de preuvesRisque ouvert
Processus unique / WAL durable uniqueÉvaluation locale et petits déploiements auto-hébergésUn processus possède la chaîne et le chemin de stockageLe processus, le volume et la garde des clés sont des domaines de défaillance uniques.
Un worker par podMise à l'échelle applicative horizontale avec des bundles locaux indépendantsChaque pod produit un bundle vérifiable indépendammentL'ordre global inter-réplicas n'est pas implicite.
Trois réplicas avec contrôle de clé partagéExercice de rotation et de basculementChaque nœud inclut l'ID de clé et peut vérifier le matériel de chevauchementLa propagation du gestionnaire de secrets, l'horloge, le stockage et l'orchestration des réplicas nécessitent des preuves d'acceptation.
Écrivain centraliséPreuves ordonnées sur des réplicas de passerelle sans étatUn écrivain unique ou un service d'ordonnancement approuvé possède la séquence durableLa disponibilité de l'écrivain, le comportement de la file d'attente et les modes de défaillance inter-régions restent un travail d'architecture.
PackagePérimètreLimite de promesse
Communauté / OSSÉvaluation auto-hébergée AGPL et utilisation open sourceAucune promesse de support ou de SLA.
Équipe / PiloteÉvaluation limitée dans le temps, de type production, avec un périmètre nomméPérimètre fixe, relecture de preuves, liste de contrôle de déploiement et heures de support explicites.
ProductionDéploiement auto-hébergé commercial, mises à jour et conseils de déploiementConditions commerciales annuelles dimensionnées par niveau de déploiement et de requêtes ; aucune promesse de certification non prise en charge.
EntrepriseApprovisionnement, assistance architecturale, revue de sécurité et objectifs de réponse négociésExige une opération de support responsable, des conditions juridiques, une déclaration de conservation des données et des exclusions explicites.
Souverain / OEMAir-gapped, redistribution, embarqué, séquestre ou assurance dédiéeOffre future uniquement après l'existence d'une capacité, d'une revue juridique et d'une assurance indépendante.
CheminObjectif
docs/DEVELOPER_QUICKSTART.mdCloner, installer, exécuter, tester et étendre le dépôt sans affaiblir la porte de preuves.
docs/PLATFORM_OPERATOR_GUIDE.mdTopologie de déploiement, stockage, Redis, posture du noyau, télémétrie et limites de restauration.
docs/FAQ_TECHNICAL.mdQuestions techniques sur le cycle de vie, la sémantique des défaillances, le WAF, le timing et la topologie.
docs/FAQ_PROCUREMENT.mdQuestions d'approvisionnement sur le support, les licences, les hypothèses de tarification et les limites d'assurance.
docs/FAQ_SECURITY.mdQuestions de sécurité sur FIPS, PQC, HTTP/2, WAF et chaîne d'approvisionnement.
docs/compliance/COMPLIANCE_MAPPING.mdCarte de contribution de cadres avec limites d'évaluation client.
docs/privacy/DATA_RETENTION.mdDonnées persistées, décisions de conservation, risques de confidentialité et contrôles opérateur.
docs/architecture/ARCHITECTURE.mdLimite du système, machine à états des requêtes et comportement de topologie.
docs/benchmarks/BENCHMARK_RESULTS.mdRésultats de benchmark canoniques v3.1.0 et commandes de reproduction.
docs/operations/ROLLBACK_RUNBOOK.mdProcédure de restauration et de récupération préservant les preuves.
docs/institutional/README.mdSuite de revue institutionnelle en six volumes : architecture, sécurité, opérations, réglementaire et approvisionnement, avec contrôles de revendications.
aegis/proxy/app.pyCycle de vie principal du proxy FastAPI, contrôles de requêtes, porte de preuves, politique de diffusion en continu, en-têtes et enrichissement borné.
aegis/proxy/waf.pyPipeline WAF et de normalisation au niveau applicatif.
aegis/proxy/egress_guard.pyListe d'autorisation de sortie canonique et validation des points de terminaison.
aegis/core/crypto_audit.pyRegistre forensique canonique, signatures, persistance WAL, rotation et vérification d'intégrité.
aegis/core/forensic_bundle.pyBundle de preuves JCS/DAG-CBOR borné, manifeste CIDv1, certificat PDF et vérificateur hors ligne.
dashboard/Tableau de bord forensique Next.js en lecture seule et BFF authentifié côté serveur.
sdk/python/ et sdk/typescript/Sous-classes officielles de client Python prêtes à l'emploi ; wrappers TypeScript natifs au fournisseur avec dépendances de pairs SDK fournisseur ; vérification de preuve MMR portable.
benchmarks/bench_streaming_sse.pyBenchmark de transformation SSE en processus reproductible de 1 000+ événements.
aegis/core/ratelimiter.pyLimiteur de développement en mémoire et limiteur Redis à échec fermé.
aegis/core/seccomp_guard.pyGarde de capacité et d'application Seccomp.
aegis/core/lsm_guard.pyDétection AppArmor/SELinux et assertion stricte.
aegis_server/crypto/keyring.pyTrousseau HMAC versionné avec rechargement atomique et vérification de chevauchement.
aegis_server/Cycle de vie de l'API de persistance et de conformité d'entreprise.
tests/test_p0_release_gates.pyTests de régression P0/P1 bloquants pour la ligne de publication v3.1.0.
tests/test_market_hardening_gates.pyNouvelles portes de régression WAF et d'injection de défaillances fsync.
tools/benchmarks/run_backpressure_stall.pyBenchmark local reproductible de blocage WAL.
tools/security/run_waf_corpus.pyHarnais de corpus WAF local reproductible.
tools/benchmarks/run_key_rotation.pyExercice local de rotation de clés atomique multi-instances.
tools/benchmarks/run_pqc_timing.pyHarnais de timing ML-DSA natif avec conservation d'échantillons bruts.
docs/CLAIMS_MATRIX.mdStatut de revendication publique, localisateur de preuves et limite de falsification.
docs/architecture/Index d'architecture et enregistrements de décisions.
docs/operations/Runbooks de contre-pression, rotation, restauration et opérationnels.
docs/security/Modèle de menace, tests WAF, évaluation PQC et feuille de route d'assurance.
docs/benchmarks/Contrat de mesure et règles d'interprétation.
requirements.lockRésolution de dépendances vérifiée par hachage.
PublicCommencer ici
Développeurdocs/DEVELOPER_QUICKSTART.md, docs/REPOSITORY_MAP.md et CONTRIBUTING.md.
Opérateur de plateformedocs/PLATFORM_OPERATOR_GUIDE.md, DEPLOYMENT_GUIDE.md et les runbooks opérationnels.
Réviseur de sécuritéSECURITY.md, docs/security/THREAT_MODEL.md, docs/FAQ_SECURITY.md et docs/CLAIMS_MATRIX.md.
Acheteur et approvisionnementdocs/PRODUCT_BRIEF_US.md, docs/BUYER_GUIDE_US.md, docs/FAQ_PROCUREMENT.md et docs/COMMERCIAL_STRATEGY_US.md.
Conformité et confidentialitédocs/compliance/COMPLIANCE_MAPPING.md et docs/privacy/DATA_RETENTION.md.
Réviseur institutionneldocs/institutional/README.md, son graphe de preuves de revendications, le rapport de revendications non prises en charge et l'enregistrement de contrôle documentaire.
Responsable de publicationCHANGELOG.md, docs/benchmarks/BENCHMARK_RESULTS.md, les artefacts de publication et l'enregistrement de porte.
  • docs/privacy/DATA_RETENTION.md