身份验证和识别之间的区别[加密和安全角度]

信息安全 验证 鉴别
2021-08-28 18:09:30

我总是对安全文献中使用身份验证这个词的方式感到困惑(即,在加密领域之外)。大多数时候,我理解它们实际上是在暗示识别

例如来自 Wikipedia:中央身份验证服务使用术语身份验证来暗示身份(如果我理解正确的话)。

据我了解,在加密货币中:

  • 身份验证:证明消息来自某个给定秘密的持有者。
  • 身份证明:对方知道某个给定秘密的不可转让证明(不泄露秘密)
  • 不可否认性:消息来自某个给定秘密的持有者的可转移证明。

[请让我知道我是否正确理解了这三个术语。随意提供替代/精炼/更有用的定义]

有人可以详细说明这两个术语的含义authentication以及identification加密和一般安全文献中的含义吗?

4个回答

在通过网络进行通信的上下文中,身份等同于对特定数据的了解:概括地说,从外部来看,您可以从外部了解给定实体的信息仅包含该实体发出的字节数,即它可以计算什么既然每个人都可以买到同一种PC,那么计算能力的差异最终在于实体所知道的例如,从 StackExchange 的角度来看,不同,只是您知道“Jus12”帐户的密码,而我不知道,而我知道“Tom Leek”帐户的密码,而您不知道.

识别是关于确保一个给定的实体参与其中并且以某种方式“活跃”。例如,StackExchange 服务器可以通过挑战我(我的计算机)显示我的密码来确保我还活着并且在踢。请注意,StackExchange 服务器(实际上是另一台服务器,因为它们使用间接方案,但这是技术性问题)知道我的密码,因此当成功响应 SE 质询时,SE 服务器只知道,在另一端线,操作一个实体,它要么是我,要么是 SE 服务器本身。识别协议必须注意避免或至少可靠地检测到服务器被狡猾的恶意个人(以下称为通用术语“攻击者”)诱导与自己交谈的情况。

身份认同本身是毫无用处的。SE服务器想知道的不是我,Tom Leek,存在并且醒着;SE服务器对此深信不疑,并不在意。SE 服务器想要的是确保我批准我要发出的 HTTP 请求。他们想要身份验证:这是应用于其他一些数据的身份验证。因此,识别是有用的,因为它可以被认为适用于一堆数据,然后作为“经过验证的”出处。对于攻击者可能对数据造成的攻击,身份和数据之间的联系必须具有弹性。在 StackExchange 的情况下,攻击者应该是相当弱的,因为完整性HTTP 请求的假设:标识部分变成 cookie,作为 HTTP 请求的一部分,SE 服务器只是假设攻击者无法更改请求或 cookie,或复制 cookie 并将其移植到新的虚假 HTTP 上要求。

更彻底的身份验证通常使用加密的强链接,例如SSL/TLS隧道(通常作为 HTTPS 的一部分)。隧道的加密属性意味着服务器可以确定它会在整个 SSL 会话中与同一个实体进行对话;此外,服务器假定用户不会播放与他的帐户密码相关的任何识别协议,除非这发生在服务器经过适当身份验证的 SSL 隧道上(即,客户端确定它与正确的服务器通信 -这就是服务器证书的内容——它发送的任何数据都只会发送到该服务器,所以它是身份验证)。在这些条件下,如果服务器可以识别我在那个隧道中,然后标识覆盖了之后通过隧道发送的任何数据:隧道是标识和数据之间的链接,所以这就是身份验证。

不可否认性是某些身份验证协议的一个特征,其中身份和数据之间的链接不仅可以由位于线路另一端的任何人以交互方式进行验证,还可以由不可告人的第三方(例如法官)进行验证. 基于密码的方案通常不提供该属性,因为无论谁验证密码也必须或多或少直接知道它,因此可以构成所谓的发射器。不可否认性需要数学。请注意,在 SSL 隧道中,客户端通过其证书对服务器进行身份验证,该证书充满了非对称加密,但这并不授予不可否认性:客户端确信它从服务器接收到的任何数据确实来自服务器,但是客户端无法记录任何内容,这将使法官相信服务器确实发送了该数据。要获得不可否认性,您需要数字签名在没有不可否认性的情况下,可以使用称为消息身份验证代码的算法进行身份验证,计算上更轻。令人困惑的是,有一个广泛的(但不正确的)将 MAC 称为“签名”的传统。

概括:

  • 识别:特定实体E参与其中并做出响应。
  • 完整性:接收到的任何数据都已由某个实体E'按原样发送并且未更改。
  • 身份验证:身份和完整性同时进行(E = E')。
  • 不可否认性:可以说服法官的认证。

标识是描述主体的一种方式,例如用户名、电子邮件、名字+姓氏等。主体是用户。

身份验证是一种证明委托人是他们所说的人的方法。

因此,例如,当我登录系统时,我使用我的用户名(嗨,我是 SteveS)来标识自己,并且我通过提供只有我知道并且系统可以验证的密码来验证自己(我是 SteveS,因为我的密码是“富”)。

一个很好的现实世界的例子是驾驶执照的使用。我可以在我的衬衫上贴上一个姓名标签,表明我是乔,但是如果有人需要证明我是乔的证据,我会向他们出示我的驾照。通过将许可证上的照片与该人进行比较来完成身份验证。

我的回答很简短,但这就是我一直阅读这两本书的方式。

识别就是说“我是乔·施莫!” 身份验证是用某些东西(密码、出生证明、DNA 结果)来证明它。

在 IT 中,我们需要每个人都有单独的 ID,这样我们才能正确识别他们并为他们分配权限(我是 Joe Schmoe!我也是!我三个!但我们并不都需要相同的访问权限)。我们还需要人们通过对自己进行身份验证来证明他们是他们声称的身份(记住身份验证的三个因素,即您知道、拥有或存在的东西)。

使用简单的解释

识别:是您识别某人的方式,即您如何称呼该人或公司。可以是姓名、银行帐号、某些特定系统中的用户名。

身份验证:是您如何确认在您的系统中做某事的人确实是他所说的人。他可以通过提供他知道的东西(密码 - 单因素身份验证)或通过提供他知道的东西 + 他拥有的东西(密码 + 数字证书 - 双因素身份验证)来证明这一点。

不可否认性:一个人不能否认某个文件等的作者身份,因为该文件只能由经过身份验证的人制作,因此特定身份与该文件之间存在关系。