重要术语

1. KDC

全称:key distributed center

作用:整个安全认证过程的票据生成管理服务,其中包含两个服务,AS和TGS

2. AS

全称:authentication service

作用:为client生成TGT的服务

3. TGS

全称:ticket granting service

作用:为client生成某个服务的ticket

4. AD

全称:account database

作用:存储所有client的白名单,只有存在于白名单的client才能顺利申请到TGT

5. TGT

全称:ticket-granting ticket

作用:用于获取ticket的票据

6.client

想访问某个server的客户端

7. server

提供某种业务的服务

认证流程

概述

图1 kerberos认证流程

图1展示了kerberos的认证流程,总体分为3步。

  1. client与AS交互
  2. client与TGS交互
  3. client与server交互
详细分析

kerberos为什么要采用3步交互的形式来完成安全认证,那就要从kerberos的使用场景说起。

相比kerberos,https可能更为熟悉一点,通过证书和非对称加密的方式,让客户端可以安全的访问服务端,但这仅仅是客户端安全,通过校验,客户端可以保证服务端是安全可靠的,而服务端却无法得知客户端是不是安全可靠的。这也是互联网的一种特性。而kerberos可以支持双向认证,就是说,可以保证客户端访问的服务端是安全可靠的,服务端回复的客户端也是安全可靠的。

想证明client和server都是可靠的,必然要引入第三方公证平台,这里就是AS和TGS两个服务。

  1. client向kerberos服务请求,希望获取访问server的权限。kerberos得到了这个消息,首先得判断client是否是可信赖的,也就是白名单黑名单的说法。这就是AS服务完成的工作,通过在AD中存储黑名单和白名单来区分client。成功后,返回AS返回TGT给client。
  2. client得到了TGT后,继续向kerberos请求,希望获取访问server的权限。kerberos又得到了这个消息,这时候通过client消息中的TGT,判断出了client拥有了这个权限,给了client访问server的权限ticket。
  3. client得到ticket后,终于可以成功访问server。这个ticket只是针对这个server,其他server需要像TGS申请。

通过这3步,一次请求就完成了。当然这里会有个问题,这样也没比https快啊。解释一下

1. 整个过程TGT的获取只需要一次,其中有超时的概念,时间范围内TGT都是有效的,也就是说一般情况访问server只需要直接拿到ticket即可

2. 整个过程采用的是对称加密,相对于非对称加密会有性能上的优势

3. kerberos的用户管理很方便,只需要更新AD中的名单即可

当然整个过程的通信都是加密的,这里设计到两层加密,因为所有的认证都是通过client,也就是说kerberos没有和server直接交互,这样的原因是kerberos并不知道server的状态,也无法保证同时和server,client之间通信的顺序,由client转发可以让client保证流程顺序。

第一层加密,kerberos对发给server数据的加密,防止client得到这些信息篡改。

第二层加密,kerberos对发给client数据的加密,防止其他网络监听者得到这些信息。

client和server的通信也是如此。

转自:https://www.cnblogs.com/ulysses-you/p/8107862.html

kerberos简单介绍的更多相关文章

  1. LDAP服务器的概念和原理简单介绍

    LDAP服务器的概念和原理简单介绍 1. 目录服务 目录是一个为查询.浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样.目录数据库和关系数据库不 ...

  2. [原创]关于mybatis中一级缓存和二级缓存的简单介绍

    关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...

  3. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍

    一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...

  4. 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍

    一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...

  5. yii2的权限管理系统RBAC简单介绍

    这里有几个概念 权限: 指用户是否可以执行哪些操作,如:编辑.发布.查看回帖 角色 比如:VIP用户组, 高级会员组,中级会员组,初级会员组 VIP用户组:发帖.回帖.删帖.浏览权限 高级会员组:发帖 ...

  6. angular1.x的简单介绍(二)

    首先还是要强调一下DI,DI(Denpendency Injection)伸手获得,主要解决模块间的耦合关系.那么模块是又什么组成的呢?在我看来,模块的最小单位是类,多个类的组合就是模块.关于在根模块 ...

  7. Linux的简单介绍和常用命令的介绍

    Linux的简单介绍和常用命令的介绍 本说明以Ubuntu系统为例 Ubuntu系统的安装自行百度,或者参考http://www.cnblogs.com/CoderJYF/p/6091068.html ...

  8. iOS-iOS开发简单介绍

    概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的 ...

  9. iOS开发多线程篇—多线程简单介绍

    iOS开发多线程篇—多线程简单介绍 一.进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcod ...

随机推荐

  1. Win10升级.NET Framework 3.5或2.0遇到错误0x800f081f怎么办

    为了让win10系统更好地运行游戏,很多玩家都会在电脑中安装.NET Framework 3.5或.NET Framework 2.0.不过,部分用户在更新升级.NET Framework 3.5和2 ...

  2. FormatMessage

    FormatMessage 获取GetLastError 函数返回的错误代码对应的字符串描述. #include <Windows.h>#include <tchar.h> V ...

  3. Windows 常用的运行命令

    1. 打开程序 1)   calc                    计算器 2)   notepad                 记事本 3)   write                 ...

  4. datatable转换为list<model> 映射

    using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.R ...

  5. visual studio code运行时报错,无法将“cnpm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称,Cannot find module 'webpack'

    前言 因公司技术需求,这段时间成功进入了Vue 2.0 的坑,刚用起Visual Studio Code,却发现问题很多,发现一个错误:cnpm : 无法将“cnpm”项识别为 cmdlet.函数.脚 ...

  6. v-module绑定vuex里面的数据

    当在严格模式中使用 Vuex 时,在属于 Vuex 的 state 上使用  v-model  会比较棘手: <input v-model="obj.message"> ...

  7. PKUSC2018游记

    由于菜鸡DreamlessDreams还需要准备中考的原因....这篇游记拖到今天才发. Day0:出发+报道                                              ...

  8. 表单相关标签之form标签

    表单能够包含 input 元素,比如文本字段.复选框.单选框.提交按钮等等. 表单还可以包含 menus.textarea.fieldset.legend 和 label 元素以及其它块级元素 表单用 ...

  9. 【tmos】shell工具推荐

    xshell(推荐) putty

  10. mongodb 系列 ~ mongo的副本集(3)

    一 简介:今天咱们来聊聊mongodb复制的具体一些案例 二 副本集 1 当mongodb采用全量复制时,如何观察全量复制的进度 对比文件本身和primary大小 2 mongodb全量复制的过程 旧 ...