¿Cómo elegir entre la obtención de contraseñas o el cifrado?

3

Supongamos que utiliza un administrador de contraseñas con todas las funciones posibles de los modernos administradores de contraseñas: cifrado con una clave derivada de su contraseña maestra, autocompletado, almacenamiento en la nube o local, extensión del navegador, aplicaciones web y locales, generador de contraseñas aleatorias, contraseña cambio automático, etc.

Ahora, suponga que puede elegir entre estas dos opciones:

  • almacenar una contraseña segura generada aleatoriamente directamente en la bóveda cifrada ( KeePass , como la capacidad de elegir durante cuánto tiempo la bóveda puede permanecer sin cifrar, o cuándo volver a pedir la contraseña maestra: antes de cada uso, etc.)
  • almacenar solo el patrón utilizado para derivar una contraseña segura de su contraseña maestra ( LessPass , como, con la capacidad de elegir cuando se deriva la contraseña : justo después del descifrado, antes de cada uso, etc.)

Finalmente, suponga que los números redondos utilizados por las funciones de derivación (para la clave de cifrado y la contraseña segura) son lo suficientemente altos como para que la derivación tome aproximadamente un segundo en la mayoría de los dispositivos.

¿Cómo elegir entre esos dos?
¿Cuáles son sus pros y sus contras?
¿Cuál es el más seguro en qué caso (relacionado con la criptografía y la facilidad de uso)?
¿Hay otros parámetros a tener en cuenta para realizar esta elección (características, código abierto o abierto, etc.)?

    
pregunta CidTori 13.11.2018 - 12:32
fuente

2 respuestas

7

He usado administradores de contraseñas deterministas (pwdhash, lo que se llama derivación de contraseñas) durante mucho tiempo y no recomendaría a nadie que use un administrador de contraseñas determinista. También escribí una blog post sobre esto, pero resumiré mis principales problemas aquí:

  • Es difícil determinar la cuenta para la que se obtiene la contraseña. Quizás desee utilizar la misma contraseña para wikipedia.org y para wiktionary.org, o live.com y microsoft.com. Determinar la cuenta para usar en función del nombre de dominio es bastante difícil.
  • Es difícil cumplir con los requisitos de contraseña. Algunos sitios no permiten contraseñas de 20 caracteres, y algunos sitios requieren que su contraseña tenga 20 caracteres. ¿Cómo va a manejar eso su función de derivación?
  • Es difícil cambiar la función de derivación. Una vez que usa la función de derivación, depende de ella para todas sus contraseñas. No puede aumentar la complejidad ni aumentar la longitud de las contraseñas derivadas ni nada, porque entonces no puede iniciar sesión más en todos los sitios.
  • Si utiliza algún sitio para derivar la contraseña, como lesspass.com o pwdhash.com , le proporciona a ese sitio su contraseña maestra cada vez y ese sitio genera la contraseña de su cuenta. Esto crea un enorme punto único de fracaso. Si ese sitio está comprometido, todas sus cuentas están comprometidas.

La "ventaja" principal es que un administrador de contraseñas determinista no mantiene el estado. Sin embargo, cada vez es más fácil almacenar el estado en algún lugar de Internet, ya sea en un archivo en Dropbox o mediante algún servicio en la nube.

    
respondido por el Sjoerd 13.11.2018 - 14:41
fuente
1

No hay ventajas prácticas al usar el administrador de claves basado en la función de contraseña derivada.

Si no puede confiar en que la bóveda utilice correctamente AES y PBKDF2 para asegurar una base de datos de contraseñas, tampoco puede confiar en que asegure los parámetros de un algoritmo de derivación. No hay una diferencia de seguridad en el almacenamiento de una contraseña maestra o un algoritmo de derivación (asumiendo un administrador de claves correctamente diseñado, por supuesto).

Varios sitios y aplicaciones tienen requisitos mutuamente diferentes, como la longitud de la contraseña, los requisitos de caracteres especiales, etc., por lo que cada sitio aún necesita que se almacene información adicional. Puede que no sean datos secretos, pero aún debe ser administrado en ambos sistemas.

Las políticas de rotación de contraseñas varían y pueden ser un problema (o al menos requieren aún más información almacenada por sitio). Si usa varios clientes (computadora portátil y teléfono celular, por ejemplo) todavía tiene que sincronizar la Datos adicionales al igual que lo haría con una contraseña almacenada.

Un sistema de solo derivación no puede almacenar contraseñas asignadas. Si trata con sistemas externos, como un administrador de contraseñas de empresa, el administrador externo puede ser responsable de rotar y generar nuevas contraseñas.

El retraso por clave que mencionó para la función de derivación no tiene mucho sentido. Un administrador de contraseñas emplea un algoritmo como PBKDF2 para evitar adivinar la contraseña maestra en el descifrado inicial de la clave maestra; Cada contraseña desencriptada después de eso toma microsegundos. Tenga en cuenta que el mismo retraso podría agregarse a un administrador de contraseñas tradicional. Sin embargo, no hay ningún beneficio en reducir la velocidad de su propio sistema cuando no afecta a los atacantes.

Las funciones de derivación han sido populares entre los humanos porque se pueden memorizar: es fácil descifrar que su contraseña para google es Cid123! @ # googlE, etc. Pero una computadora moderna puede generar y almacenar una computadora con la misma facilidad. Cadena aleatoria de alta calidad para cada sitio. En esta era de 64 GB + chips flash en teléfonos móviles y terabytes de almacenamiento en computadoras, la docena de megabytes de almacenamiento necesarios para miles de contraseñas de sitios web simplemente no es un problema práctico. Y con el almacenamiento basado en la nube y la cobertura de datos móviles ubicuos, compartir las contraseñas en múltiples dispositivos tampoco es un problema.

    
respondido por el John Deters 14.11.2018 - 07:34
fuente

Lea otras preguntas en las etiquetas