Qué hace una prueba de conocimiento cero
Generalmente, probar algo significa mostrar la evidencia: ingresar una contraseña o entregar un documento de identidad. Eso puede revelar más de lo que la otra persona necesita saber.
Una prueba de conocimiento cero es un método criptográfico que cambia esto. Una persona, el probador, demuestra una afirmación precisa a otra, el verificador, sin revelar el secreto utilizado para hacerla verdadera. El verificador aprende la respuesta que necesita (por ejemplo, que usted cumple con un requisito de edad), pero no su fecha de nacimiento, dirección o número de documento.
No es una vaga promesa de privacidad. Se debe diseñar una prueba para una afirmación exacta, y los buenos diseños hacen que hacer trampa sea abrumadoramente improbable.
El ejemplo de la cueva
Imagine una cueva con dos caminos que se encuentran detrás de una puerta cerrada con llave. La puerta se abre solo con una palabra secreta. Usted dice que la conoce, pero no quiere decirla en voz alta.
Usted entra por cualquiera de los dos caminos mientras su amigo espera afuera. Luego, su amigo dice en voz alta el camino por el que quiere que usted regrese. Si conoce la palabra, puede abrir la puerta dentro de la cueva y volver por cualquiera de los dos caminos. Si solo está adivinando, tiene apenas un cincuenta por ciento de probabilidades de estar del lado pedido.
Repita la prueba muchas veces, cada una con una elección nueva e impredecible. Diez rondas exitosas dejan a quien hace trampa con una probabilidad de apenas una entre 1,000 de tener suerte. Su amigo obtiene pruebas sólidas de que usted conoce la palabra, pero nunca llega a escucharla.
De la historia de una cueva al software real
Las pruebas reales utilizan matemáticas en lugar de una cueva, pero el objetivo de privacidad es el mismo. Pueden demostrar que una transacción sigue las reglas sin exponer todos sus detalles. También pueden permitir que una pequeña prueba sustituya a un gran lote de controles, lo que puede hacer que algunos sistemas sean más rápidos de verificar.
Las credenciales digitales son otro uso práctico. En lugar de cargar una identificación completa en cada servicio, una credencial bien diseñada podría responder solo a la pregunta: "¿Esta persona es mayor de 18 años?" o "¿Tienen esta calificación?"
Los detalles importan. Una prueba protege solo la información para la que fue creada. La aplicación circundante aún puede recopilar datos, identificarlo o tomar una mala decisión de seguridad en otro lugar.
Prueba de conocimiento cero versus cifrado de conocimiento cero
La frase "conocimiento cero" también se utiliza en el almacenamiento en la nube. Esa es una idea diferente. Cifrado de conocimiento cero significa que el proveedor de almacenamiento no puede leer sus archivos porque no tiene las claves de descifrado.
Una prueba de conocimiento cero responde a una pregunta sin exponer el secreto detrás de la respuesta. El cifrado de conocimiento cero mantiene los archivos almacenados ilegibles para un proveedor. Ambos pueden mejorar la privacidad, pero no son intercambiables.
Una lección práctica sobre privacidad
Las pruebas de conocimiento cero son un recordatorio útil para compartir la información mínima necesaria para una tarea. No lo hacen anónimo ni protegen todas las partes de una aplicación. Es posible que un servicio aún sepa que usted se conectó, cuándo lo hizo y qué otros datos existen fuera de la prueba.
Sealby no necesita pruebas de conocimiento cero porque no tiene ninguna cuenta ni servidor que le pida que demuestre algo. Los archivos están cifrados en su iPhone. Para la privacidad cotidiana, la pregunta práctica es simple: ¿qué necesita saber realmente este servicio? ¿Puede funcionar con menos?