什么是Kerberos,它是如何工作的,以及它的用途是什么?
目录
网络犯罪是如今生活中一个不幸的事实,无论我们谈论的是私人消费者还是整个商业世界。没有公司或组织是安全的,而且这个问题不会很快得到改善。专家预测,到2021年,网络犯罪的损失将达到6.1万亿美元。如果这还不够糟糕, 福布斯预测,越来越多的网络犯罪分子将使用人工智能(AI)来扩大他们的攻击。
这些预测,以及其他许多预测,都指出了一个残酷的现实:网络犯罪将继续存在,而且问题只会越来越严重。因此,数字世界急于寻找和采用新的策略来加强网络安全。
今天,我们正在研究认证协议,确切地说,是Kerberos。让我们拉开帷幕,熟悉一下这个有效的网络协议。
在这篇文章中,你将详细了解以下主题:
- 什么是Kerberos?
- kerberos是如何工作的?
- kerberos有什么用处?
- Kerberos协议流程概述
- kerberos是无懈可击的吗?
- 关于网络安全的更多信息
- 网络安全方面的职业
让我们从基础知识开始,了解什么是Kerberos以及它是如何工作的。
什么是Kerberos?以及它是如何工作的?
Kerberos是一种计算机网络安全协议,用于验证两个或多个受信任的主机在不信任的网络(如互联网)上的服务请求。它使用密匙密码学和受信任的第三方来验证客户机-服务器应用程序和验证用户的身份。
Kerberos最初是由麻省理工学院(MIT)在80年代末为雅典娜项目开发的,现在是微软Windows使用的默认授权技术。其他操作系统也有Kerberos的实现,如苹果操作系统、FreeBSD、UNIX和Linux。
微软在Windows 2000中推出了它的Kerberos版本,它已经成为网站和不同平台上单点登录实现的首选协议。 Kerberos联盟将Kerberos作为一个开源项目来维护。
该协议的名字来源于希腊神话中的传说中的三头犬Kerberos(也被称为Cerberus),它是通往冥界入口的犬类守护者。Kerberos有一条蛇尾巴,脾气特别坏,尽管有一个明显的例外,但他是一个非常有用的守护者。
但在协议中,Kerberos的三个头代表客户、服务器和密钥分发中心(KDC)。后者的功能是受信任的第三方认证服务。
使用 Kerberos 的用户、机器和服务仅依赖于 KDC,它作为一个单一的进程工作,提供两种功能:认证和票证授予。KDC的 "票证 "向所有各方提供认证,允许节点安全地验证其身份。Kerberos认证过程采用了传统的共享秘密加密技术,防止在网络上传播的数据包被读取或更改,同时也保护信息不被窃听和重放(或回放)攻击。
现在我们已经了解了什么是Kerberos,接下来让我们了解Kerberos是用来做什么的。
Kerberos 是用来做什么的?
尽管 Kerberos 在数字世界中随处可见, 但它被大量地应用于依赖于可靠的审计和认证功能的安全系统。Kerberos 被用于 Posix 认证,以及 Active Directory、NFS 和 Samba。它也是SSH、POP和SMTP的一个替代认证系统。
作为学习Kerberos是什么的流程的一部分,接下来让我们学习一下Kerberos协议流程。
Kerberos 协议流程概述
让我们更详细地了解一下什么是 Kerberos 认证,以及它是如何通过将其分解为核心组件来工作的。
下面是参与典型的 Kerberos 工作流程的主要实体:
- 客户端。 客户端代表用户行事,为服务请求发起通信。
- 服务器。 服务器承载着用户想要访问的服务。
- 认证服务器(AS)。 AS执行所需的客户认证。如果认证成功,AS会向客户发出一张称为TGT(Ticket Granting Ticket)的票。该票据向其他服务器保证,该客户已被认证。
- 密钥分发中心(KDC)。 在Kerberos环境中,认证服务器在逻辑上被分成三个部分。数据库(db)、认证服务器(AS)和票证授予服务器(TGS)。这三个部分又存在于一个叫做密钥分配中心的服务器中。
- 票证授予服务器(TGS)。 TGS是一个应用服务器,它作为一种服务发布服务票据。
现在我们来分解一下协议流程。
首先,Kerberos流程中涉及三个关键的秘钥。客户/用户、TGS和与AS共享的服务器都有独特的秘钥。
- 客户/用户。 从用户的密码得到的哈希值
- TGS 秘钥。 在确定 TGS 时使用的密码的哈希值。
- 服务器密匙。 用于确定提供服务的服务器的密码的哈希值。
该协议流程包括以下步骤。
步骤1:初始客户端认证请求。用户向认证服务器(AS)请求一张赠票(TGT)。该请求包括客户端ID。
第2步:KDC验证客户的证书。AS检查数据库中的客户和TGS的可用性。如果AS发现这两个值,它就会产生一个客户/用户密匙,采用用户的密码散列。
然后AS计算TGS的秘钥,并创建一个由客户/用户秘钥加密的会话密钥(SK1)。AS然后生成一个包含客户ID、客户网络地址、时间戳、寿命和SK1的TGT。然后,TGS秘钥对票据进行加密。
第3步:客户端对信息进行解密。 客户端使用客户/用户秘钥来解密信息,并提取SK1和TGT,生成验证客户TGS的认证器。
第4步:客户端使用TGT来请求访问。 客户端通过向TGS发送提取的TGT和创建的认证器,向提供服务的服务器请求一张票。
第5步:KDC为文件服务器创建一个票据。 然后,TGS使用TGS秘钥解密从客户处收到的TGT并提取SK1。TGS对验证器进行解密,并检查它是否与客户端ID和客户端网络地址相匹配。TGS还使用提取的时间戳来确保TGT没有过期。
如果这个过程成功地进行了所有检查,那么KDC就会生成一个服务会话密钥(SK2),在客户端和目标服务器之间共享。
最后,KDC创建一个服务票据,包括客户端ID、客户端网络地址、时间戳和SK2。然后用从数据库中获得的服务器的秘密密钥对该票据进行加密。客户端收到一个包含服务票据和SK2的消息,所有这些都是用SK1加密的。
第6步:客户端使用文件票来进行认证。客户端使用SK1对消息进行解密,并提取SK2。这个过程会生成一个新的认证器,包含客户网络地址、客户ID和时间戳,用SK2加密,并将它和服务票据发送到目标服务器。
第7步:目标服务器收到解密和认证。 目标服务器使用服务器的秘钥来解密服务票,并提取SK2。服务器使用SK2对认证器进行解密,进行检查以确保认证器中的客户ID和客户网络地址与服务票据相匹配。服务器还检查服务票据,看它是否过期。
一旦这些检查得到满足,目标服务器就会向客户发送一条消息,验证客户和服务器是否已经相互认证。用户现在可以参与一个安全会话了。
在了解了 Kerberos 是什么之后,让我们接下来看看 Kerberos 是否无懈可击这个问题。
Kerberos 是无懈可击的吗?
没有任何安全措施是 100% 坚不可摧的, Kerberos 也不例外。由于它已经存在了这么久,黑客们多年来一直有机会找到绕过它的方法,通常是通过伪造票据、反复尝试猜测密码(蛮力/凭证填充),以及使用恶意软件来降低加密等级。
尽管这样,Keberos仍然是当今最好的安全访问协议。该协议足够灵活,可以采用更强大的加密算法,以帮助打击新的威胁,如果用户实行良好的密码选择政策,你应该没有问题