人们如何攻击加密文件?

时间:2013-01-13 23:05:32

标签: encryption aes

我最近一直在阅读文件加密,并且在很多地方我都看到警告说加密文件很容易被人们解密,而不管加密算法的强度如何。

但是,我无法理解有人试图解密加密文件的方式。

例如,假设您有一个加密文件,并且您想知道它的内容。您不知道用于加密文件的密钥是什么,也不知道使用的加密算法。你是做什么? (假设本例中加密算法是对称密钥算法,例如AES-256,I.E。用密钥加密的文件,需要密钥对其进行解密)。

此外,如果您知道使用的加密算法,您的方法将如何改变? (在这种情况下假设使用的加密算法是AES-256,带有随机密钥+盐)。

4 个答案:

答案 0 :(得分:3)

有两种方法可以回答这个问题,从字面意义上讲,一个完美的加密系统是如何被攻击的,以及现实世界系统是如何被攻击的。当您开始了解有关密码学的更多信息时,您会发现最大的问题之一是选择算法很容易。这就是你如何管理难以置信的难关。

攻击基本图元的方式取决于算法的类型。对于由AES等对称密码加密的数据,您使用Brute force attacks。也就是说,您可以有效地尝试每一个键,直到找到正确的键。不幸的是,除非物理定律发生变化,否则无法尝试每个可能的256位密钥。来自维基百科:"A device that could check a billion billion (10^18) AES keys per second would in theory require about 3×10^51 years to exhaust the 256-bit key space"

关于遇到看似加密的文件的问题,在不了解所使用的方法的情况下,问题是它有点像Distinguishing Attack这个问题。所有现代算法的要求之一是它们的输出应该与随机数据无法区分。如果我在AES和Twofish下加密某些东西,然后给你一些随机数据,没有像标题这样的任何其他信息,你就无法区分它们。话虽如此......

您询问算法的知识如何改变方法。密码学家通常做的一个假设是算法的知识根本不应该影响安全性,它应该都取决于密钥。通常,您正在使用的任何协议都会告诉您算法规范。如果这不公开,互操作性将是一场噩梦。例如,Cipher Suites是像SSL一样支持协议的算法集。 NIST FIPSNSA Suite B是由联邦政府标准化的算法,大多数人都遵循这些算法。

在实践中,大多数加密系统存在更大的问题。

  • Bad random number generation:密码学需要非常好的,不可预测的随机数生成器。糟糕的随机数生成器可以完全破坏安全性,如Netscape's SSL implementation的情况。您还有一些示例,例如Debian RNG错误,开发人员更改了代码以满足内存泄漏警告,这最终导致Debian为每个系统生成相同的证书密钥。

  • Timing Attacks:某些操作在计算机上执行的时间比其他操作要长。有时,攻击者可以观察到这种延迟并推断出秘密值。这是has been demonstrated通过本地网络远程恢复服务器的私钥。

  • Attacks against the host:攻击密码系统的一种方法是攻击主机。通过冷却内存,可以在您控制的机器中保留和检查其内容。

  • Rubber hose cryptanalysis:也许是最简单的攻击之一,除非他们泄露钥匙,否则你会对身体受到伤害或被监禁的人进行威胁。关于法院是否可以强迫你揭示加密密钥,已经有很多interesting case law

答案 1 :(得分:1)

以基本的暴力攻击为例。您要求软件尝试使用a-z A-Z 0-9在1个字符到15个字符之间的每个组合并等待。 软件将从0到10 ...然后0a,0b,0c开始,直到找到密码。 Wikipedia会为您提供更多详细信息。

答案 2 :(得分:1)

AES256实际上是牢不可破的。

来自http://www.wilderssecurity.com/showthread.php?t=212324

  

我认为任何机构都没有任何可信的猜测   打破正确实施的AES。没有已知的密码分析   攻击,实际上强制执行A​​ES-256可能超出人类   我们生命中的任何能力。我们假设56位DES   可以在1秒内强制执行,这是一个荒谬的假设开始   用。那么AES-256需要2 ^ 200秒,即5 x 10 ^ 52年。   所以,你可以看到,如果没有任何已知的AES弱点,它将是一个   在我们的任何一生中都是完全不可能的,即使是量子的   计算。我们的太阳将爆炸,大约50亿年   现在,在我们获得足够的计算能力来强制使用AES-256之前   没有已知的弱点。如果从未找到AES的弱点,那就是   除了AES之外,绝对没有理由寻找另一种密码。   只要人类占据地球就足够了。

答案 3 :(得分:1)

我部分同意安德鲁,部分同意杰里米。

在这种情况下,如果正确生成加密密钥(随机生成或基于复杂密码,良好的密钥派生函数和随机盐),那么AES256实际上是牢不可破的(正如安德鲁所说)

另一方面,如果未正确生成密钥。例如,只需4位数的PIN密码直接哈希,蛮力就可以非常高效。

关于“您不知道用于加密文件的密钥是什么,也不知道使用的加密算法。”

在大多数情况下,加密文件有一个页眉或页脚,用于指定某些内容(用于加密文件的应用程序,加密算法或其他内容)。

你可以尝试通过填充来计算算法(例如3DES有填充,AES有不同的填充)