在twitter客户端存储登录名/密码

时间:2009-11-15 23:09:35

标签: .net security twitter

我知道存储这样的敏感数据是一个坏主意。但是,如果应用程序每次启动时都会询问密码,那就太烦人了......我知道OAuth但这只是同样的事情 - 用户会被浏览器打断(或者我错了? - 这一刻还不清楚为了我)。我知道对称加密。但是如何安全地将密钥存储在应用程序中?

问题很简单。 (但有两部分: - )

1)是否可以发送登录/密码对而不是纯文本?

2)如果不是,为什么我应该考虑安全性(在我的申请中)?

如果您发现拼写错误,请随时告诉我

2 个答案:

答案 0 :(得分:7)

如果这是一个仅限Windows的.NET应用程序,您应该查看 Data Protection API(DPAPI)。它将特定的安全实现委派给Windows,后者又使用用户的Windows配置文件/凭据将数据保存到磁盘。由于经过仔细审查并经常受到攻击,您可以无忧无虑地存储信息,并专注于对您而言重要的应用程序部分。

通过ProtectedData类在.NET中使用DPAPI非常容易:

ProtectedData.Protect(data, entropy, DataProtectionScope.CurrentUser);

如果您对基础安全的精确实施感到好奇,那就是discussed at length here

答案 1 :(得分:3)

密码在发送到Twitter时未加密,因为它使用http基本身份验证,而Twitter不会使用 需要 SSL作为其api。与所有基本身份验证一样,用户名和密码都是BASE64编码的,但这几乎没有任何安全性。

您安全存储它的原因是您的应用程序不负责在出现问题时泄露一堆用户的密码。

我强烈建议您考虑使用OAuth。它有很多原因,并且不要求您的用户使用他们的Twitter凭据信任您。您可以像访问用户名和密码一样存储访问令牌和令牌密钥,这样用户就不必每次都登录,并且您不必担心对广泛的安全漏洞负责。缺点是它比基本使用起来有点困难,但并非如此。

相关问题