Estoy usando Windows DPAPI para cifrar algunos datos confidenciales para mí. El cifrado se almacena en el registro. Todo esto funciona bien, pero me preguntaba si alguien podría aclarar mi comprensión de los bytes de "entropía" que (opcionalmente) se suministran a ProtectedData.Protect() en .NET.Windows DPAPI: ¿qué hacer con la entropía?
La matriz de bytes 'entropía' parece ser análoga a un vector de inicialización o sal utilizado con otros esquemas de criptografía, pero no pude ver una buena descripción de los bytes de entropía en MSDN. ¡Las muestras de código que he visto solo codifican en los bytes de entropía!
Son los bytes de entropía suministrados a ProtectedData.Protect() & ProtectedData.Unprotect análogo a un IV o sal? Por lo tanto, ¿pueden los bytes de entropía almacenarse de forma segura junto con el cifrado, o comprometería la seguridad?
Gracias, gran respuesta. Así que supongo que codificar la entropía en la aplicación no es un desastre completo, pero es mejor tratarlo como una clave. Como estoy encriptando una clave de todos modos, tener otra "clave" para proteger la clave es volverse un poco loco. – saille
Sí, es un concepto un poco complicado. Pero el agujero de seguridad que la "entropía" pretende tapar es muy real. El cifrado específico de credenciales en Windows es muy conveniente para el usuario, pero abre nuevas oportunidades para que los programas maliciosos descifren esos datos cuando no deberían. Además, no asuma que cualquier "otro" programa es benigno ... malware que el usuario ni siquiera sabe que está en su sistema puede intentar buscar datos encriptados que no sean entrópicos. – jrista