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

一、什么是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.mzph.cn/news/190881.shtml

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

相关文章

《堆》的模拟实现

目录 前言: 模拟实现《堆》: 1.自定义数据类型 2.初始化“堆” 3.销毁“堆” 4.进“堆” 关于AdjustUp() 5.删除堆顶元素 关于AdjustDown() 6.判断“堆”是否为空 7.求“堆”中的数据个数 8.求“堆”顶元素 总结: 前言&#xf…

DOM 事件的传播机制

前端面试大全DOM 事件的传播机制 🌟经典真题 🌟事件与事件流 事件流 事件冒泡流 事件捕获流 标准 DOM 事件流 🌟事件委托 🌟真题解答 🌟总结 🌟经典真题 谈一谈事件委托以及冒泡原理 &#x1f3…

SmartSoftHelp8数据库连接字符串强优化,高并发配置

1.设置数据库是否异步连接 2.数据库连接是否复用 3.最大链接数 4.最小连接数 5.等待时间 6.生命周期 下载地址: 百度网盘 请输入提取码

24、蜂鸣器

蜂鸣器介绍 蜂鸣器是一种将电信号转换为声音信号的器件,常用来产生设备的按键音、报警音等提示信号 蜂鸣器按驱动方式可分为有源蜂鸣器和无源蜂鸣器 有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定 无源蜂…

【linux】信号——信号保存+信号处理

信号保存信号处理 1.信号保存1.1信号其他相关概念1.2信号在内核中的表示 2.信号处理2.1信号的捕捉流程2.2sigset_t2.3信号集操作函数2.4实操2.5捕捉信号的方法 3.可重入函数4.volatile5.SIGCHLD信号 自我名言:只有努力,才能追逐梦想,只有努力…

计算机毕业设计 基于SpringBoot的敬老院管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

数据结构与算法-静态查找表

🌞 “清醒 自律 知进退!” 查找 🎈1.查找的相关概念🎈2.静态查找表🔭2.1静态查找表的类定义🔭2.2顺序查找🔭2.3二分查找🔎二分查找例题 🔭2.4分块查找🔭2.5三…

理解BatchNormalization层的作用

深度学习 文章目录 深度学习前言一、“Internal Covariate Shift”问题二、BatchNorm的本质思想三、训练阶段如何做BatchNorm四、BatchNorm的推理(Inference)过程五、BatchNorm的好处六、机器学习中mini-batch和batch有什么区别 前言 Batch Normalization作为最近一年来DL的重…

logistic回归详解

为什么不直接统计标签数和预测结果数,计算精度? 因为 存在梯度为0的情况梯度不连续 为什么叫logistic回归 logistic是因为加了一个sigmoid函数,将输出预测值映射到【0,1】 有时候使用MSE损失函数,拟合 有时候使用c…

selenium三猛士

selenium包括三个项目,分别是:Selenium WebDriver,Selenium IDE,Selenium Grid。 Selenium WebDriver Selenium WebDriver是客户端API接口,测试人员通过调用这些接口,来访问浏览器驱动,浏览器再访问浏览器…

利用Python中的Manim进行数学绘画和创作

相信很多同学就算没听过3Blue1Brown,也一定曾看过他们出品的视频,其从独特的视觉角度解说各种数学概念,内容包括线性代数、微积分、神经网络、傅里叶变换以及四元数等晦涩难懂的知识点。例如最火的《线性代数本质》系列视频。 那么这些视频是…

【算法】动态规划中的路径问题

君兮_的个人主页 即使走的再远,也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们,这里是君兮_,如果给算法的难度和复杂度排一个排名,那么动态规划算法一定名列前茅。今天,我们通过由简单到困难的两道题目带大家学会动…

文字、图片免费生成视频和专属数字人,你不来试试吗?

查看生成的效果:AI产生的视频(关注公众号,获取精彩内容) 您是否想要制作一些令人惊叹的视频,但又没有视频编辑的技能或经验?您是否想要利用人工智能的力量,让您的图片和声音变成动态的视频&…

如何强制任何Android应用程序进入全屏沉浸式模式(无生根)

谷歌在2012年发布了Android版本的Chrome,并且从未费心给它一个全屏模式。如果您厌倦了等待自己喜欢的Android应用程序提供全屏,则可以使用沉浸式模式自行完成。 来吧,谷歌,我真的一直在乞求你多年!没有理由不给我们一…

【Go语言反射reflect】

Go语言反射reflect 一、引入 先看官方Doc中Rob Pike给出的关于反射的定义: Reflection in computing is the ability of a program to examine its own structure, particularly through types; it’s a form of metaprogramming. It’s also a great source of …

C语言——深入理解指针(4)

目录 1.回调函数 2. qsort 函数的使用 2.1 排序整型数据 2.2 排序结构体数据 3. qsort 函数的模拟实现 1.回调函数 回调函数就是通过一个函数指针调用的函数。 你把函数的地址作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,被调…

【web安全】ssrf漏洞的原理与使用

前言 菜某对ssrf漏洞的总结。 ssrf的作用 主要作用:访问外界无法访问的内网进行信息收集。 1.进行端口扫描,资源访问 2.指纹信息识别,访问相应的默认文件 3.利用漏洞或者和payload进一步运行其他程序 4.get类型漏洞利用,传参数…

用CHAT 写一份销售人员激励方案

问CHAT :写一份销售人员早会激励方案 CHAT回复: 标题:鼓舞斗志,迎接新的一天 -- 销售人员早会激励方案 一、会议的氛围设定: 深呼吸,准备开始一天的事业:清晨的阳光,温暖而明亮&…

Nat. Rev. Chem. | 一份关于用机器学习研究化学问题的评估指导

今天为大家介绍的是来自Tiago Rodrigues团队的一篇论文。机器学习(ML)有望解决化学领域的重大挑战。尽管ML工作流程的适用性极广,但人们通常发现评估研究设计多种多样。目前评估技术和指标的异质性导致难以(或不可能)比…

Android BT HCI分析简介

对于蓝牙开发者来说,通过HCI log可以帮助我们更好地分析问题,理解蓝牙协议,就好像网络开发一定要会使用Wireshark分析网络协议一样。 本篇主要介绍HCI log的作用、如何抓取一份HCI log,并结合一个实际的例子来说明如何分析HCI log…