KeePass 是否有永久的内部主密钥来加密数据?

KeePass 是否有永久的内部主密钥来加密数据?

KeePass 有永久权限吗内键加密数据?或者加密的密钥密码(和密钥文件)?在一些网站上,我浏览了有关如何破解 KeePass 基础的讨论。其中一个假设是,有两种方法:一种是暴力破解 密码其他人正准备暴力破解加密的 主密钥. 是否真的存在用于数据加密的永久内部主密钥?

答案1

读完本文后文章看起来确实生成了一些随机字节,但目的只是为了完成完整的 256 位密钥:

为了生成分组密码的 256 位密钥,使用了安全哈希算法 SHA-256。此算法将用户提供的用户密钥(由密码和/或密钥文件组成)压缩为 256 位的固定大小密钥。此转换是单向的,也就是说,从计算上来说,不可能反转哈希函数或找到压缩为相同哈希的第二条消息。

最近发现的针对 SHA-1 的攻击 [2] 不会影响 SHA-256 的安全性。SHA-256 仍然被认为非常安全 [3]。

密钥导出:

如果仅使用密码(即没有密钥文件),则使用 SHA-256 对密码和 128 位随机盐进行哈希处理以形成最终密钥(但请注意,有一些预处理:防止字典攻击)。随机盐可防止基于预先计算的哈希的攻击。

当同时使用密码和密钥文件时,最终密钥的派生公式如下:SHA-256(SHA-256(密码),密钥文件内容),即将主密码的哈希值与密钥文件字节连接起来,然后再次使用 SHA-256 对得到的字节字符串进行哈希处理。如果密钥文件不完全包含 32 个字节(256 位),则也会使用 SHA-256 对它们进行哈希处理,以形成 256 位密钥。然后上面的公式变为:SHA-256(SHA-256(密码),SHA-256(密钥文件内容))。

所以我得出结论没有内部主密钥。当用户密码(和密钥文件)更改时,密码库将使用新密钥重新加密。

相关内容