Seguridad y privacidad

Cómo encamina Babel Mesh las peticiones, protege las cuentas y comprueba los nodos, y lo que no puede hacer.

Adónde va lo que envías

Tu petición llega a la pasarela de Babel Mesh, que elige un nodo según la clase de datos de la petición y se la reenvía. El nodo calcula el resultado con su modelo y lo devuelve a través de la pasarela.

  • El nodo que atiende una petición puede leerla. Así funciona hoy: un nodo tiene que leer el prompt para responder. Por eso no envíes contraseñas, números de documento ni secretos comerciales.
  • El nodo no puede ver quién eres. La petición que recibe un nodo no lleva nombre de cuenta ni clave, solo una etiqueta anónima.
  • Babel Mesh no guarda las conversaciones. Los registros de la pasarela contienen la hora de la petición, el modelo, el resultado y el uso. Las conversaciones se quedan en tu propio cliente o navegador.
  • Babel Mesh no revisa el contenido. La pasarela no comprueba, bloquea ni filtra las entradas ni las salidas según reglas de contenido, y no guarda extractos ni nombres de cuenta por lo que diga una solicitud. La responsabilidad por el uso del contenido corre a cargo del usuario; no envíe contenido ilegal.
  • Las comprobaciones puntuales repiten peticiones. Para verificar lo que devuelven los colaboradores, una pequeña parte de las peticiones de clase pública se vuelve a calcular en los nodos propios del operador y se comparan los dos resultados.

Clases de datos

Cada cuenta y cada petición tiene una clase de datos. Las cuentas que se registran por sí mismas empiezan en "pública". Los nodos de los colaboradores solo reciben peticiones "públicas". Las clases superiores van solo a los nodos propios del operador. Por ahora, las imágenes y el vídeo también los sirven solo los nodos del operador, porque sus resultados no se pueden comprobar por muestreo como el texto.

  • El sitio web y la API usan HTTPS. Los componentes que hay detrás (controlador, pasarela, libro mayor, relé, nodos) se comunican por conexiones cifradas con autenticación mutua de certificados; la identidad de un nodo está en su certificado.
  • Los nodos solo se conectan hacia fuera. No abren ningún puerto de entrada y sirven a través de un relé.
  • El cliente guarda tu clave de API en tu equipo, legible solo por tu cuenta del sistema. La página del cliente nunca recibe la clave; el cliente hace las peticiones por ti.
  • Las actualizaciones del cliente se comprueban con un manifiesto firmado: la clave pública está integrada en el cliente, y nunca se instala una firma incorrecta ni una versión que no sea más reciente.

Contabilidad y verificación

  • Recibos firmados por ambas partes. Por cada petición, la pasarela y el nodo firman el mismo recibo, y el libro mayor lo registra solo cuando coinciden. Un recibo contiene hashes de la petición y del resultado y el uso, no el contenido.
  • Comprobaciones aleatorias. A los nodos nuevos se les comprueba más a menudo; a los que tienen un historial limpio largo, menos. Un nodo cuyos resultados no coinciden se pone en cuarentena; cuando el operador confirma el engaño, sus ingresos se pierden y se penalizan según las reglas.
  • Los ingresos se retienen. Lo que gana un colaborador espera unos días, y durante ese tiempo las comprobaciones continúan.

Hive: el servidor no puede ver tu tarea

Hive es otro camino: las tareas y los archivos que le das se cifran en tu navegador, y el despachador y el almacén solo reciben texto cifrado. Esto es lo que hace hoy, incluido lo que no puede hacer.

  • El cifrado se hace en el navegador. Cada tarea tiene su propia clave maestra; la tarea, sus archivos y su resultado se sellan con ella, y la clave maestra se sella por separado para cada máquina autorizada a ejecutar la tarea. El despachador, el almacén y la pasarela ven texto cifrado, tamaños, horas y tu identificador de cuenta, no el contenido.
  • La máquina que ejecuta una tarea puede leerla. Tiene que abrirla para trabajar, y eso no se puede evitar. Por eso las máquinas se separan por clase de datos: las tareas públicas pueden ir a cualquier máquina admitida; las de confianza solo a las máquinas propias de la plataforma, instituciones con contrato y máquinas que pasaron la atestación remota; las confidenciales solo a las máquinas propias de la plataforma y a las atestadas. Tus propias máquinas van siempre primero, y solo ellas pueden tomar tus tareas sea cual sea la clase.
  • Las máquinas se ejecutan aisladas. Una tarea se ejecuta en un entorno aislado gVisor, sin red por defecto y con acceso solo a su propia carpeta de trabajo. Una máquina nueva debe superar varias comprobaciones antes de recibir tareas reales, y una máquina que falla una comprobación se pone en cuarentena o se veta.
  • Una clave de modelo de un solo uso por tarea. Las máquinas nunca reciben la clave de tu cuenta; una tarea usa una clave creada solo para ella, con límite de gasto. El servidor la revoca en cuanto la tarea termina, esté abierta tu página o no.
  • Cuánto tiempo se conserva. Una tarea y su resultado (cifrado) se guardan 7 días en el servidor y luego se borran; la página muestra la fecha. Cancelar lo borra al instante. Tus registros de tareas y las claves para abrirlos permanecen solo en tu navegador: si borras sus datos o cambias de navegador no se pueden abrir, salvo que actives la sincronización entre dispositivos (cifrada con una frase de paso que solo tú conoces; si la olvidas, nadie puede recuperarla).
  • Mi biblioteca también se cifra en el navegador. Los archivos se dividen en bloques y se cifran con una clave propia antes de subirlos; el almacén guarda texto cifrado, en más de una máquina, y el índice está cifrado. Un archivo que compartes con una tarea es de solo lectura, limitado en el tiempo y a sus bloques.
  • Puedes comprobarlo. Está previsto que el código central sea de código abierto; las versiones ya pueden compilarse de forma reproducible y sus hashes se registrarán en un registro de transparencia para que confirmes que el programa que ejecutas es el compilado a partir del código fuente (este paso no ha empezado); la criptografía del navegador es un archivo aparte, contrastado con la implementación del servidor mediante vectores de prueba compartidos.

Lo que Hive no puede hacer: impedir que la máquina que ejecuta una tarea vea lo que procesa (la clase confidencial depende de la atestación por hardware, por ahora solo en las máquinas propias de la plataforma); proteger frente a un navegador comprometido o un ordenador con una extensión maliciosa; el servidor sigue conociendo metadatos como «una cuenta envió una tarea de este tamaño a esta hora»; las tareas públicas pueden procesarlas máquinas de desconocidos, así que no pongas nada privado; no ha habido una auditoría de seguridad de terceros.

Lo que no puede hacer

  • Todavía no hay un entorno de ejecución de confianza (TEE): no puede garantizar que un nodo no vea el contenido, y por eso las peticiones tienen clases.
  • No ha pasado por una auditoría de seguridad de terceros.
  • Sin promesa de disponibilidad: los nodos pueden desaparecer en cualquier momento y una petición se reintenta en otro nodo, pero el éxito no está garantizado.

Esta página describe lo que el sistema hace realmente hoy. Las condiciones de servicio y la política de privacidad formales las publica por separado la entidad operadora.