kerberos 认证流程-理解

2024-09-01 04:28
文章标签 流程 认证 理解 kerberos

本文主要是介绍kerberos 认证流程-理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

kerberos 认证理解

一、认证过程

在这里插入图片描述

1) AS-REQ(请求)

域内的用户向 KDC(域控服务器)发送请求包,告诉域控,我要获得访问服务的票据。

请求包: 用户名,主机名,认证因子 Authenticator(由客户端用户 hash 加密的时间戳等信息),其他信息

2)AS-REP(响应)

  1. KDC 接受到客户端的请求包。
  2. KDC 判断用户是不是有效的域用户 , 是就进行下一步校验
  3. KDC 在自己的 AD 库里查找该用户的 hash,解密 Authenticator, 完成认证,并校验时间戳是不是在 5 分钟以内。 都满足就进行响应
  4. KDC 请客户端发送两个票据
    • TGT:是由 krbtgt 用户的 hash 加密的 login session key 和客户端的信息等
    • 第二个就是 用户hash 加密的 login session key

3)TGS-REQ(请求)

  1. 客户端收到两个票据后,用 自己的hash 解密第二个票据,拿到 login session key,并缓存起来
  2. login session key 加密时间戳和一些其他信息生成认证因子 Authenticator
  3. 向 TGS 发送 Authenticator + TGT + SeverID(要访问服务的标识)

4)TGS-REP(响应)

  1. TGS 收到客户端发来的三个信息
  2. 用自己的 krbtgt 用户的 hash 解密 TGT 获得 login session key,再用 login session key 解密认证因子 Authenticator 认证客户端,并判断时间戳是不是在 5 分钟以内
  3. 在 AD 数据库里查找 ServerID 对应的 hash 值,并随机生成一个 server session key
  4. 向客户端发送两个票据
    • ST : 由 Server hash 加密的 server session key 和其他信息
    • login session key 加密的 server session key 等信息

5)AP-REQ(请求)

  1. 客户端收到两个票据
  2. 用缓存的 login session key 解密 server session key
  3. sever session key 加密时间戳等信息,再次生成认证因子 Authenticator
  4. ST + Authenticator 发送给要访问的服务器 Server

6)AP-REP(响应)

  1. 服务器 Server 收到 ST Authenticator
  2. 服务器用自己的 hash 解密 ST ,拿到 server session key 。
  3. 用 server session key 解密 Authenticator 完成认证,并校验时间戳是不是在 5 分钟以内
  4. 向客户端回复校验成功

二、简单理解两种票据

黄金票据:就是在攻击者获得了 krbtgt 用户的 hash 值,跳过前两步的认证,直接伪造第三步(TGS-REQ)的信息。发送给 TGS 之后合规的签发 ST 去访问服务 (可以访问域内任意服务)

白银票据:攻击者通过服务器的 server hash,伪造第五步(AP-REQ)的请求信息,发送给服务器,已获得访问服务的权限 (可以访问某一特定服务)

黄金票据和白银票据的区别在于访问的范围不同,而不是权限不同。

这篇关于kerberos 认证流程-理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1125933

相关文章

将Java项目提交到云服务器的流程步骤

《将Java项目提交到云服务器的流程步骤》所谓将项目提交到云服务器即将你的项目打成一个jar包然后提交到云服务器即可,因此我们需要准备服务器环境为:Linux+JDK+MariDB(MySQL)+Gi... 目录1. 安装 jdk1.1 查看 jdk 版本1.2 下载 jdk2. 安装 mariadb(my

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

SpringSecurity JWT基于令牌的无状态认证实现

《SpringSecurityJWT基于令牌的无状态认证实现》SpringSecurity中实现基于JWT的无状态认证是一种常见的做法,本文就来介绍一下SpringSecurityJWT基于令牌的无... 目录引言一、JWT基本原理与结构二、Spring Security JWT依赖配置三、JWT令牌生成与

SpringSecurity6.0 如何通过JWTtoken进行认证授权

《SpringSecurity6.0如何通过JWTtoken进行认证授权》:本文主要介绍SpringSecurity6.0通过JWTtoken进行认证授权的过程,本文给大家介绍的非常详细,感兴趣... 目录项目依赖认证UserDetailService生成JWT token权限控制小结之前写过一个文章,从S

springboot security使用jwt认证方式

《springbootsecurity使用jwt认证方式》:本文主要介绍springbootsecurity使用jwt认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录前言代码示例依赖定义mapper定义用户信息的实体beansecurity相关的类提供登录接口测试提供一

Spring AI ectorStore的使用流程

《SpringAIectorStore的使用流程》SpringAI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它在AI应用中发挥着至关重要的作用,本文给大家介... 目录一、VectorStore的基本概念二、VectorStore的核心接口三、VectorStore的

SpringSecurity 认证、注销、权限控制功能(注销、记住密码、自定义登入页)

《SpringSecurity认证、注销、权限控制功能(注销、记住密码、自定义登入页)》SpringSecurity是一个强大的Java框架,用于保护应用程序的安全性,它提供了一套全面的安全解决方案... 目录简介认识Spring Security“认证”(Authentication)“授权” (Auth

python之流程控制语句match-case详解

《python之流程控制语句match-case详解》:本文主要介绍python之流程控制语句match-case使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录match-case 语法详解与实战一、基础值匹配(类似 switch-case)二、数据结构解构匹

在VSCode中本地运行DeepSeek的流程步骤

《在VSCode中本地运行DeepSeek的流程步骤》本文详细介绍了如何在本地VSCode中安装和配置Ollama和CodeGPT,以使用DeepSeek进行AI编码辅助,无需依赖云服务,需要的朋友可... 目录步骤 1:在 VSCode 中安装 Ollama 和 CodeGPT安装Ollama下载Olla

一文详解kafka开启kerberos认证的完整步骤

《一文详解kafka开启kerberos认证的完整步骤》这篇文章主要为大家详细介绍了kafka开启kerberos认证的完整步骤,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、kerberos安装部署二、准备机器三、Kerberos Server 安装1、配置krb5.con