¿Qué es el cifrado de conocimiento cero y cómo funciona?

Para muchas personas, el mayor riesgo al utilizar cualquiera de nuestros mejores servicios de copia de seguridad y almacenamiento en la nube es la seguridad: ¿cómo sabes que tus archivos estarán seguros? ¿Qué sucede cuando las autoridades se presentan en las oficinas de tu servicio con una orden judicial? Aunque estas preguntas pueden no ser una prioridad para todos, tenemos una respuesta simple: usa un servicio en la nube de conocimiento cero.

El conocimiento cero en este caso significa que nadie además de ti tiene las claves de tus datos, ni siquiera el servicio con el que estás almacenando tus archivos. También conocida como encriptación privada, es la forma definitiva en la que puedes mantener tus datos privados, aunque tiene algunas desventajas: la más importante es que si pierdes tu contraseña, desaparecerá para siempre.

Aunque el cifrado privado puede no ser para los débiles de corazón, si decides optar por un proveedor de conocimiento cero, puedes estar seguro de que nadie podrá acceder a tus datos. Con eso en mente, echemos un vistazo a qué es el cifrado de conocimiento cero, cómo funciona y sus ventajas e inconvenientes.

¿Qué es el cifrado de conocimiento cero?

Podría decirse que el cifrado de conocimiento cero es una de las formas más seguras de proteger tus datos. En pocas palabras, significa que los proveedores de respaldo o almacenamiento en la nube no saben nada (es decir, tienen «conocimiento cero») sobre los datos que almacenan en sus servidores.

La reciente ola de violaciones de datos ha puesto de relieve el cifrado y cómo puede ayudar a proteger la información confidencial. El tipo más prometedor es el cifrado de conocimiento cero, que permite una mayor seguridad con menos sobrecarga computacional que la criptografía de clave secreta tradicional que ofrecen los esquemas RSA o Diffie-Hellman.

El cifrado de conocimiento cero garantiza la privacidad incluso cuando se usa de forma segura porque los datos cifrados no se pueden descifrar sin la clave secreta.

¿Qué es la Nube de Conocimiento Cero?

El almacenamiento en la nube de conocimiento cero es un protocolo de seguridad que permite a los usuarios almacenar datos en la nube sin revelar sus identidades o el contenido de sus archivos. El proveedor de servicios nunca sabe qué archivos están almacenados en sus servidores o cargados con almacenamiento de conocimiento cero.

Esto lo convierte en una opción más segura para aquellos usuarios que desean mantener sus datos privados.

La prueba de conocimiento cero es un esquema de cifrado propuesto por los investigadores del MIT Silvio Micali, Shafi Goldwasser y Charles Rackoff en la década de 1980 y sigue siendo relevante en la actualidad.

Para su referencia, el término cifrado de conocimiento cero a menudo se usa indistintamente con los términos «cifrado de extremo a extremo» (E2E o E2EE) y «cifrado del lado del cliente» (CSE).

¿Cómo funciona?

Antes de hablar sobre el ‘cómo’, aclaremos un poco la terminología, ya que es fácil perderse en las palabras de moda. Si se está discutiendo la arquitectura de conocimiento cero (ZKA) de una aplicación (incluidas las soluciones de almacenamiento en la nube), el tema es el cifrado de datos antes de enviarlos al servidor o, en términos más abstractos, es un medio para evitar proporcionar conocimiento sobre los datos al proveedor.

Las arquitecturas de conocimiento cero se pueden implementar mediante el cifrado de extremo a extremo (E2EE), utilizando cifrados simétricos y asimétricos.

¿Cómo se puede implementar un backend simple de conocimiento cero basado en un enfoque E2EE simple? Algunas funcionalidades posibles incluyen: cifrar los datos que se enviarán utilizando una clave simétrica; generar una nueva clave simétrica para cada transferencia de datos y compartir la clave simétrica con el servidor cifrándola con la clave pública del usuario receptor.

Esto recuerda a TLS, pero ahora los datos están protegidos del proveedor de almacenamiento en la nube a través de un enfoque similar. La función de un backend de conocimiento cero suele ser almacenar datos cifrados y administrar claves públicas. Para compartir un archivo con un usuario diferente sin que el backend tenga acceso a los datos, sería necesario cifrar el archivo con una clave secreta. El archivo cifrado se puede enviar a través de un backend de acceso cero al usuario con el que compartió el archivo. El usuario del otro lado puede usar su propia clave privada para descifrar el secreto original, que luego se puede usar para obtener el archivo original. Este enfoque se denomina envoltura de claves. La clave secreta simétrica se firma (cifra) con la clave pública de un determinado usuario.

Como hemos visto, las arquitecturas de conocimiento cero pueden usar técnicas E2EE simples que probablemente ya sean familiares para la mayoría de los lectores. Sin embargo, el término ‘conocimiento cero’ surge de otra categoría de métodos criptográficos llamado prueba de conocimiento cero, también visto en ZKA.

Entonces, ¿qué es una prueba de conocimiento cero ?(o protocolo de conocimiento cero) (ZKP)? Un ZKP es un protocolo de desafío/respuesta utilizado por dos partes para proporcionar prueba de la exactitud de su clave secreta sin ninguna posibilidad de deducir el contenido del secreto original. Un procedimiento de autenticación requiere que un probador (Alice) responda a los desafíos emitidos por un verificador (Bob). Alice debe superar todos los desafíos de Bob para demostrar su identidad. En ZKP, el verificador (Bob) no puede aprender nada sobre el secreto.

Un ejemplo destacado de ZKP es el protocolo Goldreich-Micali-Wigderson (GMW): el protocolo se basa en isomorfismos de gráficos. Para aquellos lectores que no recuerdan sus lecciones de matemáticas discretas: dos gráficos, A y B, son isomorfos si existe una permutación P de vértices en A, asignando cualquier borde (a1, a2) en A a un borde en B.

El verificador debe demostrar que conoce la permutación anterior (o el secreto) transformando uno de los gráficos con otra permutación aleatoria R y mostrando la isomorfía entre el gráfico resultante H y A o B (el verificador elige A o B). El desafío se repite con diferentes pares de gráficos hasta que el verificador esté satisfecho . El problema es NP-difícil y, por lo tanto, adecuado para tareas como la autenticación.

Un ejemplo abstracto que ilustra mejor el funcionamiento de ZKP es la cueva de Ali Baba. Tenemos las mismas dos partes involucradas: Bob, el verificador, y Alice, la probadora. Alice entra en una cueva en forma de anillo. En medio de la cueva hay una puerta. Alice debe demostrarle a Bob que tiene el conocimiento secreto (o la llave) para abrir la puerta sin exponer su conocimiento a Bob o al mundo en general. Entonces, ¿cómo puede demostrar Alice que conoce la contraseña?

Las entradas a la cueva en forma de anillo están etiquetadas como A y B. Bob espera fuera de la cueva mientras Alice entra por A o B. Entonces Bob va a la entrada de la cueva y grita «A» o «B» y Alice debe salir. por el punto de entrada que ha nombrado Bob. Si Alice NO conoce el secreto (o NO tiene la llave de la puerta), todavía tiene un 50 % de posibilidades de salir en la dirección correcta. Pero si Bob repite este proceso 20 veces, la posibilidad de que Alice adivine el secreto es muy inferior a cero (alrededor de una posibilidad en un millón, para ser más específicos).

Los enfoques de conocimiento cero no terminan solo con el cifrado o la autenticación E2EE. Algunos dispositivos avanzados pueden buscar datos cifrados u operaciones de base de datos utilizando datos cifrados sin pasar primero por un proceso de descifrado.

Ventajas

Aunque muchas personas no se dan cuenta, por lo general, si te suscribes a un servicio, cualquier servicio guarda una copia de tu contraseña en algún lugar. Aunque por lo general se mantiene bastante seguro, en teoría alguien puede acceder a ella. Ese tipo de acceso generalmente está reservado para personas que ocupan un lugar demasiado alto en la empresa,  pero presenta un riesgo si la empresa en cuestión es víctima de ciberdelincuentes o si los funcionarios encargados de hacer cumplir la ley le presentan una orden judicial.

Los proveedores que usan encriptación privada resuelven este problema al no almacenar una copia de tu contraseña en ningún lugar. Aunque la tecnología detrás de esto puede complicarse , se reduce a que, en lugar de entregar la contraseña, que luego es verificada por el servicio, entrega la prueba de que conoce la contraseña. Una vez más, las matemáticas se complican, pero en la práctica funciona como cualquier otro proveedor: ingresas tu contraseña y obtienes acceso.

El resultado de esto es que incluso si un agente del gobierno se presenta con una orden judicial, todo lo que obtendrán serán archivos encriptados. Mientras que los proveedores de cifrado no privados tienen que entregar los archivos y sus contraseñas, los servicios de conocimiento cero no pueden revelar la contraseña de los clientes porque, bueno, tienen conocimiento cero.

Ten en cuenta, sin embargo, que si un servicio de almacenamiento en la nube ofrece cifrado de conocimiento cero, esto no lo convierte automáticamente en un proveedor seguro de almacenamiento en la nube. La seguridad en la nube es más que simplemente ocultar una contraseña y si, por ejemplo, sus servidores están mal encriptados, un ciberdelincuente o un agente de la NSA entrometido puede entrar por la fuerza.

Sin embargo, cuando se hace correctamente, el cifrado privado es la guinda del pastel de seguridad que no solo te protege de los delincuentes, sino también de la interferencia del gobierno.

Inconvenientes

Como nada es perfecto, el cifrado privado trae consigo algunos inconvenientes, el más importante de los cuales es que si pierdes tu contraseña, desaparece. No es posible recuperarla, ya que el servicio de conocimiento cero que has elegido solo conserva la prueba de que tienes la clave, no la clave en sí. Esto significa que si eres un poco despistado, debes evitar estos servicios, ya que solo terminarás odiándote a ti mismo cuando tus datos estén atascados detrás de un muro digital sin forma de recuperarlos.

Además del caos, los impacientes también pueden querer evitar el uso de servicios en la nube de conocimiento cero, ya que suelen ser un poco más lentos que los proveedores menos seguros. En realidad, esto no se debe al cifrado privado en sí, sino a todas las demás medidas de seguridad utilizadas. SpiderOak, por ejemplo, cifra todos tus datos en sus servidores y en tránsito, lo que ralentiza considerablemente la carga y descarga.

Otra desventaja es que el uso de estos servicios súper seguros significa que tu experiencia de usuario a veces puede verse afectada: aunque es uno de nuestros favoritos, la honestidad nos obliga a admitir que Sync.com es menos agradable de usar que otros proveedores. La vista previa de imágenes y documentos, por ejemplo, no es posible ya que su fuerte cifrado evita que se cargue nada mientras está en la nube.

Principios

¿Cómo pruebas que tienes la contraseña sin realmente revelar cuál es?

Bueno, la prueba de conocimiento cero tiene 3 propiedades principales. Recuerda que el verificador almacena cómo sabe el código de acceso haciéndote probar que una declaración es verdadera una y otra vez.

Integridad

Esto significa que el probador (tu) tienes que cumplir con todos los pasos requeridos de la manera en que el verificador requiere que los hagas.

Si la declaración es verdadera y tanto el verificador como el probador han seguido todas las reglas al pie de la letra, el verificador estará convencido de que tiene la contraseña, sin necesidad de ayuda externa.

Solidez

La única forma en que el verificador confirmará que conoce el código de acceso es si puede demostrar que tiene el correcto.

Esto significa que si la declaración es falsa, el verificador nunca estará convencido de que tiene el código de acceso, si dice que la declaración es verdadera en una pequeña probabilidad de casos.

Conocimiento Cero

El verificador o proveedor de servicios debe tener cero conocimiento de tu contraseña. Además, debe ser incapaz de aprender tu contraseña para tu protección futura.

Por supuesto, la eficacia de esta solución de seguridad depende en gran medida de los algoritmos que utilicen el proveedor de servicios elegido. No todos se hacen iguales.

Recuerda que este método es más que solo ocultar una llave.

Se trata de garantizar que nada salga a la luz sin tu consentimiento, incluso si el gobierno golpea las puertas de la empresa exigiendo que entreguen tus datos.

Por qué necesitamos el conocimiento cero en las redes Blockchain

Muchas empresas financieras, sistemas de pago digital y criptomonedas utilizan blockchain para procesar información. Sin embargo, muchas redes de cadenas de bloques todavía usan bases de datos públicos.

Esto significa que cualquiera que tenga conexión a Internet puede acceder a sus archivos o información.

Es demasiado fácil para el público ver todos los detalles de tu transacción e incluso los detalles de tu billetera digital, aunque tu nombre puede estar oculto.

Entonces, la principal protección que ofrecen las técnicas criptográficas es mantener tu anonimato. Tu nombre se reemplaza por un código único que lo representa en la red blockchain.

Sin embargo, todos los demás detalles son un juego justo.

Además, a menos que tengas un gran conocimiento y seas cuidadoso con este tipo de transacciones, cualquier persistente o atacante motivado, por ejemplo, puede localizar tu dirección IP asociada con tus transacciones piratas.

Y como todos sabemos, una vez que tienes eso, es demasiado fácil averiguar la verdadera identidad y ubicación del usuario.

¿VPN de conocimiento cero?

Las VPN son servicios de Internet que brindan a los usuarios privacidad y seguridad incomparables. Cuando usas una buena VPN (por ejemplo, ExpressVPN), toda tu conexión a Internet está protegida contra el espionaje externo. Sin embargo, el servicio VPN puede ver exactamente lo que estás haciendo.

Lo que hace un servicio VPN con esta capacidad es de gran preocupación para los usuarios. Por definición, una VPN realmente no puede ser de conocimiento cero ya que el servidor VPN tiene que estar en el medio para cifrar y descifrar el tráfico por ti.

Lo que significa que aún debes confiar en el proveedor de VPN de que no capturará ni compartirá tu actividad. No obstante, algunos proveedores de VPN han diseñado sus sistemas de tal manera que nunca se captura ni almacena información. Entonces, incluso si alguien los pirateó o les ordenó que entregaran los datos de los usuarios, simplemente no los tienen. Dado que crees en el proveedor de VPN, esto es lo que debes buscar en cualquier proveedor de VPN. La llamada VPN «sin registros».

Mensajería de conocimiento cero

El último ejemplo que veremos aquí es la mensajería de conocimiento cero. El nombre correcto para este tipo de mensajería es mensajería cifrada de extremo a extremo. Las claves se generan en el extremo del cliente y el propio proveedor no tiene idea de qué son. Esto se ha vuelto cada vez más importante a medida que los gobiernos comienzan a sentirse irritados por el hecho de que las personas se están alejando de la telefonía y optando por servicios over-the-top. No puede «tocar por teléfono» estas aplicaciones cuando usan encriptación de extremo a extremo. De hecho, es casi imposible.

Las aplicaciones como WhatsApp, Telegram y Signal usan un fuerte cifrado de extremo a extremo para asegurarse de que solo tú y la persona con la que quieres hablar sepan quién eres.

Conclusión

El cifrado de conocimiento cero es la protección de nivel superior que desearía encontrar en mis aplicaciones más importantes.

Todo es complicado hoy en día y aunque las aplicaciones simples, como un juego gratuito que requiere un inicio de sesión, no pueden necesitarlo, sin duda es fundamental para mis archivos y transacciones financieras.

De hecho, mi regla principal es que cualquier cosa en línea que requiera el uso de mis detalles reales, como mi nombre completo, dirección y, más aún, mis datos bancarios, debe tener algún tipo de cifrado.

Espero que este artículo arroje algo de luz sobre de qué se trata el grabado de conocimiento cero y por qué deberías obtenerlo.