身份验证、完整性和数据源身份验证之间的区别

信息安全 验证 正直
2021-08-24 18:24:07

我最初认为所有这些术语都是同义词,但有时我会在同一个文档中看到这些术语。例如,在 MSDN 上:

数据源身份验证,它使接收者能够验证消息在传输过程中没有被篡改(数据完整性),并且它们来自预期的发送者(真实性)。

我不完全理解完整性与真实性有何不同。

没有数据完整性,怎么可能只确保发送者的真实性?如果攻击者能够修改内容,我们如何相信 sender 字段是正确的?

同样,知道某些数据具有完整性,但不知道发送者是什么意思?

对我来说,这只是在检查完整性(或真实性,我现在很困惑)的消息部分中是否包含标头的“发件人”字段的问题

据我所知,数字签名解决了完整性和真实性,也许这就是为什么我看不出两者之间的区别。

3个回答

完整性是关于确保某些数据没有从某个“参考版本”中更改。真实性是完整性的一种特殊情况,其中“参考版本”被定义为“在特定实体控制下的任何内容”。身份验证是关于确保给定实体(您正在与之交互的人)是您认为的那个人。

从这个意义上说,当完整性和身份验证结合在一起时,您就会获得真实性。如果您愿意,真实性是通过完整性应用于一段数据的身份验证。

例如,假设您使用浏览器连接到某个https://网站。这意味着 SSL。初始握手过程中有身份验证:服务器发送它的证书并使用它的私钥,服务器的证书包含服务器的名称;您的浏览器会检查服务器名称是否与预期相符(URL 中的服务器名称部分)。然后所有交换的数据都作为“记录”发送,这些“记录”被加密并防止更改:这就是完整性由于您的浏览器接收到的数据保证不会被经过正式验证的服务器发送时的数据修改,因此可以说数据是“真实的”。

不要想太多事情。该术语至少有一半是传统的,这意味着它不一定是实用的。我们喜欢谈论三合会“机密性-完整性-真实性”,主要是因为它使首字母缩写词“CIA”看起来很酷。

看起来已经有了一个很好的答案,但让我详细说明 CIA 三合会中的可用性与身份验证。“A”代表什么随着上下文而变化。

如果我们谈论基于硬件的嵌入式安全性,则使用身份验证。当我们讨论安全元件或完整 TPM 的加密原语功能时,“A”代表“身份验证”。

可用性是一种网络安全/信息安全(IS)结构。“可用”系统旨在始终保持用户可用,防止或减轻因断电(备用电源)、硬件故障(冗余)、系统升级和拒绝服务攻击而导致的服务中断。

嵌入式安全为网络安全提供信息,然后网络安全决定如何对这些信息采取行动,但嵌入式安全对可用性的任何影响充其量只是间接的。因此,在讨论 IPsec 等基于硬件的功能时讨论可用性是不正确的。

我将尝试回答“数字签名解决完整性和真实性”。

数字签名携带发件人的数字证书,该证书通常由证书颁发机构 (CA) 颁发给发件人。数字证书验证发送者的身份,这本质上是确保真实性。

接下来,与发送的文档相关的数字签名包含数据的哈希值。比较接收到的哈希值和计算的哈希值证明了数据的完整性。然而,实际发送的数据是以未加密的形式发送的,因此它不涉及机密性。