`
VerRan
  • 浏览: 459173 次
  • 性别: Icon_minigender_1
  • 来自: 陕西.西安
社区版块
存档分类
最新评论

Kerberos简介(转)

阅读更多

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

Kerberos协议:

Kerberos协议主要用于计算机网络的身份鉴别(Authentication), 其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务,即SSO(Single Sign On)。由于在每个ClientService之间建立了共享密钥,使得该协议具有相当的安全性。

条件

先来看看Kerberos协议的前提条件:

如下图所示,ClientKDC KDCService 在协议工作前已经有了各自的共享密钥,并且由于协议中的消息无法穿透防火墙,这些条件就限制了Kerberos协议往往用于一个组织的内部, 使其应用场景不同于X.509 PKI

 

过程

Kerberos
协议分为两个部分:

1 . ClientKDC发送自己的身份信息,KDCTicket Granting Service得到TGT(ticket-granting ticket) 并用协议开始前ClientKDC之间的密钥将TGT加密回复给Client

此时只有真正的Client才能利用它与KDC之间的密钥将加密后的TGT解密,从而获得TGT

(此过程避免了Client直接向KDC发送密码,以求通过验证的不安全方式)

2. Client利用之前获得的TGTKDC请求其他ServiceTicket,从而通过其他Service的身份鉴别。

 Kerberos协议的重点在于第二部分,简介如下:

 

1.    Client将之前获得TGT和要请求的服务信息(服务名等)发送给KDCKDC中的Ticket Granting Service将为ClientService之间生成一个Session Key用于ServiceClient的身份鉴别。然后KDC将这个Session Key和用户名,用户地址(IP),服务名,有效期, 时间戳一起包装成一个Ticket(这些信息最终用于ServiceClient的身份鉴别)发送给Service 不过Kerberos协议并没有直接将Ticket发送给Service,而是通过Client转发给Service.所以有了第二步。

2.    此时KDC将刚才的Ticket转发Client。由于这个Ticket是要给Service的,不能让Client看到,所以KDC用协议开始前KDCService之间的密钥将Ticket加密后再发送给Client。同时为了让ClientService之间共享那个秘密(KDC在第一步为它们创建的Session Key) KDCClient与它之间的密钥将Session Key加密随加密的Ticket一起返回给Client

3.    为了完成Ticket的传递,Client将刚才收到的Ticket转发到Service. 由于Client不知道KDCService之间的密钥,所以它无法算改Ticket中的信息。同时Client将收到的Session Key解密出来,然后将自己的用户名,用户地址(IP)打包成AuthenticatorSession Key加密也发送给Service

4.    Service 收到Ticket后利用它与KDC之间的密钥将Ticket中的信息解密出来,从而获得Session Key和用户名,用户地址(IP),服务名,有效期。然后再用Session KeyAuthenticator解密从而获得用户名,用户地址(IP)将其与之前Ticket中解密出来的用户名,用户地址(IP)做比较从而验证Client的身份。

5.    如果Service有返回结果,将其返回给Client

总结

概括起来说Kerberos协议主要做了两件事

1.    Ticket的安全传递。

2.    Session Key的安全发布。

再加上时间戳的使用就很大程度上的保证了用户鉴别的安全性。并且利用Session Key,在通过鉴别之后ClientService之间传递的消息也可以获得Confidentiality(机密性), Integrity(完整性)的保证。不过由于没有使用非对称密钥自然也就无法具有抗否认性,这也限制了它的应用。不过相对而言它比X.509 PKI的身份鉴别方式实施起来要简单多了。

推荐资料:

Kerberos的原理

Kerberos: An Authentication Service for Computer Networks

Web Services Security系列文章 

分享到:
评论

相关推荐

    kerberos 基础知识和安装操作

    #### 一、Kerberos简介 Kerberos是一种广泛应用于网络环境中的安全认证协议,特别适用于Client/Server模型。它由麻省理工学院(MIT)开发,主要目的是在网络环境中提供一种可靠的第三方认证机制,确保即使在网络...

    Sqoop数据采集工具简介、安装、使用学习笔记(配合Hive和Hbase)

    ### Sqoop 数据采集工具简介 #### 一、概述 **Sqoop** 是一款开源的工具,主要用于在 **Hadoop** 和传统的数据库之间高效地传输大量数据。它支持多种关系型数据库,如 MySQL、Oracle、PostgreSQL 等,并且能够很好...

    藏经阁-Kerberizing Spark.pdf

    六、Stratio 公司简介 * Stratio 是一家专门从事数字化转型的公司,旨在帮助企业在大数据时代的竞争中保持优势。 * Stratio 的解决方案使用第三代大数据技术,确保可扩展性、灵活性和适应新市场的能力。 七、演示...

    MongoDB官网翻译(卷一)——简介.docx

    企业版则包含额外的高级功能,如 LDAP 和 Kerberos 认证支持、磁盘加密以及审计功能,适用于需要全面技术支持的企业级部署。 入门 MongoDB 可以通过官方提供的入门指南,这将引导你了解 MongoDB 的基础操作。遇到...

    Hadoop生态简介

    【Hadoop生态简介】 Hadoop是大数据处理领域中的核心组件,以其开源、可扩展和高容错性著称。这个生态系统的构建旨在处理和存储海量数据,为各种业务场景提供解决方案。以下是关于Hadoop生态的一些关键知识点: 1....

    SAP_IQ_Getting_Started_en

    对于SAPIQ产品、其概念和组件的介绍,请参阅SAPIQ简介。本指南还提供了SAPIQ产品的参考信息,包括版本和许可、文档集中指南的描述、在线资源以及关键概念和特性。 为什么使用这本指南?在您成功安装了SAPIQ之后,您...

    java_hive简单查询

    1. **Hive简介**: Hive是一个基于Hadoop的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能。它将SQL语句转换为MapReduce任务在Hadoop集群上执行,非常适合大数据分析。 2. **Java与...

    ApacheShiro复现记录1

    1. Apache Shiro简介 Apache Shiro是一个开源的身份验证和授权框架,主要用于Java应用程序。它提供了灵活的安全管理机制,帮助开发者快速构建安全的应用程序。 2. 反序列化攻击 反序列化攻击是一种常见的攻击方式...

    CDH5-Phoenix安装包

    CDH5支持Kerberos认证,Phoenix也支持Kerberos集成,确保了数据访问的安全性。此外,还可以通过Apache Ranger等工具对Phoenix的权限进行细粒度管理。 综上所述,CDH5-Phoenix安装包是为了解决企业在处理大规模NoSQL...

    使用hadoop进行数据分析.pdf

    #### 一、Hadoop简介 Hadoop是一个开源的分布式计算框架,由Apache基金会维护。其核心组件包括Hadoop Distributed File System (HDFS) 和 MapReduce,它们共同实现了大数据的高效存储和处理。Hadoop通过提供一种简单...

    arcgis server rest api

    ArcGIS Server REST API支持多种身份验证机制,包括基本认证、OAuth2.0、Kerberos等,确保了服务的安全性。 6. **服务类型** REST API支持多种服务类型,如Map Service、Image Service、Feature Service等,分别...

    cas spnego认证方式(即加ad域的windows主机应用免登录)高可用集群方案(目前来看国内第一份资料,本人探索出来的)

    ##### 2.1 SPNEGO认证机制简介 SPNEGO (Simple and Protected GSSAPI Negotiation Mechanism) 是一种基于Kerberos协议的身份验证机制,能够在未加密的网络上传输加密的用户凭证。在CAS + AD域的环境下,SPNEGO认证...

    Impala用户指南

    #### 1.1 Impala简介 ##### 1.1.1 Impala概念 Impala是一款由Cloudera开发的大数据分析引擎,它能够为存储在Hadoop分布式文件系统(HDFS)或HBase中的数据提供快速且交互式的SQL查询能力。Impala的设计目标是为了...

    Hadoop权威指南(第四版)-中英文双版

    1. **Hadoop简介**:Hadoop是一个开源框架,主要用于处理和存储海量数据。它基于Google的MapReduce编程模型和GFS文件系统设计,具有高度可扩展性和容错性。 2. **Hadoop生态系统**:Hadoop不仅仅是MapReduce和HDFS...

    SSH,The Secure Shell:The Definitive Guide(2nd)

    【内容简介】 快点用SSH保护你的计算机网络吧!SSH(Secure Shell)具有透明、保密性强、公钥认证可信的特点,并具有高度可配置的客户端/服务器体系结构,是基于TCP/IP协议、目前十分流行且健壮的网络安全与隐私...

    Hortonworks Phoenix ODBC驱动程序中文版(用户指南)

    #### 简介 Hortonworks Phoenix ODBC 驱动程序是一款专为连接 Apache Phoenix 数据存储而设计的标准接口工具。Apache Phoenix 是一种基于 Apache HBase 的关系型数据库层,能够将 SQL 查询转换成 HBase 扫描,进而...

    52498-Hadoop平台搭建与应用-任务实施操作指南手册.rar

    1. **Hadoop简介**:Hadoop是由Apache基金会开发的开源框架,基于Java编写,设计目标是处理和存储PB级别的数据。它主要由两个核心部分组成——Hadoop Distributed File System (HDFS) 和 MapReduce。 2. **Hadoop...

    services.txt

    - **Kerberos (kerberos88/tcp, kerberos88/udp)**:一种网络认证协议。 - **Hostname Server (hostname101/tcp)**:提供主机名查询服务。 - **Remote Telnet Service (rtelnet107/tcp)**:提供远程Telnet服务。 - *...

    Hadoop权威指南第四版中文版

    一、Hadoop简介 Hadoop是Apache基金会开源的一个分布式文件系统(Hadoop Distributed File System, HDFS),设计用于处理和存储大量数据。它的核心理念是通过廉价硬件构建大规模数据处理集群,实现高可用性和容错性...

    深入apacheDs

    #### 一、ApacheDS简介与核心架构 ApacheDS是一个开源的、基于Java的目录服务器实现,其核心功能在于提供目录服务,能够保存数据并对数据进行搜索等操作。ApacheDS的设计十分注重模块化和可扩展性,这使得它能够...

Global site tag (gtag.js) - Google Analytics