黄金票据和白银票据

news2024/9/29 9:30:38

文章目录

  • Kerberos使用背景
  • kerberos认证流程
  • 黄金票据和白银票据

Kerberos使用背景

1、个人文件还是公司文件以及服务都存在于一台系统上,所有人都要去一台机器办公,效率非常低,为每个人分配了电脑以后就需要考虑安全问题
2、如何让服务器正确识别每一个人,假定所有数据包在传输过程中都可以被任意截取和修改
3、在每一台电脑上都存入所有人的账户密码是不现实的,所以引入一个认证服务统一管理所有的用户密码
4、假设用户访问邮件服务,认证服务让你提供密码以此来证明身份,它把你提供的密码和数据库中的密码相比较,通过认证,认证服务不会提供给你任何密码,不然下次你就可以不认证直接利用密码登录,认证服务会给你一张票,拿到票后,你把此票给邮件服务,以此来证明你的身份
5、需要解决的问题,每次使用还没有得到票的服务前,都必须给认证密码。比如使用邮件服务,就要输入一次。使用文件服务,又要输入一次。打印服务,还要输入一次,并且网络中明文传输密码。不法分子就可以监听网络流量获取密码。
6、引入"票据授权”服务(TGS),TGS将代替认证服务的发票功能,以后认证服务不在提供票据,如果你有TGS发放的服务票证,可以使用此票对应的服务
7、如果你通过了认证服务的验证,将会得到一张票据授权票(TGT),现在你想使用邮件服务,然而还没有邮件服务的票,所以你使用"票据授权"票去取邮件服务的票,"票据授权"票,可以使用此票获取你需要的其他服务票
8、解决密码明文传输,当你取得票据授权票时,不再发送密码,而只发送你的用户名,认证服务得到用户名以后用此用户名查你的密码,之后认证服务会制作一个包含票据授权票(TGT)的数据包,并且用你的密码加密此数据包,这样即使数据包被截取没有密码无法解密也获取不到TGT
9、票据的有效期问题,有效期内票据丢失会产生复用,并且没法灵活销毁票据
10、引入会话密钥session key,认证服务,认证服务会返回票以及一份session key,都用用户的ntml加密,用户利用session key生成认证器来与服务进行沟通

kerberos认证流程

DC(Domain Controller):域控制器,是域中一台拥有最高管理权限的计算机

AD(Active Directory):活动目录数据库

KDC(Key Distributed Centre):包含了AS和TGS。

AS(Authentication Server):身份验证服务,为客户生成TGT的服务

TGS(Ticket GrantingServer):票证发放服务器,通过你的TGT来发放ST

TGT(Ticket Granting Ticket):票据授权票据,通过票据授权票据可以获得一个票据,类似临时凭证

ST(Service Ticket):服务票据

如下图,客户端首先向AS发送请求,AS提供TGT身份票据给客户端,客户端得到TGT后去访问TGS,由TGS发放服务票据ST,最后客户端用ST去访问服务端,服务端给客户端回应:

在这里插入图片描述

详解:

1、客户端发送自己的用户名给AS

2、AS验证用户名是否在白名单列表,如果在的话随机生成session key(as)返回如下信息

TGT1(session key(as),TGS服务器信息等)–客户端NTLM哈希加密

TGT2(session key(as),客户端信息等)–KRBTGT NTLM哈希加密(KRBTGT可以理解为DC中最高权限的用户)

3、用自己的NTLM哈希解密TGT1, 获得TGS服务器信息以及session key(as),TGT2由于是别人的哈希,所以解不开。

生成认证因子(客户端信息,当前时间)–session key(as)加密(认证因子用来验证TGT是否正确

发送认证因子以及TGT2给TGS服务

4、TGS服务先解密TGT2获得session key(as),紧接着利用session key(as)解密认证因子,对比认证因子与TGT2的客户端信息是否一致,如果一致生成session key(TGS),返回如下信息给客户端

TGT3(session key(TGS),服务器信息,票据到期时间)–session key(as)加密

TGT4(session key(TGS),客户端信息,票据到期时间)–客户端想要访问的服务器的哈希加密

5、客户端解密TGT3,得到session key(TGS),服务器信息

生成认证因子2(服务器信息,票据到期时间)–session key(TGS)加密

发送认证因子2以及TGT4给服务器

6、服务器先用自己的哈希解密TGT4得到session key(TGS),客户端信息,票据有效期

利用session key(TGS)解密认证因子对比客户端信息(验证ST是否正确)决定是否提供服务

以下图的邮件服务为例:

客户端向域控DC中的AS发送请求,AS生成一个session key(身份令牌),session key(as)分别保存在TGT1和TGT2两个身份票据做临时凭证中(其中TGT1用客户端的哈希加密,TGT2用最高管理用户的哈希加密),AS将session key(as)发给客户端,客户端用自己的NTLM哈希解密TGT1得到TGS服务器信息(TGT2无法被客户端解密),然后用session key(as)加密生成一个认证因子作为TGT2的证明。

然后客户端将认证因子以及TGT2发给TGS服务,TGS解密TGT2得到session key(as),解密认证因子并与认证因子做对比,如果一致则生成session key(TGS),返回TGT3和TGT4给客户端,TG3被session key(as)加密,由于之前客户端接收到了session key(as),所以可以解密TGT3得到服务器信息,解密后客户端再次生成一个认证因子作为TGT4的证明。

最后客户端将认证因子及TGT4发送给邮件服务,邮件服务用哈希解密TGT4得到session key(TGS),用它解密认证因子对比客户端信息,正确则提供服务。

在这里插入图片描述

黄金票据和白银票据

黄金票据伪造了kerberos中的身份票据TGT,白银票据伪造了kerberos中的服务票据ST。

黄金票据能访问该用户身份的所有服务,白银票据只能访问某一个具体的服务;伪造域管理员的身份的票据就是黄金票据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1077835.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一款好用的leetcode周赛插件:再也不用写代码的时候来回看描述了

今天发现了一个群友分享的一款leetcode插件,分享给大家。 对于熟悉leetcode的小伙伴应该会有一个困扰,那就是在leetcode打周赛的时候,题目描述和编辑区不是左右排版的,而是上下排版的,我们代码写着写着就需要移到最上…

设计模式 - 行为型考点模式:责任链模式(概述 | 案例实现 | 优缺点 | 使用场景)

目录 一、行为型模式 1.1、责任链模式 1.1.1、概述 1.1.2、案例实现 1.1.3、优缺点 1.1.4、使用场景 一、行为型模式 1.1、责任链模式 1.1.1、概述 为了避免请求发送者和多个请求处理者耦合在一起,就将所有请求处理者通过前一个对象记住下一个对象的引用的方…

飞行文本动画效果

效果展示 JavaScript 知识点 textContent.replace 方法运用anime.min.js 插件运用 实现整体页面布局 <section><p class"text">Lorem ipsum dolor sit amet consectetur, adipisicing elit. Impedit suscipitiure explicabo delectus laborum archite…

AVS3:DMVR

AVS3中引入了解码端运动矢量修正&#xff08;DMVR,Decoder side Motion Vector Refinement&#xff09;技术&#xff0c;AVS3中的DMVR技术和G.266/VVC类似&#xff0c;它可以在解码端生成运动参数从而减少传输运动参数的码率开销。它的基本思想是将skip/direct模式生成的前后向…

ArcGIS/GeoScene脚本:基于粒子群优化的支持向量机回归模型

参数输入 1.样本数据必须包含需要回归的字段 2.回归字段是数值类型 3.影响因子是栅格数据&#xff0c;可添加多个 4.随机种子可以确保每次运行的训练集和测试集一致 5.训练集占比为0-1之间的小数 6.迭代次数&#xff1a;迭代次数越高精度越高&#xff0c;但是运行时间越长…

MODBUS-RTU通信协议功能码+数据帧解读(博途PLC梯形图代码)

MODBUS通信详细代码编写,请查看下面相关链接,这篇博客主要和大家介绍MODBUS协议的一些常用功能码和具体数据帧解析,以便大家更好的理解MODBUS通信和解决现场实际问题。 S7-1200PLC MODBUS-RTU通信 博途PLC 1200/1500PLC MODBUS-RTU通讯_博图modbus rtu通讯实例-CSDN博客1、…

博弈论——动态博弈

动态博弈 0 引言 前面一篇文章介绍了博弈过程中的三个分类&#xff1a;静态博弈、动态博弈、重复博弈。今天具体讲讲动态博弈的处理方法。 博弈论——博弈过程 1 概念 首先还是介绍一下动态博弈的概念&#xff0c;即博弈中各博弈方的选择和行动不仅有先后次序&#xff0c;而…

USB协议层数据格式

USB协议 1. 硬件拓扑结构2. 协议层2.1 字节/位传输顺序2.2 SYNC域2.3 包格式2.3.1 PID域2.3.2 令牌包(Token)2.3.3 数据包2.3.4 握手包 2.4 传输细节2.4.1 传输(Transfer)和事务(Transaction)2.4.2 过程(stage)和阶段(phase)2.4.3 批量传输2.4.4 中断传输2.4.5 实时传输2.4.6 控…

点云采样方法

随机采样&#xff0c;网格采样&#xff0c;均匀采样&#xff0c;集合采样。 网格采样&#xff1a;用规则的网格对点进行采样&#xff0c;不能精确的控制采样点的数量 均匀采样&#xff1a;均匀的采样点云中的点&#xff0c;由于其鲁棒性(系统的健壮性)而更受欢迎 点云降采样…

Jetpack:004-如何使用文本组件

文章目录 1. 概念介绍2. 使用方法2.1 通用参数2.2 专用参数 3. 示例代码4. 内容总结 我们在上一章回中介绍了Jetpack组件在布局中的对齐方式&#xff0c;本章回中主要介绍文 本组件的使用方法。闲话休提&#xff0c;让我们一起Talk Android Jetpack吧 1. 概念介绍 我们在本章…

分库分表(3)——ShardingJDBC实践

一、ShardingSphere产品介绍 Apache ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈&#xff0c;它由 JDBC、Proxy 和 Sidecar&#xff08;规划中&#xff09;这 3 款相互独立&#xff0c;却又能够混合部署配合使用的产品组成。 它们均提供标准化的数据分…

【Java 进阶篇】CSS盒子模型详解

CSS盒子模型是网页布局的基础之一&#xff0c;它定义了HTML元素在页面上的占用空间和相互关系。理解CSS盒子模型对于构建各种类型的网页布局至关重要。在本文中&#xff0c;我们将深入探讨CSS盒子模型的各个方面&#xff0c;包括盒子模型的概念、属性和如何使用它们来控制元素的…

S7-1200与力控通过S7协议通讯

测试环境&#xff1a;Win10、力控7.2SP3、1214DCDCDC 博途工控人平时在哪里技术交流博途工控人社群 博途工控人平时在哪里技术交流博途工控人社群 在画面管理中&#xff0c;有种弹出画面&#xff0c;也就是窗口提示画面&#xff0c; 1-PLC端配置 PLC IP设置为192.168.2.10 …

从0开始学go第六天

方法一&#xff1a;gin获取querystring参数 package main//querystring import ("net/http""github.com/gin-gonic/gin" )func main() {r : gin.Default()r.GET("/web", func(c *gin.Context) {//获取浏览器那边发请求携带的query String参数//…

linux中安装RocketMQ以及dashboard

前提&#xff1a; 需要安装jdk8 上传下面的文件到服务器中 新建目录 mkdir rocketmq 将下载后的压缩包上传到阿里云服务器或者虚拟机中去&#xff0c;并解压 unzip rocketmq-all-4.9.2-bin-release.zip 配置环境变量 vim /etc/profile 配置内容&#xff1a; export NAM…

解决方案|法大大电子签助力食品行业打通内外部高效协作链路

对食品行业来说&#xff0c;技术是保证食品安全的重要前提和基础。数字化转型就是要将传统的食品行业与新技术相结合&#xff0c;从而达到改善传统食品生产模式、提高传统食品生产效率的目的。通过数字化技术来推动企业从原材料采购、产品设计、生产、营销、物流、合同管理等全…

代码随想录算法训练营第四十九天 | 139.单词拆分、关于多重背包,你该了解这些!

139.单词拆分 视频讲解&#xff1a;动态规划之完全背包&#xff0c;你的背包如何装满&#xff1f;| LeetCode&#xff1a;139.单词拆分_哔哩哔哩_bilibili 代码随想录 &#xff08;1&#xff09;代码 关于多重背包&#xff0c;你该了解这些&#xff01; 链接&#xff1a; 代码…

浏览器详解(四) 渲染

大家好&#xff0c;我是半虹&#xff0c;这篇文章来讲浏览器渲染 1、基本介绍 浏览器是多进程多线程的架构&#xff0c;包括有浏览器进程、渲染器进程、GPU 进程、插件进程等 在上篇文章中我们介绍过浏览器进程&#xff0c;作为浏览器主进程&#xff0c;负责浏览器基本界面的…

【轻松玩转MacOS】指引篇:这9篇指南助你轻松上手

引言 亲爱的读者&#xff0c;欢迎来到《轻松玩转MacOS》&#xff01;这里是专为MacOS新手打造的使用教学专栏&#xff0c;无论您是从Windows转投Mac的初学者&#xff0c;还是对MacOS操作略知一二但希望更进一步的朋友&#xff0c;都能在这里找到您需要的答案。 正文 1、基本…