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 协议的重点在于第二部分,简介如下:
![](http://images.cnblogs.com/cnblogs_com/idior/kerberos2.jpeg)
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的原理
Kerberos: An Authentication Service for Computer Networks
分享到:
相关推荐
1. **Kerberos介绍**:Kerberos是一种网络授权协议,用于在不安全的网络环境中进行安全的身份认证,防止窃听、重放攻击和保护数据完整性。 2. **Kerberos基本概念**: - **KDC(Key Distribution Center)**:负责...
**Kerberos简介** Kerberos是一种网络身份验证协议,由麻省理工学院开发,它在安全性方面提供了强大的服务,确保了在网络通信中的用户身份验证。Kerberos基于密钥分发中心(KDC)的概念,它允许用户在一个可信的...
通过本文介绍的方法,可以在Hadoop集群上成功部署并配置Kerberos安全认证。Kerberos的引入显著提高了Hadoop集群的安全性,特别是在多租户环境中。此外,通过Cloudera Manager进行管理大大简化了配置过程,降低了出错...
Kerberos是一种广泛使用的计算机网络授权协议,它最初由麻省理工学院(MIT)开发,旨在提供一种安全的认证方式,以便在网络中的计算机用户或服务之间安全地进行通信。Kerberos采用的是对称密钥加密机制,同时也在其...
本文将详细介绍如何在Flink中配置和使用带Kerberos认证的Kudu Connector。 ### 1. Kerberos认证简介 Kerberos 是一种网络认证协议,它提供基于票证的验证服务,确保用户和服务之间的通信是安全的。在Hadoop生态...
本文将详细介绍如何为 Kafka 配置 Kerberos 安全认证,包括安装 Kerberos 服务、配置 Zookeeper 的 Kerberos 认证以及最终配置 Kafka 的 Kerberos 认证。 #### 二、整体架构设计 Kerberos 的部署通常需要一个中心化...
通过本文详细介绍的步骤,您可以顺利地在Windows环境中配置Kerberos认证,并将其应用于Hive数据库等大数据平台。这对于提高数据安全性和管理效率具有重要意义。需要注意的是,在整个配置过程中,每个步骤都需要仔细...
本篇将详细介绍如何在Spring MVC框架中配置Kerberos认证,并通过Java代码与Hive建立安全连接。 首先,`Kerberos认证`是一种基于票据的认证机制,它通过三向握手确保了通信双方的身份,并防止中间人攻击。在Hive中...
下面将详细介绍 Kerberos+Hadoop 搭建的过程。 环境准备 在开始搭建 Kerberos+Hadoop 之前,需要进行环境准备。首先,需要规划机器,包括规划机器的角色和配置免密登录。其次,需要安装 JDK,因为 Hadoop 需要 JDK...
下面将详细介绍这些组件如何与Kerberos集成以及它们在安全环境中的工作原理。 1. **Spark**:Spark是一个快速且通用的大数据处理框架。在Kerberos环境中,Spark需要配置Kerberos凭据以访问HDFS或其他Kerberized服务...
本文将重点介绍如何在Linux环境下安装和配置Kerberos服务,并使用Kerberos提供的服务来替代传统的telnetd、rlogind和rshd等服务。 #### 安装环境及软件包 - **操作系统**: Red Hat 8.0 - **安装包**: - krb5-...
本文将深入探讨这一主题,介绍如何利用Apache Flink与Kafka的集成,以及如何通过Kerberos进行身份验证。 首先,Apache Flink是一个强大的开源流处理框架,它提供了对实时数据流的强大处理能力。而Kafka是一个分布式...
从零学习Kerberos安全认证机制,并和Hadoop、YARN、HIVE进行集成,通过知识点 + 案例教学法帮助小白快速掌握Hadoop集成Kerberos安全技术。 课程亮点 1,专项攻破Hadoop安全配置。 2,生动形象,化繁为简,讲解通俗...
本文详细介绍了如何在Windows Server 2008环境下配置Kerberos认证。从创建域控制器、配置域用户及其SPN注册,到IIS中启用Kerberos认证的具体步骤,都进行了详尽的说明。通过这种方式,可以有效地提高网络环境中数据...
本文通过一个故事的形式向读者介绍了 Kerberos 认证协议的工作原理。Kerberos 是一种广泛应用于网络环境中的安全认证协议,其设计目的是为了在网络环境中实现安全的身份验证过程。本文将重点解释 Kerberos 的核心...
本文将详细介绍基于Kerberos的Windows Network Authentication的基本原理、关键概念及其在实际环境中的应用。 **Authentication基本概念** - **Secret的表示**:在认证过程中,Secret(秘密)是验证身份的关键。...
文档的附录部分详细介绍了用于诊断Kerberos问题的各种工具,如Kerberos Configuration Manager、SetSPN命令行工具、Event Viewer等。此外,还提供了IIS Web服务器到SQL数据库委派的实例,展示了如何识别和解决常见...
本文将详细介绍如何在 CentOS 7 上安装必要的软件包,并配置基于 Kerberos 的 PyHive 连接 Hive。 #### 1. 安装所需软件包 为了使 PyHive 能够顺利地与 Hive 通信,并支持 Kerberos 认证,我们需要安装一系列的...
Kerberos V5 Installation Guide 英文版,该书对kerberos的原理与安装有比较详细的介绍。
本文将详细介绍CDH5配置Kerberos的全过程。 首先,了解Hadoop的认证机制。在未启用Kerberos的情况下,任何拥有client端的用户都能连接到Hadoop集群,如果拥有root权限的内网机器通过创建相应的Linux用户,也能获得...