¿Qué tan seguro es el almacenamiento aislado en Windows?

9

Estoy usando almacenamiento aislado con los siguientes indicadores:

IsolatedStorageScope.User |IsolatedStorageScope.Domain | IsolatedStorageScope.Assembly

¿Cuánta seguridad proporcionará esto? ¿Hay alguna vulnerabilidad o gotcha's?

Nota : no confío únicamente en el almacenamiento aislado. Mi aplicación encripta los datos, pero sin registrar la contraseña. Por supuesto, será vulnerable a los registradores clave y los programas que leen los datos descifrados de la RAM, pero no creo que sea posible protegerse contra estos.

    
pregunta Casebash 26.07.2011 - 09:24
fuente

2 respuestas

8

Debería mirar la clase .net SecureString si le preocupa almacenar datos en la RAM: enlace

Aquí hay información importante sobre el almacenamiento aislado: enlace

  

Aunque el almacenamiento aislado se adapta bien a los escenarios descritos   anteriormente, hay algunos casos en los que no debes usar   almacenamiento:

     
  • No use almacenamiento aislado para almacenar secretos de alto valor, como   Claves o contraseñas sin cifrar, porque el almacenamiento aislado no es   protegido de código altamente confiable, de código no administrado o de   usuarios de confianza de la computadora.
  •   

Sin saber más acerca de su aplicación, es posible que desee consultar el uso de DPAPI mediante Clase ProtectedMemory .

De esta forma puede proteger los datos en función del usuario actual o en función de la máquina actual. Obviamente, si puede restringirlo al usuario actual, los datos serán más seguros.

Por lo tanto, el almacenamiento aislado proporciona un lugar seguro para almacenar datos (no tendrá que preocuparse por sobrescribir los datos de otras aplicaciones, pero no es seguro). ProtectedData se asegurará de que los datos estén seguros donde se almacenan.

Espero que ayude.

Ross

    
respondido por el Ross Dargan 26.07.2011 - 14:31
fuente
5
  

Por supuesto, será vulnerable a los registradores clave y los programas que leen los datos descifrados de la RAM, pero no creo que sea posible protegerse contra estos.

A menos que el contenido que quieras proteger sea muy valioso, diría que probablemente tengas razón para descartarlo. La lectura de los datos descifrados de la memoria RAM no sería trivial y, probablemente, sugiere un ataque dirigido si se trata específicamente de la memoria RAM de su aplicación.

El almacenamiento aislado parece ser una abstracción .net sobre Windows en lugar de una extensión de la API de Windows. Este artículo de MSDN revela que las ubicaciones son, básicamente, las rutas de datos de aplicación habituales. El impacto de los indicadores de usuario, dominio y ensamblaje se resume en este artículo .

No soy un desarrollador .net per se, así que decidí que la mejor manera de probar lo que sucedía sería usar la demostración de codeproject , eche un vistazo a los directorios y véalos con procmon .

Entonces, primero, ¿qué tipo de atributos de seguridad tiene C:\Users\username\AppData\Local\IsolatedStorage ?

Enconsecuencia,noparecetenerningúnderechodeaccesoespecíficomásalládeloqueunusuarionormalpodríaesperarusar.

De hecho, como puedes ver arriba, puedo entrar. Finalmente, probando con procmon:

Esposiblequenecesiteampliaresa,perocomointerpretación,esoessolounconjuntoestándardellamadasalaAPIdeWindowsyunpocodeaccesodebloqueoalarchivo.Debidoaquepodríaserinteresante,loqueestababuscandoeraunallamadaa SetNamedSecurityInfo() que aparece como IRP_MJ_SET_SECURITY .

En resumen, creo que IsolatedStorage está aislado como una abstracción de .net, pero .net se ejecuta actualmente en la parte superior de Win32, por lo que no ofrece ninguna defensa en la que pueda pensar. Por lo tanto, es tan seguro como escribir archivos en Mis documentos o en cualquier otra ubicación de configuración de la aplicación que desee seleccionar desde la perspectiva de una aplicación Win32. Que es exactamente lo que Ross ha dicho: no hay defensa del código no administrado. Simplemente me gustan las fotos.

    
respondido por el user2213 26.07.2011 - 23:44
fuente

Lea otras preguntas en las etiquetas