1. Qué viaja con un reporte
Tres valores hacen que un reporte sea autoverificable. Aparecen en el artefacto del reporte y en los metadatos públicos del portal de compartición del enlace.content_hash — SHA-256 de la evidencia
content_hash — SHA-256 de la evidencia
Un digest SHA-256 en hex minúscula del JSON canónico de evidencia del
reporte. Los bytes son deterministas para un reporte dado, así que
cualquiera con la misma evidencia recalcula el hash idéntico. Cualquier
edición a la evidencia cambia este valor.
signature — Ed25519 sobre el hash
signature — Ed25519 sobre el hash
Una firma Ed25519 en base64 computada sobre el
content_hash en hex.
Demuestra que el hash fue firmado por la clave de firma de OrcaRouter y no
falsificado.sig_key_id — qué clave lo firmó
sig_key_id — qué clave lo firmó
Un identificador corto y estable de la clave pública activa (por ejemplo
orca- seguido de un fragmento hex). El verificador lo usa para confirmar
que el reporte fue firmado por la clave actualmente publicada — un reporte
firmado por un id de clave desconocido falla cerrado.La firma cubre el hash de contenido, no los bytes renderizados del PDF, CSV
o JSON directamente. La misma evidencia se renderiza a los tres formatos desde
un solo hash, así que la garantía de integridad es sobre la evidencia
subyacente — cada exportación de un reporte dado comparte un
content_hash,
signature y sig_key_id.2. Obtén la clave pública
La clave pública de firma se publica en un endpoint abierto — sin auth, sin contexto de espacio de trabajo. Un auditor la llama directamente.public_key es la clave pública Ed25519 de 32 bytes codificada en base64. El
key_id aquí debe coincidir con el sig_key_id del reporte — si no coincide,
el reporte fue firmado por una clave distinta (probablemente rotada o más
antigua) y no verificará contra esta clave publicada.
3. Verifica la firma
Puedes verificar la firma de dos formas. O le pides a OrcaRouter que verifique la tupla por ti, o verificas enteramente sin conexión con la clave pública publicada.El endpoint de verificación alojado
Haz POST de los tres valores del reporte al endpoint de verificación abierto. Es público — un auditor lo llama sin credenciales.valid: true significa que la firma se verifica contra la clave activa de ese
id de clave. valid: false significa que o la firma no coincide con el hash, el
hash está vacío, o el sig_key_id no coincide con la clave actualmente
publicada.
Verifica sin conexión con la clave pública
Un auditor escéptico no necesita confiar en el endpoint de verificación en absoluto. Como el algoritmo es Ed25519 estándar sobre el hash de contenido en hex, la firma es verificable con cualquier biblioteca criptográfica:4. Qué cubre la firma
Una firma demuestra que elcontent_hash del reporte fue firmado por
OrcaRouter, y el hash demuestra que la evidencia no fue editada. Una sutileza:
el hash se computa sobre una forma canónica de la evidencia que construye el
gateway — no los bytes crudos del archivo JSON o PDF. Así que re-hashear el
artefacto descargado tú mismo no reproducirá content_hash. Usa el endpoint
de verificación (§2/§3), que recalcula el hash canónico y verifica la firma
Ed25519 por ti:
| Verificación | Significado |
|---|---|
signature_valid: true | El content_hash fue firmado por la clave de OrcaRouter — la evidencia es auténtica y no editada. |
| El id de clave coincide | El sig_key_id del reporte == el id de clave publicado → firmado por la clave activa. |
5. Verificar un reporte compartido
Cuando envías a un auditor un enlace al portal de compartición en vez del archivo, los metadatos del portal ya llevancontent_hash, signature y sig_key_id, más
un flag signature_valid computado por el servidor. El auditor puede confiar
en el flag y re-ejecutar las verificaciones anteriores contra la clave pública
de forma independiente — el portal de compartición no necesita inicio de
sesión, y la ruta de verificación es idéntica.
Un artefacto compartido solo se sirve mientras su región estampada aún coincide
con la región de residencia de
datos declarada de tu espacio de
trabajo. Si la región fue cambiada, las descargas se retienen aunque los
metadatos de firma sigan siendo verificables. Esto es por diseño — ver
Lecturas entre regiones.
6. Dónde ir a continuación
Reportes firmados
Cómo se genera un reporte firmado, qué evidencia captura y cómo acuñar un
enlace de compartición para el auditor.
Exportar evidencia
Extrae la evidencia del reporte como PDF, CSV o JSON para los papeles de
trabajo de tu auditor.
Residencia de datos
Cómo el estampado de región en un reporte gobierna dónde se almacena y se
sirve.
Responsabilidad compartida
Qué garantiza OrcaRouter en la ruta del gateway frente a qué sigue siendo
tuyo.
