【发布时间】:2010-09-20 19:44:07
【问题描述】:
我正在寻找在 Windows 7 手机应用程序中存储用户凭据的最佳做法。我正在为需要身份验证的 Web 服务编写应用程序。值得庆幸的是,此时它只是基本身份验证。存储这些凭据的最佳方式是什么?
【问题讨论】:
-
我在这篇帖子stackoverflow.com/questions/8985717/…找到答案了。
标签: windows-phone-7
我正在寻找在 Windows 7 手机应用程序中存储用户凭据的最佳做法。我正在为需要身份验证的 Web 服务编写应用程序。值得庆幸的是,此时它只是基本身份验证。存储这些凭据的最佳方式是什么?
【问题讨论】:
标签: windows-phone-7
在您的情况下存储凭据的最佳方法是对其进行加密并存储在特定于应用程序的隔离存储中 - 基本上,任何其他应用程序都无法访问它,因此提供了另一个保护层。
【讨论】:
就安全性而言,最佳做法是尽可能避免存储用户凭据。 MSDNstates:
应用程序经常要求用户 提供用户名和密码 用作身份验证的凭据 拥有网络服务的用户或 网站,但如果他们每次都这样做 应用程序运行时,用户可以 生气了。
强烈建议您 应用程序提示输入用户名和 每次申请时的密码 用户需要它们;如果你 尝试将凭据保存在 打电话给你有暴露这些的风险 恶意应用程序的凭据 如果 Windows Phone 丢失或 被盗。
实际上,在另一个答案中提到的数据加密教程中,Rob Tiffany 做了一个similar disclaimer:
操作系统不包含框架 支持存储您的密码和 盐值安全也不会出现 使用任何类型的内置密钥 管理。这意味着唯一的方法 确保您的加密数据是 实际上安全的是从不存储 您的密码、盐值或密钥 电话。
...
如果您在 Windows 中看到应用程序 电话市场,可让您 在本地缓存您的凭据或密钥 为方便起见,请注意这些 不是安全的解决方案,因为 黑客需要得到的一切 您的数据就在代码中 或在隔离存储中。
加密有助于提高标准,但这并不能真正保护凭据免受知识渊博的黑客的攻击。可用性有时胜过安全性,但您应该知道在这种情况下加密不会解决核心问题(并且可能让用户意识到这种风险)。
【讨论】:
Rob Tiffany 对如何在隔离存储中加密数据进行了很好的解释:
Don’t forget to Encrypt your Windows Phone 7 Data
我自己没有尝试过代码,所以不能保证它的正确性(抱歉 Rob :-) - 不过我想应该是一个很好的起点。
我也赞同 Dennis 关于特定于应用程序的隔离存储的观点,除了加密之外,它还为您提供了额外/基本的保护层,至少在理论上,其他应用程序无法访问您的应用程序隔离存储。
【讨论】:
您应该使用ProtectedData class 安全地存储各种机密信息。
【讨论】: