6

本地数据的安全性如何

ApplicationData.Current.LocalSettings

Windows 8 应用商店应用程序中使用的存储空间?

这篇应用程序数据存储文章没有提到安全性,这篇文章也没有

可以从应用程序外部操纵这些数据吗?

我查看了数据的位置

C:\Users[用户名]\AppData\Local\Packages[package_namespace]\LocalState)

但没有找到。它具体保存在哪里?

我正在尝试评估这种存储机制的安全性,以决定我是否可以在那里存储安全关键信息。

4

3 回答 3

4

经过一番调查,我发现:

http://lunarfrog.com/blog/2012/09/13/inspect-app-settings/

数据存储在

C:\Users[用户名]\AppData\Local\Packages[package_namespace]\LocalState\Settings\settings.dat

这是一个 Windows NT 注册表文件 (REGF),可以用注册表编辑器打开,也可以进行操作。

意思是,本地存储是不安全的。

如果没有其他方法,加密数据和混淆密钥是可能的。

于 2013-03-25T14:54:34.330 回答
3

如果您要存储的是用户凭据,请查看PasswordVault类。否则,请按照您自己的建议使用DPAPI

于 2013-03-26T05:52:40.650 回答
2

这篇应用程序数据存储文章没有提到安全性,这篇文章也没有。可以从应用程序外部操纵这些数据吗?

该存储类似于iOS 的 Core Data。除非存储受到保护(低于应用程序级别),否则它本质上是不受信任的输入。即使存储受到加密保护,它也可能未经身份验证,因此容易被篡改。

如果没有其他方法加密数据和混淆密钥是可能的。

在 Windows 平台上,保护敏感数据的标准方法是使用数据保护 API (DPAPI)。将 DPAPI 与用户提供的机密(API 中的附加熵)一起使用以获得最佳保护。您将 DPAPI 的数据与用户的配置文件、注册表或文件系统一起存储。例如,请参阅Windows 数据保护如何:使用数据保护数据保护 API(Windows 应用商店应用程序)。Michael Howard 和 David LeBlanc 在Writing Secure Code, Second Edition中对这个主题进行了很好的处理。请参阅第 9 章,保护机密数据,从第 299 页开始。

如果您想要像加密一样的数据库,请查看SQLCipher。它使用经过身份验证的加密,因此它提供机密性和完整性。Windows 8 支持本地库,包括在他们的手机上(例如,参见Windows Phone 8 上的本地代码)。

于 2013-03-26T03:17:48.563 回答