La clave pública que firma el ancla de auditoría
La pista de auditoría de la plataforma CyberArmor está encadenada por cliente. Cada 15 minutos en que la pista avanza, un ancla resume todas las cadenas, recibe una firma Ed25519 y se publica en un almacenamiento separado, fuera de la base de datos. Esta página es el segundo canal de la clave pública que comprueba esa firma. El primer canal es el registro de claves versionado en el repositorio de la plataforma.
Claves de firma del ancla
Los nombres de campo entre paréntesis son los del registro versionado, para comparar los dos canales campo por campo.
| Campo | sandbox |
|---|---|
| Identificador (kid) | ancora-236d32c2977f62d1 |
| Entorno (ambiente) | sandbox |
| Algoritmo (alg) | Ed25519 |
| Clave pública en Base64 (chave_publica) | it2htylaKLJ/5Yxdp+7wzveoQGPUUNKb9P/SQBTXN6U= |
| Válida desde (valida_desde) | |
| Revocada el (revogada_em) | No revocada |
Hoy existe solo la clave del entorno sandbox. La clave de producción se agregará a esta tabla cuando la producción empiece a operar. Ninguna clave sale de la tabla: la que se retire recibe la fecha de revocación, y un objeto firmado después de esa fecha no pasa la comprobación.
En el sandbox, la clave privada está en el mismo servidor que la base de datos. Allí la firma prueba el origen del ancla, pero no resiste a un servidor comprometido.
Cómo el auditor comprueba el ancla
La comprobación corre en la máquina del auditor y no necesita acceso a la base de datos una vez descargados los archivos.
Compare la clave en los dos canales
Compruebe que la clave de esta página es la misma del registro de claves versionado (docs/auditoria/chaves-da-ancora.json). Si los dos canales muestran claves diferentes, deténgase y trátelo como incidente.
Descargue la copia publicada de las anclas
El operador de la plataforma le entrega una credencial de solo lectura del almacenamiento de las anclas, o hace la descarga en su presencia. Descargue desde la primera ancla y no abra los archivos en un editor que reformatee JSON: un espacio de más hace fallar la comprobación.
Ejecute el verificador
El verificador es un script Python corto que depende solo del paquete cryptography. Para cada ancla comprueba forma, nombre del archivo, firma, hash y encadenamiento con la anterior, y termina con salida 0 cuando todo coincide.
Compare con la base de datos
Pida al DBA, frente a usted, el hash de la última ancla grabada en la base de datos e informe ese valor al verificador. Así la copia externa se compara con lo que la base de datos dice hoy.
El repositorio de la plataforma es privado. El verificador y el procedimiento escrito, con los códigos de falla y qué hacer en cada uno, se entregan al auditor a pedido, por correo a dpo@cyberarmor.com.br, con el asunto comenzando por [SEGURIDAD].
Límites de la comprobación
El procedimiento entregado al auditor declara estos límites, y valen aquí también.
Ventana antes de la publicación
Quien tenga superusuario en la base de datos y la clave privada del ancla puede falsificar lo que aún no se publicó, en una ventana de hasta 15 minutos, y lo que venga después. La comprobación detecta la reescritura de lo que ya estaba publicado.
Evento fuera de la cadena
Un evento que nunca entró en la pista encadenada no aparece en ninguna ancla.
Inclusión de un cliente específico
El ancla actual (versión 1) resume todas las cadenas en una sola raíz. Esta versión del verificador no compara la raíz con la base de datos ni la presencia de un cliente específico en ella.
Sello de tiempo de terceros
La versión actual del verificador todavía no comprueba el sello de tiempo RFC 3161.