Testigo Insobornable — Verificación Criptográfica
Este endpoint publica la clave pública Ed25519 activa del sistema. Cada artículo ingresado al corpus lleva un registro técnico verificable: qué se dijo, cuándo fue capturado y qué llave del sistema lo atestiguó mediante SHA-256 + Ed25519.
Clave pública activa
- Algoritmo
Ed25519- Curva
edwards25519- ID del keypair
25c5280eaf32a2a9- Clave pública (hex)
e1fff6ab9afa1e3f0e1865640c0dc2194e339a5a68c5958709e7aab13126af12- Clave pública (base64)
4f/2q5r6Hj8OGGVkDA3CGU4zmlpoxZWHCeeqsTEmrxI=
Cómo verificar una firma
Blob canónico: Concatenación de campos del artículo en orden determinista: title|url|published_at|content_hash. Se firma este string, no el HTML.: item_title
item_link
item_date
captured_at_iso
item_description
- Obtén el blob canónico del artículo desde el endpoint JSON de la historia (campo canonical_blob).
- Verifica la firma Ed25519 del campo signature contra la clave pública publicada aquí usando cualquier librería estándar (libsodium, PyNaCl, tweetnacl).
Ejemplos de verificación
PHP (libsodium)
sodium_crypto_sign_verify_detached(hex2bin($sig), hex2bin($sha256), hex2bin($pub_hex))
Python (PyNaCl)
PyNaCl: nacl.signing.VerifyKey(bytes.fromhex(pub)).verify(bytes.fromhex(sha256), bytes.fromhex(sig))
Node.js (tweetnacl)
tweetnacl: nacl.sign.detached.verify(Uint8Array.from(Buffer.from(sha256,"hex")), Uint8Array.from(Buffer.from(sig,"hex")), Uint8Array.from(Buffer.from(pub,"hex")))
Referencias técnicas
Alcance actual: registro técnico verificable de contenido, captura y atestiguamiento criptográfico. Estándar de firma: RFC 8032 (Ed25519). Hash de contenido: SHA-256. Mediometro.digital contempla NOM-151 como implementación futura de certificación externa; no está activa en esta versión.