我想知道,是否有一种已知的安全方式来安全地存储桌面应用程序的用户名和密码。桌面应用程序商店密码安全性如何?
例如,开源KeyPass
比方说,我可以访问用户本地计算机上,抓住所有的keypass的配置文件,并通过关键通过源代码步骤,是我能逆转后的用户名和密码然后?
我想知道,是否有一种已知的安全方式来安全地存储桌面应用程序的用户名和密码。桌面应用程序商店密码安全性如何?
例如,开源KeyPass
比方说,我可以访问用户本地计算机上,抓住所有的keypass的配置文件,并通过关键通过源代码步骤,是我能逆转后的用户名和密码然后?
编号
存在单向函数的概念。也就是说,如果我们有关系
y = f(x)
而且我们知道y
和f
,它仍可能需要大量的时间和精力去寻找x
。
示例单向函数(据我们所知,至少...)是SHA算法。
KeePass通过AES保存所有数据在本地存储中对称加密,所以除非你掌握了主密码,否则解密的几率很小。主密码本身存储为SHA-256散列(我认为它是盐渍的),这意味着只要它具有良好的熵,那么获得它的机会与打破加密大致相同。
所以是的,这是一个非常安全的存储凭据的方式。不是万无一失的,但几乎和你一样好。
您可以使用已知的强加密算法(如AES)安全地存储密码。
但是,您无法使依赖密码的过程100%安全。由于桌面应用程序的实际功能恰好位于应用程序代码内部,因此攻击者总是可以通过某种方式访问该应用程序,而无需知道您的密码。即使使用基于加密密钥的多态自修改代码仍然是可以破解的(这实际上是CuteFTP过去使用的保护,但仍然只是用户的ftp密码来安全地存储它们)。
考虑到这一点,加密确实会使它变得更加困难,至少,即使人们破解应用程序,他们可能无法恢复原始密码。
只有主密码被散列 - 其他所有内容都是对称加密的。 – 2011-04-26 08:38:18