1.1 kerberos认证浅析

  1、kerberos定义

      1. Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客户机 / 服务器应用程序提供强大的认证服务。

      2. Kerberos 作为一种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥)执行认证服务的。

      3. Kerberos也能达到单点登录的效果,即当Client通过了Kerberos server的认证后,便可以访问多个Real Server。

  2、kerberos几个重要组件

      1. KDC:负责分发密钥的密钥分配中心

      2. Client:需要使用kerbores服务的客户端

      3. Service:提供具体服务的服务端

  3、kerberos中几个重要概念

      1. Client master key: KDC中存储的Client的密钥

      2. Server master key: KDC中存储的Server的密钥

      3. Sclient-Server:Client与Server之间的会话密钥

      4. Client Info:记录了Client本身的Ip等基本信息

  4、kerberos认证交互过程

    1)client从KDC获取Sclient-Server

        1. 用client公钥加密Sclient-Server发送给client【Sclient-Server + Client-master-key(加密)】

        2. 用server公钥加密Sclient-Server+ ClientInfo发送给client【Sclient-Server + ClientInfo + Server-master-key(加密)】

    2)client用Sclient-Server加密发送数据

        1. Client用自己的mClient-master-key解密KDC传过来的第一个包获得会话密钥Sclient-Server

        2. 并用Sclient-Server加密自己的的信息和时间戳打包后传送给Server,此时Client开始和Server交互

    3)server用私钥获取Sclient-Server,并用Sclient-Server解密client信息

        1. Server会收到两个数据包,一个用会话密钥(Sclient-Server)加密,一个用自己的(Server-master-key)加密。

        2. Server先用自己的Server-master-key解密获取会话密钥(Sclient-Server)和一份关于Client的信息。

        3. 然后Server拿到解密后获取到的会话密钥(Sclient-Server)再解开另外一个数据包,获得另一份关于Client的信息和时间戳。

  5、kerberos认证图解

      

  6、kerberos细节

    1)上面有个数据包是KDC经Client转发给Server的,为什么不直接发给Server?

        1. 因为Server可能给多个Client提供服务,这样Server需要维护一个Client和会话密钥的对应表,这对Server是一个负担。

    2)为什么要发两份关于Client的信息给Server?

        1. 通过这两份数据的对比,Server就能判断出是不是对的Client在访问服务。

    3)Client是如何判断自己在访问对的Server呢?

      1. 因为Client给Server的一个数据包是用Server的master key来加密的所以只有对的Server才能解密。

    4)为什么要用会话密钥

        1. 通信方的master key是长期有效的,如果在网络上传输,一旦被截取,理论上来说只要有足够的时间是可以破解的。

        2. 所以我们才用临时的会话密钥来通信,一段时间后会话密钥会过期,同时时间戳也防止了,恶意用户重复使用同一个数据包。

    5)为什么要用时间戳?

        1. 如果Client向Server传送的数据包被其他的Client截取,然后自己拿来向Server请求服务这,这样就会出问题

        2. Server收到请求后将从解密后的数据包中获得的时间戳和当前时间对比,一旦超过一定范围将直接拒绝请求

1.2 kerberos常用命令

  https://www.cnblogs.com/chwilliam85/p/9679845.html

  https://www.cnblogs.com/kisf/p/7494203.html

1111111111111111111111111111

01: kerberos认证原理的更多相关文章

  1. Kerberos认证原理及基于Kerberos认证的NFS文件共享

    目录 Kerberos认证原理 简介 client访问server过程 一.Authentication Service Exchange (AS Exchange) 二.Ticket Grantin ...

  2. Kerberos认证原理简介

    1.1 What is Kerberos 1.1.1 简单介绍 Kerberos是一个用于鉴定身份(authentication)的协议, 它采取对称密钥加密(symmetric-key crypto ...

  3. kerberos认证原理---讲的非常细致,易懂

    前几天在给人解释Windows是如何通过Kerberos进行Authentication的时候,讲了半天也别把那位老兄讲明白,还差点把自己给绕进去.后来想想原因有以下两点:对于一个没有完全不了解Ker ...

  4. 在kerberos认证过程中Active Directory的作用

    LDAP介绍 1),ladp(Lightweight Directory Access Protocol),轻量级目录访问协议,提供被称为目录服务的信息服务,特别是基于X.500(构成全球分布式的目录 ...

  5. 图解Kerberos认证工作原理

    本文是我在看了这篇英文说明之后的总结 https://technet.microsoft.com/zh-cn/library/cc961976.aspx 是总结,不是翻译,所以是我看后按自己的理解写的 ...

  6. Kerberos认证与攻击学习总结

    0.背景 聆听了n1nty大佬(90后黑客代表)的谆谆指导,学习了n1nty大佬的基本操作,决定总结一下,做一个简要的读书笔记,也把之前自己记录的关于Windows的安全的一些博客能够串联起来.所以首 ...

  7. kerberos认证协议分析

    Kerberos认证协议分析 Kerberos认证协议流程 如上图: * 第一步:client和认证服务器(AS)通信完成认证过程,如果认证成功AS返回给client一个TGT(用来向TGS获取tic ...

  8. SSH认证原理和批量分发管理

    SSH密码认证原理 几点说明: 1.服务端/etc/ssh目录下有三对公钥私钥: [root@m01 ssh]# ls moduli ssh_config sshd_config ssh_host_d ...

  9. Cloudera Hadoop启用Kerberos认证

    一.Kerberos 二.安装 node01服务器安装Kerberos的核心服务master KDC,node02和node03安装Kerberos client cm也安装在node01上了 1.m ...

随机推荐

  1. Java+Selenium操作日期时间选择框插件

    在自动化测试的时候我们经常会碰到下面的时间日期插件(这个时候这个文本框是不运行我们输入时间的), 我们可以用java获取当前日期,然后用Selenium结合JS代码就可以直接往文本框输入内容. 像这种 ...

  2. 微信小程序调用高德地图

    index.wxml: longitude:经度 latitude:维度 地图所定位的区域 index.js 地图所定位的点

  3. Java 非静态内部类中可以定义静态变量或方法吗?

    如图: 这个问题的答案是不可以 由于内部类的实例化是由外部类实例化之后加载的,如果外部类还没有实例化,这时候调用内部类的静态成员,此时内部类还没有被加载,却要开始创建静态成员,这是矛盾的,所以java ...

  4. 2.2String工具类

    1:split方法 public class SplitDemo1 { public static String[] name = new String[20]; public SplitDemo1( ...

  5. IAB303 Data Analytics Assessment Task

    Assessment TaskIAB303 Data Analyticsfor Business InsightSemester I 2019Assessment 2 – Data Analytics ...

  6. 17.结构体(typedef)

    1.结构体 a.结构体类型定义b.结构体变量定义c.结构体变量的初始化d.typedef改类型名e.点运算符和指针法操作结构体f.结构体也是一种数据类型,复合类型,自定义类型 2.结构体变量的定义 ( ...

  7. linux echo 命令 打印字符串

    打印字符串 [root@MongoDB ~]# echo "heloworld" heloworld

  8. 学习MySQL过程中的随笔一

    第一天: 关于安装出现了很多问题,各种不懂的bug,没得法只能在网上查找解决方法,终于!!! 登录成功了,一下午的时间 附上参考资料:https://blog.csdn.net/weibo_boer/ ...

  9. 2018-2019-2 网络对抗技术 20165236 Exp2 后门原理与实践

    2018-2019-2 网络对抗技术 20165236 Exp2 后门原理与实践 一.实验内容 (3.5分) (1)使用netcat获取主机操作Shell,cron启动 (0.5分) (2)使用soc ...

  10. [js]d3.js绘制拓扑树

    echart也支持拓扑树了 所需的json数据格式: children嵌套 vis.js也支持绘制拓扑树 数据格式: nodes: {id, label, title} edges: {from, t ...