Immutable Logs — Cadena criptográfica de auditoría
SecureAI registra cada interacción con IA y cada acción administrativa en una cadena inmutable de tres capas. Esta arquitectura garantiza que cualquier modificación, borrado o manipulación de los registros sea detectable — incluso si alguien tiene acceso directo a la base de datos.¿Por qué importa?
Un log que solo existe en MongoDB no es verdaderamente inmutable: quien tenga acceso al servidor puede borrarlo sin dejar rastro. SecureAI resuelve esto anclando cada registro a Sigstore Rekor, un log de transparencia público operado por la Open Source Security Foundation (OpenSSF) — el mismo sistema que usa la industria del software para verificar la cadena de custodia de paquetes críticos.Garantía técnica: Una vez que un hash de bloque Merkle está en Rekor, nadie — incluyendo el operador de SecureAI — puede alterar retroactivamente ese registro. Cualquier auditor externo puede verificarlo de forma independiente con una sola llamada curl.
Las tres capas de prueba
Cada bundle de interacción tiene tres niveles de evidencia criptográfica:Capa 1 — Registro MongoDB (L1)
El registro primario de la interacción se almacena en MongoDB con:
La cadena
prev_hash → current_hash → next_current_hash hace que borrar cualquier fila rompa la cadena — la discrepancia es detectable al recorrer la secuencia.
Capa 2 — Árbol Merkle (L2)
Cada 10 entradas de log se agrupan en un bloque Merkle:merkle_root es el hash raíz que representa las 10 entradas. Si cualquier entrada se altera, el merkle_root cambia — lo que invalida la prueba de inclusión.
Capa 3 — Ancla Rekor (L3)
Elmerkle_root de cada bloque sellado se envía a Sigstore Rekor, un log público append-only. Rekor devuelve:
Una vez que el
log_index existe en Rekor, nadie puede eliminarlo — el log de Rekor es público, distribuido e inmutable por diseño.
Portal de Transparencia (admin)
Acceder
Admin → AI Gateway → Transparency PortalVerificar un bundle
- Escribe o pega el
bundle_iden el campo de búsqueda. - Haz clic en “Verify Proof”.
- Verás las tres capas con badges de estado:
- ✅ Verde = verificado correctamente
- ⚠️ Amarillo = pendiente de sellado/ancla (normal para interacciones de hace menos de 2 minutos)
- ❌ Rojo = fallo de verificación (señal de alerta)
Copiar enlace público de verificación
Cuando el resultado está visible, aparece una barra con el botón “Copy public verification URL”. Ese enlace es público — puedes enviárselo a un auditor externo sin que necesite login.Página pública de verificación
Cualquier persona con unbundle_id puede verificar la prueba sin acceso a SecureAI:
- El contenido del mensaje ni la respuesta de la IA
- Datos del usuario (nombre, email, IP)
- Cualquier información de identificación personal
Verificación independiente con curl
Un auditor externo puede verificar cualquier bundle sin confiar en la interfaz web:Paso 1 — Obtener la prueba
Paso 2 — Confirmar el hash en la capa Merkle
Paso 3 — Confirmar el ancla en Rekor
signedEntryTimestamp no vacío confirma que Rekor ha aceptado y firmado la entrada. Ese timestamp no puede ser retroactivamente alterado.
Export bundle firmado (auditores y usuarios)
Además del verificador público porbundle_id, SecureAI permite exportar evidencia criptográfica en un ZIP portable para auditorías offline.
Qué incluye el ZIP
Cuando un administrador usa Export signed bundle en Logs o SMLTP, se descarga un archivo con:data.csv: datos exportados.manifest.json: metadatos criptográficos (rowCount,merkleRootOfExport,signingKeyFingerprint, timestamp, etc.).manifest.sig: firma Ed25519 demanifest.json.verify.js: verificador offline sin dependencias.README.txt: instrucciones rápidas.
Cómo verificar (offline)
- Descomprime el ZIP.
- Abre una terminal en esa carpeta.
- Ejecuta:
Qué detecta este verificador
- Edición de cualquier campo en
data.csv. - Borrado o agregado de filas en
data.csv. - Modificación de
manifest.json. - Uso de clave de firma incorrecta.
FAIL, ese export no debe considerarse confiable.
Prueba rápida para auditoría
Para demostrar detección de manipulación:- Ejecuta
node verify.jssobre el ZIP recién exportado (debe dar todoPASS). - Edita un carácter cualquiera en
data.csvy guarda. - Ejecuta de nuevo
node verify.js. - Debe fallar al menos
Merkle root of export.
Interpretación de los estados
Flujo completo de un mensaje
Cumplimiento de proveedores
El badge “Provider Compliance” indica si el proveedor de IA (OpenAI, Anthropic, etc.) confirmó recibir las cabeceras de privacidad SMLTP:Preguntas frecuentes
¿Puedo verificar un bundle sin internet? Sí, descarga el JSON de prueba desde el botón “Download JSON” mientras tienes conexión. Elmerkle_root y los hashes son verificables offline recomputando el árbol.
¿Qué pasa si L3 está pendiente?
Es normal para interacciones recientes (menos de 1 minuto). El sidecar de Rekor procesa bloques cada ~30 segundos. Si después de 5 minutos sigue pendiente, verifica que el sidecar rekor-anchor esté corriendo.
¿Cuánto tiempo se guardan los registros?
Por defecto, los registros se conservan según el retentionPeriod configurado. Los registros marcados como compliance (phi, pii, security, authorization) nunca se eliminan automáticamente.
¿Puedo compartir el enlace de verificación con un cliente?
Sí. La URL /verify/<bundle_id> no requiere login y no expone datos sensibles. Es segura para compartir con auditores, reguladores o clientes.
