暴力攻击通过尝试所有可能组合破解数据,类似于小偷试遍安全锁上的所有数字以破开保险箱。
阅读本文后,您将能够:
复制文章链接
暴力攻击是一种试错方法,用于解码敏感数据。暴力攻击最常用于破解密码和破解加密密钥(继续阅读,了解加密密钥详细信息)。暴力攻击的其他常见目标包括 API 密钥和 SSH 登录信息。通常是通过脚本或针对网站登录页面的机器人来实施暴力破解密码攻击。
蛮力攻击与其他破解方法的不同之处在于,蛮力攻击不采用智力策略;他们只是尝试使用不同的字符组合,直到找到正确的组合。这就像小偷试图通过尝试所有可能的数字组合直到保险箱打开来闯入组合保险箱。
暴力攻击的最大优势在于它们执行起来相对简单,并且由于有足够的时间加上缺乏针对性的防护策略,它们总是能够成功。每个基于密码的系统和加密密钥都可以通过蛮力攻击来破解。实际上,蛮力破解进入系统所花费的时间是衡量该系统安全级别的有用指标。
另一方面,暴力攻击非常缓慢,因为在达到目标之前,它们可能必须经历所有可能的字符组合。随着目标字符串中字符数的增加(字符串只是字符的组合),这种迟缓变得更加复杂。例如,四字符密码的暴力破解时间比三字符密码的破解时间长得多,而五字符密码的破解时间比四字符密码大得多。一旦字符数超过某个点,对一个进行了适当随机化的密码进行暴力破解就变得不切实际。
如果目标字符串足够长,暴力攻击者可能需花费数天、数月甚至数年的时间来破解适当组合的随机密码。当前的趋势是要求填写更多位数的密码和加密密钥,因此,实施暴力攻击就愈加困难。如果密码或者加密设置巧妙,则攻击者通常会采用社会工程学或者在途攻击等其他密码破译方法破解。
管理授权系统的开发人员可采取如下措施:如锁定登录失败次数过多的 IP 地址,以及在密码检查软件中纳入延时机制。即使是数秒延时,也能大大降低暴力攻击的有效性。
Web 服务用户可选择更长的复杂密码来降低暴力攻击风险。此外,建议启用双因素身份验证,并为每项服务设定唯一密码。如果攻击者能够暴力破解用户某一项服务的密码,则其可能重复使用相同的登录信息和密码登录其他主流服务。这就是凭证填充。
用户还应避免在任何未使用强大加密密钥保护其数据的 Web 服务中输入密码或个人信息,例如信用卡号或银行信息。
加密密钥是为加密和解密数据而生成的随机位串。数据被加密后,它会显示为一串随机的混杂字符,直到使用正确的加密密钥对其进行解密为止。就像密码一样,蛮力攻击可以破解加密密钥,但是如今使用的加密密钥需要花费很长时间才能被现代计算机破解,因此它们被认为是牢不可破的。
相比较短的加密密钥,较长加密密钥的安全性呈指数级上升。例如,针对 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 加密机制防止暴力攻击,且已经着手进行针对量子计算的未来防护。