天津鸿萌科贸发展有限公司是 ElcomSoft 系列取证软件的授权代理商。
Elcomsoft Premium Forensic Bundle 是众多高价值工具的综合工具包。该软件包支持常规及移动设备数据提取、解锁文档、解密压缩文件、破解加密容器、查看和分析证据。
支持:全版本Microsoft Office、OpenOffice、加密文件系统、Windows 和 macOS密码、macOS Keychain、ZIP/RAR/RAR5、PDF、BitLocker、LUKS、LUKS2、PGP、TrueCrypt、VeraCrypt 等加密容器,以及即时聊天工具、email客户端、浏览器各类密码提取、物理、逻辑、无线获取各类 iOS 设备。
我们之所以攻击密码而不是加密,是因为现代加密方法非常安全,而且由于其复杂性和较长的密钥长度,几乎无法破解。几乎所有加密格式中使用的行业标准 AES-256 算法都采用 256 位密钥,从而产生了天文数字的可能组合,这些组合需要花费大量时间才能通过暴力破解。另一方面,密码是这种加密的入口点,由于人类在记忆复杂字符串方面的局限性,密码通常要弱得多。因此,针对密码本身比试图破解加密算法更为实际和有效。
强加密是一种无法通过直接攻击加密密钥在合理时间内破解的加密类型。强加密方法应该没有漏洞,这样攻击者就可以大大减少破解所需的时间。要解密受强加密保护的数据,必须知道密码或拥有原始加密密钥。使用 256 位密钥的 AES 加密算法被认为是安全的,因为在其使用的许多年中没有发现任何漏洞。因此,如果使用强加密,攻击密码是访问加密数据的唯一可行方法。
量子计算确实有可能改变加密破解的格局。虽然经典加密方法对于传统计算方法的攻击非常安全,但量子计算机可以以根本不同的方式处理信息。量子计算机可以使用的 Grover 算法会将 AES-256 的有效密钥长度减少到 128 位,大大减少暴力破解加密密钥所需的时间,但即使是 128 位密钥实际上也是牢不可破的。然而,AES-256 在量子攻击面前仍然被认为是安全的,因为它需要一台能力远远超出目前能力的量子计算机。因此,虽然量子计算带来了未来的挑战(或机遇,取决于你站在哪一边),它还没有从根本上改变攻击密码作为加密入口点的方法。
简短的回答是“视情况而定”。不同的司法管辖区有不同的规则;显然,没有人可以阻止你破解自己丢失或忘记的密码;但是,如果此密码保护对存储在某些在线服务中的数据的访问,那么该帐户是否属于你实际上并不重要,因为你不能合法地攻击它。换句话说,如果你使用本地数据并且数据属于你,或者如果你有合法所有者的许可,或者如果你为合法部门工作并遵守当地法规,破解密码是完全合法的。破解他人的数据可能会构成一种刑事犯罪。
ElcomSoft 系列中有一个工具,它利用现代 GPU 的计算能力以及现代多核处理器来最大限度地提高密码攻击的速度。基准测试展示了不同加密格式在各种硬件配置下的恢复速度。这些速度差别很大;对于某些加密格式,即使是最好的硬件也只能每秒测试几个密码,而对于其他格式,速度可以达到每秒数百万个密码。
那么,每秒破解一百万个密码是多还是少呢?事实上,这不是一个正确的问题。正确的问题应该是“以每秒一百万个密码的速度,在一定时间内可以破解哪种密码?”或“以每秒一百万个密码的速度破解某个密码需要多长时间?”
第一种情况是典型的情况,我们事先不知道密码的长度和复杂度,但攻击时间有一定的限制。第二种情况是,密码的最大长度和复杂度受到限制(例如,我们在两种情况下都只尝试包含数字和拉丁字母以及一小组特殊字符的密码),同时计算尝试所有可能组合所需的时间。
例如,如果某个密码的攻击速度为每秒 1000 万个密码,则在两种情况下恢复仅由 5 个拉丁字母组成的密码只需不到五分钟。如果速度为每秒 100 个密码,且密码长度至少为 7 个字符且包含扩展字符范围内的符号,则最大攻击时间将增加到约 7000 亿秒,或大约 22,000 年。您可以在我们的指南中找到计算攻击时间的公式以及更多有用信息。
密码恢复基准测试比漂亮的图表所显示的要复杂一些。始终使用具有固定密码长度和特定字符集限制的完整暴力攻击方法进行测试。此外,测试始终通过运行暴力攻击来执行。暴力攻击使我们能够测量特定 GPU 或 CPU 型号的纯攻击速度。其他攻击方法,例如掩码攻击、字典攻击或更复杂的混合攻击,需要额外的计算,这可能会限制显卡的利用率。最后,不要立即开始测量。等待几分钟让攻击“稳定下来”,让工具有时间将所需的代码加载并编译到 GPU 中。
大多数密码保护方法都依赖于多轮哈希迭代来减缓暴力攻击。即使是最快的处理器在尝试破解相当强的密码时也会卡住。可以使用显卡通过 GPU 加速来加快恢复速度,但目前 GPU 市场过热,大多数高端显卡的价格都严重过高。以下测试基于一些低端显卡,比较它们的性价比。
使用 GPU 核心代替 CPU 有助于更快地破解密码。即使是最慢的内置 GPU(TDP 为几瓦)也可以轻松实现与 190W CPU 相当的性能。与普通的 Intel Core i7 CPU 相比,NVIDIA RTX 4080 等高端 GPU 破解密码的速度可提高 500 倍,而中端显卡的破解速度可提高 250 倍。
GPU 加速将计算密集型计算从计算机的 CPU 转移到显卡的计算单元 (CU)。专用显卡可以提供远远超过高端 CPU 指标的速度。即使是普通的集成 GPU(内置于 CPU 中的 GPU)也可能能够达到或超过中央处理器的性能,同时消耗更少的电量,并且在类似负载下散发的热量仅为 CPU 产生的一小部分。
通常,即使有多张高性能显卡也不足以在合理的时间内成功恢复密码。在这种情况下,分布式计算(ElcomSoft Distributed Password Recovery)可以解决问题。分布式计算与使用 GPU 的有效性在很大程度上取决于数据格式和哈希算法。如果数据可以在 GPU 上加速,即使是基本的显卡也可以胜过大型非加速计算机网络。但是,多台计算机(每台都配备多个强大的 GPU)可以比单台计算机提供显着优势。值得注意的是,有些算法根本无法在 GPU 上加速,因此分布式计算是加速攻击的唯一选择。
因此,虽然分布式网络方案通常更好,但网络中的每台计算机都应配备强大的 GPU 以获得最佳性能。
这种可能性极小。由于 GPU 和 CPU 之间存在根本的架构差异,因此 GPU 不会取代 CPU。GPU 擅长在数千个线程上并行执行单个操作,这使得它们在密码破解等任务中非常高效。但是,对于日常任务,CPU 更合适,因为它们的内核可以完全独立运行。这种独立性使 CPU 可以同时处理各种任务,而每个 GPU 内核都比单个 CPU 内核慢,并且只能同时执行相同的操作。因此,虽然 GPU 对于特定的可并行任务更快,但对于日常计算中遇到的多样化和独立任务,CPU 是必不可少的。
如果您正在购买新系统,请购买符合您预算的当前一代最强大的 NVIDIA 主板。如果您已经拥有上一代 GPU,可以继续使用,只要它们足够强大;如果没有,请参见上文。请注意,如果您购买新的 GPU,上一代 GPU 通常不值得,即使价格看起来很有吸引力。
当前的 NVIDIA 产品线非常复杂。仅 4060 就有多种型号,还有 4070 和 4080 的多种变体可供选择。
它们在理论上很棒,但在现实生活中却不那么好,因为它们的成本高昂且软件支持有限。当然,人们可以制造出具有成本效益的 ASIC,但它们的价格只有在规模经济的情况下才会下降。从密码破解的角度来看,根本没有足够的需求来制造具有成本效益的 ASIC,不要忘记仍然有限的软件支持。如果您正在寻找高效的加速硬件,请寻找节能的 GPU。
功耗和电源效率是两个关键参数,但人们往往会因为追求速度而忽视这两个参数。在构建一个全天候工作负荷的工作站时,与每瓦性能相比,绝对性能数字可能不那么重要。需要了解各种显卡的电源效率和散热解决方案。
在构建包含多台配备高耗电 GPU 的计算机的数据中心时,计算整个系统的总能耗对于确保准确规划电力传输和散热至关重要。
例如,假设有一套包含一百个 GPU 的装置,每个 GPU 的最大功耗为 300W,安装在多个工作站中。除此之外,还需要一定数量的 UPS。总的来说,该装置至少需要 45KW 的功率。不仅需要足够的电力输送,还需要足够的空调来冷却房间。
密码用于保护对文档、数据库、压缩档案、加密磁盘以及人们能想到的许多其他事物的访问。密码几乎从不存储,相反,密码被“散列”,或用单向函数转换。如果转换正确执行,转换结果无法逆转,并且原始密码无法从散列函数的结果中“解密”。
原始密码哈希很少直接用作加密密钥。例如,许多磁盘加密工具可以使用密码来加密所谓的“保护器”,而“保护器”又用于保护“密钥加密密钥”,而“密钥加密密钥”又用于保护“媒体加密密钥”,而“媒体加密密钥”最终用于加密和解密数据。值得注意的是,有些保护器根本不使用密码(相反,它们可以使用 TPM、恢复密钥或 USB 闪存驱动器来解锁磁盘)。密码是唯一可以通过尝试多种不同组合来破解的东西。有关密码、哈希和加密的更多信息:
通常,密码会使用多轮单向转换函数进行哈希处理,然后存储在文件头中,这样无需实际解密加密内容即可验证密码。加密密钥本身与保存的哈希不同,但密码攻击是针对此哈希进行的。如果找到正确的密码,则单独计算加密密钥。有时,密码哈希不存储在文件头中,需要解密部分或全部数据才能验证密码,这会减慢攻击速度。此类攻击的速度取决于需要解密的数据的大小。使用此方法的一种常见格式是 RAR4 档案。后来的版本 RAR5 不再使用此方法。
恢复原始密码的方法有很多种,从暴力破解到非常复杂的基于规则的攻击。
理论上,在暴力攻击过程中,攻击者会尝试所有可能的密码组合,直到达到一定长度,但实际上,这通常仅限于字符子集(如大写和小写拉丁字母、数字和一些特殊字符)。由于完整的 Unicode 集有 149,186 个字符,因此对整个字符集进行暴力攻击根本不可行。即使是由完整 Unicode 集组成的三个字符的密码,破解时间也长得不切实际。实际上,密码很少包含来自如此多样化和扩展的字符集的符号,因此暴力攻击通常仅限于某些字母表。
暴力破解攻击速度最快,但由于在此类攻击中需要尝试的密码数量最多,因此当所有其他选项都用尽时,暴力破解是最后的手段。由于暴力破解对于较长的密码极其低效,因此发明了其他类型的攻击来减少需要尝试的密码数量。字典攻击使用英语字典(和/或用户的母语)中的单词作为可能的密码。还有各种使用掩码、变异和自定义规则的其他攻击。
密码恢复攻击有多种类型,何时会使用每种攻击,又按什么顺序使用?对密码恢复作业进行排序很重要。
在加密方面,数据格式有多种不同。其中一个主要区别是,可用于运行和加速密码恢复攻击的硬件类型。主要有三种情况:
GPU 加速攻击
GPU 擅长在多个核心上并行执行多个简单计算。这使得它们非常适合对可以拆分成大量简单任务的格式进行暴力攻击。当一项作业可以拆分为数千个 GPU 核心运行时,计算机 CPU 的少数核心就变得微不足道了,因为它们在增加开销的同时增加了最小的性能提升。
大多数当前数据格式都针对 GPU 进行了优化,但我们观察到向抗 GPU 算法设计的转变正在缓慢进行。
仅限 CPU 的攻击(抗 GPU 算法)
一些算法旨在抵御 GPU 加速攻击。这可以通过各种方式实现。首先,GPU 核心可以很好地处理简单任务,但无法处理某些密码到二进制密钥转换所需的更复杂的计算。此类算法必须在 CPU 上运行,从而大大降低了攻击速度。
CPU 利用率高的 GPU 辅助攻击
一些算法同时使用 GPU 和 CPU 核心。通常,GPU 处理大部分工作负载,而 CPU 执行必要的支持任务。例如,强大的 16 核 CPU 可以协助 GPU,但它无法与 GPU 单独实现的强大速度相匹配。
非暴力攻击通常效率更高,但仍然会严重负载 CPU。这些“智能”攻击比暴力攻击慢,因为它们依赖于必须生成的密码批次。在某些格式下,CPU 可能难以快速生成密码批次以完全加载 GPU,因此需要在 GPU 本身上运行生成过程,这进一步加重了 GPU 的负担并减慢了攻击速度。
内存密集型算法
一些哈希算法需要占用大量内存,旨在阻止 GPU 攻击。例如,BestCrypt 中使用的 Scrypt 算法可确保即使是最弱的计算机也可以毫无问题地检查单个密码,但尝试在 GPU 上并行运行许多检查会很快耗尽其内存。这种精心设计的选择使此类算法具有 GPU 抗性。