Encrypted Spaces es, en cierto sentido, la próxima generación del protocolo Signal, pero para herramientas más complejas y con todas las funciones que van más allá de la mensajería y las llamadas, dice Matt Green, profesor de informática especializado en criptografía en Johns Hopkins. «Han creado un sistema que es una especie de extensión de lo que puede ser el cifrado de extremo a extremo, donde se tiene una arquitectura real para realizar una colaboración cifrada de extremo a extremo», dice Green, quien revisó un documento técnico que describe el proyecto Encrypted Spaces y una aplicación prototipo. «Puedes considerarlo como el protocolo Signal para aplicaciones de colaboración».
Sin embargo, a diferencia de Signal, el código que ha publicado el grupo Encrypted Spaces no es, por ahora, una única aplicación lista para usar. En cambio, es un repositorio de código que el grupo está invitando a investigadores y desarrolladores de criptografía a revisar, con el objetivo de permitir eventualmente a los codificadores crear sus propias aplicaciones colaborativas cifradas, pero sin necesidad de ningún conocimiento de criptografía. «Queremos que no haya ninguna razón para que un desarrollador no lo haría «Quiero cifrar su aplicación de extremo a extremo, porque resulta muy fácil», afirma Trapp.
Registros de cambios y roll-ups de conocimiento cero
Encrypted Spaces tiene como objetivo abordar una limitación crucial de las aplicaciones cifradas de extremo a extremo: debido a que el servidor no puede descifrar los datos de los usuarios, cualquier manipulación de esa información debe realizarse en los dispositivos de los usuarios. Eso funciona bastante bien cuando la aplicación es una tubería que conecta los teléfonos de dos usuarios, cada uno de los cuales tiene una clave para descifrar su conversación. Pero cuando la aplicación es una plataforma colaborativa con docenas o cientos de usuarios trabajando juntos, ese modelo de cifrado de extremo a extremo crea una restricción severa: la aplicación no puede simplemente almacenar la información de los usuarios en un servidor y manipularla en esa ubicación centralizada como lo haría con una plataforma no cifrada como Slack o Google Docs.
Encrypted Spaces ofrece un nuevo modelo: una aplicación creada con él administra datos desde un servidor centralizado y permite a los usuarios realizar cambios colectivamente en esa información mientras la mantiene cifrada. Más específicamente, Encrypted Spaces mantiene un registro de cambios (un registro de cada cambio en los datos cifrados que los usuarios realizan a lo largo del tiempo) que se puede compartir con la aplicación en el teléfono o computadora de cada usuario, para que la aplicación pueda implementar esos cambios localmente y mantener la versión de la información de todos sincronizada y actualizada.
El servidor utiliza pruebas de conocimiento cero, una técnica criptográfica relativamente nueva, para demostrarle al dispositivo de cada usuario que no faltan cambios y que no se han realizado cambios falsos, pero sin que el servidor acceda a los datos no cifrados o a los cambios en ellos. (De ahí el “conocimiento cero”). De hecho, Encrypted Spaces puede utilizar una especie de propiedad “acumulada” de pruebas de conocimiento cero para garantizar que cada usuario tenga la última versión de los datos de su grupo sin aplicar cada cambio en todo el registro de cambios. «El servidor puede acumular los cambios en una prueba sucinta de que este estado actual refleja toda la historia», dice Perrin. «Puede convencerle de que ha aplicado el registro de cambios correctamente sin tener que enviarlo».
El servidor también utiliza pruebas de conocimiento cero para supervisar cómo los dispositivos de las personas administran las claves criptográficas que permiten que solo los usuarios autorizados descifren y alteren los datos, permiten invitar a nuevos usuarios y pueden revocar su acceso si alguien abandona el grupo. Los usuarios del espacio también pueden optar por compartir el historial completo de la aplicación o limitar un nuevo invitado a nuevos mensajes o datos agregados después de ingresar.



