CÓMO FUNCIONA LA VERIFICACIÓN

Comprobado en tu navegador.
Sellado para el enclave.

Qué comprueba tu navegador, qué ve nuestro retransmisor y en qué sigues confiando en nosotros.

Aún sin evaluación independiente

  • Enclave comprobado primero

    Cómo lo sabemos

    Antes de tu primer mensaje, el verificador de código abierto de Tinfoil comprueba en tu navegador el informe firmado por el chip. Un informe que no se verifica lo detiene todo.

  • Sellado en tu pestaña

    Cómo lo sabemos

    Cada solicitud se cifra con EHBP (HPKE, AES-256-GCM) para la clave que nombra la atestación, antes de salir.

  • El retransmisor ve bytes

    Cómo lo sabemos

    Nuestro retransmisor comprueba tu cuenta y tu asignación y pasa el texto cifrado a los hosts de Tinfoil. Ve tamaños, horas y tu cuenta, y no guarda ninguna copia.

  • Un comprobante por respuesta

    Cómo lo sabemos

    Tu navegador comprueba el enclave del modelo que respondió, donde su hardware lo permite, y guarda lo que encontró con la respuesta.

Quién podría mirar, y qué se lo impide.

  1. La red

    Riesgo residual: Bajo
    Obtiene
    Bytes sellados, tamaños, horas
    Lo impide
    HTTPS y luego el sellado para el enclave
    Sigue abierto
    Tamaños y tiempos del tráfico
  2. Nuestro retransmisor

    Riesgo residual: Medio
    Obtiene
    Tu cuenta, IP, tamaños, modelo
    Lo impide
    Sellado en tu pestaña; no puede abrirlo
    Sigue abierto
    Los metadatos que ve
  3. El host en la nube

    Riesgo residual: Medio
    Obtiene
    Memoria del enclave cifrada
    Lo impide
    AMD SEV-SNP o Intel TDX, con atestación
    Sigue abierto
    Fallos del hardware; lo que afirma Tinfoil
  4. Un enclave falso

    Riesgo residual: Bajo
    Obtiene
    Nada: tu pestaña lo rechaza
    Lo impide
    Atestación, comprobada en tu navegador
    Sigue abierto
    Código verificado no es código revisado
  5. Código del sitio modificado

    Riesgo residual: Medio
    Obtiene
    Lo que escribes, antes del sellado
    Lo impide
    Manifiesto, firma, tu propia compilación
    Sigue abierto
    Una página no puede responder del todo por sí misma
  6. La API para desarrolladores

    Riesgo residual: Alto
    Obtiene
    Tu solicitud, en memoria
    Lo impide
    Sin almacenamiento ni registros, por nuestra política
    Sigue abierto
    Confías en nuestra pasarela

DENTRO DE UN SERVIDOR

Dónde empieza el enclave, y dónde acaba.

Desplázate para desmontar un servidor con GPU: lo que queda dentro del límite del enclave y lo que queda fuera.

  1. Disipador integradoLa tapa metálica sobre los chips de la GPU.
  2. Chip de la GPUDonde se ejecuta el modelo. La documentación de Tinfoil dice que sus GPU de NVIDIA (H100, H200 y B200) funcionan en modo de computación confidencial.
  3. Memoria de alto ancho de bandaGuarda los pesos del modelo, y tu solicitud mientras se responde.
  4. Máquina virtual confidencialEn el procesador del servidor (AMD SEV-SNP o Intel TDX): el enrutador de Tinfoil y el servidor del modelo, en una memoria que el anfitrión no puede leer. Su chip firma el informe que comprueba tu navegador.
  5. El límite del enclaveLo que el hardware mantiene fuera del alcance del anfitrión, y lo que describe la atestación. Tu solicitud solo se abre dentro de él.
  6. El anfitriónLa placa, su hipervisor y sus controladores, y quien la opere: fuera del límite. Lleva bytes sellados hacia dentro y hacia fuera.

Una ilustración del tipo de máquina que usa Tinfoil, no la imagen de una en concreto. El registro de versión firmado de Tinfoil nombra las CPU, la memoria y las GPU de cada enclave; el panel Verificado del espacio de trabajo las muestra.

Leer el texto completoOcultar el texto completoUnos 12 minutos, seis diagramas

En resumen

Undergrove ejecuta modelos de pesos abiertos dentro de enclaves de hardware operados por Tinfoil. Parte de lo que eso significa lo comprueba tu propio navegador; parte es una declaración de Tinfoil; y parte depende de nosotros. Aquí está cada cosa.

Tu navegador comprueba

  • Que el enclave es hardware auténtico que ejecuta el código que Tinfoil publicó.
  • Que cada solicitud se sella con la clave de ese enclave antes de salir de tu pestaña.
  • Para el comprobante de cada respuesta, el enclave del modelo que respondió, cuando su hardware lo permite.

Tinfoil declara

  • Que no puede acceder a sus enclaves y que nada de lo que hay en ellos persiste entre reinicios.
  • Que sus GPU compatibles funcionan en modo de computación confidencial.

Confías en nosotros para

  • El código que este sitio envía a tu navegador, que puedes comparar con la compilación.
  • Lo que el retransmisor hace con lo que puede ver: tamaños, horas y tu cuenta.
  • La pasarela de la API para desarrolladores, que lee las solicitudes en memoria.

Nada de esto ha sido evaluado todavía de forma independiente.

01 · Atestación

El chip responde por el código.

Un enclave de hardware es una parte de un servidor en la que su propio anfitrión no puede mirar: el procesador cifra la memoria del enclave y deja fuera el software del anfitrión. Por sí solo, eso sería solo una promesa. Lo que lo hace comprobable es la atestación. Cuando el enclave arranca, el procesador mide el código que cargó y firma un informe de esa medición con una clave que respalda el fabricante del chip. El informe también nombra la clave pública con la que el enclave descifrará.

Antes de tu primer mensaje, el espacio de trabajo obtiene ese informe del enclave enrutador de Tinfoil, a través de nuestro servidor, y ejecuta sobre él el verificador de código abierto de Tinfoil en tu navegador. Obtenerlo a través de nosotros no cambia nada: no podemos falsificar la firma del chip, y un informe que no se verifica lo detiene todo.

Enclave de TinfoilInforme del hardwareEl procesador mide el código con el que arrancó el enclave y firma un informe de él, que nombra la clave pública del enclave, con una clave que respalda el fabricante del chip.
GitHub y SigstoreVersión publicadaTinfoil compila su código abierto en público y registra la medición de cada versión en el registro público de transparencia de Sigstore.
Tu navegadorVerificador de código abierto de TinfoilComprueba la firma del informe frente a las claves del fabricante del chip, comprueba el registro de compilación firmado de la versión y compara las dos mediciones.

Coinciden: las solicitudes se sellan con la clave que nombra el informe.

Algo falla: no se envía nada, y el espacio de trabajo dice por qué.

Figura 1. Tu navegador compara dos cosas que puede comprobar sin fiarse de nosotros: el informe firmado del chip sobre el código que se ejecuta en el enclave y la versión que Tinfoil publicó para ese código. Solo si coinciden sella algo.

Las comprobaciones del verificador, en orden

  1. Encontrar la versión que Tinfoil publicó para este código.
  2. Comprobar el informe de atestación del hardware del enclave frente a las claves de firma del fabricante del chip.
  3. Comprobar el registro de compilación firmado de la versión (Sigstore, desde GitHub).
  4. Comparar: el código medido en el enclave debe ser exactamente esa versión.
  5. Comprobar que la clave de cifrado es la que nombra la atestación del enclave.

Un informe verificado se reutiliza durante hasta diez minutos, en esta pestaña o en otra de este sitio, y solo si es exactamente el mismo, según su SHA-256. El espacio de trabajo muestra cada comprobación en Verificado, y la página de arquitectura muestra el código que la ejecuta.

02 · Sellado

Solo el enclave puede abrirlo.

Con el enclave verificado, cada solicitud real se sella en tu pestaña antes de salir. Su cuerpo se cifra con EHBP, el protocolo de Tinfoil para cifrar cuerpos HTTP, con la clave que nombró la atestación. EHBP usa HPKE, un estándar para cifrar con la clave pública de alguien: tu pestaña crea un par de claves nuevo para la solicitud, lo combina con la clave del enclave en un secreto compartido y cifra con AES-256-GCM.

La mitad pública nueva viaja junto al texto cifrado, como clave encapsulada. Solo la clave privada del enclave, que nunca sale del enclave, puede convertirla de nuevo en el secreto. La respuesta vuelve del mismo modo, en fragmentos sellados que tu pestaña abre a medida que llegan.

Tu pestañaUn par de claves nuevo, por solicitudCombinado con la clave pública verificada del enclave, da un secreto que nadie más puede deducir.
Texto cifrado + clave encapsulada
Retransmisor de UndergroveLo pasaNo tiene ninguna clave que lo abra.
Los mismos bytes
Enclave de TinfoilLo abreCon la clave privada que nunca sale del enclave.
Figura 2. EHBP sella el cuerpo de cada solicitud con HPKE: X25519, HKDF-SHA256 y AES-256-GCM. La respuesta también vuelve sellada y solo se abre en tu pestaña. Sella tú mismo un mensaje y mira cada paso.

03 · El retransmisor

Bytes que no puede leer.

Las solicitudes selladas van a nuestro retransmisor, una función en Vercel, en lugar de ir directamente a Tinfoil. Comprueba quién pregunta y que esté dentro de su asignación, y pone en la solicitud la clave de Tinfoil de Undergrove, para que no necesites una cuenta en Tinfoil. Rechaza todo lo que no vaya dirigido a uno de los servidores propios de Tinfoil o no lleve una clave encapsulada.

No puede contar tus palabras, así que estima el coste de cada solicitud a partir del tamaño del texto cifrado, tirando por lo alto. No guarda ninguna copia, y sus registros solo contienen nombres de rutas, códigos de estado y tiempos.

Por fuera: lo que ve el retransmisor

  • Tu cuenta y tu dirección IP (a través de Vercel, nuestro alojamiento)
  • El tamaño, la hora y la ruta de cada solicitud
  • Qué modelo respondió, por una cabecera que pone Tinfoil
  • Si se usaron búsqueda web o imágenes, según declara tu navegador, para poder cobrarlas

Sellado por dentro: no puede leerlo

  • Tus mensajes y archivos
  • Las respuestas
  • Tus instrucciones y notas de memoria
Figura 3. El retransmisor rechaza todo lo que no esté sellado para uno de los servidores propios de Tinfoil, pone nuestra clave de Tinfoil y pasa los bytes. Cobra por tamaño porque no puede contar palabras. Mira una solicitud tal como la vio el retransmisor.

04 · Comprobantes

Dos enclaves, y un comprobante para cada respuesta.

El enclave enrutador que verificó tu navegador no ejecuta el modelo. Abre tu solicitud y la pasa al enclave donde el modelo se ejecuta con sus GPU, que el enrutador verifica por su cuenta, según su código publicado, y nombra en una cabecera de la respuesta.

Después, tu navegador comprueba también ese enclave, con el mismo verificador, frente al repositorio que el enrutador de Tinfoil fija para ese modelo. Lo que encuentra se guarda con la respuesta como comprobante: el enclave, el código medido en él, la versión con la que coincidió y la clave con la que se selló la solicitud. Un comprobante es el registro propio de tu navegador, no firmado por nosotros ni por Tinfoil; la atestación que lo respalda está firmada por AMD y GitHub, así que cualquiera puede volver a comprobarla.

Enclave 1El enrutador de TinfoilVerificado antes de enviar. Abre la solicitud.
De enclave a enclave
Enclave 2El modelo y sus GPUNombrado en la cabecera tinfoil-enclave.
Comprobado de nuevo
Tu navegadorEl comprobante de la respuestaGuardado con la respuesta: el enclave, el código medido, la versión y la clave.
Verificado
Hardware auténtico que ejecuta una versión publicada del repositorio que el enrutador de Tinfoil fija para el modelo.
No comprobado
Hardware que el verificador del navegador aún no puede leer: lee informes de AMD SEV-SNP, así que un enclave en Intel TDX queda registrado como no comprobado.
Sin confirmar
La comprobación se ejecutó y un paso falló, por ejemplo un enclave que ya está en una versión más reciente que aquella con la que lo empareja el servicio de Tinfoil.
Figura 4. El enrutador de Tinfoil verifica por su cuenta el enclave del modelo, según su código publicado, y lo nombra en una cabecera de la respuesta. Tu navegador vuelve a comprobar ese enclave para el comprobante de la respuesta. La cabecera no está cubierta por el cifrado, así que esto muestra que el enclave nombrado es auténtico, no que esta solicitud fuera allí; ese salto depende del código publicado del enrutador.

05 · La API para desarrolladores

Un camino distinto, dicho con claridad.

El código que llama a la API para desarrolladores envía su solicitud por HTTPS a nuestra pasarela, que la lee: para comprobarla, aplicar límites y ejecutar herramientas. La lee en memoria y nunca la guarda ni la registra. Después, la pasarela hace lo que tu navegador hace en el espacio de trabajo: verifica el enclave con el SDK de Tinfoil y sella la solicitud para él.

Así que en este camino nos confías la solicitud mientras la pasarela la tiene. Lo que sí puedes seguir comprobando es el enclave: cada respuesta de la ruta de Tinfoil lleva cabeceras que nombran el paquete de atestación que verificó la pasarela, para que lo verifiques de nuevo. La documentación para desarrolladores explica cómo.

Espacio de trabajo
Tu navegadorVerifica y después sella
RetransmisorNo puede leerlo
EnclaveLo abre
API para desarrolladores
Tu servidorEnvía por HTTPS
Nuestra pasarelaLa lee en memoria para comprobarla; nunca la guarda ni la registra
EnclaveVerificado antes por la pasarela
Figura 5. Dos caminos hacia los mismos enclaves. En el espacio de trabajo sella tu navegador; a través de la API lo hace nuestra pasarela, después de leer la solicitud en memoria para comprobarla. Cada respuesta de la API desde los enclaves de Tinfoil nombra el paquete de atestación que verificó la pasarela, que GET /v1/attestation?sha256= devuelve para que lo compruebes de nuevo.

06 · Esta página

Comprobar el código que comprueba.

Todo lo anterior se ejecuta en código que este sitio envía a tu navegador, así que ese código también importa. Cada compilación escribe un manifiesto: el SHA-256 de cada archivo que sirve el sitio y el commit del que se compiló.

Una página no puede responder del todo por sí misma: una comprobación que se ejecuta en la página es tan honesta como la página. La comprobación más sólida no depende de nosotros en absoluto: compila tú mismo el commit en el entorno fijado y compara los manifiestos.

La compilaciónUn manifiestoEl SHA-256 de cada archivo que sirve el sitio, y el commit del que viene.
Publicado con el sitio
Tu navegadorCalcula el hash de lo que cargóSe nombra cada archivo que difiera.
O, en tu equipo
CualquieraCompila de nuevo el commitY compara los dos manifiestos.
Figura 6. Verificar esta página calcula el hash de los archivos que cargó tu navegador y los compara con el manifiesto de la compilación y su commit. Compilar de nuevo ese commit en el entorno fijado (npm run rebuild:site) debería dar el mismo manifiesto, byte a byte; cualquiera puede hacerlo y compararlo, sin preguntarnos.

07 · Límites

Lo que esto no demuestra.

  • Las declaraciones de Tinfoil son de Tinfoil. Que no puede acceder a sus enclaves, que nada de lo que hay en ellos persiste entre reinicios y que sus GPU funcionan en modo de computación confidencial es lo que dice Tinfoil. Tu navegador comprueba que el hardware es auténtico y ejecuta el código publicado.
  • El hardware forma parte de aquello en lo que confías. La protección es tan buena como los procesadores, su firmware y las claves de los fabricantes de chips, y los enclaves de hardware ya han tenido vulnerabilidades publicadas.
  • Un salto depende del código publicado. Que tu solicitud pasara del enrutador al enclave del modelo depende del código publicado del enrutador. Tu navegador solo puede comprobar el enclave del modelo en AMD SEV-SNP; en Intel TDX queda registrado como no comprobado.
  • El retransmisor ve el exterior. Tu cuenta, tu dirección IP, tamaños, horas y qué modelo respondió.
  • Publicado no es lo mismo que revisado. El verificador muestra qué código se ejecuta, no que el código no tenga fallos.
  • Todavía sin evaluación independiente. Ningún auditor ha revisado hasta ahora este diseño ni su código.

Para ver quién podría ver qué, observador por observador, lee el modelo de amenazas.

08 · Ir más allá

Mira cada parte en funcionamiento.