¿Qué enfoques se aceptan generalmente para generar una clave simétrica protegida por contraseña?
Mi intuición es generar y almacenar una cadena aleatoria de la longitud adecuada como clave protegida por contraseña, luego HMAC con una contraseña PBKDF2ed para obtener la clave simétrica real. Con este enfoque, ¿es el paso PBKDF2 necesario o superfluo? ¿Hay un mejor enfoque (por ejemplo, XORAR los bits de clave generados con los bits de clave de contraseña PBKDF2ed)?
Editar: Me di cuenta después de hacer esta publicación que tiene más sentido hacer HMAC(key, password)
que HMAC(PBKDF2(password), key)
.
Actualización: la respuesta es PBKDF2(SHA256, password, key, iterations)
.