2011-01-21 10 views
14

Supongamos que alguien tiene acceso a todo mi disco duro, creo que el punto débil sería mi contraseña de Windows. Sin saber/ser capaz de recuperar eso, los datos deberían ser bastante seguros, ¿no es así?¿Qué tan seguro es ProtectedData.Protect (DPAPI)?

estoy pidiendo específicamente debido a la EFS entry en Wikipedia que establece que

En Windows 2000, el administrador local es el agente de recuperación de datos por defecto, capaz de descifrar los archivos cifrados con EFS por cualquier usuario local .

y sucede que EFS usa DPAPI. Así que hace lo mismo se aplica a mis propios datos protegidos usando esto:

ProtectedData.Protect(plain, null, DataProtectionScope.CurrentUser); 

Y si es ése el caso, ¿cómo podría evitarlo?

[Editar] N.B. Intento almacenar credenciales para una aplicación de winforms para que el usuario no tenga que ingresar su contraseña cada vez que inicie sesión. En otras palabras, si alguien puede iniciar sesión como ese usuario (es decir, conocer la contraseña del usuario), entonces también podría leer los datos cifrados.

Que, sin proceder de un fondo de Windows, ahora me pregunto, ¿no puede el administrador local iniciar sesión como cualquier usuario local de todos modos? En ese caso, yo no debería estar preocupado por el administrador de ser capaz de recuperar las contraseñas de todos modos ...

[Edit2] como Google revela, se ve como un Administrador no puede simplemente iniciar sesión como cualquier usuario sin restablecer/cambiando su contraseña primero. Así que mi pregunta todavía parece relevante ...

+0

Las contraseñas de Windows son notoriamente fáciles de romper dado que tiene acceso físico. (Esto puede haber cambiado en versiones recientes, aunque no es de mi conocimiento. Me encantaría que se demuestre que estoy equivocado.) –

+0

@Matthew: ¿algún enlace para apoyar eso? –

+0

buscar l0ftcrack. Me niego a vincularlo directamente. A partir de XP al menos (y de nuevo, mi información puede estar desactualizada) casi cualquier contraseña de Windows se puede descifrar en cuestión de minutos dado el acceso a los archivos de contraseña (es decir, acceso físico). Que yo sepa, esto es irrelevante para los usuarios de la red. Esto se debe a una debilidad en la forma en que se procesan/procesan las contraseñas. –

Respuesta

4

Ver this article on DPAPI Security. Básicamente, es tan seguro como su contraseña de Windows: si un administrador reinicia su contraseña, la clave de descifrado se perderá. Los principales vectores de ataque que necesita para mirar son:

  • contraseña divulgación: "el surf hombro", notas adhesivas, etc.
  • Captura del equipo de cuentas de base de datos y el uso de una galleta de la contraseña
  • ataque en línea por "drive-by download", medios extraíbles de reproducción automática, etc.
  • Captura de un disco de restablecimiento de contraseña, si usted ha hecho una
  • la instalación física de un dispositivo de registro de llave u otro "error"
+0

Desafortunadamente, ese artículo no aborda el problema del Administrador que me interesa específicamente. –

+0

"si un administrador restablece su contraseña, la clave de descifrado se perderá."- No de acuerdo con [este artículo] (https://msdn.microsoft.com/en-us/library/ms995355.aspx?f=255&MSPPError=-2147217396). Dice que" DPAPI se engancha en el módulo de cambio de contraseña y cuando se cambia la contraseña de un usuario, todas las MasterKeys se vuelven a cifrar con la nueva contraseña. " – Jez

+1

@Jez, en un cambio de contraseña (a diferencia de un restablecimiento de contraseña) se proporciona la contraseña anterior para que las claves antiguas puedan descifrarse; un disco de restablecimiento de contraseña puede proporcionar una copia de seguridad de la clave anterior para restablecerse automáticamente. Para las cuentas de dominio, también se puede almacenar una clave de respaldo en el controlador de dominio, pero para las cuentas locales el disco de restablecimiento de contraseña es la única copia de seguridad realizada. –

15

EFS usa DPAPI, no al revés. Y el Administrador no puede leer su clave simplemente así.

Antes de olvidar sobre DPAPI, consideraría las alternativas. Si cifra el archivo usted mismo,

  1. Debe seleccionar un algoritmo fuerte e implementarlo bien.
  2. Necesitará una clave. Donde estará ?
  3. Guardará la clave en un archivo en algún lugar de su disco.
  4. Esa llave es sensible, obviamente, tendrá que cifrarlo
  5. Goto 1

DPAPI hace 1 al 3 también. 4 y 5 son discutibles. Si una contraseña de Windows no es suficiente para proteger los datos, pregúntese por qué es suficiente con CRUD esa información en primer lugar.

Para mayor seguridad, puede considerar no guardar los datos sino un hash (salado), si es posible. Sin embargo, hace que tus datos sean solo de escritura. Por ejemplo, si desea verificar un número de licencia del cliente:

  • Guardar un valor hash con sal de él
  • Ejecutar el mismo hash del número de licencia salada que desea verificar,
  • comparar los dos. Si coinciden, la licencia es válida.

Si tiene que vuelve a leer los datos cifrados y una clave de cifrado a nivel local no es suficiente, considere la encriptación de la clave de aplicación (paso 2 anterior) con una clave privada almacenada en una tarjeta inteligente.

De cualquier manera, recuerde que las cosas suceden. Siempre necesita una clave de respaldo en alguna parte.

1

DPAPI se puede utilizar con y sin entropía opcional. Sólo hay dos maneras de DPAPI Blobs sin entropía opcional pueden ponerse en entredicho:

  1. un administrador de dominio puede recuperar directamente la historia de cualquiera de las llaves maestras DPAPI en cualquier momento. No se requiere nada más. Estos pueden usarse para descifrar todos los blobs. Los administradores locales no pueden hacer esto.

  2. Las credenciales de Windows del usuario están en peligro.

Si utiliza entropía opcional a continuación, los datos no pueden ser descifrados por nadie que imposible saber el valor. La entropía puede derivarse de una contraseña necesaria para iniciar la aplicación, etc. Sin el valor, los datos se pierden para siempre.

EFS funciona de manera diferente. La clave de usuario está protegida con DPAPI para su perfil, pero la clave de descifrado del archivo también se codifica directamente con la clave pública del administrador. Por lo tanto, un administrador de dominio puede acceder a los archivos.

Cuestiones relacionadas