-
本文只对kerberos做简单介绍,了解kerberos认证的基本流程和部分知识,深入了解请移步其他大佬的文章~~~~~~~
-
什么是kerberos:kerberos是一种身份认证协议,广泛运用在大数据生态中,甚至可以说是大数据身份认证的事实标准
- kerberos的logo,用这个是因为这个名字来自于cerberos,地狱三头犬,和kerberos的工作模式有异曲同工的感觉
-
Kerberos 是一种基于加密票据(Ticket )的身份认证协议。Kerberos 主要由三个部分组成:Key Distribution Center (即KDC,密钥分发中心)、Client 和 Service(为什么不是说是server呢?是因为我们在讨论是针对的是获取某个服务而不是与服务器的交互)。客户端先访问两次KDC,然后再访问目标Service,如访问HTTP服务。
-
KDC(key distribution center密钥分发中心)是我们此处讨论的重中之重,KDC由三个部分组成
- Kerberos Database: 包含了一个 Realm 中所有的 principal、密码与其他信息。(默认:Berkeley DB)
- Authentication Service(AS): 进行用户信息认证,为客户端提供 Ticket Granting Tickets(TGT)票据许可票据。
- Ticket Granting Service(TGS): 验证 TGT 与 Authenticator(上图中的用户身份就是他),为客户端提供Service Tickets服务许可票据。
-
-
Kerberos 的优势
- 密码不在网络环境中传输,基于 Ticket 实现身份认证,保障密钥安全性(根据Kerckhoff原则,密钥是确保信息安全的关键)。
- 双向认证。整个认证过程中,不仅需要客户端进行认证,待访问的服务也需要进行身份认证。
- 高性能。一旦Client获得用过访问某个Server的Ticket,该Server就能根据这个Ticket实现对Client的验证,而无须KDC的再次参与。
-感谢到大佬们的阅读 欢迎大家在评论区对我描述不当的地方或者不足之处进行批评~~
------2023.10.19------ 添加内容: 什么是kerberos?kerberos是由麻省理工学院提出的一种网络身份验证协议,是一种在开放的非安全网络中认证并且识别验证用户身份信息的一种方法。它旨在使用密钥加密技术为客户端/服务端应用程序提供强身份验证。目前使用的主流kerberos版本是2005年RFC4120标准定义的kerberos v5,Windows,Linux,macOS均支持kerberos协议。
-
关于认证中的KDC key distribution center 密钥分发中心
- KDC作为活动目录域服务的一部分运行在每一台域控制器上
- TGT和ST均由KDC发放,由于KDC运行在域控上,所以说,TGT和ST由域控发放
-
服务账户:krbtgt
- krbtgt的产生:在创建活动目录时,系统自动创建该用户,密码是随机生成的,无法正常登录主机,作用是作为KDC的服务账户(在后面域渗透学习中我们经常会遇到)
-
协议相关端口
- 认证使用的端口:TCP/UDP 88端口
- 密码重设端口:TCP/UDP 464端口
-
kerberos的认证模块:
-
基础模块
- AS:AS_REQ&AS_REP
- TGS:TGS_REQ&TGS_REP
-
微软拓展模块:
-
S4U:为实现委派而拓展的模块
- S4U2Self
- S4U2Proxy
-
PAC:Previlige Attribute Certificate,特权属性证书
- 在kerberos的最初设计中,只是为了实现身份验证,并没有对客户端是否有权限请求目标服务,因为在域中,不同权限的用户能够访问的资源是不同的,微软为了解决这个问题,引入了PAC。
-
-