Kerberos原理解析

原创 2016年08月30日 16:42:12

Kerberos介绍

Kerberos这一名词来源于希腊神话“三个头的狗——地狱之门守护者”。

系统设计上采用客户端/服务器结构与DES加密技术,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。可以用于防止窃听、防止replay攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。

支持SSO(Single Sign On),用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务。

由于在每个Client和Service之间建立了共享密钥,使得该协议具有相当的安全性。

认证原理解析

准备阶段

先看下图:

这里出现的角色有三个分别是:

  • KDC (Key Distribution Center)
  • Client
  • Service

其中KDC有两个服务:

  • AS (Authentication Server): 认证服务,用于签发“Ticket-Granting Tickets” (TGT)
  • TGS(Ticket Granting Server): 许可证服务,用于签发service tickets(各种服务的tickets)

密钥两个:

  • KDC与Client之间的共享密钥(密钥A,其实就是用户密码)
  • KDC与Service之间的共享密钥(密钥B)

认证过程

第一步:

用户发送自己的用户信息给KDC,KDC访问AS服务,获得TGT,并用密钥A加密TGT以及一个Session Key给用户。用户得到加密数据后,使用密钥A解密得到TGT和Session Key(这里简称为SK)。

其中,TGT用于第二步请求各种服务的tickets;SK主要用于Service对Client的身份鉴别,在步骤二中会体现。

第二步:

如图:

认证第二步
1. Client将之前获得TGT和要请求的服务信息(服务名等)发送给KDC,认证用户合法后,KDC中的TGS将SK(第一步中产生)和用户名,用户地址(IP),服务名,有效期, 时间戳一起包装成一个Ticket,并用密钥B加密,发送给Client;
2. 此时Client没有密钥B所以他无法查看Ticket中的内容,于是Client将Ticket直接转发给Service。
3. 同时Client将自己的用户名,用户地址(IP)打包成Authenticator,用之前获得的SK加密也发送给Service。
4. Service 收到Ticket后利用它与KDC之间的密钥B将Ticket中的信息解密出来,从而获得SK和用户名,用户地址(IP),服务名,有效期。然后再用SK将Authenticator解密从而获得用户名,用户地址(IP)将其与之前Ticket中解密出来的用户名,用户地址(IP)做比较,从而验证Client的身份。
5. 如果Service有返回结果,将其返回给Client。

参考

http://idior.cnblogs.com/archive/2006/03/20/354027.html

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

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

Kerberos 认证原理笔记

一、文章来由为了 computer security 课的展示准备素材。二、什么是 KerberosKerberos这一名词来源于希腊神话“三个头的狗——地狱之门守护者摘自百度百科 Kerbero...
  • Scythe666
  • Scythe666
  • 2016年12月02日 03:49
  • 3129

kerberos认证原理

一、 基本原理 Authentication解决的是“如何证明某个人确确实实就是他或她所声称的那个人”的问题。对于如何进行Authentication,我们采用这样的方法:如果一个秘密(secr...
  • ll641058431
  • ll641058431
  • 2017年09月15日 19:14
  • 182

kerberos管理开发总结

从10月23日左右,到10月27日搬完代码,到今天11月20日;小一个月已经过去了; kerberos管理所花的时间超出了我的预期。 当然,中间出了很多七七八八的是,干扰了开发。 比如,...
  • tianbaochao
  • tianbaochao
  • 2017年11月21日 15:19
  • 225

基于Kerberos认证的TCP通信

1 前言kerberos是一种安全协议,它涉及到三个部分:KDC、 Server端 与 Client端的代码。对于Kerberos 的整个认证过程,有很多介绍。但是对于如何在一个已有TCP程序中进行k...
  • eyoulc123
  • eyoulc123
  • 2017年11月15日 17:02
  • 125

Kerberos v5 源代码

  • 2010年12月16日 00:44
  • 13.49MB
  • 下载

Kerberos安全体系详解---Kerberos的简单实现

1.  Kerberos简介 1.1. 功能 一个安全认证协议 用tickets验证 避免本地保存密码和在互联网上传输密码 包含一个可信任的第三方 使用对称加密 ...
  • jiang314
  • jiang314
  • 2016年08月29日 10:23
  • 1273

Kerberos原理

转载自: Yx.Ac 文章来源: 勇幸|Thinking ( http://www.ahathinking.com )  。 --- 前些日子为了搞清楚Kerberos原理,把 MIT...
  • huyuleizj
  • huyuleizj
  • 2017年03月08日 22:52
  • 118

Kerberos原理解析

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

Kerberos 5原理解析

Kerberos 是由美国麻省理工学院提出的基于可信赖的第三方的认证系统。 Kerberos 提供了一种在开放式网络环境下进行身份认证的方法 , 它使网络上的用户可以相互证明自己的身份。 下面是自己整...
  • hoolev
  • hoolev
  • 2010年03月08日 16:46
  • 932
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Kerberos原理解析
举报原因:
原因补充:

(最多只允许输入30个字)