密码系统 - 攻击



密码学就像一种用于保护信息的秘密代码。有时,有些人试图破解这些代码以访问私人信息。这些尝试就是我们所说的攻击。密码系统可能会遭受多种形式的攻击,我们将在本文中讨论这些攻击。

在当前情况下,不仅商业,几乎所有人类生活方面都由信息驱动。因此,保护敏感信息免受攻击和其他恶意活动变得至关重要。让我们考虑一下,信息通常是一种攻击类型。

Cryptosystem Attacks

通常,攻击根据攻击者采取的操作进行分类。攻击可能分为两种形式:被动或主动。

让我们看看这些攻击是什么 -

被动攻击

被动密码攻击试图通过监控或记录广泛的通信来未经授权地访问敏感数据或信息。在这种情况下,数据和通信保持不变且未被篡改。攻击者可以访问的所有内容都是数据。

这些操作是被动的,因为它们不会影响信息或干扰通信渠道。被动攻击通常被认为是信息盗窃。产品盗窃和信息盗窃之间唯一的区别在于,数据盗窃仍然使数据处于所有者的控制之下。因此,被动信息攻击比商品盗窃更危险,因为信息盗窃可能在所有者不知情的情况下发生。

Passive Attacks

主动攻击

主动攻击包括对信息执行某个过程以某种方式更改它。例如,

  • 以未经授权的方式修改信息。

  • 发起意外或未经授权的信息传输。

  • 修改身份验证数据,包括发件人的身份或与信息相关的日期时间戳。

  • 未经授权的数据删除。

  • 拒绝授权用户访问信息(拒绝服务)。

Active Attacks

密码学中提供了许多工具和方法来创建能够抵御上述大多数攻击的密码系统。

攻击者如何思考

让我们看看密码系统的当前环境以及用于破解它们的攻击。

密码系统周围的环境

在考虑潜在攻击时,了解密码系统的环境非常重要。攻击者的能力取决于攻击者的假设和环境信息。

对密码学中的安全环境和攻击者的技能做出了三个假设。

加密方案详细信息

以下两种密码学算法是密码系统设计的基石 -

  • 公开算法 - 在这种情况下,算法的完整规范可供公众领域使用,众所周知。

  • 专有算法 - 这些算法仅为设计系统及其用户的人员所知。

对于专有算法,安全是通过模糊性来确保的。由于私有算法是在内部创建的,并且可能没有经过彻底的缺陷检查,因此它们可能不是最强大的算法。

其次,它们仅允许封闭组之间进行通信。因此,对于人们在现代通信中相互通信的大量已知和未知项目,它们效率低下。此外,根据 Kerckhoff 原则,应公开包含加密强度的密钥的方法。

因此,攻击者对加密算法的了解是关于安全环境的初始假设。

密文的可用性

我们知道,数据在从明文转换为密文后,会通过不安全的公共通道(如电子邮件)传输。这意味着攻击者可以假设可以访问密码系统生成的密文。

明文和密文的可用性

这个假设不如其他假设明显。但是,可能存在攻击者可以访问明文和相关密文的情况。一些此类可能的情况是 -

  • 攻击者通过说服发送方转换所选明文来获取密文。

  • 无意中,接收者可能会向攻击者提供明文访问权限。攻击者可以访问从开放信道收集的相应密文。

  • 在公钥密码系统中,任何可能的攻击者都可以知道加密密钥,因为它处于公开领域。他可以使用此密钥创建明文和密文的匹配对。

密码攻击

攻击者的主要目标是破解密码系统并从密文中提取明文。由于该技术现在已成为公开知识,因此攻击者只需要发现秘密解密密钥即可检索明文。

然后,他尽一切努力发现密码系统的密钥。在攻击者成功找到密钥后,被攻击的系统被宣布已遭到破坏或破解。

根据使用的方法,对密码系统的攻击可分为以下几种:

  • **仅密文攻击 (COA)** - 攻击者使用此方法时可以访问密文集合。他无法控制相关的明文。当可以使用给定的一组密文来确定相应的明文时,COA 被认为是成功的。在某些情况下,此方法可用于找出加密密钥。当前的密码系统可以防止针对仅密文的攻击。

  • **已知明文攻击 (KPA)** - 使用此技术,攻击者知道密文的某些部分为明文。利用这些知识,挑战在于解密其余密文。这可以通过查找密钥或以其他方式完成。分组密码最有效地使用线性密码分析进行攻击。

  • **选择明文攻击 (CPA)** - 攻击者使用此方法加密他选择文本的版本。因此,他可以选择密文和明文对。这使得他更容易找出加密密钥。针对哈希函数和分组密码使用的差分密码分析就是这种攻击类型的示例。RSA(一种众所周知的公钥密码系统)容易受到选择明文攻击。

  • **字典攻击** - 此方法有多种版本,所有这些版本都涉及创建“字典”。在最基本的攻击版本中,攻击者会创建一个包含他随着时间的推移学习到的密文和匹配明文的字典。当攻击者将来收到密文时,他会在字典中检查以确定匹配的明文。

  • **蛮力攻击 (BFA)** - 使用此技术,攻击者尝试所有可能使用的密钥以找出密钥。如果密钥有 8 位,则有 28 = 256 个可能的密钥。攻击者尝试使用 256 个密钥中的每一个依次解密,了解算法和密文。如果密钥很长,则攻击将花费很长时间才能完成。

  • **生日攻击** - 攻击利用了蛮力方法的另一种版本。它用于攻击密码学中的哈希函数。当老师问班上的学生他们的出生日期时,学生可以回答 365 个可用日期中的任何一个。假设第一个学生出生在 8 月 3 日。然后,要找到下一个出生日期为 8 月 3 日的学生,我们需要询问大约 1.25 * √365 ≈ 25 名学生。

    同样,如果哈希函数产生 64 位哈希值,则可能的哈希值是 1.8x1019。通过不断检查函数的多个输入,在大约 5.1x109 个随机输入后,大约会获得相同的输出。

    当攻击者找到两个产生相同哈希值的不同的输入时,就会发生**冲突**;在这种情况下,哈希函数被认为已损坏。

  • **中间人攻击 (MIM)** - 大多数公钥密码系统(在通信前需要密钥交换)都是这种攻击的目标。

    • 为了与主机 B 通信,主机 A 请求 B 的公钥。

    • 攻击者没有回复此请求,而是发送了他的公钥。

    • 因此,攻击者可以读取主机 A 发送给主机 B 的任何内容。

    • 攻击者使用他的公钥读取数据,重新加密它,并将其发送给 B 以保持通信线路畅通。

    • 为了使其看起来像是 BA 接收数据,攻击者将他的公钥作为 A 的公钥发送。

  • **侧信道攻击 (SCA)** - 这种攻击不针对任何特定类型的算法或密码系统。相反,它的目的是利用密码系统物理实现中的弱点。

  • **定时攻击** - 它们利用不同处理器计算以不同速率计算的事实。可以通过测量这些时间来确定处理器正在执行的特定计算。例如,延长的加密时间表示密钥很长。

  • **功耗分析攻击** - 这些攻击类似于定时攻击,因为可以通过测量功耗来确定有关底层计算类型的信息。

  • **故障分析攻击** - 在这些攻击中,密码系统被诱导出错,攻击者检查输出以查找有价值的信息。

实际的密码攻击

由于此处提到的对密码系统的大多数攻击都起源于学术界,因此它们被认为具有极高的教育意义。实际上,许多学术攻击都涉及对攻击者和环境的能力做出极其不切实际的假设。例如,在选择密文攻击中,攻击者需要数量不切实际的故意选择明文密文对。它可能根本不切实际。

但是,任何攻击的存在都应该引起警觉,尤其是在攻击方法具有发展潜力的情况下。

防止密码攻击

应建立强大的密码系统以防止密码攻击。防止这种情况的一些方法包括:

  • 定期更新密码算法和协议,使其不会过时。

  • 确保数据得到正确加密,以便即使落入坏人之手也无法读取。

  • 应使用强大且唯一的密钥进行加密。

  • 将密钥保存在安全的地方。

  • 确保密码系统的正确实施。

  • 定期测试系统是否存在漏洞。

  • 教育员工了解密码攻击预防措施。

广告