Kerberos是什么,它如何工作,网络身份验证简介
Kerberos安全协议已成为现代网络安全的主要内容。实际上,它是如此集成,以至于大多数用户甚至开发人员都忘记了它的存在。这种幕后状态可以使人们知道Kerberos是什么以及它如何工作的信息,尤其是采用该协议如今采用的所有不同形式时。
在本文中,我们将回答Kerberos是什么,它如何工作,并探讨Kerberos安全工程师必须克服的常见攻击。
到最后,您将对现代网络安全有了新的认识,并希望对网络安全的兴趣达到顶峰!
这是我们今天将学习的内容:
- 什么是Kerberos?
- Kerberos的核心组件
- Kerberos如何工作?
- Kerberos进程故障
- Kerberos是可入侵的吗?
- 接下来要学什么
一站式开始使用Kerberos
一站式获取从Kerberos初学者到专家所需的所有说明。避免繁琐的搜索,并为有抱负的安全工程师享受我们的互动式和速读课程。
什么是Kerberos?
Kerberos是一种计算机网络身份验证协议,旨在简化和保护身份验证。
Kerberos的中心思想围绕使用由身份验证服务器授予的称为票证的本地形式的个人标识。每个票证属于确定票证授予访问权限的某些领域。这些票证已加密,需要使用多个解密级别。该票务系统可确保绝不会通过网络发送诸如密码之类的敏感信息。
自从1980年代在麻省理工学院创建以来,Kerberos已经非常成熟。现在,它已内置于整个网络中无数与安全相关的实现中,几乎所有公司每天都与至少一个Kerberos系统进行交互。Kerberos最广为人知的用法是用于Microsoft的Active Directory,它是Windows 2000以及以后的默认目录服务,用于控制域和对用户进行身份验证。苹果,NASA,谷歌,美国国防部和美国各地的大学还拥有其他突出的用途。
Kerberos的好处
Kerberos由于其简便性和无与伦比的数据安全性而被广泛使用。这里只是其中的一些好处:
- 安全: Kerberos永远不会通过网络传输密码。取而代之的是,Kerberos通过发送在一定时间后无效的有时间限制的加密消息来证明用户身份。即使消息被拦截和解密,它们也将在几分钟之内变得无用!
- 单一登录: Kerberos仅要求用户在首次认证客户端时键入一次密码。从那时起,用户无需重新输入密码即可访问Kerberos领域内的所有kerberized服务。在超时之前,对域的访问将持续一段由管理员决定的设定时间。单一登录通过消除多重登录要求的麻烦,简化了使用多种服务的工作。
- 受信任的第三方: Kerberos使用称为密钥分发中心(KDC)的集中式身份验证服务器,默认情况下,网络中的所有其他设备都信任该服务器。所有身份验证请求(例如加密消息)都通过此服务器路由。该外包确保敏感信息不会存储在本地计算机上。
- 相互认证:在Kerberos中,必须在允许通信之前对通信的两端进行认证。相互认证极大地降低了欺诈行为者诱骗系统发送机密信息的能力。
相互认证的示例:
使用Kerberos的网络中的用户可以向邮件服务器进行身份验证,以证明自己就是他们所声称的身份。另一方面,邮件服务器还必须验证它确实是邮件服务器,而不是网络中的其他服务,它们假装为邮件服务器。如果双方都通过身份验证,则建立连接。
Kerberos的核心组件
密钥分配中心
密钥分发中心(KDC)是Kerberos的中央过程,包含身份验证服务器(AS)和票证授予服务(TGS)。它的主要功能是充当这两者之间的中介者,中继来自AS的消息,授予票证授予票证(TGT),然后将其传递给由TGS加密的票证。此假冒之后,KDC在身份验证过程中几乎没有影响。
购票票
客户端成功通过身份验证后,此票证将由KDC授予。TGT是加密的,并且包含有关客户端可以访问哪些服务,授予访问权限的时间以及用于与客户端进行通信的会话密钥的权限。客户端无法解密TGT,因为它们没有TGS密钥。因此,他们必须盲目将TGT呈现给所需的服务(可以访问TGS),并允许服务确定客户端是否可以访问它。通过向客户端隐藏TGT,Kerberos可以防止客户端欺诈性地复制或更改权限。
认证服务器
身份验证服务器是使用Kerberos进行身份验证的第一站。客户端首先必须使用用户名和密码登录名向AS进行身份验证。完成此操作后,AS会将用户名转发给KDC,后者又将授予TGT。如果不完成第一步,客户端将无法与Kerberos系统的任何其他部分进行交互。
票务授予服务
票证授予服务充当持有TGT的客户端与网络上各种服务之间的网守。当客户想要访问服务时,他们必须向TGS出示其TGT。然后,TGS对TGT进行身份验证,并建立服务器和客户端共享的会话密钥。如果TGS确认客户端TGT包括对所需服务的访问,则向客户端授予访问权限以请求服务。
Kerberos如何工作?
Kerberos身份验证按以下四个阶段进行工作,这些阶段根据组件交互的不同而不同:
- 用户/客户端登录:此阶段的交互是在用户和客户端之间。用户将其用户名和密码信息输入客户端。然后,客户端将该密码转换为本地存储的密码密钥。如果正确完成,则客户端可以开始使用AS进行身份验证。
- 客户端/ AS身份验证:在此阶段,客户端和Authentication Server连接以对用户的用户名进行身份验证,并确保它们是系统的一部分。然后,AS会检查用户名是否已记录在系统中。如果是这样,则客户端和AS交换加密的验证消息以相互验证。到最后,两者都通过了身份验证,建立了连接,并且客户端可以使用服务进行身份验证。
- 客户端/服务认证:在此阶段,客户端和服务器必须相互认证,并与相互认证实践保持一致。客户端和服务器交换加密的验证消息,类似于上一阶段。如果所有这些都通过,则对客户端和服务进行身份验证,并清除客户端以请求其服务。
- 客户端/服务请求:最后,客户端可以从服务服务器请求命名服务。然后,服务服务器验证它是否具有所请求的服务可用。如果是,则服务服务器将服务授予客户端。由于客户端已通过此过程的所有步骤进行了身份验证,因此他们可以继续使用该服务,直到其权限到期。
Kerberos流程示例
这些阶段中的每个阶段都需要执行几个步骤,但实时过程非常迅速。为了将上面学到的内容放到上下文中,让我们看一个真实的例子。
在工作日开始时,您将密码输入客户。密码由AS验证,然后由KDC授予您TGT。该票证具有该dataScience
领域的一组密钥。然后将TGT缓存在您的计算机上,以备后用。此访问权限使您可以使用dataScience
领域内的任何服务,例如访问客户购买行为。
然后,您可以随时访问此服务,而无需每次都验证权限。但是,如果您尝试从该finances
领域访问任何服务,则将被拒绝,因为您的TGT没有该领域的密钥。在工作日结束时,您的TGT到期,您将无法再次访问这些服务,直到第二天登录时获得新票证为止。
继续学习。
获得有关防止Kerberos网络攻击的深入说明和动手实践。Educative的略读式和交互式课程旨在向您传授在一个地方找到工作所需的所有信息。
最后,您将了解Kerberos的优缺点,并能够诊断和解决自己的Kerberos安全漏洞。
Kerberos进程故障
现在,我们将分解过程的每个步骤,以使您更好地了解幕后情况:
1.登录
用户输入其用户名和密码。然后,启用Kerberos的客户端会将该密码转换为客户端密钥。
2.客户请求票证授予服务器
然后,客户端将包含以下内容的纯文本消息发送到身份验证服务器:
- 输入的用户名
- 所请求服务的名称
- 用户的网络地址
- 他们请求访问多长时间
3.服务器验证用户名
根据存储在KDC中的经过验证的用户名检查用户名。如果用户名熟悉,程序将继续。
4.票证授予票归还给客户
身份验证服务器将两条加密的消息发送回客户端:
Message A
可以使用在步骤1中创建的客户端密钥来解密。它包含TGS名称,时间戳,票证生存期以及新授予的票证授予服务器会话密钥。Message B
是授予票证的票证,只能通过持有的TGS密钥解密。其中包含您的用户名,TGS名称,时间戳,您的网络地址,票证寿命以及相同的TGS会话密钥。
5.客户端获取TGS会话密钥
客户端现在message A
使用客户端密钥解密,从而使客户端可以访问TGS会话密钥。Message B
以加密状态存储在本地。
6.客户端从服务器请求服务访问
客户端现在发回两条消息:
Message C
是未加密的消息,其中包含请求的服务的名称,生存期以及仍被加密的message B
。Message D
是使用TGS会话密钥加密的身份验证者,其中包含您的姓名和时间戳
7.服务器验证服务
然后,TGS会检查KDC中是否存在请求服务。如果是这样,程序将继续。
8.服务器获取TGS会话密钥
现在,服务器提取仍message B
发送的加密文件message C
。Message B
然后使用服务器的TGS秘密密钥(TGT)解密,为服务器提供TGS会话密钥。
使用此TGS会话密钥,服务器现在可以解密message D
。
现在服务器已经从两个时间戳和名称message B
和message D
(认证信息)。服务器确保名称和时间戳相同,以防止欺诈性消息。它还会根据票证的寿命检查时间戳记,以确保票证没有超时。
9.服务器生成服务会话密钥
然后,服务器生成随机服务会话密钥和另外两个消息。
Message E
已使用服务秘密密钥加密,并且包含您的姓名,请求的服务名称,时间戳,您的网络地址,票证有效期和服务会话密钥。Message F
使用客户端和服务器均拥有的TGS会话密钥进行加密。该消息包含message E
您的用户名和网络地址以外的所有相同信息。
10.客户获取服务会话密钥
使用从步骤5缓存的TGS会话密钥,客户端解密message F
以获得服务会话密钥。
11.客户联系服务
客户端现在向该服务发送了另外两条消息:
Message G
是另一个身份验证器消息,这次使用服务会话密钥加密。它包含您的姓名和时间戳。Message H
是的副本message E
,仍使用服务密钥对其进行加密。
12.服务解密 Message G
然后message H
,服务使用其服务秘密密钥解密,以从内部获取服务会话密钥。服务使用此密钥解密message G
。
13.服务验证请求
该服务然后验证通过从比较用户名,时间戳,和寿命的要求messages G
和H
。
14.服务已向客户端认证
然后message I
,该服务使用服务和客户端都持有的服务会话密钥发送加密的消息。Message I
是包含服务ID和时间戳的身份验证器。
15.客户验证服务
然后,客户端message I
使用从步骤10缓存的服务会话密钥进行解密。客户端然后检查其中包含的ID和时间戳。如果两者均符合预期结果,则认为该服务是安全的。
16.客户与服务自由沟通
Kerberos确信客户端和服务都经过相互认证,因此允许客户端与服务进行通信。
Kerberos是可入侵的吗?
尽管Kerberos仍然是最安全的协议,但它像其他任何协议一样都可被黑客入侵。Kerberos长期以来一直充当行业标准协议,为黑客提供了充足的时间来克服该系统。黑客发现有5种主要方式击败Kerberos系统,主要针对易受攻击的系统设置,弱密码或传播有害恶意软件。
了解这5种常见攻击类型的工作方式对于网络安全工程师创建有效的解决方案至关重要。
让我们看一下5种攻击类型中的每一种:
- 通票:此方法通过伪造一个错误的TGT来创建一个错误的会话密钥。然后,黑客可以将TGT作为有效凭据提供给服务。具有会话密钥使此伪造可以绕过会话密钥授予步骤之前的所有Kerberos验证步骤。
- 黄金票证:此方法伪造具有管理员身份的票证。黑客在使用此票证时可以无限制地访问整个域;各个设备,服务器,数据和设置都可以访问。黑客通常只有通过安装的恶意软件才能访问管理员的计算机,才能创建“金牌”。
- 银牌:与金牌攻击类似,银牌是伪造的服务身份验证票,可授予访问服务的权限。与“金票攻击”相比,此方法授予的访问权限较少,但也更难检测。此阶段的所有交互都是客户端/服务交互,从而使黑客可以避免在KDC中采取适当的安全措施。
- 暴力破解:最明显的暴力破解方法是使用自动密码猜测器输入数千个密码,直到找到正确的密码为止。暴力破解不需要凭据被盗,但由于其不人道的进入行为,很容易被检测到。
- 后门骨架密钥恶意软件:黑客通过这种方法在系统中植入了一个隐藏的后门访问骨架密钥,以允许他们将来在任何时候以任何用户身份登录。此方法需要先前成功的Golden Ticket Attack,因为这些万能钥匙只能通过管理访问进行植入。这些是最难检测到的攻击,因为破坏和攻击可能会间隔数年。
接下来要学什么
祝贺您完成学习Kerberos的第一步。今天,您了解了Kerberos是什么,为什么使用它以及如何对活动进行身份验证。但是,这仅仅是您学习网络安全的开始。
Kerberos是一个复杂的系统,需要多年的应用程序微调和调整才能理解。随着越来越多的公司采用Kerberos安全协议,这种理解将为新的职业道路和工作机会打开大门。了解Kerberos网络安全性的下一步是:
- 管理消息完整性
- 公钥加密
- 攻击防范技术
- 攻击应对措施
1. 本站资源转自互联网,源码资源分享仅供交流学习,下载后切勿用于商业用途,否则开发者追究责任与本站无关!
2. 本站使用「署名 4.0 国际」创作协议,可自由转载、引用,但需署名原版权作者且注明文章出处
3. 未登录无法下载,登录使用金币下载所有资源。
IT小站 » Kerberos是什么,它如何工作,网络身份验证简介
常见问题FAQ
- 没有金币/金币不足 怎么办?
- 本站已开通每日签到送金币,每日签到赠送五枚金币,金币可累积。
- 所有资源普通会员都能下载吗?
- 本站所有资源普通会员都可以下载,需要消耗金币下载的白金会员资源,通过每日签到,即可获取免费金币,金币可累积使用。