
# Puerta de enlace de gobernanza y evidencia de IA para aplicaciones LLM de múltiples proveedores FastAPI + núcleo Rust opcional para políticas, WAF, egress, límites de tasa, sesiones, evidencia durable firmada y rutas de error con cierre por fallo. Autoalojado; sin certificación ni reclamo de SLO.
Puerta de enlace de gobernanza y evidencia de IA para aplicaciones LLM de múltiples proveedores.
Aegis Latent Core es una puerta de enlace compatible con OpenAI que aplica políticas de solicitud, WAF, egreso, límite de tasa y controles de sesión antes de reenviar el tráfico a un proveedor de modelos ascendente. Para el tráfico gobernado, construye un registro de evidencia canónico, firma el registro, lo confirma en un registro de escritura anticipada duradero y expone el estado de la evidencia al llamador. El enriquecimiento opcional de respuestas se ejecuta detrás de una cola acotada y nunca sustituye la confirmación de evidencia autoritativa.
Límite del producto: Aegis es una Puerta de enlace de gobernanza y evidencia de IA. No es un LLM, un WAF universal, una certificación de cumplimiento, una resolución de admisibilidad legal, un SLO de producción ni un reemplazo para los controles de red, identidad, privacidad, retención o respuesta a incidentes.
Última verificación: 2026-08-25 UTC
Línea base de lanzamiento: v3.1.0 publicado
Línea base de fuente fusionada: 2050a310ec295afc61d033ff842c9a535a4f3105 (PR #112; catorce anclas de versión sincronizadas en 4.0.0)
La línea base de lanzamiento público inmutable es v3.1.0. El commit 2050a310ec295afc61d033ff842c9a535a4f3105 es la línea base de fuente v4 fusionada; su contrato de lanzamiento de fuente informa las catorce anclas de versión sincronizadas en 4.0.0. El SSE de transmisión con evidencia pending-terminal acotada, el endpoint nativo de Anthropic POST /v1/messages, los SDK de Python y TypeScript, las pruebas MMR portátiles, el panel forense y la exportación ZIP, el segmento de flujo auxiliar RustWal y el punto de referencia SSE son capacidades de la fuente fusionada; no se atribuyen a la etiqueta v3.1.0.
La fuente fusionada sigue sin publicarse ni lanzarse. En la auditoría del 2026-08-25 no existía una etiqueta v4.0.0, un lanzamiento de GitHub, una publicación en PyPI ni una publicación en npm. La evidencia de lanzamiento y la evidencia de implementación de la fuente deben evaluarse por separado. El verificador de preparación para el lanzamiento evalúa únicamente los contratos de fuente: no prueba una etiqueta, la aprobación del entorno de GitHub, la ruta de confianza del firmante, la política del registro, la atestación de artefactos, el tiempo de ejecución multiarquitectura ni la aceptación externa.
Aegis está diseñado para equipos de plataforma, seguridad de aplicaciones e ingeniería de IA que operan con más de un proveedor de modelos o que requieren evidencia independiente del proveedor para el tráfico de IA gobernado. El enfoque comercial inicial son los equipos de plataforma empresarial B2B SaaS, fintech y regulados que necesitan despliegue privado y evidencia verificable, pero no piden a este repositorio que se convierta en un producto universal de autorización o certificación.
El comité de compra relevante suele incluir al CISO o responsable de AppSec, ingeniería de plataforma, ingeniería de IA/ML, cumplimiento o legal, adquisiciones y un patrocinador ejecutivo. La secuencia de prueba recomendada es evaluación local → reproducción de evidencia → piloto controlado → revisión de seguridad → paquete de adquisición → despliegue en producción.
Los registros de acceso estándar pueden mostrar que se produjo una llamada a la API. Por sí solos, no establecen los hashes exactos de la solicitud y respuesta gobernadas, la ruta de la política, el límite de confirmación de evidencia, el esquema de firma, el predecesor de la cadena ni si la solicitud fue rechazada antes o después del límite de evidencia. Aegis hace explícitas y verificables esas transiciones bajo los controles de despliegue declarados.
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
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
El ciclo de vida estricto es:
1. Autenticar al llamante y asignar un identificador de solicitud.
2. Aplicar límites de tamaño de solicitud y canonicalizar la representación de la solicitud.
3. Aplicar controles de WAF, comportamiento de sesión, egreso y límite de tasa.
4. Rechazar ante una falla de control requerido en lugar de debilitar silenciosamente la ruta de seguridad.
5. Reenviar al proveedor upstream configurado.
6. Para llamadas no streaming, capturar la respuesta, calcular hashes canónicos, firmar la evidencia, añadir al WAL, vaciar y ejecutar `fsync` antes de devolverla.
7. Para llamadas SSE, retransmitir eventos lógicos sanitizados a través de una cola acotada con contabilidad de bytes. Calcular el hash incrementalmente de los bytes emitidos exactos; al terminar, confirmar un resumen terminal firmado antes de emitir el marcador terminal del protocolo. El encabezado inicial de streaming es por tanto `X-Aegis-Evidence-Status: pending-terminal`, no `durable`.
8. Ejecutar el enriquecimiento opcional de respuestas a través de una ruta de trabajadores acotada después de que exista el registro autoritativo.
## Contrato principal
| Control | Comportamiento implementado | Evidencia y límite |
|---|---|---|
| Durabilidad de la evidencia | Para llamadas gobernadas no streaming, el proxy principal confirma la evidencia de solicitud/respuesta antes de devolver y emite `X-Aegis-Evidence-Status: durable`. El streaming SSE comienza con `pending-terminal`; se confirma un resumen terminal firmado antes del marcador terminal del protocolo, y la prueba se recupera después de la terminación. | `tests/test_p0_release_gates.py`, `tests/test_proxy_streaming.py`, pruebas de rutas de fallo del proxy y pruebas de integridad del WAL. El sistema de archivos objetivo y el proveedor de almacenamiento aún requieren validación de despliegue. |
| Errores terminales durables | Respuestas upstream no-2xx, rutas de circuito abierto y fallos de red utilizan la ruta de evidencia de error durable cuando el límite de evidencia está disponible. | `tests/test_enterprise_durable_evidence.py` y evidencia de la versión v3.1.0. Una falla de almacenamiento después de la admisión es un incidente operativo de cierre por fallo, no una respuesta exitosa. |
| Integridad de la cadena | Los nodos de auditoría vinculan predecesor, hash de solicitud, hash de respuesta, raíz de Merkle, firma y metadatos de esquema. | `aegis/core/crypto_audit.py` y `verify_integrity()`. La detección de manipulación no es lo mismo que el almacenamiento externo inmutable. |
| Firma fuerte | Los libros de contabilidad estrictos rechazan el respaldo efímero Ed25519. HMAC-SHA256, PKCS#11 configurado o firma nativa configurada deben satisfacer la política seleccionada; la interfaz HSM heredada ahora cierra por fallo en lugar de derivar una clave de software. | Pruebas de firmante y compuertas de inicio estrictas. Las pruebas simuladas de PKCS#11 son solo evidencia de adaptador, HMAC es simétrico, y no se establece interoperabilidad HSM, no exportabilidad de claves, validación FIPS ni no repudio de terceros. |
| Rotación de claves | El firmante empresarial admite un llavero HMAC versionado y atómico con una clave activa, claves de verificación históricas, caducidad explícita y metadatos `key_id` no secretos. | `aegis_server/crypto/keyring.py`, `tests/test_keyring_rotation.py`. La evidencia de despliegue con tres réplicas sigue siendo necesaria para una afirmación de producción. |
| Límite de tasa | La limitación distribuida respaldada por Redis cierra por fallo cuando el backend no está disponible; la limitación en memoria de desarrollo no es un sustituto de producción. | Pruebas del limitador de tasa y configuración de despliegue. El comportamiento de Redis/TLS/HA depende del despliegue. |
| Identidad empresarial y vinculación de inquilino | El candidato no publicado deriva principales inmutables de asignaciones de claves API configuradas, afirmaciones OIDC estrictas o certificados mTLS explícitamente fijados. Los encabezados de inquilino/sesión no seleccionan el inquilino de evidencia ni la clave de cuota. | `aegis/auth/`, `aegis/proxy/dependencies.py` y pruebas de integración de autenticación. La aceptación de IdP, terminador TLS, ciclo de vida de certificados y Redis sigue dependiendo del despliegue; la fuente mTLS actual es modo de fijación de hoja, no validación PKI universal. |
| Archivado de segmentos finalizados | Los segmentos JSONL WAL rotados reciben manifiestos versionados y pueden cargarse mediante el adaptador opcional S3 Object Lock con verificación de SHA-256, versión, modo de bloqueo y retención. La aceptación opcional RFC 3161 requiere verificación OpenSSL contra un archivo CA explícito. | `aegis/storage/`, `aegis/anchoring/` y pruebas enfocadas. Esto no es un WORM regulatorio, garantía de admisibilidad legal ni de tiempo externo sin aceptación del objetivo. |
| Telemetría segura para privacidad | Los eventos de seguridad de esquema cerrado omiten texto de prompt/respuesta/token, embeddings, identificadores brutos de inquilino/sesión, nombres de firmante y cadenas de excepción; un spool SQLite acotado opcional exporta a codificaciones SIEM compatibles. | `aegis/telemetry/` y pruebas centinela de privacidad. La entrega downstream, retención, control de acceso y SLO operativos son externos. |
| Informe de capacidades | `aegis.crypto` expone un inventario legible por máquina que distingue estados implementado, runtime opcional, stub y validación externa requerida. | `aegis/crypto/capabilities.py` y pruebas enfocadas. La API ZK actual es un stub de prueba no real, las pruebas MMR portátiles crecen O(log n), y no se reivindica validación FIPS. |
| Límite de atestación TEE | Los nodos de dispositivo TEE se informan solo como descubrimiento. Los informes heredados escritos por el llamante se rechazan; un verificador inyectado puede proporcionar afirmaciones normalizadas autenticadas para evaluación de política de medición exacta, firmante, nonce, frescura, depuración, TCB y datos de informe. | `aegis/core/tee_manager.py` y pruebas de módulo de hardware. El repositorio no implementa un cargador de enclave, análisis de citas de proveedor, validación de certificados/colaterales, confidencialidad de raíz de host ni aceptación de atestación objetivo. |
| Límite de privacidad diferencial | Una primitiva interna de conteo de Laplace usa sensibilidad uno y un CSPRNG del sistema para una liberación bajo adyacencia de añadir/eliminar un registro. | `aegis/core/dp_analytics.py` y pruebas deterministas. No se publica ningún endpoint HTTP de DP; las liberaciones repetidas requieren un contable durable, identidad estable de conjunto de datos/consulta, memoización y límites de contribución revisados que no están implementados aquí. |
| Límite de capacidad de fuzzing | El fuzzing está disponible solo cuando existen `cargo`, `cargo-fuzz`, un workspace privado, un manifiesto analizable acotado y todos los archivos objetivo regulares confinados exactos; el estado de ejecución distingue limpio, artefacto de crash, error de herramienta, tiempo de espera agotado y no disponible. | `aegis/core/fuzzing_harness.py` y pruebas enfocadas. El árbol actual no tiene workspace cargo-fuzz ni harness Kani, la cobertura medida sigue sin estar disponible, y las pruebas acotadas no son prueba exhaustiva. |
| Contexto de IA asesor | `AGENTS.md`, `llms.txt` y `.aegis_ai_context/` proporcionan navegación del repositorio y límites de afirmaciones para asistentes de codificación. | Estos archivos son datos asesores: no pueden anular la autorización, establecer comportamiento en runtime ni convertir código fuente fusionado en una versión. |
| Límites de solicitud | Los cuerpos sobredimensionados se rechazan antes del procesamiento normal de la aplicación. | Pruebas de versión P0/P1. Los límites deben dimensionarse para el proveedor desplegado y la política de streaming. |
| WAF | La normalización NFKC, el recorte de ancho cero, los bloqueos de patrones críticos, el guardián de profundidad estructural y el análisis local ponderado se ejecutan en el límite de la aplicación. | `tests/data/waf_corpus_v1.json` y `tools/security/run_waf_corpus.py`. El análisis HTTP/2 de ingreso está fuera del límite de la aplicación. |
| Egreso | Las listas permitidas canónicas rechazan esquemas, userinfo, puertos malformados, formas no compatibles y endpoints no aprobados. | `aegis/proxy/egress_guard.py` y pruebas. Esto no reemplaza firewall, namespace, NetworkPolicy ni controles de egreso en la nube. |
| Controles de kernel | El inicio estricto puede requerir capacidades Seccomp y LSM/AppArmor/SELinux y rechaza la falta de aplicación fuera del modo sandbox explícito. | `aegis/core/seccomp_guard.py`, `aegis/core/lsm_guard.py`, pruebas de despliegue. El kernel objetivo aún necesita pruebas de aceptación. |
| Enriquecimiento de respuestas | El análisis es acotado, observable y serializado por sesión donde se requiere. Es opcional y no puede debilitar el contrato de evidencia durable. | Pruebas de analizador y cola. El comportamiento de la cola bajo saturación real de I/O se describe en el runbook de contrapresión. |
| Prueba de inclusión portátil | Cada nuevo registro del libro de contabilidad almacena una prueba `aegis-mmr-inclusion-v1` autocontenida, digesto de hoja, picos ordenados y raíz. Las respuestas no streaming devuelven estas como encabezados `X-Aegis-MMR-*`; las llamadas en streaming exponen un enlace de prueba post-terminal autenticado. | Vectores dorados entre lenguajes y pruebas de reproducción/manipulación del WAL. Una prueba válida establece inclusión en la raíz MMR declarada; no establece por sí misma sellado de tiempo externo, retención ni admisibilidad legal. |
## Inicio rápido para evaluación local
La ruta local es para desarrollo, pruebas y reproducción de evidencia. No es un perfil de despliegue de producción.```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
Para una pasarela mínima de checkout desde el código fuente, usa el punto de entrada de consola declarado aegis con un upstream local o simulado:```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
`development` es el único modo no estricto aceptado en el modelo de configuración actual; el valor anterior `permissive` y el comando `uvicorn aegis.main:app` están obsoletos. Nunca coloque claves de proveedor, tokens de portador, secretos de firma, registros WAL o cargas útiles de clientes en el control de fuentes.
## SDKs de código fuente fusionado
La distribución de Python de código fuente fusionado en [`sdk/python`](https://github.com/juanlunaia/aegis-latent-core/blob/HEAD/sdk/python) es una integración directa que subclasifica los clientes oficiales de OpenAI y Anthropic. Los tipos de modelos de solicitud/respuesta existentes y las API de recursos síncronas/asíncronas se conservan mientras los encabezados de tenant, sesión y autenticación de portador de Aegis se inyectan en la construcción. El ingreso nativo de Anthropic `/v1/messages` requiere `AEGIS_PROVIDER=anthropic`; conserva la forma de respuesta de Anthropic Messages en lugar de traducirla a objetos de OpenAI.
El paquete TypeScript de código fuente fusionado compatible con edge en [`sdk/typescript`](https://github.com/juanlunaia/aegis-latent-core/blob/HEAD/sdk/typescript) verifica las pruebas `aegis-mmr-inclusion-v1` con Web Crypto y proporciona envoltorios nativos del proveedor y opciones de constructor en lugar de volver a declarar las cargas útiles del proveedor. Los paquetes oficiales de OpenAI y Anthropic son dependencias pares, por lo que sus recursos nativos, parámetros de solicitud, modelos de respuesta, iteradores de streaming, reintentos y tipos de error siguen siendo autoritativos. Ambos SDK consumen los mismos vectores de prueba congelados bajo `sdk/shared/`.
El candidato no publicado del SDK de Python también incluye adaptadores de callback de LangChain y LlamaIndex con privacidad minimizada. Los flujos de trabajo de publicación están deshabilitados a menos que se configuren los requisitos previos externos de editor confiable, entorno, etiqueta firmada y variables de repositorio. Consulte [`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 verificación de pruebas es opcional porque los llamadores deben obtener la raíz MMR de confianza a través de un canal aprobado de forma independiente. Habilitar la verificación mientras se confía en la raíz de la misma respuesta no confiable detectaría la corrupción, pero no proporcionaría un ancla de confianza independiente.
El dashboard de fuente fusionada es una interfaz de solo lectura de Next.js 16 y React 19. Representa únicamente datos autenticados de la puerta de enlace: estado general de salud, un libro mayor de ventana retenida filtrable, proyecciones canónicas de nodos JCS y DAG-CBOR con identificadores CIDv1, un verificador MMR interactivo con un sandbox local de Web Crypto, métricas en vivo derivadas de Prometheus y un flujo de trabajo de exportación forense acotado. No contiene datos de muestra de respaldo.```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
`AEGIS_DASHBOARD_API_KEY` es solo de servidor y nunca se serializa en los bundles del navegador. El endpoint de exportación requiere el ámbito `audit:export` cuando se configuran ámbitos por clave. Cada ZIP delimitado contiene un `manifest.json` JCS RFC 8785 canónico, un `ledger_slice.cbor` DAG-CBOR canónico identificado por CIDv1, `merkle_proof.json`, `audit_certificate.pdf` y `VERIFY.sh`. El certificado es un informe técnico de integridad, no una certificación ni una conclusión de admisibilidad legal.
## Ruta de despliegue estricta
El modo estricto es la postura de producción prevista. Requiere autenticación, evidencia duradera, firma sólida, cuerpos de solicitud delimitados, un backend de limitación de tasa distribuido, almacenamiento duradero y los controles de kernel configurados. Usa un gestor de secretos y monta el WAL en una ruta duradera y legible por el propietario.```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'
Para la rotación HMAC sin reinicios, configura una ruta de llavero legible por el propietario en lugar de depender de un secreto único al inicio del proceso:```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
El protocolo de anillos de claves, la ventana de solapamiento, la caducidad, la reversión y los criterios de aceptación de tres réplicas están en [`docs/operations/KEY_ROTATION_RUNBOOK.md`](https://github.com/juanlunaia/aegis-latent-core/blob/HEAD/docs/operations/KEY_ROTATION_RUNBOOK.md). Una ruta de anillo de claves no es un gestor de secretos; el despliegue debe establecer igualmente custodia, control de acceso, entrega atómica, copia de seguridad, destrucción y auditabilidad.
## Modelo de evidencia y firma
El registro local es un WAL JSONL de solo añadidura con una cadena acotada en memoria y segmentos archivados opcionales. Cada registro contiene hashes de solicitud y respuesta, encadenamiento de la cadena, una raíz de Merkle, metadatos de firma y el identificador de la solicitud. El WAL se vacía y sincroniza antes de que se complete la ruta de respuesta duradera.
Las opciones de firma admitidas dependen del despliegue:
| Firmante | Límite apropiado | Limitación importante |
|---|---|---|
| HMAC-SHA256 | Despliegues autohospedados de nodo único o con secreto compartido | Clave simétrica; todo verificador que posea la clave también puede firmar. HMAC es clásico, no resistente a la computación cuántica. |
| Firmante respaldado por HSM/Vault | Despliegues empresariales que requieren aislamiento de claves o custodia remota | La disponibilidad, la política, TLS/mTLS, la rotación y la verificación sin conexión requieren la propia evidencia del despliegue objetivo. |
| Firmante nativo ML-DSA-65 | Entornos que compilan y cargan el backend real de Rust | El artefacto candidato retenido de 1M de muestras no encontró una diferencia temporal significativa para `sign` (`p=0.8521504207157158`), pero no alcanzó el umbral para `verify` (`p=0.0`); no se aprueba ninguna afirmación de tiempo constante. Véase [`docs/security/PQC_CONSTANT_TIME.md`](https://github.com/juanlunaia/aegis-latent-core/blob/HEAD/docs/security/PQC_CONSTANT_TIME.md). |
Aegis no fabrica firmas ML-DSA cuando el backend nativo no está disponible. Informa que el backend no está disponible y requiere una política de respaldo real explícita. Un resultado temporal con `p > 0.05` significaría únicamente que no se detectó una fuga estadísticamente significativa bajo el experimento nombrado; no probaría una ejecución en tiempo constante.
## Semántica de contrapresión y fallos
La evidencia duradera es un invariante de la ruta crítica. Ante un bloqueo de almacenamiento o de `fsync`, la ruta de solicitud puede bloquearse o rechazarse según los límites configurados; no debe descartar silenciosamente evidencia autoritativa. La cola de enriquecimiento puede rechazar trabajo opcional, pero una política de cola no puede convertir una respuesta aceptada gobernada en una respuesta no registrada.
El arnés determinista de inyección de fallos es:```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
La ejecución retenida de v3.1.0 ofreció 10,000 solicitudes a 10,000 RPS con un retraso inyectado de fsync de 2 ms. Registró 10,000 confirmaciones duraderas, cero fallos, cero ID faltantes, cero ID duplicados y una integridad de cadena válida. La latencia de confirmación p99 observada fue de 1,189.89 ms. Este es un resultado acotado de inyección de fallos con colas sustanciales. No es una afirmación de capacidad de producción ni de SLO. Consulte docs/operations/BACKPRESSURE_RUNBOOK.md.
El corpus local cubre actualmente 15 casos maliciosos ejecutables y 8 casos benignos. La ejecución candidata de v3.1.0 registró cero evasiones observadas y cero falsos positivos benignos para ese corpus fijado. Debido a que el corpus es pequeño, su intervalo de confianza es amplio; el resultado es una señal de regresión, no una cobertura de detección universal.
El arnés de la aplicación no ejecuta fragmentación HTTP/2, ordenamiento de pseudo-cabeceras, diferenciales de límites de continuación, diferencias de analizadores de cuerpo comprimido ni normalización específica de entrada. nuclei-templates/waf-bypass no se trata como ejecutado a menos que una revisión fijada se ejecute contra un objetivo local desechable autorizado y produzca un artefacto retenido. Consulte docs/security/WAF_TESTING.md.
Las respuestas gobernadas exponen X-Aegis-Request-ID, X-Aegis-Session-ID, X-Aegis-Evidence-Status, X-Aegis-Analysis-Status y, después de una confirmación duradera no transmitida en streaming, las cabeceras de prueba X-Aegis-MMR-Format, X-Aegis-MMR-Leaf, X-Aegis-MMR-Proof y X-Aegis-MMR-Root. Las respuestas en streaming exponen un Link a /v1/audit/proofs/{request_id} y permanecen pending-terminal hasta que la búsqueda terminal autenticada tenga éxito. Los registros autoritativos están en el almacén de evidencia.
Los operadores deben alertar sobre fallos de confirmación de evidencia, fallos de sincronización de WAL, fallos del backend de limitación de velocidad, saturación de colas, apertura de circuitos, picos de errores ascendentes, fallos de recarga del llavero, falta de superposición de claves, indisponibilidad del firmante, rechazo de inicio de Seccomp/LSM y fallos de verificación de integridad. Preserve los segmentos de WAL y los informes de solo lectura durante el manejo de incidentes. Revierta a la versión firmada/anterior de resumen de imagen cuando se cumpla un criterio de eliminación.
En la línea base de fuente fusionada, cuando la extensión PyO3 está disponible, cada registro terminal en streaming también se agrega una vez a un segmento auxiliar RustWal con marco CRC32 y mapeado en memoria en <AEGIS_WAL_PATH>.stream.rwal dentro de la misma llamada de ejecutor que realiza la confirmación autoritativa del libro mayor JSONL. El segmento nativo está limitado a 256 MiB. Si su agregación falla después de la confirmación JSONL, Aegis incrementa aegis_native_stream_wal_errors_total, registra la degradación, deshabilita el segmento auxiliar para el proceso y preserva el marcador terminal visible para el cliente porque la cadena JSONL sigue siendo la autoridad de reproducción. La telemetría de streaming también expone histogramas de duración, contadores de tokens y contadores de redacción de categorías acotadas sin etiquetas de carga útil.
El ordenamiento global de auditoría entre réplicas y la alta disponibilidad multirregión no están reclamados por la versión actual. Use la guía de escalado y la hoja de ruta como el límite autoritativo.
El repositorio separa microbenchmarks de despacho, sobrecarga de proxy visible para el cliente, latencia inclusiva ascendente, rendimiento de durabilidad de WAL, métricas del corpus WAF y temporización criptográfica nativa. Cada medición debe identificar carga de trabajo, hardware, calentamiento, número de muestras, método de percentil, artefacto bruto y límite.
El resultado de 2.70 µs publicado anteriormente es un microbenchmark de despacho en segundo plano, no una latencia de puerta de enlace de extremo a extremo. El rendimiento por trabajador está limitado por el intérprete, la programación del bucle de eventos, el comportamiento ascendente, el almacenamiento y la topología de despliegue. Ninguna afirmación del README de "latencia cero", "sobrecarga cero", "capacidad de 10k RPS" o "1B RPM" está autorizada sin un nuevo artefacto que satisfaga la matriz de afirmaciones.
El arnés de streaming en proceso de Fase 2 de fuente fusionada es benchmarks/bench_streaming_sse.py. Su medición retenida del árbol de trabajo es evidence/commercial_phase2_streaming_benchmark.json. Ejercita 1,000 eventos SSE deterministas por ronda e informa latencia de primer byte, rendimiento de transformación, marcas de agua altas de colas y memoria máxima de tracemalloc. Excluye la latencia de red y de WAL duradero y, por lo tanto, no es un resultado de capacidad de extremo a extremo.
Consulte docs/benchmarks/README.md, docs/BENCHMARKS.md y docs/performance/SCALING_GUIDE.md.
El proceso de publicación produce un lockfile, SBOM, resultados de dependencias/avisos, sobre de procedencia, registro de puerta de publicación, manifiesto del repositorio, hashes de activos e instrucciones de reversión. La política de seguridad está en SECURITY.md; los controles de afirmaciones públicas están en docs/CLAIMS_MATRIX.md. Los informes de vulnerabilidades deben usar la ruta de informe privada descrita en SECURITY.md, no comentarios públicos de problemas.
El repositorio no reclama por sí mismo SOC 2, HIPAA, FedRAMP, conformidad con la Ley de IA de la UE, cumplimiento de GDPR, validación FIPS 140 ni admisibilidad judicial. Proporciona código y rutas de evidencia que una organización puede evaluar como parte de un sistema de control más amplio y una evaluación independiente. Las referencias a marcos son mapeos de contribución, no certificaciones ni conclusiones legales.
El modelo comercial está intencionalmente escalonado:
Las hipótesis de precios, supuestos de costo de servicio, bloqueadores de adquisición y preguntas de compradores están en docs/COMMERCIAL_STRATEGY_US.md y docs/BUYER_GUIDE_US.md. El repositorio no fabrica logotipos de clientes, testimonios, números de adopción, cobertura de soporte ni garantías de ROI.
Los controles de capa de aplicación no reemplazan la segmentación de red, la política de firewall, la NetworkPolicy de Kubernetes, el IAM en la nube, un gestor de secretos, la copia de seguridad inmutable, las pruebas de recuperación ante desastres ni un programa de respuesta a incidentes. Las comprobaciones estrictas de inicio prueban los requisitos previos configurados en la inicialización; no prueban que un proveedor externo, sistema de archivos, kernel, firmante o red permanezca saludable indefinidamente. HMAC-SHA256 es clásico y simétrico; la evidencia de larga duración o sensible a la computación cuántica requiere una migración revisada o una arquitectura híbrida. La disponibilidad de ML-DSA no equivale a prueba de tiempo constante, validación FIPS 140 ni certificación.
Una publicación se bloquea cuando una respuesta aceptada gobernada carece de evidencia duradera en el alcance de prueba declarado, una cadena falla la verificación, un caso crítico del corpus WAF se evade, una rotación de claves válida pierde o invalida un registro, un experimento de temporización expone una fuga, una puerta de cadena de suministro falla o la documentación pública exagera la evidencia. Consulte docs/SECURITY_ASSURANCE_ROADMAP.md para la vía de aseguramiento externo.
El repositorio está licenciado bajo los términos en LICENSE y COMMERCIAL.md. Los casos de uso comercial, obligaciones AGPL, exenciones, derechos de versiones futuras y términos contractuales requieren el texto de licencia aplicable y revisión legal; este README no es asesoramiento legal.
La publicación más reciente es v3.1.0. El commit 2050a310ec295afc61d033ff842c9a535a4f3105 es la línea base de fuente fusionada v4.0.0 con catorce anclas de versión 4.0.0 sincronizadas, pero sigue siendo fuente no publicada: no se reclama ninguna etiqueta v4, GitHub Release, paquete PyPI ni paquete npm. No se hace ninguna afirmación de publicación OCI, estado WORM, nivel SLSA, admisibilidad legal ni preparación para producción. La afirmación de temporización de verify de ML-DSA sigue bloqueada porque el experimento retenido devolvió p=0.0; una fusión de fuente o publicación no es evidencia de que se hayan satisfecho todos los requisitos previos de despliegue o requisitos de aseguramiento externo.
La documentación utiliza NIST AI RMF, NIST CSF, NIST FIPS 204, W3C WCAG 2.2, CISA Secure by Design, IETF HTTP/2 y otras fuentes primarias como marcos de referencia. Estas fuentes definen terminología o lentes de revisión. No certifican Aegis ni reemplazan la revisión legal, de seguridad, privacidad o accesibilidad específica del cliente.
| Topología | Uso | Límite de evidencia | Riesgo abierto |
|---|
| Proceso único / WAL duradero único | Evaluación local y despliegues pequeños autoalojados | Un proceso posee la cadena y la ruta de almacenamiento | El proceso, el volumen y la custodia de claves son dominios de fallo únicos. |
| Un trabajador por pod | Escalado horizontal de aplicaciones con paquetes locales independientes | Cada pod produce un paquete verificable de forma independiente | No se implica un ordenamiento global entre réplicas. |
| Tres réplicas con control de claves compartido | Ejercicio de rotación y conmutación por error | Cada nodo incluye el ID de clave y puede verificar el material de superposición | La propagación del gestor de secretos, el reloj, el almacenamiento y la orquestación de réplicas requieren evidencia de aceptación. |
| Escritor centralizado | Evidencia ordenada en réplicas de puerta de enlace sin estado | Un único escritor o servicio de ordenamiento aprobado posee la secuencia duradera | La disponibilidad del escritor, el comportamiento de colas y los modos de fallo entre regiones siguen siendo trabajo de arquitectura. |
| Paquete | Alcance | Límite de promesa |
|---|
| Comunidad / OSS | Evaluación autoalojada AGPL y uso de código abierto | Sin promesa de soporte ni SLA. |
| Equipo / Piloto | Evaluación limitada en el tiempo, similar a producción, con un alcance nombrado | Alcance fijo, reproducción de evidencia, lista de verificación de despliegue y horas de soporte explícitas. |
| Producción | Despliegue autoalojado comercial, actualizaciones y guía de despliegue | Términos comerciales anuales dimensionados por despliegue y nivel de solicitudes; sin promesa de certificación sin soporte. |
| Empresa | Adquisición, asistencia de arquitectura, revisión de seguridad y objetivos de respuesta negociados | Requiere una operación de soporte responsable, términos legales, declaración de retención de datos y exclusiones explícitas. |
| Soberano / OEM | Aislado de red, redistribución, embebido, custodia o aseguramiento dedicado | Oferta futura solo después de que existan capacidad, revisión legal y aseguramiento independiente. |
| Ruta | Propósito |
|---|
docs/DEVELOPER_QUICKSTART.md | Clonar, instalar, ejecutar, probar y extender el repositorio sin debilitar la puerta de evidencia. |
docs/PLATFORM_OPERATOR_GUIDE.md | Topología de despliegue, almacenamiento, Redis, postura del kernel, telemetría y límites de reversión. |
docs/FAQ_TECHNICAL.md | Preguntas técnicas sobre ciclo de vida, semántica de fallos, WAF, temporización y topología. |
docs/FAQ_PROCUREMENT.md | Preguntas de adquisición sobre soporte, licencias, hipótesis de precios y límites de aseguramiento. |
docs/FAQ_SECURITY.md | Preguntas de seguridad sobre FIPS, PQC, HTTP/2, WAF y cadena de suministro. |
docs/compliance/COMPLIANCE_MAPPING.md | Mapa de contribución de marcos con límites de evaluación del cliente. |
docs/privacy/DATA_RETENTION.md | Datos persistidos, decisiones de retención, riesgos de privacidad y controles del operador. |
docs/architecture/ARCHITECTURE.md | Límite del sistema, máquina de estados de solicitudes y comportamiento de topología. |
docs/benchmarks/BENCHMARK_RESULTS.md | Resultados canónicos de benchmark v3.1.0 y comandos de reproducción. |
docs/operations/ROLLBACK_RUNBOOK.md | Procedimiento de reversión y recuperación que preserva la evidencia. |
docs/institutional/README.md | Suite de revisión institucional de seis volúmenes de arquitectura, seguridad, operaciones, regulatorio y adquisición con controles de afirmaciones. |
aegis/proxy/app.py | Ciclo de vida central del proxy FastAPI, controles de solicitudes, puerta de evidencia, política de streaming, cabeceras y enriquecimiento acotado. |
aegis/proxy/waf.py | WAF de capa de aplicación y pipeline de normalización. |
aegis/proxy/egress_guard.py | Lista de permitidos de salida canónica y validación de endpoints. |
aegis/core/crypto_audit.py | Libro mayor forense canónico, firmas, persistencia WAL, rotación y verificación de integridad. |
aegis/core/forensic_bundle.py | Paquete de evidencia JCS/DAG-CBOR acotado, manifiesto CIDv1, certificado PDF y verificador sin conexión. |
dashboard/ | Panel forense Next.js de solo lectura y BFF autenticado del lado del servidor. |
sdk/python/ y sdk/typescript/ | Subclases oficiales de cliente Python drop-in; envoltorios TypeScript nativos de proveedor con dependencias pares del SDK del proveedor; verificación de prueba MMR portátil. |
benchmarks/bench_streaming_sse.py | Benchmark de transformación SSE en proceso reproducible de 1,000+ eventos. |
aegis/core/ratelimiter.py | Limitador de desarrollo en memoria y limitador Redis de cierre por fallo. |
aegis/core/seccomp_guard.py | Guardián de capacidad y aplicación de Seccomp. |
aegis/core/lsm_guard.py | Detección de AppArmor/SELinux y aserción estricta. |
aegis_server/crypto/keyring.py | Llavero HMAC versionado con recarga atómica y verificación de superposición. |
aegis_server/ | Ciclo de vida de la API de persistencia y cumplimiento empresarial. |
tests/test_p0_release_gates.py | Pruebas de regresión P0/P1 bloqueantes para la línea de publicación v3.1.0. |
tests/test_market_hardening_gates.py | Nuevas puertas de regresión de inyección de fallos WAF y fsync. |
tools/benchmarks/run_backpressure_stall.py | Benchmark local reproducible de parada de WAL. |
tools/security/run_waf_corpus.py | Arnés de corpus WAF local reproducible. |
tools/benchmarks/run_key_rotation.py | Ejercicio local de rotación de claves atómica multiinstancia. |
tools/benchmarks/run_pqc_timing.py | Arnés de temporización ML-DSA nativo con retención de muestras brutas. |
docs/CLAIMS_MATRIX.md | Estado de afirmaciones públicas, localizador de evidencia y límite de falsación. |
docs/architecture/ | Índice de arquitectura y registros de decisiones. |
docs/operations/ | Runbooks operativos de contrapresión, rotación, reversión y operaciones. |
docs/security/ | Modelo de amenazas, pruebas WAF, evaluación PQC y hoja de ruta de aseguramiento. |
docs/benchmarks/ | Contrato de medición y reglas de interpretación. |
requirements.lock | Resolución de dependencias verificada por hash. |
| Audiencia | Comience aquí |
|---|
| Desarrollador | docs/DEVELOPER_QUICKSTART.md, docs/REPOSITORY_MAP.md y CONTRIBUTING.md. |
| Operador de plataforma | docs/PLATFORM_OPERATOR_GUIDE.md, DEPLOYMENT_GUIDE.md y los runbooks operativos. |
| Revisor de seguridad | SECURITY.md, docs/security/THREAT_MODEL.md, docs/FAQ_SECURITY.md y docs/CLAIMS_MATRIX.md. |
| Comprador y adquisición | docs/PRODUCT_BRIEF_US.md, docs/BUYER_GUIDE_US.md, docs/FAQ_PROCUREMENT.md y docs/COMMERCIAL_STRATEGY_US.md. |
| Cumplimiento y privacidad | docs/compliance/COMPLIANCE_MAPPING.md y docs/privacy/DATA_RETENTION.md. |
| Revisor institucional | docs/institutional/README.md, su grafo de afirmaciones-evidencia, informe de afirmaciones sin soporte y registro de control de documentos. |
| Propietario de publicación | CHANGELOG.md, docs/benchmarks/BENCHMARK_RESULTS.md, artefactos de publicación y el registro de puerta. |