出处:http://idior.cnblogs.com/archive/2006/03/20/354027.html 谢谢
Kerberos协议:
Kerberos协议主要用于计算机网络的身份鉴别(Authentication), 其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务,即SSO(Single Sign On)。由于在每个Client和Service之间建立了共享密钥,使得该协议具有相当的安全性。
条件
先来看看Kerberos协议的前提条件:
如下图所示,Client与KDC, KDC与Service 在协议工作前已经有了各自的共享密钥,并且由于协议中的消息无法穿透防火墙,这些条件就限制了Kerberos协议往往用于一个组织的内部, 使其应用场景不同于X.509 PKI。
过程
Kerberos协议分为两个部分:
1 . Client向KDC发送自己的身份信息,KDC从Ticket Granting Service得到TGT(ticket-granting ticket), 并用协议开始前Client与KDC之间的密钥将TGT加密回复给Client。
此时只有真正的Client才能利用它与KDC之间的密钥将加密后的TGT解密,从而获得TGT。
(此过程避免了Client直接向KDC发送密码,以求通过验证的不安全方式)
2. Client利用之前获得的TGT向KDC请求其他Service的Ticket,从而通过其他Service的身份鉴别。
Kerberos协议的重点在于第二部分,简介如下:
1. Client将之前获得TGT和要请求的服务信息(服务名等)发送给KDC,KDC中的Ticket Granting Service将为Client和Service之间生成一个Session Key用于Service对Client的身份鉴别。然后KDC将这个Session Key和用户名,用户地址(IP),服务名,有效期, 时间戳一起包装成一个Ticket(这些信息最终用于Service对Client的身份鉴别)发送给Service, 不过Kerberos协议并没有直接将Ticket发送给Service,而是通过Client转发给Service.所以有了第二步。
2. 此时KDC将刚才的Ticket转发给Client。由于这个Ticket是要给Service的,不能让Client看到,所以KDC用协议开始前KDC与Service之间的密钥将Ticket加密后再发送给Client。同时为了让Client和Service之间共享那个秘密(KDC在第一步为它们创建的Session Key), KDC用Client与它之间的密钥将Session Key加密随加密的Ticket一起返回给Client。
3. 为了完成Ticket的传递,Client将刚才收到的Ticket转发到Service. 由于Client不知道KDC与Service之间的密钥,所以它无法算改Ticket中的信息。同时Client将收到的Session Key解密出来,然后将自己的用户名,用户地址(IP)打包成Authenticator用Session Key加密也发送给Service。
4. Service 收到Ticket后利用它与KDC之间的密钥将Ticket中的信息解密出来,从而获得Session Key和用户名,用户地址(IP),服务名,有效期。然后再用Session Key将Authenticator解密从而获得用户名,用户地址(IP)将其与之前Ticket中解密出来的用户名,用户地址(IP)做比较从而验证Client的身份。
5. 如果Service有返回结果,将其返回给Client。
总结
概括起来说Kerberos协议主要做了两件事
1. Ticket的安全传递。
2. Session Key的安全发布。
再加上时间戳的使用就很大程度上的保证了用户鉴别的安全性。并且利用Session Key,在通过鉴别之后Client和Service之间传递的消息也可以获得Confidentiality(机密性), Integrity(完整性)的保证。不过由于没有使用非对称密钥自然也就无法具有抗否认性,这也限制了它的应用。不过相对而言它比X.509 PKI的身份鉴别方式实施起来要简单多了。
推荐资料:
Kerberos: An Authentication Service for Computer Networks
Web Services Security系列文章
相关推荐
第一章 Kerberos简介 第二章 环境准备 2.1 使用软件版本信息介绍 2.2 节点架构介绍 2.3 基础系统环境准备 第三章 Kerberos框架搭建 3.1 Kerberos Server搭建 3.2 Kerberos Client搭建 3.3 规划principal 第四章 配置...
Hadoop和Kerberos简介。
kerberos协议简介.pdf 学习资料 复习资料 教学资源
Kerberos原理简介及2000系统上的应用。
Kerberos协议简介、工作原理、握手过程,及 Kerberos协议面临的安全问题及其安全性分析
.net通用数据库访问组件SQL Artisan应用简介1 在Framework1.0下同时连接SqlServer和Oracle的一些体会 XML XPath XPath最通俗的教程(ZZ) XPath中相对路径和绝对路径 XPath 简单语法 Asp.Net(C#)利用XPath解析XML...
二、实验环境实验所使用的设备名称及规格,网络管理工具简介、版本等 三、实验内容与实验要求实验内容、原理分析及具体实验要求 四、实验过程与分析根据具体实验,记录、
简介使用Kerberos时,一个客户端需要经过三个步骤来获取服务:认证:客户端向认证服务器发送一条报文,并获取一个含时间戳的Ticket-Granting Ti
第1章 课程简介 课程简介及期望学习本门课程可以达到的目标。对本门课程所用到的技术进行概览 1-1 学前必读(助你平稳踩坑,畅学无忧) 1-2 导学 1-3 课程技术分析 第2章 HBase简介与环境部署 介绍HBase是什么,能做...
标签:apacheds-launcher-2.0.0.v20130517-javadoc.jar,apacheds,launcher,2.0.0.v20130517,javadoc,jar包下载,依赖包
一、简介 GSSAPI 指定了用于定义安全服务 API 的通用机制。 这是使用 Kerberos 身份验证的最常见方式。 2. 用法 这个包提供了一组通用函数。 提供安全系统的系统应该为这些泛型提供方法。 2.1 Kerberos Kerberos ...
使用Meteor全栈框架以...高级的特性包括:OTR 消息,XMPP 多用户聊天,Kerberos 认证,p2p 文件分享等等。 技术特性:使用 Meteor,包括 Blaze 前端由 JavaScript 和 CoffeeSript 编写MongoDB (because of Meteor)
接入身份认证技术概述|RADIUS协议|TACACS+技术|LDAP概述与应用|Kerberos认证浅析|EAP技术简介|802.1X技术基础|PORTAL概述|MAC认证技术基础|Triple认证技术|EAD方案介绍|
神书\图书简介 https://book.douban.com/subject/1237597/ Windows安全机制一向被认为是一个枯燥而难懂的问题。多年来,有关安全机制编程的实例仅仅是在ACL控制方面的练习。本书为编程人员提供了Windows安全机制的...
简介: 内容介绍: Automate your computing systems with Puppet, the popular configuration management framework. Through code samples and real-world examples, this concise introduction shows you how...
Kerberos和Hadoop 委托令牌 其他安全性改进 利用基准测试程序测试Hadoop集群 Hadoop基准测试程序 用户的作业 云上的Hadoop Amazon EC2上的Hadoop 第10章 管理Hadoop HDFS 永久性数据结构 安全...
软件名称:SecureCRT 应用平台:Windows 软件大小:5.89M 简介: <br> SecureCRT 是高度可定制的终端仿真器,适用于 Internet 和 Intranet,支持 IPv6 标准。对于连接到运行 Windows、UNIX 和 VMS 的...
本文假定您安装了InfoSphereGuardium收集器并在...从数据安全的角度讲,建议您升级到MongoDB2.4或更高版本,因为这些版本可提供简介中所述的安全增强功能。(Kerberos要求使用企业版。)记录以下信息,您需要使用这些信