Pruebas de conocimiento cero - Demostrar sin revelar
Lectura de 2 min aprox.
La prueba de conocimiento cero (Zero-Knowledge Proof, ZKP) es una técnica criptográfica que demuestra que conoces cierta información sin revelar en absoluto la información en sí. En 1985, Shafi Goldwasser, Silvio Micali y Charles Rackoff establecieron su base teórica. Como tecnología innovadora que concilia la privacidad y la seguridad, por ejemplo autenticando sin enviar la contraseña o verificando la legitimidad de una transacción sin divulgar su contenido, se sitúa en la vanguardia de la tecnología de cifrado.
Comprender el concepto - La cueva de Alí Babá
El concepto de las pruebas de conocimiento cero puede entenderse de forma intuitiva con la parábola de «la cueva de Alí Babá». En el fondo de una cueva en forma de anillo hay una puerta mágica que solo puede atravesar quien conoce la palabra secreta. La demostradora (Peggy) quiere probar al verificador (Victor) que conoce la palabra secreta, pero no quiere revelar la palabra en sí.
A través de este proceso, Victor adquiere la certeza de que «Peggy conoce la palabra secreta», pero no puede llegar a conocer la palabra secreta en sí. Esta es la esencia de una prueba de conocimiento cero.
zk-SNARK y zk-STARK
| Propiedad | zk-SNARK | zk-STARK |
|---|---|---|
| Configuración de confianza | Requerida | No requerida |
| Tamaño de la prueba | Pequeño (cientos de bytes) | Grande (decenas de KB) |
| Velocidad de verificación | Rápida | Algo lenta |
| Resistencia cuántica | Ninguna (depende de curvas elípticas) | Sí (depende de funciones hash) |
zk-SNARK (Succinct Non-interactive Argument of Knowledge) tiene un tamaño de prueba pequeño y una verificación rápida, pero su configuración inicial requiere confianza. zk-STARK (Scalable Transparent Argument of Knowledge) no necesita configuración y es resistente a la cuántica, pero el tamaño de su prueba se vuelve grande. Es importante elegir el adecuado según el caso de uso.
Aplicación a la autenticación con contraseña
En la autenticación con contraseña tradicional, el usuario envía la contraseña al servidor, que la coteja. Este enfoque conlleva el riesgo de que la contraseña se filtre en la ruta de comunicación o en el lado del servidor. Al aplicar pruebas de conocimiento cero, se puede demostrar únicamente que se «conoce la contraseña correcta» sin enviar la contraseña en sí. El protocolo SRP (Secure Remote Password) se basa en esta idea y lo adoptan gestores de contraseñas como 1Password. El artículo Los fundamentos del cifrado explica el panorama general de las tecnologías criptográficas relacionadas.
Servicios de cifrado de conocimiento cero
Un servicio en la nube que se anuncia como «conocimiento cero» significa que está diseñado de modo que el propio proveedor del servicio no pueda descifrar los datos del usuario. Proton Mail ofrece cifrado de extremo a extremo para el correo, y ni siquiera los servidores de Proton pueden leer el contenido de los mensajes. Tresorit adopta el mismo diseño para el almacenamiento de archivos. En estos servicios, el cifrado se realiza en el lado del cliente con una clave derivada de la contraseña maestra, y en el servidor solo se almacena el texto cifrado. Consulta también el artículo El equilibrio entre privacidad y comodidad.
Los límites de lo que puede demostrarse sin revelar
Lo que puede demostrarse sin entregar el valor original es solo una afirmación reescrita en una forma establecida de antemano. El contenido que se quiere demostrar tiene que reformularse como una pregunta de respuesta determinada y, en el momento en que se fija el modo de esa reformulación, queda fijado también el rango de preguntas que pueden responderse. Si más adelante se desea añadir otra pregunta, hay que rehacer el mecanismo mismo. Por eso, lo que se decide primero en el diseño no es la elección del esquema, sino la lista de qué preguntas quedarán respondibles. En segundo lugar, la propiedad de no revelar el valor original en cada ocasión concreta no se hereda automáticamente al conjunto una vez que las respuestas se acumulan. Cuando se dan a una misma contraparte respuestas a preguntas distintas, la combinación de esas respuestas va estrechando el rango de valores que el original puede tomar. Lo que se estrecha aquí no es la certeza de la demostración, sino el conjunto de candidatos para un valor que se suponía no revelado. Las decisiones operativas incluyen, por tanto, además de qué preguntas responder, cuántas veces pueden darse respuestas a la misma contraparte y en manos de quién queda el historial de respuestas. Y lo que puede demostrarse es un hecho sobre un valor; a quién pertenece ese valor corresponde a otro mecanismo. Aunque se demuestre con certeza la posesión de un valor que cumple la condición, si ese valor está correctamente vinculado a quien lo presenta lo decide la parte que verifica de dónde proviene el valor. La certeza del conjunto se establece en el más débil de esos dos, de modo que reforzar solo el mecanismo de demostración no cambia nada mientras la parte que vincula siga siendo laxa.
Errores comunes
Existe el error de creer que «conocimiento cero = no existen datos», pero los datos sí existen. Conocimiento cero significa que «el verificador no obtiene ningún conocimiento nuevo durante el proceso de prueba». Además, incluso los servicios de cifrado de conocimiento cero conllevan la contrapartida de que, si olvidas tu contraseña maestra, no podrás recuperar tus datos. Es importante decidir su adopción tras comprender el equilibrio entre comodidad y seguridad.El artículo La criptografía poscuántica y la seguridad de las contraseñas también explica la tecnología criptográfica de la era cuántica.
¿Te resultó útil este artículo?