kerberos的认证原理

kerberos介绍

重要术语

1. KDChtml

全称:key distributed center安全

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

2. ASide

全称:authentication servicepost

做用:为client生成TGT的服务性能

3. TGS加密

全称:ticket granting servicespa

做用:为client生成某个服务的ticket .net

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. 1.client向kerberos服务请求,但愿获取访问server的权限。kerberos获得了这个消息,首先得判断client是不是可信赖的,也就是白名单黑名单的说法。这就是AS服务完成的工做,经过在AD中存储黑名单和白名单来区分client。成功后,AS返回TGT(向TGS申请ticket的票据)给client。

  2. 2.client获得了TGT后,继续向kerberos的TGS请求,但愿获取访问某个server的权限。kerberos又获得这个消息,这时候经过client消息中的TGT,判断出client拥有了这个权限,给了client访问server的权限ticket。

  3. 3.client获得ticket后,终于能够成功访问server。这个ticket只是针对这个server,其余server须要再次向TGS申请ticket(门票)。

经过这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

相关文章
相关标签/搜索