什么是暴力攻击?

暴力攻击通过尝试所有可能组合破解数据,类似于小偷试遍安全锁上的所有数字以破开保险箱。

学习目标

阅读本文后,您将能够:

  • 区分暴力攻击与其他更复杂的攻击
  • 明确暴力攻击的优缺点
  • 说明防范暴力攻击的最佳保护方式

复制文章链接

什么是暴力攻击?

暴力攻击是一种试错方法,用于解码敏感数据。暴力攻击最常用于破解密码和加密密钥(继续阅读,了解加密密钥详情)。暴力攻击的其他常见目标包括 API 密钥和 SSH 登录信息。暴力破解密码攻击通常是通过脚本或者机器人针对网站登录页面实施的。

蛮力攻击与其他破解方法的不同之处在于,蛮力攻击不采用智力策略;他们只是尝试使用不同的字符组合,直到找到正确的组合。这就像小偷试图通过尝试所有可能的数字组合直到保险箱打开来闯入组合保险箱。

暴力攻击分别有哪些优缺点?

暴力攻击的最大优势在于它们执行起来相对简单,并且由于有足够的时间加上缺乏针对性的防护策略,它们总是能够成功。每个基于密码的系统和加密密钥都可以通过蛮力攻击来破解。实际上,蛮力破解进入系统所花费的时间是衡量该系统安全级别的有用指标。

另一方面,暴力攻击非常缓慢,因为在达到目标之前,它们可能必须经历所有可能的字符组合。随着目标字符串中字符数的增加(字符串只是字符的组合),这种迟缓变得更加复杂。例如,四字符密码的暴力破解时间比三字符密码的破解时间长得多,而五字符密码的破解时间比四字符密码大得多。一旦字符数超过某个点,对一个进行了适当随机化的密码进行暴力破解就变得不切实际。

暴力破解时间

If the target string is sufficiently long, then it could take a brute force attacker days, months, or even years to decode a properly randomized password. As a result of the current trend of requiring longer passwords and encryption keys, brute force attacks are quite a bit more difficult. When good passwords and encryption are utilized, attackers typically try other methods of code breaking such as social engineering or on-path attacks.

如何防范暴力攻击

管理授权系统的开发人员可采取如下措施:如锁定登录失败次数过多的 IP 地址,以及在密码检查软件中纳入延时机制。即使是数秒延时,也能大大降低暴力攻击的有效性。

Users of web services can decrease their vulnerability to brute force attacks by choosing longer, more complex passwords. It is also recommended to enable two-factor authentication and use unique passwords for each service. If an attacker is able to brute force a user’s password for one service, that attacker may try recycling the same login and password on many other popular services. This is known as credential stuffing.

Users should also avoid entering passwords or personal information such as credit card numbers or banking information with any web service that doesn’t protect their data with strong encryption keys.

什么是加密密钥?

加密密钥是为加密和解密数据而生成的随机位串。数据被加密后,它会显示为一串随机的混杂字符,直到使用正确的加密密钥对其进行解密为止。就像密码一样,蛮力攻击可以破解加密密钥,但是如今使用的加密密钥需要花费很长时间才能被现代计算机破解,因此它们被认为是牢不可破的。

128位加密和256位加密有什么区别?

相比较短的加密密钥,较长加密密钥的安全性呈指数级上升。例如,针对 128 位加密密钥,暴力攻击者需要尝试 2128 种可能的组合。针对 256 位加密密钥,攻击者需要尝试 2256 种不同组合,这相比 128 位密钥,所需计算能力要多出 2128 倍(2128 = 340,282,366,920,938,463,463,374,607,431,768,211,456 种可能组合)。

为了让您能大致对这些数字有一定的概念,一台功能强大的计算机每秒可检查数万亿个组合,而它破解256位加密密钥所需要的时间是10的96次方这么多年(即英国英语中的一个 sexdecillion,1后面96个0)。

因当前的暴力攻击几乎无法破解高位加密密钥,建议所有收集用户信息的 Web 服务都采用 256 位加密密钥对其数据和通讯内容进行加密。Cloudflare 采用一流的 TLS 加密机制防止暴力攻击,且已经着手进行针对量子计算的未来防护