hmac_sha256_session_hashing
SKILL.md
hmac_sha256_session_hashing
Cada registro de auditoría incluye un HMAC-SHA256 calculado sobre los campos clave de la sesión. Esto garantiza que los logs no han sido alterados a posteriori (no-repudio) y permite detectar manipulación del historial de decisiones KYC.
When to use
Usar al persistir cada registro de auditoría en PostgreSQL. El hash se calcula antes del INSERT y se almacena como columna integrity_hash.
Instructions
- No requiere instalación adicional — usar
hmacyhashlibde la stdlib Python. - Definir clave HMAC en Vault:
vault kv put secret/kyc/audit hmac_key=<random-256-bit-hex>. - Cargar clave al arrancar:
HMAC_KEY = os.environ["AUDIT_HMAC_KEY"]. - Calcular hash antes de persistir:
import hmac, hashlib, json def compute_integrity_hash(session_data: dict, key: bytes) -> str: payload = json.dumps(session_data, sort_keys=True, ensure_ascii=False).encode() return hmac.new(key, payload, hashlib.sha256).hexdigest() - Campos a incluir en el payload:
session_id, timestamp, decision, global_score, agent_scores, user_id_hash. - Al leer un registro, verificar con
hmac.compare_digest()para prevenir timing attacks. - Rotar la clave HMAC en Vault sin downtime usando doble validación (aceptar clave anterior durante 24h).
Notes
- Nunca usar SHA256 directo sin HMAC — sin la clave secreta, cualquiera puede recalcular el hash.
hmac.compare_digest()es obligatorio para la verificación — nunca comparar strings directamente.- Los registros con hash inválido deben generar alerta crítica en Alertmanager.
Weekly Installs
7
Repository
davidcastagnetoa/skillsFirst Seen
14 days ago
Installed on
trae7
gemini-cli7
antigravity7
claude-code7
github-copilot7
codex7