我正在寻找在Windows 7手机应用中存储用户凭据的最佳做法。我正在为需要身份验证的Web服务编写应用程序。值得庆幸的是,此时只有基本身份验证。存储这些凭证的最佳方法是什么?
答案 0 :(得分:4)
在您的案例中存储凭据的最佳方式是加密它们并存储在特定于应用程序的独立存储中 - 基本上,任何其他应用程序都无法访问它,因此可以提供另一个保护层。
答案 1 :(得分:2)
在安全性方面,最佳做法是尽可能避免存储用户凭据。 MSDN states:
应用程序经常要求用户 提供用户名和密码 用作身份验证的凭据 用户使用Web服务或 网站,但如果他们每次都这样做 应用程序运行,用户可以 生气了。
强烈建议您 应用程序提示用户名和 每次申请时都有密码 需要来自用户;如果你 尝试保存凭据 打电话给你冒险 恶意应用程序的凭据 如果Windows Phone丢失或 被盗。
实际上,在另一个答案中提到的数据加密教程中,Rob Tiffany制作了similar disclaimer:
操作系统不包含框架 支持存储您的密码和 盐价值安全,也不来 使用任何类型的内置密钥 管理。这意味着唯一的方法 确保您的加密数据 实际上安全是永远不会存储 您的密码,盐值或键 电话。
...
如果您在Windows中看到某个应用 电话市场,允许您 在本地缓存您的凭据或密钥 为方便起见,请注意这些 是不安全的解决方案因为 黑客需要得到的一切 您的数据就在代码中 或在隔离存储中。
加密有利于提高标准,但这并不能真正保护知识产权黑客的凭据。可用性有时胜过安全性,但你应该做出这样的决定,知道在这种情况下加密不会解决核心问题(也许让用户意识到这种风险)。
答案 2 :(得分:1)
Rob Tiffany关于如何在隔离存储中加密数据的一个很好的解释可以在这里找到:
Don’t forget to Encrypt your Windows Phone 7 Data
我自己没有试过这个代码,所以不能保证它的正确性(对不起Rob :-) - 应该是一个很好的起点,但我会想象。
我还提到Dennis关于特定于应用程序的独立存储的观点,除了加密之外,还为您提供了额外的/基本的保护层,至少从理论上讲,其他应用程序无法访问您的应用程序隔离存储。
答案 3 :(得分:1)
您应该使用ProtectedData class安全地存储各种机密信息。
了解详情