重要术语

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的通信也是如此

// 对kerberos通俗易懂的介绍

http://blog.csdn.net/wulantian/article/details/42418231

kerberos介绍的更多相关文章

  1. [转] kerberos介绍

    [From] https://www.cnblogs.com/ulysses-you/p/8107862.html 重要术语 1. KDC 全称:key distributed center 作用:整 ...

  2. 【大数据安全】基于Kerberos的大数据安全验证方案

    1.背景 互联网从来就不是一个安全的地方.很多时候我们过分依赖防火墙来解决安全的问题,不幸的是,防火墙是假设"坏人"是来自外部的,而真正具有破坏性的攻击事件都是往往都是来自于内部的 ...

  3. Ambari与Kerberos 集成

    Kerberos 介绍 Kerberos 是一个网络认证的框架协议,其设计的初衷便是通过密钥系统为 Client 和 Server 应用程序之间提供强大的认证服务.在使用 Kerberos 认证的集群 ...

  4. linux下kerberos教程

    一.kerberos介绍 Kerberos这一名词来源于希腊神话“三个头的狗——地狱之门守护者”系统设计上采用客户端/服务器结构与DES加密技术,并且能够进行相互认证,即客户端和服务器端均可对对方进行 ...

  5. Kerberos(转:http://www.cnblogs.com/jankie/archive/2011/08/22/2149285.html)

    Kerberos介绍(全)   微软Windows Server 2003操作系统实现Kerberos 版本5的身份认证协议.Windows Server 2003同时也实现了公钥身份认证的扩展.Ke ...

  6. Hadoop-Impala学习笔记之管理

    配置参数管理 待补充... 资源分配管理(Admission Control) Impala有资源池的概念,允许某些查询在特定的资源池执行,不过在白天不跑批/晚上不跑adhoc的DSS系统中,该机制并 ...

  7. Kerboros 认证

    转:Kerberos介绍(全)

  8. kerberos简单介绍

    重要术语 1. KDC 全称:key distributed center 作用:整个安全认证过程的票据生成管理服务,其中包含两个服务,AS和TGS 2. AS 全称:authentication s ...

  9. kerberos协议介绍

    一.kerberos认证过程: client向kerberos服务请求,希望获取访问server的权限.kerberos得到了这个消息,首先得判断client是否是可信赖的,也就是白名单黑名单的说法. ...

随机推荐

  1. PHP去调用jenkins

    背景说明:目前公司用到 jenkins(持续集成开源工具)更多情况下,通过配置,可以在gitlab上通过webhooks去调度jenkins 或者通过 jenkins管理后台,去手动执行“立即构建”去 ...

  2. 斯坦福大学公开课机器学习:梯度下降运算的特征缩放(gradient descent in practice 1:feature scaling)

    以房屋价格为例,假设有两个特征向量:X1:房子大小(1-2000 feets), X2:卧室数量(1-5) 关于这两个特征向量的代价函数如下图所示: 从上图可以看出,代价函数是一个又瘦又高的椭圆形轮廓 ...

  3. kubernetes Dashboard 使用RBAC 权限认证控制

    kubernetes RBAC实战 环境准备 先用kubeadm安装好kubernetes集群,[包地址在此](https://market.aliyun.com/products/56014009/ ...

  4. pycharm git无法使用问题(待解决)

    PyCharm 2017.3.1 (Community Edition)Build #PC-173.3942.36, built on December 14, 2017JRE: 1.8.0_152- ...

  5. 比特币VS美元兑换查询网址

    sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...

  6. javascript 伪数组与标准数组

    伪数组 1. 是一个对象 2. 必须有length 属性,length 值是number 类型 3. 如果这个对象的length 不为0,那么必须要有按照下标存储的数据 标准数组 判断数据是否是标准数 ...

  7. Spark记录-SparkSQL远程操作MySQL和ORACLE

    1.项目引入mysql和oracle驱动 2.将mysql和oracle驱动上传到hdfs 3.远程调试源代码如下: import org.apache.spark.sql.SQLContext im ...

  8. unity引用查找插件-ReferenceFinder

    简介   这是一个用来查找资源引用和依赖的插件,通过缓存来保存资源间的引用信息,通过树状结构直观的展示.   由于是通过缓存进行实现的,所以在希望的到精确的引用信息时需要刷新缓存.不过由于缓存的存在, ...

  9. Neo4j安装&入门&一些优缺点

    本篇将介绍Neo4j的安装,入门,和自己使用了一段时间后发现的优点缺点,争取简洁和实用. 如果你是第一次接触Neo4j,并且之前也都没接触过类似的Graph Database的话,建议先浏览一下我之前 ...

  10. 改变placeholder的字体颜色大小

    input::-webkit-input-placeholder { /* WebKit browsers */ font-size:14px; color: #333; } input::-moz- ...