¿Puedo calcular la clave derivada generada por pbkdf2 (contraseña || SOME_TEXT) si conozco pbkdf2 (contraseña)?

0

Si conozco la clave derivada DK1

DK1 = PBKDF2 (sha512, password, random_salt, iterations = 1000, longitud de salida = 20)

es posible calcular la clave derivada DK2

DK2 = PBKDF2 (sha512, contraseña || SOME_TEXT, random_salt, iterations = 1000, longitud de salida = 20)

si tengo acceso de administrador completo (tanto al algoritmo de hash en el código fuente como a las sales en la base de datos) pero no sé la contraseña. Sé que esto sería posible si solo usara SHA1 para cifrar la contraseña, pero ¿qué pasa con pbkdf2? Por qué pregunto: quiero usar DK1 para la autenticación de usuarios y DK2 en la base de datos para el anonimato de datos (solo el usuario que inició sesión puede realizar uniones entre tablas firmadas con user.id y tablas firmadas con DK2). Por esa razón, debo asegurarme de que nadie pueda derivar DK2 de DK1; de lo contrario, las tablas de la base de datos no se anonimizarán correctamente y el administrador de la base de datos podría realizar uniones.

    
pregunta Zoltan Vincze 22.09.2016 - 08:58
fuente

2 respuestas

1

PBKDF2 no usa (en general?) dos sales (sal y pimienta). Debe comprender que PBKDF2 se basa en una función pseudoaleatoria (PRF), generalmente HMACSHA1.

Luego procede a calcular la clave derivada (lo que usted llama su hash, supongo) mediante la iteración (simplificación bruta):

  

Uc = PRF (Contraseña, Uc-1)

     

donde U0 = sal || INT_32_BigEndian (i)

Por lo tanto, en el esquema estándar PBKDF2, no puede adivinar la contraseña teniendo la clave derivada y la sal. Sin embargo, si tuvo la clave derivada, no necesita la contraseña de usuario, ya que es la clave derivada que es relevante para cualquier cifrado posterior.

Me temo que está confundiendo PBKDF2 con otra función.

A continuación, obtiene una clave derivada que se utilizará y tiene una clave para otra función de cifrado. ¿Está seguro de que es PBKDF2 y cuál es el PRF subyacente?

    
respondido por el M'vy 22.09.2016 - 09:20
fuente
0

No. PBKDF2 usa HMAC que es específicamente diseñado para soportar ataques de extensión de longitud .

    
respondido por el Sjoerd 22.09.2016 - 12:24
fuente

Lea otras preguntas en las etiquetas