
# Verificación de exportaciones de auditoría con keenauth audit verify

`keenauth audit verify` comprueba una exportación de auditoría de gestión en su propio equipo. No se conecta con KeenAuth, no necesita clave de API ni sesión `keenauth login`, por lo que no tiene que confiar en la plataforma para confiar en la exportación.

## Qué demuestra

El comando toma el paquete de exportación que descargó (un archivo tar con `records.ndjson.gz`, `manifest.json` y `manifest.jws`) y el `audit-jwks.json` regional. Después:

1. comprueba la firma de `manifest.jws` con la clave del punto de control de auditoría y que `manifest.json` es su carga útil;
2. comprueba el tamaño y el SHA-256 de `records.ndjson.gz` con respecto al manifiesto;
3. recalcula el hash de cada registro y comprueba que los números de secuencia son consecutivos y que cada registro apunta al hash del anterior;
4. reconstruye la hoja de cada hora y sigue su prueba de inclusión (RFC 9162) hasta la raíz del punto de control horario firmado.

Por tanto, demuestra que los registros del paquete no se modificaron, eliminaron ni reordenaron. No demuestra que sus filtros se aplicaran correctamente. La hoja contiene el ID del entorno, así que una prueba de otro entorno no es válida para sus registros.

## Uso

```sh
keenauth audit verify --bundle audit-export.tar --jwks audit-jwks.json --environment-id 0192b6f0-7c1e-7a55-8f3d-2a6f0e9d4b11
```

| Opción | Descripción |
|---|---|
| `--bundle` | Ruta del paquete de exportación descargado (obligatoria). |
| `--jwks` | Ruta del `audit-jwks.json` regional (obligatoria). |
| `--environment-id` | ID del entorno (UUID) al que debe pertenecer el paquete. Recomendado: sin él, el comando muestra una advertencia y no comprueba el entorno. |
| `--output`, `-o` | `table`, `json` o `yaml`. Sin la opción, la CLI muestra una tabla en un terminal y JSON en caso contrario. |

Si tiene éxito, el comando muestra un resumen (`verified`, `export_id`, `environment_id`, `cell`, `stream`, `from`, `to`, `record_count`, `line_count`, `windows`, `key_id`, `include_ip`) y finaliza con código 0. `record_count` cuenta los registros que coinciden con su filtro; `line_count` también cuenta las líneas de marcador de posición de los registros fuera del filtro.

Si falla alguna comprobación, el comando no imprime nada en la salida estándar, escribe `audit verification failed (<kind>)` en la salida de error estándar y finaliza con código 1. El tipo es `signature`, `manifest`, `chain`, `proof` o `format`. Un archivo no legible o una opción obligatoria ausente finaliza con código 2.

Consulte [la API de exportación de auditoría](/docs/api/management/audit-exports/create) para saber cómo crear y descargar una exportación.
