Estas preguntas se han debatido, de una forma u otra, durante algún tiempo como el problema del "depósito de claves". Hay problemas fundamentales con la arquitectura de dar acceso de terceros a datos seguros. Estos son invariantes a cómo se implementa la criptografía. Consulte este artículo , por ejemplo.
Estoy interpretando la pregunta como cómo proporcionar acceso de terceros a datos seguros: el debate sobre si esto corresponde realmente a la situación actual con el gobierno francés que estoy considerando tangencial; y hay riesgos imposibles de resolver al hacer esto por la naturaleza del problema. Así que considera esta respuesta como hacer lo mejor de una mala situación.
Un conjunto de requisitos podría ser:
- El servidor tiene acceso a todos los registros
- Se puede conceder acceso al gobierno, pero solo a registros específicos
- Debería ser bastante eficiente registrar un nuevo usuario
- Debería ser muy eficiente autenticar a un usuario
- No necesariamente tiene que ser tan eficiente para recuperar un registro
En realidad, existe una solución muy buena para este problema con técnicas criptográficas muy modernas, llamadas encriptación funcional, sin embargo, no es eficiente. Con estos tipos de esquemas, el servidor puede mantener una clave privada maestra que les permite descifrar cualquier registro y pueden crear una nueva clave privada que solo se puede usar para descifrar registros específicos. Esto resuelve (1), (2) y (5), entra en conflicto con (3) y no proporciona (4).
Con el fin de proporcionar (4), sugeriría un sistema híbrido en el que se siga utilizando para usar cualquier sistema de autenticación basado en contraseña existente (4), y se incremente con un cifrado de los datos del usuario. registro (incluyendo la contraseña). Si el registro se proporciona al gobierno, una vez que se haya recuperado la contraseña, se puede comparar para garantizar que se utilice la misma contraseña para autenticar al usuario.
Una alternativa al uso del cifrado de funciones sería que el servidor cifrara el registro con un esquema de cifrado adecuado que les permita generar una prueba de "conocimiento cero" de lo que es el registro cada vez que el gobierno solicita un registro (en su lugar de dar la clave privada). La prueba podría encriptarse durante el tránsito al gobierno (y uno incluso podría usar una prueba de "verificador designado" para evitar que el gobierno comparta la prueba con otros).
Ninguna de estas soluciones resolverá nunca el hecho de que se debe confiar en el gobierno para que no abuse de su autoridad, ya que la protección contra esto entra en conflicto con la definición del problema que intentamos "resolver".