该 的 一次性垫 强> 是一种加密技术:它从根本上抵御暴力,换句话说, 信息 - 理论上安全 。如果你没有钥匙,无论你投入多少计算能力,它都不会被“破坏”。诀窍在于无法区分 正确答案 从 所有其他可能的答案 ,因为每个答案都是同样可能的。
阅读Wikipedia上的更多内容
不幸的是,一次性垫在实践中几乎是无用的,因为密钥必须与您的明文一样长,密钥可能永远不会被重复使用,并且它必须是随机的。所有这一切都意味着您无法从令人难忘的密码中获取密钥,因此您需要一种安全的密钥存储方法。但是如果你已经可以获得一个巨大的密钥,那么你也可以将你的明文放在那里而不加密。
首先想到的是在多次尝试失败后关闭访问(至少在一段时间内)。例如,在错误的PIN被多次使用后银行卡变为无效,或者在您未能反复解锁后删除自己数据的电话。
当然,这不适用于文件,攻击者可以在自己的机器上复制。
理想情况下没有,但通常在你提供的解决方案中,可以引入一个额外的步骤,可以直接暴力破解的数据可以被混淆,使其难以理解或无意义
例如:加密并通过网络发送的密码可能会受到暴力破解,但如果通过将其转换为某种形式进行混淆,然后通过网络发送,那么除非攻击者也知道转换功能,否则即使是暴力也无济于事
首先,你最好试试这个 ITsec.SE 。
现在,回答你的问题: 是的,当然有。
暴力攻击可以完成两件事:“猜测”某种秘密(例如密码,加密密钥等)和压倒性资源(即洪水或拒绝服务 - DoS)。
任何旨在防止任何其他形式攻击的反措施都与暴力无关。
例如,采用标准的reccomendations来防止SQL注入:输入验证,存储过程(或参数化查询),命令/参数对象等。 你会尝试在这里做些什么?如果代码写得正确,则无法猜测“秘密”。
现在,如果你问“如何防止蛮力攻击?”,那么答案将取决于攻击者试图暴力破解的内容。 假设我们正在谈论强制执行密码/登录屏幕,有几个选项:强密码策略(使其更难),帐户锁定(限制暴力尝试的速率),限制(再次限制尝试率)等等。
您始终可以尝试查找重复/大量尝试(例如登录)并暂时或甚至永久禁止源(IP)。
谈到分布式攻击当然要困难得多,但你仍然可以针对未知用户发布大规模临时禁令和扩展服务。
我不确定是否有任何银弹,只是有创意:)拥有一个家庭brewn解决方案可能会让你的机会更好,因为没有已知的漏洞。