AuditChain Integrity Skill
Este skill define el protocolo criptográfico para asegurar que el registro de auditoría (audit_log o audit_trail) sea inmutable y verificable. Cada entrada en el log depende criptográficamente de la anterior, haciendo imposible la alteración silenciosa de registros históricos (Anti-Tamper).
⚠️ Reglas Críticas (Hard Constraints)
- •Algoritmo: SHA-256 exclusivamente.
- •Payload del Hash: Debe incluir obligatoriamente:
- •
previous_hash: El hash del registro inmediatamente anterior (ordenado porlogic_clock). - •
logic_clock: Un entero incremental global (Lamport Clock simplificado) para ordenamiento causal. - •
entity_data: Datos clave de la operación (ID, tabla, cambios). - •
timestamp: ISO 8601. - •
user_id: Actor. - •
salt: Un secreto rotativo del sistema (opcional pero recomendado).
- •
- •Verificación: La validación recorre la cadena recalculando hashes; si uno difiere, detecta corrupción ("Tamper Detected").
Estructura del Payload
json
{
"previous_hash": "a1b2c3...",
"logic_clock": 1042,
"timestamp": "2026-01-27T10:00:00Z",
"table_name": "invoices",
"record_id": 501,
"action": "UPDATE",
"changes": "{\"status\": \"paid\"}",
"user_id": 1
}
Flujo de Generación (Insert)
- •Lock: Bloquear escritura en tabla de auditoría (SQLite 'BEGIN EXCLUSIVE' o similar lógico).
- •Fetch Last: Obtener el último registro:
SELECT hash, logic_clock FROM audit_trail ORDER BY logic_clock DESC LIMIT 1. - •Calculate:
- •
new_clock = last_clock + 1 - •
current_hash = SHA256(last_hash + new_clock + datapayload)
- •
- •Insert: Guardar registro.
- •Unlock: Commit transacción.
Flujo de Verificación (Integrity Check)
- •Leer todos los registros ordenados por
logic_clock. - •Para cada registro
n:- •Recalcular hash esperado usando
n.datayhash(n-1). - •Comparar con
n.stored_hash.
- •Recalcular hash esperado usando
- •Si coinciden todos: Integridad = OK.
- •Si falla: Retornar ID del primer registro corrupto.
Comandos Relacionados
- •
verificar integridad: Ejecuta el chequeo completo de la cadena. - •
auditar cambios [tabla]: Lista historial verificando hashes al vuelo.
Archivos Clave
- •
src/core/security/AuditService.ts(Implementación ideal) - •
src/database/simple-db.ts(Persistencia actual)