本地数据的安全性如何
ApplicationData.Current.LocalSettings
Windows 8 应用商店应用程序中使用的存储空间?
可以从应用程序外部操纵这些数据吗?
我查看了数据的位置
C:\Users[用户名]\AppData\Local\Packages[package_namespace]\LocalState)
但没有找到。它具体保存在哪里?
我正在尝试评估这种存储机制的安全性,以决定我是否可以在那里存储安全关键信息。
本地数据的安全性如何
ApplicationData.Current.LocalSettings
Windows 8 应用商店应用程序中使用的存储空间?
可以从应用程序外部操纵这些数据吗?
我查看了数据的位置
C:\Users[用户名]\AppData\Local\Packages[package_namespace]\LocalState)
但没有找到。它具体保存在哪里?
我正在尝试评估这种存储机制的安全性,以决定我是否可以在那里存储安全关键信息。
经过一番调查,我发现:
http://lunarfrog.com/blog/2012/09/13/inspect-app-settings/
数据存储在
C:\Users[用户名]\AppData\Local\Packages[package_namespace]\LocalState\Settings\settings.dat
这是一个 Windows NT 注册表文件 (REGF),可以用注册表编辑器打开,也可以进行操作。
意思是,本地存储是不安全的。
如果没有其他方法,加密数据和混淆密钥是可能的。
如果您要存储的是用户凭据,请查看PasswordVault
类。否则,请按照您自己的建议使用DPAPI。
这篇应用程序数据存储文章没有提到安全性,这篇文章也没有。可以从应用程序外部操纵这些数据吗?
该存储类似于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 上的本地代码)。