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. BringWindowToTop完美激活窗口与置顶

    void ActiveWin(IntPtr h) { IntPtr hForeWnd = GetForegroundWindow();//获取当前窗口句柄 int tIdCur = GetWindow ...

  2. java实现求最大子数组和的逐步显示

    package 最大的子数组和; import java.util.Scanner; public class shuzu { public static int maxArr(int a[]) { ...

  3. git分支与主干合并操作

    git分支与主干合并操作1.主干合并分支在主干上合并分支 branch (master)git merge branch --squash 提交合并后的代码 (master)git commit -m ...

  4. [Day25]IO(Properties、序列化流、打印流、Commons-IO)

    1.Properties类-持久的属性集,可保存在流中或从流中加载,属性列表中每个键及其对应值都是一个字符串 1.1 特点 (1)Hashtable的子类,map集合中的方法都可以用 (2)该集合没有 ...

  5. Win64/Linux 上PyMouse安装

    目录 windows64安装Pymouse Linux安装 PyMouse ubuntu PyMouse用法 windows64安装Pymouse 只安装PyMouse,会提示缺少相应的组键. 找到安 ...

  6. Google 内部代码是不支持异常(Excepton)的,C++ 异常的优劣之处有许多讨论(知乎上的讨论)

    最近 Google 开源了其内部多年使用的 C++ 代码库 Abseil 作为 C++ 标准库的补充,并会对其进行持续更新,本文对其进行简要介绍. 一句话概括,这个库的特点是用 C++ 11 的代码实 ...

  7. 【转】Java遍历Map对象的四种方式

    关于java中遍历map具体哪四种方式,请看下文详解吧. 方式一 这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. Map<Integer, Integer> ma ...

  8. iOS 高级去水印,涂鸦去水印

    目前在研究一下图像的处理,看了一下相关的软件,比如:<去水印大师>,究竟去水印是怎么处理的呢?看图分析. 一共是三个功能:快速去水印.高级去水印.涂鸦去水印 快速去水印:暂时没找到好的处理 ...

  9. Promise (2) 原型上的方法

    "I'm Captain Jack Sparrow" 加勒比海盗5上映,为了表示对杰克船长的喜爱,昨天闪现了几次模仿船长的走路姿势(哈哈哈,简直妖娆). 为了周天能去看电影,要赶紧 ...

  10. Python:re中的group方法简介

    原文地址:http://www.cnblogs.com/kaituorensheng/archive/2012/08/20/2648209.html. 正则表达式中,group()用来提出分组截获的字 ...