身份验证、数据加密和消息集成中 IP 安全问题之间的区别?

difference between IP security issue in authentication, data encryption, and message integration?

我对这些术语以及他们使用什么方法或算法来实现这一点感到困惑。据我了解,数据加密有两种方式:对称密钥和public密钥;消息整合是通过哈希算法完成的;以及认证方式包括public key, pre shred key等。不过这三者是什么关系,或者谁能举例说明一下。我真的对这三个术语感到困惑。谢谢!

这是一个比 IPSec 问题更一般的密码学问题,所以我已经回答了一般情况:

密码学通常用于提供三个主要属性;身份验证、混淆(加密)和数据完整性(我认为你所说的 "message integration" 是什么意思)。

要了解这些属性是什么、我们为什么需要它们、密码学如何提供它们以及它们如何相互关联,请考虑以下示例:

Alice 是一家贸易公司的经纪人,她想向她的交易员 Bob 发送一份购买一定数量的特定股票的订单。 Alice是个细心的经纪人,她有几点顾虑:

  1. 她需要确保 Bob 收到正确的消息;如果他买错了数量,或者买错了股票,或者其他什么东西,爱丽丝就会损失很多钱。
  2. 她需要确保 Bob 知道消息来自她,而且只有她。除非爱丽丝告诉他,否则鲍勃不会进行交易,但他需要一种方法来确保确实是爱丽丝在下订单。
  3. 她需要确保没有其他人在交易订单下达之前发现它,否则另一个经纪人会先发制人。

通过明智地应用密码学,我们可以减轻爱丽丝的所有三个担忧。总而言之,我们需要确保 Bob 得到正确的消息; Bob 可以验证 Alice 发送了订单;并且只有 Bob 可以阅读订单。让我们一次处理这些。

  1. 为了确保 Bob 获得正确的订单,他需要某种方式来验证他收到的消息实际上是 Alice 打算发送的消息。一个(相对)简单的方法是 Alice 将她的消息的 hash 与所述消息一起传输。消息的哈希是所谓的 哈希函数 的输出,消息作为其输入。哈希函数具有多种有用的属性,但我们只关注一个;改变乘法。也就是说,即使改变输入中的一位也会产生截然不同的输出; "multiplies" 从单个交换位到巨大分歧的变化。因此,当 Alice 向 Bob 发送消息及其哈希值时,Bob 可以重新计算他​​所拥有的消息的哈希值,并将其与 Alice 发送给他的消息进行比较。如果他们匹配,那么他有正确的信息。然而,即使他收到的消息中有一点被翻转,他也会计算出一个截然不同的散列值,并且能够判断出是什么原因导致他收到了错误的消息。这就是我们如何使用密码学(哈希函数)来确保 数据完整性.
  2. 我们需要确保 Bob 知道消息来自 Alice。欺骗 IP 或电子邮件地址相对容易,因此我们需要比仅查看 "From:" 字段更复杂的东西;我们需要密码学!我们需要让 Alice 对她发送的消息做一些只有 Alice 可以做的事情,并且以 Bob 可以轻松验证的方式进行。为此,我们最常使用的工具是 非对称密码学 。在非对称密码系统中,Alice 有两个密钥可以用来加密数据。加密只是简单地使用密钥和算法将数据转换为另一种形式,以便以后可以逆向(解密)转换。在传统(对称)密码系统中,相同的密钥用于加密和解密数据。然而,使非对称密码系统如此出色的原因在于,使用 Alice 的两个密钥 A 和 B,使用 A 加密的任何内容都可以 使用 B 解密,而使用 B 加密的任何内容只能使用A解密。另外,B只能解密使用A加密的消息,A也只能解密使用B加密的消息。因此,如果您收到消息并且能够使用 B 解密它,您知道发件人使用 A 对其进行了加密。因此 Alice 可以将 A 保密(她的 "private key")并将 B 发布在互联网上供任何人查找。然后,当她向 Bob 发送消息时,她使用 A 对其进行加密(在大多数现代密码系统中,她实际上会使用 A 对消息的哈希进行加密,并将其附加到明文消息中;这称为 签名)。然后 Bob 可以上网,获取 B,并尝试用它来解密他认为从 Alice 那里得到的消息;如果有效,那么他就知道是她发送的,因为只有 Alice 可以访问 A。这就是我们使用密码学(非对称密码学)提供 身份验证.
  3. 的方式
  4. 我们仍然需要确保此消息不被窥探。一种简单的方法(也是当今最常用的方法)是 Bob 生成他自己的一对非对称密钥 X 和 Y,并在互联网上发布 Y。然后,当她发送消息时,Alice 可以获取 Y 并用它来加密她的订单。由于 Bob 是唯一可以访问 X 的人,因此他是唯一可以解密消息的人。另一种简单的方法是使用 对称 密码系统,其中可以使用相同的密钥来加密和解密数据。然后,只要 Alice 和 Bob 都知道密钥,而没有其他人知道,他们就可以使用他们的共享密钥来保护他们的通信。这就是我们如何使用密码学(非对称和对称密码系统)来提供消息 obfuscation.