【问题标题】:How does a password cracker know when it's done? [closed]密码破解者如何知道何时完成? [关闭]
【发布时间】:2012-11-24 16:58:11
【问题描述】:

我认为我缺少一些关于基于密码的数据加密的基本知识。

破解基于密码哈希的登录身份验证的工具在成功登录时知道它找到了正确的密码(或仍然与哈希匹配的备用密码)。但是使用密码破解基于文件或流的加密的工具如何作为密钥的来源知道它何时成功?在我看来,不同的尝试密码会将加密的源流转换为不同的目标字节集,而特定的密码会生成“正确”的字节集。我不明白破解工具如何识别它具有正确的未加密字节集,停止尝试并报告“破解!”。

【问题讨论】:

    标签: encryption passwords cryptography


    【解决方案1】:

    大多数情况下,纯文本使用已知模式。如果它是完全随机的,那么攻击者就无法区分成功和失败。可能会返回一组密钥,其中只有一个是正确的。也就是说,大多数纯文本都包含足够的信息(例如一段较长的英文文本)来区分正确的密钥和错误的密钥。

    此外,加密模式可能会泄漏足够的信息来区分纯文本和随机文本。分组密码模式——例如ECB and CBC——尤其可以使用某种纯文本padding。此填充是在块加密之前添加的,通常包含可识别信息。以 PKCS#5/7 填充模式为例。

    请注意,加密算法本身甚至需要承受已知的纯文本攻击,因此即使您已经知道解密后的文本是什么样子,也应该不可能找到密钥。但是,使用密码会削弱现代密码密码的有效密钥数量,因此密码的强度至关重要。

    【讨论】:

    • 注意密码不能直接作为密钥使用,应该使用基于密码的密钥推导函数,如PBKDF2,迭代次数多,密码破解难度大。
    • 好的,谢谢。那是我的怀疑。所以这让我相信未知格式的加密二进制数据,或者至少是攻击者不知道的,更有抵抗力。
    • @EverettB 是的,但不要指望通过默默无闻来确保安全。另请注意,大多数数据都使用某种协议,并且可以将协议与随机数据区分开来。这可能是 unicode 字节顺序标记、JPEG 标头、ASN.1 DER 结构、anything
    • 感谢添加关于分组密码纯文本填充的信息。很高兴知道!
    猜你喜欢
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 2020-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多