¿El hecho de cambiar la cantidad predeterminada de iteraciones en KeePass (u otras aplicaciones de cifrado) aumenta la seguridad?

2

Inspirado por esta pregunta sobre la dificultad de descifrar una base de datos KeePass , me pregunto si cambiar el número predeterminado de iteraciones en una aplicación de cifrado (por ejemplo, KeePass) aumenta la seguridad. Espero que la pregunta sea aplicable a una variedad de aplicaciones; Si no, supongo que hoy tengo curiosidad por KeePass.

Mi razonamiento es que un atacante no conoce la cantidad de iteraciones antes de tiempo y, por lo tanto, tiene dos opciones:

  1. Supongamos que el usuario de la aplicación de cifrado no se molestó en cambiar el número predeterminado de iteraciones, o
  2. Verifique la validez de la contraseña para un rango de miles de posibles opciones de iteración (el valor predeterminado es 6.000, por lo que tal vez sea entre 5.000 y 20.000 o más)

Debido a que el # 2 es mucho más trabajo, es una apuesta más segura para que el usuario cambie el valor predeterminado. Mi teoría sería que usar un número como 6,001 en realidad aumenta sustancialmente la seguridad, ya que el atacante centrará sus esfuerzos en el valor predeterminado de 6,000.

He leído algunas preguntas relacionadas, que tratan en general cuántas iteraciones elegir. Lo que no me queda claro es si usar una aplicación como KeePass, donde el atacante conoce el número predeterminado , es importante cambiar el valor predeterminado. Si mi corazonada es incorrecta, me dirá que usar 6,001 iteraciones en KeePass es tan seguro como 6,000.

pregunta Logical Fallacy 16.03.2015 - 16:55
fuente

2 respuestas

4

Antes de comenzar, creo que es importante señalar que el recuento de la ronda se almacena en el encabezado del archivo del diccionario KeePass, para que KeePass pueda abrir sus archivos de contraseña independientemente de la configuración en sus preferencias . De lo contrario, no podría abrir un archivo KeePass en otra máquina si tuviera un número diferente de iteraciones, sin reconfigurar primero KeePass a ese mismo valor de iteración (que tal vez ni siquiera recuerde).

Tratar de mantener en secreto el número de iteraciones no tiene sentido, y está directamente en contradicción con el Principio de Kerckhoffs - solo la contraseña debe ser considerada secreta; El algoritmo y sus parámetros generales deben considerarse conocidos.

Lo más importante a tener en cuenta es que el PBKDF2 está diseñado para protegerse contra ataques de precomputación (por ejemplo, tablas de arco iris) y ataques de fuerza bruta donde el atacante tiene acceso inmediato al hash o un oráculo equivalente. Aumentar el número de iteraciones hace que el atacante trabaje más duro para cada conjetura de contraseña, al costo de demorar más en abrir la bóveda legítimamente.

Esencialmente, el sistema de seguridad se basa en el hecho de que tiene que hacer una cantidad de trabajo (llamémoslo W ) al ingresar la contraseña conocida, pero el atacante tiene que probar cientos de miles de contraseñas (100000 * W), y por lo tanto, tiene que hacer cientos de miles de veces más trabajo que usted. Si su KDF es particularmente rápido, entonces W puede implicar solo un milisegundo de cálculo, lo que significa que 100000 * W es de aproximadamente un minuto. Sin embargo, si puede tolerar una demora de un segundo, puede aumentar el factor de trabajo W de modo que el trabajo del atacante tome días o años, no minutos.

    
respondido por el Polynomial 16.03.2015 - 17:34
fuente
0

Está asumiendo incorrectamente: el número de iteración es parte de los encabezados "públicos" del formato de archivo keepass.

Es necesario, de lo contrario, Keepass mismo no sabría cuántas iteraciones realizar (tendría que realizar el todo). Puede verificar que esto está verificando el keepass source code .

Eso no significa que aumentar la cantidad de iteración utilizada por keepass para la obtención de claves no sea útil, solo significa que aumentarla en uno no hace mucho por seguridad (más o menos la aumenta en un factor de 1/6000)

    
respondido por el Stephane 16.03.2015 - 17:34
fuente

Lea otras preguntas en las etiquetas