¿Cómo deben almacenarse las contraseñas si deben ser recuperables?

18

Al "cifrar" las contraseñas está violando CWE-257 : Almacenar contraseñas en un formato recuperable. Pero esto es exactamente lo que quiere el gobierno francés . Quieren poder obtener las contraseñas de cualquier usuario. En general, esto es malo, y Bruce Schneier está de acuerdo .

Entonces, ¿cómo puede cumplir este mandato francés y mantener un alto nivel de seguridad?

    
pregunta rook 10.04.2011 - 03:06
fuente

5 respuestas

18

No fuerce aún otra contraseña en sus usuarios. Use PKI, tokens de hardware o algún otro método como OAuth o OpenID que aprovecha algún sitio de Identity Provider que se encuentra fuera de las jurisdicciones que le preocupan.

Tenga en cuenta que los requisitos reales de la ley francesa de 2004 en cuestión Loi pour La confianza en la economía numérica alias Ley de confianza en la economía digital no está clara y parece que algunos informes han malinterpretado o exagerado los efectos. Por ejemplo, parece que puede ser suficiente para simplemente proporcionar a las autoridades policiales algún otro acceso a la cuenta del usuario, por ejemplo. para una investigación de pornografía infantil, de una manera que no avise al usuario de que se está accediendo a su cuenta (como lo haría un restablecimiento de contraseña típico).

    
respondido por el nealmcb 10.04.2011 - 07:43
fuente
6

Utilice Criptografía de clave pública . Tu servidor solo tendrá la clave pública. Esto permitirá que el servidor encripte una contraseña y luego pueda comparar el texto cifrado para autenticar a un usuario.

La clave privada debe estar en una unidad dentro de una bóveda bancaria . Si el gobierno francés exige una contraseña, entonces puede acceder a la clave privada para descifrar la contraseña.

    
respondido por el rook 10.04.2011 - 03:06
fuente
4

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:

  1. El servidor tiene acceso a todos los registros
  2. Se puede conceder acceso al gobierno, pero solo a registros específicos
  3. Debería ser bastante eficiente registrar un nuevo usuario
  4. Debería ser muy eficiente autenticar a un usuario
  5. 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".

    
respondido por el PulpSpy 10.04.2011 - 18:23
fuente
2

Usando PGP, no es necesario almacenar una contraseña. El usuario se registra enviando su clave pública. Cuando necesiten iniciar sesión, envíe al usuario un texto aleatorio, haga que lo firmen y lo devuelvan. Luego verifica su firma para autentificarlos.

    
respondido por el user2018 10.04.2011 - 19:00
fuente
2

Guárdalo dos veces. Una vez que usa PKI con una clave privada que no es fácilmente accesible y una vez que usa un formato no recuperable, de esta manera, si tiene que cumplir con una solicitud legal, tiene un método para hacerlo y puede utilizar las mejores prácticas estándar para el día a día. Autenticación de un día.

    
respondido por el Yaur 23.05.2011 - 04:58
fuente

Lea otras preguntas en las etiquetas