桌面应用程序如何存储密码安全性

时间:2011-04-26 08:16:11

标签: security

我想知道,是否有一种安全的方法可以安全地存储桌面应用程序的用户名和密码。

例如,开源KeyPass

假设我可以访问用户本地计算机,获取其所有KeyPass的配置文件,并逐步执行KeyPass源代码,那么我可以在此之后撤消用户的用户名和密码吗?

3 个答案:

答案 0 :(得分:1)

没有

有单向函数的概念。也就是说,如果我们有关系

y = f(x)

我们知道yf,查找x可能仍需要花费大量时间和精力。

示例单向函数(据我们所知,至少是......)是SHA算法。

答案 1 :(得分:0)

KeePass通过AES将所有数据对称加密到本地存储中,因此除非您获得主密码,否则解密的可能性非常小。主密码本身存储为SHA-256哈希(我假设是盐渍的),这意味着只要它具有良好的熵开始,你抓住它的机会与破解加密大致相同。

所以是的,这是一种非常安全的存储凭证方式。不是万无一失,但实际上和你一样好。

答案 2 :(得分:0)

您可以使用众所周知的强加密算法(如AES)安全地存储密码。

但是,您无法使依赖于密码100%安全的程序。由于桌面应用程序的实际功能正好位于应用程序代码中,因此攻击者始终可以通过这种方式访问​​该应用程序,甚至无需知道您的密码。即使使用基于加密密钥的多态自修改代码仍然是可以破解的(这实际上是CuteFTP过去使用的保护,但仍然只是使用用户的ftp密码来安全地存储它们)。

考虑到这一点,加密确实使其变得更加困难,至少即使人们破解了应用程序,他们也可能无法恢复原始密码。