【网络安全技术】实体认证技术Kerberos

news2025/3/7 4:56:45

一、什么是Kerberos

Kerberos解决的是客户端与服务器通信场景中,确保客户端服务器双方的身份可信,并提供对称密钥的分发来加密传输。是一个应用层的协议。

二、一个简单的模型

1.看这个基础的模型,客户端要和服务器通信,他先将自己的名称、密码和要访问的服务器的名称发给Authentication Server。AS里面存了可信用户的名称和密码。

2.AS验证没问题后,回给客户端一个票据,这个票据是用服务器和AS的对称密钥加密的(客户端名称,客户端ip地址,服务器名称)。

3.客户端收到后,把自己的名称和拿到的票据发给服务器,开始通信。

几个问题:

1.只认证了客户端,保护了服务器不会被非授权的用户访问,但没有保护客户端。

2.在第一条中,客户端的密钥明文传输。

三、进一步

1.这次不传口令,只传客户端id,服务器id。

2.基于“能正确解密的人就是合法用户”的思想,AS向客户端回一个用客户端密钥加密的ticket,如果客户端能正确解密出ticket,那就说明客户端是合法的,他就能接下来和服务器通信。

3.还是一样,把ticket和客户端id发给服务器,开始通信。

几个问题:

1.每访问一次服务器,就需要认证一次,客户端密钥被频繁使用,样本多了容易吃唯密文攻击。而且这个过程确实是多余的,认证一次就行了。这个可以将AS一分为二来解决。

2.票会被无限次使用,因为没有过期时间限制。

3.还存在单向认证问题,没有保护客户端。

四、再进一步

这次将AS一分为二,一个负责认证客户端,一个负责分发票据。

1.跟刚才类似,不过这次是要向tgs服务器要票,所以是IDtgs。

2.AS用客户端的对称密钥加密ticket tgs,这个用来向tgs服务器要票。这个ticket使用tgs服务器加密的(客户端id,客户端ip,tgs服务器id,时间戳1,寿命)。这样一分为二,解决了多次认证,重复使用密钥的问题。

3.客户端向tgs服务器要某一服务器的票,附上刚拿到的ticket tgs。

4.tgs服务器收到后会用自己和AS的对称密钥解密,然后取出里面的信息,这里面加了时间戳,避免了这个ticket tgs被无限次使用的问题。然后去自己的数据库里查服务器的信息,给客户端会服务器的票据。这个票据使用服务器的对称密钥加密,加密了(客户端id,客户端ip,服务器id,时间戳2,寿命),想想这些都有什么用,客户端id是为了指定只有这个客户端能用,ip是给服务器核对用的,服务器id不知道有什么用。这里加了时间戳解决了上一个方案的票据无限次使用问题。

5.客户端收到之后,把自己的id和这个票据发给服务器,开始通信。

几个问题:

1.第二张ticketv被别人捡到,就直接冒充这个客户端去用了,会被重放。

2.还是单向认证问题。

五、Kerberos V4

1.这次还给第一条加上了时间戳,这是为了什么?

2.AS用客户端的密钥加密(客户端和tgs之间的对称密钥,tgs id,时间戳2,寿命,ticket tgs)

ticket tgs是用tgs的密钥加密的(客户端和tgs之间的对称密钥,客户端id,客户端ip,tgs id,时间戳2,寿命)

3.客户端收到之后,解密,解出来ticket tgs,并使用他和tgs之间的对称密钥加密(客户端id,客户端ip,时间戳3)作为Authenticator,(这个是为了证明这条消息是认证的客户端发的,因为这条消息是明文传,所以ticket tgs会被别人拿去重放,有了authenticator,里面有用session key加密的时间戳,就能证明是客户端了,因为别人是没有这个session key的);附上ticket tgs,要访问的服务器id,发给tgs。所以这个客户端和tgs之间的session key的作用,就是防止ticket tgs被别人拿走重放。哪如果别人直接把ticket tgs和authenticator一块拦截然后重放,不就成功了?其实是不会的,因为就算你拦截然后重放了,接下来tgs发给你的包也是用session key加密的,你解不开,就没有后续了。

4.tgs收到之后,先看ticket的时间戳过期没,然后从里面解出来他和客户端之间的对称密钥,再拿对称密钥解密authenticator,成功解密之后拿出时间戳,看时间对不对,因为这个authenticator也有可能被重放。这样下来,就成功验证客户端身份了。

然后他给客户端回信,用他和客户端之间的session key加密(客户端和服务器之间的session key,服务器id,时间戳4,ticket v)

ticket v是用服务器的对称密钥加密的(客户端服务器之间的session key,客户端id,客户端ip,服务器id,时间戳4,寿命)

5.客户端收到之后,用session key从里面接出来他和服务器的session key,还有用于登录服务器的票据。附上自己的Authenticator,发给服务器,这里需要authenticator的原因同理,是因为这里的ticket只能明文传,所以会被重放,需要认证。

6.服务器收到之后,跟刚才一样,先把ticket v拆开,拿出session key,然后对authenticator进行认证,确认是真的客户端,然后拆出authenticator里的时间戳5,加上1,然后再用session key加密回给客户端,这里是为了证明他是真的服务器,因为只有真的服务器能解开ticket v,取出客户端和服务器之间的session key,然后解开authenticator,取出时间戳5,并做运算,然后在加密还回去。

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

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

相关文章

(使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))

使用vite搭建vue3项目(vite vue3 vue router pinia element plus) 初始化项目安装依赖,运行项目初始配置 初始化项目 1.需要在创建项目的位置cmd目录下执行 2. npm init vitelatest 回车 npm init vitelatest3.填上自己的项目名称 回车…

Rocket-核心编程模型

RocketMQ的消息模型 深入理解RocketMQ的消息模型 RocketMQ客户端基本流程 RocketMQ基于Maven提供了客户端的核心依赖&#xff1a; <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version&…

Overflow Aware Quantization

Overflow Aware Quantization Framework N o _o o​是 amount of arithmetic overflow 辅助信息 作者未提供代码

【数值计算方法(黄明游)】矩阵特征值与特征向量的计算(二):Jacobi 过关法(Jacobi 旋转法的改进)【理论到程序】

文章目录 一、Jacobi 旋转法1. 基本思想2. 注意事项 二、Jacobi 过关法1. 基本思想2. 注意事项 三、Python实现迭代过程&#xff08;调试&#xff09; 矩阵的特征值&#xff08;eigenvalue&#xff09;和特征向量&#xff08;eigenvector&#xff09;在很多应用中都具有重要的数…

计算机体系结构补充篇----静态超标量流水线及循环展开(一)

本文仅供学习&#xff0c;不作任何商业用途&#xff0c;严禁转载。部分资料取自----计算机系统结构教程(第二版)张晨曦等。部分资料来自----国科大计算机体系结构课程PPT–张科、刘珂、高婉玲 计算机体系结构----静态超标量流水线及循环展开&#xff08;一&#xff09; 摘要静…

西南科技大学(数据结构A)期末自测练习三

一、填空题&#xff08;每空1分&#xff0c;共10分&#xff09; 1、为解决计算机主机与打印机之间速度不匹配的问题&#xff0c;通常设置一个打印数据缓冲区。主机将要输出的数据依次写入缓冲区&#xff0c;打印机则依次从缓冲区中取出数据&#xff0c;则该换缓冲区的逻辑结构…

非应届生简历模板(13篇)

无论您是职场新人还是转行求职者&#xff0c;一份出色的简历都是获得心仪岗位的关键。本文为大家精选了13篇专业的非应届生简历模板&#xff0c;无论您的经验如何&#xff0c;都可以灵活参考借鉴&#xff0c;提升自己的简历质量。让简历脱颖而出&#xff0c;轻松斩获心仪职位&a…

图计算和图挖掘的概述

文章目录 IntroductionSubgraph Enumeration&#xff08;子图枚举&#xff09;Single CPUDistributed TechniqueA Practical Guide Cohesive Subgraphs&#xff08;内聚子图&#xff09;CliqueFull improvement&#xff01;&#xff01;&#xff01;↓ Network Resilience&…

【网络协议】聊聊网络ReadTimeout和ConnectTimeout

在实际的开发中&#xff0c;网络超时是一个比较常见的问题&#xff0c;比如说针对支付系统&#xff0c;超时就需要进行和三方人员进行核对订单状态&#xff0c;是否人工介入处理。 但其实在设计网络框架的时候&#xff0c;一般都有两个超时参数 连接超时参数 ConnectTimeout&am…

C++相关闲碎记录(3)

1、reference wrapper 例如声明如下的模板&#xff1a; template <typename T> void foo(T val); 如果调用使用&#xff1a; int x; foo(std::ref(x)); T变成int&&#xff0c;而使用调用 int x; foo(std::cref(x)); T变成const int&。 这个特性被C标准库用…

【算法】Rabin-Karp 算法

目录 1.概述2.代码实现3.应用 更多数据结构与算法的相关知识可以查看数据结构与算法这一专栏。 有关字符串模式匹配的其它算法&#xff1a; 【算法】Brute-Force 算法 【算法】KMP 算法 1.概述 &#xff08;1&#xff09;Rabin-Karp 算法是由 Richard M. Karp 和 Michael O. R…

基于ASP.NET MVC技术的图书管理系统的设计与实现

基于ASP.NET MVC技术的图书管理系统的设计与实现 摘要&#xff1a;图书管理系统是一套高新科学技术和图书知识信息以及传统历史文化完美结合的体现。它改变了传统图书收藏的静态书本式图书服务特征&#xff0c;实现了多媒体存取、远程网络传输、智能化检索、跨库无缝链接、创造…

景联文科技数据标注平台助力AI数据实现价值最大化

随着人工智能技术不断进步&#xff0c;应用领域不断拓宽&#xff0c;对于高质量、大规模标注数据的需求也在不断增加。 数据标注是人工智能行业的基石。机器学习需要运用海量的有效数据来做支撑&#xff0c;而这些数据就需要我们的标注员对其进行分析和处理&#xff0c;想要得到…

Linux Makefile的认识及CMake的使用

1 Makefile的作用 Makefile 指的是一个叫 Makefile 的文件,里面提前写了一些指令。每次要自动化的完成一个比较复杂项目的自动编译用的时候,就在命令行输入“make”命令Makefile使用。使用Makefile可以 “智能” 的知道: 1 哪些文件需要先进行编译。 2 当某一文件在某次mak…

第九节HarmonyOS 常用基础组件5-LoadingProgress

一、LoadingProgress LoadingProgress组件用于显示加载动效的组件&#xff0c;比如应用的登录界面&#xff0c;当我们点击登录的时候&#xff0c;显示的“正在登录”的进度条状态。LoadingProgress的使用非常简单&#xff0c;只需要设置颜色和宽高就可以了。 Entry Component …

可可爱爱的羽绒服,面料是三防的哦

分享女儿的时尚穿搭 粉粉嫩嫩的羽绒服 杜邦三防面料 柔软蓬松上身很舒适 超足充绒量 美观与实用性兼具 这款还有妈妈款哦&#xff01;&#xff01;

Innodb-ruby深入探索Innodb存储结构

达在之前已经分享过Innodb数据存储结构知识&#xff0c;但是都是基于理论原理知识理解&#xff0c;今天利用Innodb文件解析工具ruby进行探索Innodb真实的存储结构。 索引原理过程&#xff1a;【Mysql】 InnoDB引擎深入 - 数据页 | 聚集索引_innodb的聚集索引的数据插入_Surviv…

常用sql记录

备份一张表 PostgreSQL CREATE TABLE new_table AS SELECT * FROM old_table;-- 下面这个比上面好&#xff0c;这个复制表结构时&#xff0c;会把默认值、约束、注释都复制 CREATE TABLE new_table (LIKE old_table INCLUDING ALL) WITHOUT OIDS; INSERT INTO new_table SELE…

【vSphere 8 自签名 VMCA 证书】企业 CA 签名证书替换 vSphere VMCA CA 证书Ⅲ—— 颁发自签名与替换 VMCA 证书

目录 5. 使用 Microsoft 证书颁发机构颁发自签名 CA 证书链5.1 登录MADCS5.2 申请证书5.3 选择证书类型5.4 提交CR5.5 下载 Base 64 编码的证书5.6 将证书链传入VC 6. 使用 企业CA签发的 VMCA 证书 替换 vSphere 默认 VMCA 证书6.1 确认证书文件6.2 替换默认 vSphere 证书6.3 验…

【golang】为什么使用goland终端修改不了Go语言的配置环境?

问题 最近在做项目时&#xff0c;需要使用golang的交叉编译&#xff0c;在windows系统上打包一个可以在linux系统上运行的golang程序的二进制文件。 这就需要暂时修改一下golang的配置环境&#xff1a; set GOARCH amd64 set GOOS linux但是修改的时候发现在goland终端输入…