davidcastagnetoa/skills

hmac_sha256_session_hashing

Hash de integridad por sesión para garantizar no-repudio e inmutabilidad del registro de auditoría

First seen Mar 2, 2026

Installation

$ npx skills add davidcastagnetoa/skills --skill hmac_sha256_session_hashing

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from davidcastagnetoa/skills · top by installs.

npx skills add davidcastagnetoa/skills

Browse all from davidcastagnetoa/skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 1
Default branch main
Open issues 0
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 1,830 B
  • docs SUMMARY.md 135 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 11 installs

SKILL.md

hmacsha256session_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

  1. No requiere instalación adicional — usar hmac y hashlib de la stdlib Python.
  2. Definir clave HMAC en Vault: vault kv put secret/kyc/audit hmac_key=<random-256-bit-hex>.
  3. Cargar clave al arrancar: HMACKEY = os.environ["AUDITHMAC_KEY"].
  4. Calcular hash antes de persistir:

``python import hmac, hashlib, json def computeintegrityhash(sessiondata: dict, key: bytes) -> str: payload = json.dumps(sessiondata, sortkeys=True, ensureascii=False).encode() return hmac.new(key, payload, hashlib.sha256).hexdigest() ``

  1. Campos a incluir en el payload: sessionid, timestamp, decision, globalscore, agentscores, userid_hash.
  2. Al leer un registro, verificar con hmac.compare_digest() para prevenir timing attacks.
  3. 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.