Diagrama del Protocolo (Mermaid → visual)
Claves long-term intercambiadas fuera de banda (PKI o registro manual)
sig_W = Sign(sk_W, epk_W)
dh_W = DH(ek_W, epk_O)
sk_W = HKDF(dh_W, ...)
sig_O = Sign(sk_O, transcript)
dh_O = DH(ek_O, epk_W)
sk_O = HKDF(dh_O, ...)
Propiedades de Seguridad Verificadas
Secrecía del Session Key
query attacker(private_W).
El atacante Dolev-Yao no puede derivar el session key aunque controle todo el canal. Verificado: el attacker no conoce private_W cifrado bajo session_key.
Autenticación Inyectiva — Worker
inj-event(endWorker(pk_w,pk_o,k)) ==> inj-event(beginOrchestrator(pk_w,pk_o)).
Cada aceptación del Worker corresponde a una ejecución distinta del Orchestrator. Previene ataques de replay de mensajes del servidor.
Autenticación Inyectiva — Orchestrator
inj-event(endOrchestrator(pk_w,pk_o,k)) ==> inj-event(beginWorker(pk_w,pk_o)).
Cada aceptación del Orchestrator corresponde a una ejecución distinta del Worker. Previene agentes impostores.
Forward Secrecy
query attacker(fs_witness).
Incluso si las claves long-term (sk_W, sk_O) se comprometen a posteriori, las sesiones pasadas permanecen secretas. Las claves efímeras DH se descartan tras cada sesión.
Modelo ProVerif generado — cultiva-agent-handshake.pv
Supuestos del Modelo
-
Modelo Dolev-Yao: el atacante controla completamente el canal de red
c; puede leer, retransmitir y construir mensajes. - Claves long-term fuera de banda: el registro inicial de pk_W / pk_O no está modelado (infraestructura PKI asumida segura).
- Funciones ideales: HKDF, AEAD y DH modelados como funciones perfectas (seguridad computacional no cubierta).
-
Nonces únicos: la primitiva
newde ProVerif garantiza nonces frescos por sesión. - Sin reanudación de sesión: cada sesión comienza con un handshake completo; no se modela session tickets ni PSK.
-
Forward Secrecy: las claves efímeras
ek_W,ek_Ose destruyen al finalizar el proceso (ProVerif los modela comonewdentro del scope del proceso).
Cómo ejecutar la verificación
📁 Archivo generado
cultiva-agent-handshake.pv listo para pasar directamente al binario ProVerif.
Skill: mermaid-a-proverif | CULTIVA IA / Seguridad