什么是身份验证?

身份验证是验证身份的过程。它需要使用密码、硬件令牌或许多其他方法。

学习目标

阅读本文后,您将能够:

  • 定义身份验证
  • 描述何时使用身份验证以及它是如何工作的
  • 识别不同类型的身份验证

复制文章链接

什么是身份验证?

在网络安全中,身份验证是验证某人或某物身份的过程。身份验证通常通过检查密码、硬件令牌或其他可证明身份的信息来进行。就像航空公司工作人员在登机时检查护照或身份证以验证一个人的身份一样,计算机系统需要确保一个人确实是他们所说的那个人。在机场,此身份验证过程可确保只有持有机票的人才能登机;对于数字系统,这可以确保只有正确的人才能查看和使用数据。

身份验证不仅适用于验证人类用户。计算机系统还需要检查服务器、软件、API 和其他计算机,以确保它们是所“声称”的身份。

如何在安全背景中使用身份验证?

身份验证是身份和访问管理 (IAM) 的重要组成部分,它决定了谁可以查看数据以及他们可以对它做什么。但它也适用于许多其他安全领域,包括:

  • TLS:当今几乎所有主要网站都支持 Transport Layer Security (TLS)。除其他功能外,TLS 还验证 Web 服务器的身份,以确保用户设备不会加载虚假网站。
  • API:大多数现代 Web 应用程序都依赖 API 才能运行。适当保护的 API 会对 API 集成的两个端点进行身份验证,以防止针对这些 API 的攻击。
  • 电子邮件:使用称为域密钥识别邮件 (DKIM) 的过程对电子邮件进行身份验证。DKIM 有助于确保电子邮件消息来自允许使用电子邮件来源域(例如 @cloudflare.com)的服务器。未经身份验证的电子邮件可能最终会进入垃圾邮件文件夹。

身份验证如何运作?

由于计算机无法像人类那样“识别”一个人或另一台计算机,因此身份验证过程依赖于计算机可以测量的客观标准。一种客观标准涉及检查所讨论的人或计算机已知具有的某些特质。另一个涉及使用一种称为公钥密码学的技术来证明身份。

通过身份验证因素验证身份

这种类型的身份验证涉及根据相应的数字记录检查身份的可测量特征。身份验证系统将检查的特征称为“因素”。当今广泛使用三种常见的身份验证因素:

1. 某人知道的内容

此身份验证因素检查一条只有真人才能拥有的秘密知识。用户名和密码组合是这个因素的典型例子。安全问题和 PIN 码也是该因素的示例。

2. 某人拥有的内容

此身份验证因素检查此人是否拥有向其签发或已知拥有的实物。许多人每天都使用这种身份验证因素:他们用金属钥匙来打开所居住的房子或公寓。因此,拥有��钥匙证明他们有权进入该场所,并使他们能够这样做。

在数字系统中,此身份验证因素不依赖于老式锁和钥匙。但它通过检查物理令牌来使用类似的原理。令牌有两种类型:软令牌和硬令牌。

软令牌:软令牌涉及通过向设备(如智能手机)发送代码并要求用户输入该代码来验证设备的所有权。该代码可以作为短信发送,也可以通过生成随机代码的应用程序发送。

硬令牌:硬令牌是通过蓝牙、USB 端口或其他端口连接到计算机或移动设备的小型物理项目。用户必须将此令牌插入其设备以验证其身份。

一些安全专家认为硬令牌比软令牌更安全。攻击者可以远程截获到达用户手机的代码,并使用该代码冒充用户。但是窃取硬令牌要困难得多:攻击者需要物理上获得令牌才能这样做。

3. 某人的身份

此身份验证因素评估一个人的固有特质。在现实生活中,人们总是这样做——例如,两个朋友可能会通过外貌或说话方式认出对方。计算机可以通过扫描一个人的面部或视网膜、验证他们的指纹、测量他们的声音频率或检查血液测试的结果(尽管最后一种更为罕见)来做同样的事情。

额外的身份验证因素

除了上面列出的三个主要因素之外,安全行业的一些成员还提出或使用了额外的身份验证因素。其中两个额外因素是位置(用户在哪里)和时间(他们访问系统的时间)。

通过数字证书验证身份

除了使用上述身份验证因素之外,还可以向已知和受信任的实体颁发数字证书。数字证书是一个小的数字文件,其中包含用于验证身份的信息,就像身份证包含在现实生活中验证一个人身份的信息一样。

数字证书从颁发它们的机构接收数字签名以证明其真实性,例如护照、身份证或纸币可能有水印证明它不是伪造的。

数字证书还包含一串随机值,称为公。公钥对应于单独存储的私钥。拥有证书的实体可以使用这些密钥对数据进行数字签名,以证明它拥有私钥并因此是真实的。

目前,数字证书不常用于验证个人身份。但是大多数人每天都依赖数字证书,而自己并没有意识到。

每当有人加载使用 HTTPSHTTP 的安全版本)的网站时,TLS 协议都会使用网站的数字证书(称为 SSL 证书或 TLS 证书)来验证网站。对电子邮件发件人进行身份验证的 DKIM,是使用此方法而不是检查身份验证因素的技术的另一个示例。DKIM 帮助电子邮件提供商分类和阻止垃圾邮件。

什么是多因素身份验证(MFA)?

多因素身份验证 (MFA) 是通过检查两个或多个身份验证因素(而不仅仅是一个)来验证个人身份的过程。MFA 是一种比单因素身份验证更强大的身份验证类型,因为伪造其中两个因素比伪造其中一个因素要困难得多。

攻击者可能能够窃取 Bob 的用户名和密码(可能通过网络钓鱼攻击)。但如果 Bob 还必须扫描他的脸,攻击者将无法伪造 Bob 的身份,因为他们的脸看起来不像 Bob 的脸。或者,如果 Bob 除了输入密码之外还必须将一个硬令牌插入他的计算机,那么攻击者也必须窃取这个令牌。虽然这有可能实现,但这种盗窃要困难得多,因此也降低了帐户盗用的可能性。

对于真正的 MFA,必须检查单独的因素。评估一个因素的多个实例不是 MFA。例如,如果应用程序让用户输入密码并回答安全问题进行身份验证,这仍然是单因素身份验证。密码输入和安全问题都评估“你知道的内容”因素。

由于它提供了更高的安全性,MFA 是零信任安全的核心原则,这是一种需要对访问专用网络的每个用户和设备进行身份验证的安全模型。

什么是双因素身份验证 (2FA)?

当恰好使用两个因素时,这种 MFA 就称为双因素身份验证 (2FA)。最常见的双因素身份验证类型是“你知道的内容”+“你拥有的内容”。例如,除了输入密码外,许多人都需要提供发送至其手机的代码才能访问他们的银行账户(这个因素的“软令牌”版本的示例)。

如今,许多企业都在使用 2FA 来减少网络钓鱼攻击的影响。例如,Google 能够通过使用带有硬令牌的 2FA 进行身份验证来消除帐户盗用攻击

身份验证和授权有什么区别?

身份验证与验证身份有关,而授权与权限有关,或者说当某人获得对受保护系统或资源的访问权后,他们可以做什么。

假设 Bob 在他公司的营销部门工作。Bob 输入他的密码,扫描他的脸,然后插入他的硬令牌以登录到他公司的网络。至此,身份验证就完成了。

登录后,Bob 无法访问公司拥有的每个数据文件。授权决定了 Bob 能看到什么和不能看到什么。作为营销人员,他有权查看一些数据,例如公司将向其发送营销信息的潜在客户列表,但不能查看其他数据,例如公司的主要代码库或员工工资表。

请参阅我们关于身份验证与授权的文章以了解更多信息。

什么是单点登录(SSO)?

现代企业员工必须对许多不同的云应用程序进行身份验证。这迫使这些员工建立多组身份验证因素(每个应用程序一组),这会产生潜在的安全问题:

  • 一个安全性较弱的应用程序可能让攻击者能够入侵该应用程序,然后横向移动,入侵用户的其他应用程序帐户,并传播到组织的其他部分。
  • 要求用户登录多个应用程序会促使他们不再遵循良好的安全实践。用户可能会开始为每个应用程序使用弱密码或相同的密码,因为记住多个随机的 16 位密码可能具有挑战性。

单点登录 (SSO) 服务让用户仅需进行一次身份验证。用户登录 SSO 服务,然后根据需要向每个应用程序发送数字身份验证消息,从而将此身份验证传递给每个应用程序。

SSO 还为 IT 团队提供了一个执行安全策略的单点。并非所有应用程序都支持 2FA,但如果 SSO 服务支持它,那么就可以使用 2FA。IT 团队还可以通过 SSO 服务强制要求密码长度和复杂性,从而减轻用户记住多个密码的负担。

什么是安全断言标记语言 (SAML)?

SSO 身份验证消息使用称为安全断言标记语言 (SAML) 的协议。SAML 是一种标准化方法,用于告诉外部应用程序,用户就是他所声称的那个人。

对用户进行身份验证的消息称为 SAML“断言”。一旦应用程序接收到用户的 SAML 断言,它就不需要自行验证用户身份,因为它知道 SSO 服务已经这样做了。

SAML 与 OpenID Connect (OIDC)

OpenID Connect (OIDC) 是 SSO 提供商使用的另一种身份验证协议。OIDC 的功能与 SAML 类似,但它的数据格式不同,还有一些其他区别。SAML 通过 XML 格式化数据,而 OIDC 使用 JSON。

Cloudflare 的 Zero Trust 平台如何帮助进行有效的身份验证?

Cloudflare 提供与所有主要 SSO 提供商合作的 Zero Trust 平台。一旦用户对其 SSO 服务进行身份验证,Cloudflare 就会跨云和本地应用程序实施一致的访问控制。要了解有关此平台的更多信息,包括浏览器隔离安全 Web 网关DNS 过滤和其他零信任功能,请参阅产品页面