Introducción
En mayo de 2026, The Register reportaba que los management engines de Intel y AMD —esos componentes que operan por debajo del sistema operativo— quedaban fuera del alcance de marcos de soberanía europea como SecNumCloud. Pero el problema no termina ahí: el protocolo diseñado para probar que un servidor está corriendo dentro de un Trusted Execution Environment (TEE) también tiene un fallo arquitectónico fundamental.
El mecanismo en cuestión es Attested TLS, un protocolo que intenta demostrar, durante el handshake TLS, que el servidor remoto está ejecutándose en un entorno de confianza antes de intercambiar datos sensibles. Vendedores como Intel y Google Cloud lo promocionan como pilar de la computación confidencial para nubes soberanas. Pero investigación independiente de la Technische Universität Dresden demuestra que, en la práctica, Attested TLS no puede garantizar que el cliente está hablando con el servidor correcto, y mucho menos que la conexión no fue redirigida a una máquina maliciosa.
El problema no es un bug puntual: es un fallo de diseño en cómo se vincula la atestación criptográfica con la conexión TLS real. Y lo peor: los equipos de DevOps que confían en esta tecnología para cumplir con regulaciones de soberanía de datos están operando sobre una base insegura.
Qué ocurrió
El equipo de Muhammad Usama Sardar, investigador en TU Dresden, dedicó dos años a verificar formalmente si Attested TLS cumple su promesa. Usando ProVerif —una herramienta para análisis simbólico de protocolos— descubrió que el protocolo no hace lo que dice hacer.
En su paper «Identity Crisis in Confidential Computing» (AsiaCCS 2026), Sardar y sus coautores demostraron ataques de desvío (diversion attacks) contra dos variantes actuales de Attested TLS. El ataque más grave es el relay attack: un cliente que intenta conectarse a un servidor legítimo termina cifrando su tráfico hacia una máquina maliciosa, sin que el cliente detecte el cambio. El servidor original no cometió ningún error; simplemente, el protocolo solo verifica la integridad del software, no su ubicación.
Posteriormente, en «Intra-handshake.fail» (ESORICS 2026), el equipo analizó siete mecanismos distintos para vincular criptográficamente la atestación con la conexión TLS durante el handshake. Ninguno logró evitar el relay attack. Esto incluye sistemas en producción como:
- Meta’s Private Processing para WhatsApp.
- Edgeless Systems’ Contrast.
- Cocos AI (versiones 0.4.0 a 0.8.2).
- Un proof-of-concept del Confidential Computing Consortium’s Attestation Special Interest Group (CCC).
El CVE asignado a este fallo es CVE-2026-33697, con un CVSS score de 7.5/10 (severidad alta). Para ponerlo en contexto, el ataque BadRAM contra AMD SEV-SNP en 2024 tenía un score de 5.3. Este CVE es, hasta ahora, el de mayor gravedad en el clúster de fallos recientes en computación confidencial, superando a Fabricked (5.9), BreakFAST (5.9) y Staleus (4.0).
Impacto para DevOps, Infraestructura y Seguridad
Para equipos de DevOps y Cloud
Los equipos que implementan computación confidencial —especialmente en entornos regulados como nubes soberanas europeas— deben asumir que Attested TLS no está funcionando como se espera. Esto incluye:
- Proveedores de nube que promocionan instancias confidenciales (ej: Google Cloud Confidential Computing, AWS Nitro Enclaves).
- Plataformas de IA/ML que usan TEEs para procesar datos sensibles (ej: WhatsApp’s Private Processing).
- Sistemas de gestión de identidades que dependen de atestaciones para autorizar acceso (ej: IAM en entornos híbridos).
El relay attack no requiere acceso al servidor objetivo: un atacante puede redirigir tráfico desde cualquier punto de la red hacia una máquina controlada por él, siempre que esta ejecute el mismo software. Esto invalida la promesa de confidencialidad y soberanía de datos.
Para equipos de Seguridad y SRE
El fallo expone una falsa sensación de seguridad:
- La atestación no garantiza ubicación: Solo prueba que el código se ejecuta en un TEE, no que ese TEE esté en la máquina esperada.
- Los manual reviews son insuficientes: Meta contrató a Trail of Bits para auditar su implementación de Attested TLS en WhatsApp, pero el ataque pasó desapercibido porque el análisis fue manual, no formal.
- Falta de madurez del estándar: El IETF TLS Working Group y el CCC Attestation SIG ya reconocieron los relay attacks, pero no hay una solución definitiva.
El impacto real es que ningún sistema que dependa de Attested TLS puede garantizar confidencialidad de datos en tránsito bajo este esquema actual. La única defensa viable hoy es reducir la confianza en Attested TLS y complementar con otros controles.
Detalles técnicos
¿Cómo funciona Attested TLS?
Attested TLS intenta vincular tres niveles de pruebas criptográficas durante el handshake:
- Nivel 1: Vincula la atestación solo al intercambio inicial de claves (ej: Diffie-Hellman).
- Nivel 2: Vincula la atestación a la clave de tráfico del cliente (antes de que el servidor demuestre su identidad).
- Nivel 3: Vincula la atestación a la clave de tráfico de la aplicación (la usada para cifrar datos reales).
| Mecanismo de vinculación | Nivel alcanzado | Implementaciones afectadas |
|---|---|---|
| Attested TLS clásico | Nivel 1 | Meta WhatsApp, Edgeless Contrast |
| Intra-handshake (7 variantes) | Nivel 1 o falla | Cocos AI (0.4.0–0.8.2), CCC PoC |
| Propuesta de Sardar | Nivel 2 | – |
El relay attack explota una debilidad fundamental: Attested TLS solo verifica que el servidor está ejecutando el código correcto en un TEE, pero no verifica que ese TEE esté en la IP esperada. Un atacante puede:
- Interceptar el tráfico del cliente (ej: mediante un man-in-the-middle).
- Redirigir la conexión a otra máquina con el mismo software (ej: un servidor en otro país).
- Completar el handshake con atestación válida, pero el tráfico real se dirija a la máquina maliciosa.
CVE-2026-33697: Detalles clave
- CVSS: 7.5 (Alto).
- Fecha de publicación: Marzo 2026.
- Afecta: Todas las implementaciones de Attested TLS que usan intra-handshake attestation.
- Vector de ataque: Red (network-based).
- Complejidad del ataque: Baja (solo requiere control de red y un servidor con el mismo software).
Limitaciones de las mitigaciones propuestas
Sardar propuso un «cryptographic binder» que combina el secreto del handshake con la clave pública del servidor, logrando Nivel 2. Pero:
- No alcanza Nivel 3: No puede vincular la atestación con la clave de tráfico de la aplicación.
- Rompe propiedades de TLS 1.3: La solución requiere cambios en TLS que podrían afectar interoperabilidad.
Qué deberían hacer los administradores y equipos técnicos
1. Identificar si su sistema usa Attested TLS
Revisar la documentación de sus proveedores de nube o plataformas internas:
- AWS Nitro Enclaves: Usa un mecanismo similar a Attested TLS para autorizar enclaves.
- Google Cloud Confidential VMs: Depende de AMD SEV-SNP, pero el relay attack aplica si usan atestaciones durante el handshake.
- Meta WhatsApp Private Processing: Afectado según el paper.
- Edgeless Contrast: Afectado.
- Cocos AI: Afectado en versiones 0.4.0 a 0.8.2.
dmesg | grep -i "tdx"Si muestra logs de Intel Trust Domain Extensions, su sistema usa TEEs y podría estar afectado.
2. Aplicar mitigaciones temporales (hasta que haya una solución definitiva)
Para equipos en producción:
- Desactivar Attested TLS en entornos regulados: Si su sistema depende de este protocolo para cumplir con SecNumCloud o GDPR, reemplácelo urgentemente por:
– Autenticación basada en tokens (OAuth2/JWT): Si el contexto lo permite.
– VPNs punto-a-punto: Para aislar tráfico confidencial antes de llegar al TEE.
- Restringir acceso a TEEs por IP: Aunque no evita el relay attack, reduce el riesgo de redirección masiva.
# Ejemplo en AWS Nitro Enclaves (usando IAM policies)
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "ec2:RunInstances",
"Resource": "arn:aws:ec2:*:*:instance/*",
"Condition": {
"IpAddress": {"aws:SourceIp": ["192.0.2.0/24"]}
}
}]
}
Para desarrolladores:
- Evitar depender de Attested TLS para seguridad crítica: Si su aplicación procesa datos sensibles, no confíe solo en la atestación para autorizar acceso.
- Usar firmas de código adicionales: Complementar la atestación con un hash del binario firmado por el proveedor de confianza.
- Implementar replay protection en el handshake:
// Ejemplo en Rust usando tokio-rustls y attester
use rustls::{ClientConfig, RootCertStore};
use webpki::anchor_from_trusted_cert;
fn build_client_config() -> ClientConfig {
let mut config = ClientConfig::builder()
.with_safe_defaults()
.with_root_certificates(RootCertStore::empty())
.with_no_client_auth();
// Añadir replay protection: verificar que el nonce de la atestación
// coincida con el del handshake
config.attestation_verifier = Some(Box::new(|attestation, handshake_nonce| {
attestation.nonce == handshake_nonce
}));
config
}
3. Seguimiento del CVE y actualizaciones
- Monitorear el repositorio del CCC Attestation SIG: https://github.com/confidential-computing/attestation-sig.
- Aplicar parches cuando estén disponibles: El CCC ya reconoció el problema, pero no hay fecha estimada para una solución definitiva.
- Usar herramientas de análisis formal:
# Instalar ProVerif para verificar protocolos
git clone https://github.com/proverif/proverif.git
cd proverif && make
./proverif <archivo.pv>
Conclusión
Attested TLS prometía ser la base criptográfica de la computación confidencial, pero la investigación formal demostró que no cumple su función más básica: probar que el cliente está hablando con el servidor correcto. El relay attack, descubierto mediante análisis exhaustivo con ProVerif, invalida la confianza en este protocolo para entornos donde la soberanía de datos es crítica.
Los equipos de DevOps y Seguridad deben actuar ahora:
- Auditir si su infraestructura usa Attested TLS (especialmente en nubes soberanas).
- Reemplazarlo temporalmente por controles más maduros (mTLS, VPNs, tokens).
- Presionar a los proveedores (Intel, AMD, cloud providers) para que adopten soluciones formales verificadas.
Hasta que no exista un estándar que alcance el Nivel 3 de vinculación —algo que, según el paper, «podría no ser posible» dentro de la arquitectura actual—, la computación confidencial sigue siendo un castillo de naipes. La única solución realista hoy es reducir la confianza en Attested TLS y complementar con otros mecanismos de seguridad.
Fuentes
- The Register: «Confidential computing’s core trust mechanism is broken. The fix may not exist»
- Papers With Code: «Identity Crisis in Confidential Computing» (AsiaCCS 2026)
- Google Security Blog: Discusión sobre protocolos de atestación en TLS
- CVE Details: CVE-2026-33697
- Confidential Computing Consortium Attestation SIG: Repositorio oficial
