出处: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 第四章 配置...
#### Kerberos简介 Kerberos是一种网络认证协议,由麻省理工学院(MIT)开发,主要用于提供安全的身份验证机制。它不同于常见的密码认证方式,通过一种称为票据(Ticket)的方式进行认证,确保通信双方的身份安全...
**Kerberos简介** Kerberos是一种网络身份验证协议,由麻省理工学院开发,它在安全性方面提供了强大的服务,确保了在网络通信中的用户身份验证。Kerberos基于密钥分发中心(KDC)的概念,它允许用户在一个可信的...
#### 一、Kerberos简介 Kerberos是一种网络认证协议,它的设计目标是通过密钥分发中心(KDC)来管理客户端与服务器之间的认证过程,以确保在网络环境中实现安全的数据交换。Kerberos特别适用于分布式计算环境,尤其...
#### Kerberos简介 Kerberos是一种网络认证协议,它的主要目的是为了在网络环境中提供安全的身份验证服务。Kerberos由麻省理工学院(MIT)开发,最初是为了应对分布式计算环境中的安全挑战。Kerberos使用对称密钥...
#### 一、Kerberos简介 Kerberos是一种广泛使用的网络认证协议,它提供了一种安全的身份验证方法,尤其适用于分布式网络环境中的身份验证。Kerberos通过密钥分发中心(KDC)来管理用户和服务的安全凭证,从而确保数据...
一、Kerberos简介 Kerberos由麻省理工学院开发,最初设计用于解决开放网络环境中的身份验证问题。该协议基于对称密钥加密技术,通过第三方认证服务器(即Kerberos票证授予服务器,TGS)进行身份验证,确保用户和...
Kerberos 协议简介 Kerberos 协议是一种计算机网络认证协议,允许某实体在非安全网络环境下通信,向另一个实体以一种安全的方式证明自己的身份。该协议基于对称密码学,并需要一个值得信赖的第三方。 Kerberos 协议...
#### 一、Kerberos简介 Kerberos是一种广泛应用于网络环境中的安全认证协议,特别适用于Client/Server模型。它由麻省理工学院(MIT)开发,主要目的是在网络环境中提供一种可靠的第三方认证机制,确保即使在网络...
【Kerberos简介】 Kerberos是一种广泛使用的网络身份验证协议,它基于对称密钥加密技术,由麻省理工学院开发。Kerberos的主要目标是确保网络服务的安全性,尤其是用户登录过程中的身份验证。该协议通过第三方验证...
#### 一、Kerberos认证系统简介 Kerberos是一种网络认证协议,其设计目标是通过密钥分发中心(Key Distribution Center, KDC)来管理用户和服务之间的认证过程。Kerberos在分布式环境中提供了强大的身份验证功能,...
Kerberos认证简介 Kerberos 是一种网络认证协议,它提供基于票证的验证服务,确保用户和服务之间的通信是安全的。在Hadoop生态系统中,Kerberos通常被用来保护HDFS、HBase、Hive等组件的安全性。Kudu作为Hadoop...
#### 一、Kerberos认证原理简介 Kerberos是一种广泛使用的网络认证协议,其设计目标是通过密钥分发中心(Key Distribution Center, KDC)为用户提供安全的认证服务。在Windows环境中,尤其是在进行Hadoop或Hive等...
- **Kerberos 简介** - **Kerberos 概述**:理解 Kerberos 认证的基本原理。 - **Kerberos 的基本概念**:了解 Kerberos 的主要组成部分。 - **Kerberos 的认证过程**:熟悉 Kerberos 的认证流程。 - **Hadoop ...
Kerberos简介** - **定义**: Kerberos是一种基于“票证”的认证协议,广泛应用于大数据领域。 - **结构**: 包括KDC(密钥分发中心)、AS(身份验证服务)、TGS(票据授权服务)以及Account Database(账户数据库)...
1. **JAAS简介**:JAAS是Java平台的一部分,提供了一种框架来集成各种认证机制,如用户名/密码、证书、智能卡等。它允许开发者定义用户身份验证的方式,并控制不同级别的访问权限。 2. **Kerberos协议**:Kerberos...
##### 2.1 Kerberos系统简介 Kerberos系统是由麻省理工学院(MIT)开发的一种基于可信第三方(KDC,Key Distribution Center)的身份认证机制。该系统利用对称密钥加密算法来实现用户和服务器之间的相互认证。...
二、实验环境实验所使用的设备名称及规格,网络管理工具简介、版本等 三、实验内容与实验要求实验内容、原理分析及具体实验要求 四、实验过程与分析根据具体实验,记录、