`
jaroddang
  • 浏览: 32438 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Kerberos单点登录实现过程

阅读更多

最近公司在做单点登录的选型,看了看Kerberos的技术实现。感觉网上Kerberos的相关资料不多,自己做了总结和大家分享,因为是在选型阶段,没做太深入的学习,学习了Kerberos的单点登录过程。

Kerberos基本原理

先转几个链接

1.关于理解Kerberos原理的经典对话,MIT的人为了帮助人们理解Kerberos原理而写的一篇对话集,google Kerberos原理”,满篇都是。

2.谈谈基于KerberosWindows Network Authentication - Part IIIIII,挺好挺详细的文章,一共三篇,值得一看。

http://www.cnblogs.com/artech/archive/2007/07/05/807492.html

3. 单点登录(SSO)的核心--kerberos身份认证协议技术参考(一),也是一系列三篇文章

http://chnking.cnblogs.com/archive/2006/03/07/344506.html

 

下面是自己的原创整理

Kerberos登录过程

名字解释

KDSKerberos Distribution Center 认证中心

TGTTicket Granting Ticket 身份凭证

Master Key真正的密钥的HashClientKDCServer均有自己的Master Key

Session Key这种Key只在一段时间有效,用于加密双方传输的部分数据包

SKDC-ServerServerKDC间的Session Key

SKDC-ClientClientKDC间的Session Key

1.      Authentication Service Exchange

这一步骤KDC实现了对Client的认证,同时KDCClient颁发了一个身份凭证TGTClient可凭此TGTKDC申请用于访问某个ServerTicket

1.1.     ClientKDCAuthentication Service服务发送KRB_AS_REQ,目的是申请获取一个用以访问所有Server的凭证(TGT);

KRB_AS_REQ包含:

l         Pre-authentication data:一个被Client Master Key加密的Timestamp,用于KDC验证客户端身份;

l         Client InfoClient标识,KDC以此查找ClientMaster Key

l         Server Info:此处并不是Client要访问ServerServer Name,实际上是KDCTicket Granting Service

1.2.     ASAuthentication Service服务)根据Client InfoKDC中提取Client Master Key,解密Pre-authentication data,如果Timestamp合法,则客户端通过验证,因为这个Master KeyClientKDC知道;

1.3.     ASKRB_AS_REP发送给客户端

KRB_AS_REP包含:

l         Client Master Key加密过的SKDC-Client

l         KDC Key加密过的TGTTGTSKDC-Client + Client Info + End Time,此TGT记做ClientTGT

2.      KRB_TGT

这一步骤Client获得了ServerTGT,此TGT封装了SKDC-Server,该Session Key会用于加密后续步骤中的Ticket

2.1.     Client接收到KRB_AS_REP后,使用Client Master Key对第一部分进行解密,可获得SKDC-Client,之后向Server申请获取ServerTGT,此TGT中封装了SKDC-Server

2.2.     ServerKRB_AP_REP返回给Client

KRB_AP_REP包括:

l         KDC Key加密过的TGTTGTSKDC-Server + Server Info + End Time),TGT记做ServerTGT

注:ServerTGT可如同步骤1ServerKDC申请,并将申请到的TGT缓存到Server中。ClientServer获取时可直接将其返回,否则需通过AS ExchangeServerKDC获取。

3.      TGSTicket Granting ServiceExchange

这一步骤ClientKDC提供TGTKDC验证TGT通过后向Client颁发访问ServerTicket

3.1.     Client获得Server TGT后,KDC中的TGSTicket Granting Service)发送KRB_TGS_REQ,申请用于访问Server Ticket

KRB_TGS_REQ包含:

l         ClientTGT:在步骤1处生成,由KDC Master Key加密

l         ServerTGT:在步骤2处生成,由KDC Master Key加密

l         AuthenticatorClient Info +Timestamp:用来证明Client TGT是自己所拥有的,所以需要用SKDCClient加密

l         Client InfoClient标识

l         Server Info: Client试图访问的那个Server

3.2.     KDC先用KDC Master Key解密ClientTGT,获得SKDC-Client

3.3.     使用SKDCClient解密Authenticator,通过比对3.23.3步骤中分别获得的Client Info可验证发送者是否是Client TGT的真正拥有者;

3.4.     KDC再用KDC Master Key解密ServerTGT获得SKDC-Server

3.5.     验证通过后,向Client发送KRB_TGS_REP

KRB_TGS_REP 包含:

l         使用SKDC-Client加密的SServer-Client

l         使用SKDC-Server加密的Session Ticket,该Ticket中包括SServer-ClientClient nameEnd TimeTicket到期时间)

4.      CSClient/Server Exchange

Client接收到KRB_TGS_REP 后,使用SKDC-Client解密可获得SServer-Client,有了SServer-ClientTicketClient就可以与Server进行交互而无需通过KDC

这一步骤完成了ServerClient的认证。

4.1.     Client接收到KRB_TGS_REP后,使用SKDC-Client第一部分解密可获得SServer-Client,随后创建Authenticator并使用SServer-Client加密

4.2.     ClientServer发送KRB_AP_REQ

KRB_AP_REQ包含内容:

l         Session TicketClient Info + SServer-Client+ End Time

l         Authenticator Client Info + Timestamp

l         是否需要进行双向验证的Flag

4.3.     Server使用SKDC-Server解密Ticket获得 SServer-Client

4.4.     使用SServer-Client解密Authenticator,通过比较Authenticator中的Client InfoTicket中的Client Info实现对Client的验证

  • 大小: 45.4 KB
0
0
分享到:
评论

相关推荐

    openmeetings实现简单的单点登录(自动登录)

    在本文中,我们将探讨如何实现OpenMeetings的简单单点登录(SSO,Single Sign-On),即自动登录功能。 单点登录允许用户在一个系统中登录后,无需再次输入凭证即可访问其他相互信任的系统。在OpenMeetings中实现这...

    sso 单点登录原理文档附带流程图片

    在企业信息化过程中,单点登录可以解决多个应用系统中用户认证的问题,提高工作效率和安全性。同时,单点登录也可以减少系统管理员的维护工作量,提高系统的可扩展性和灵活性。 单点登录的优点包括: * 减少用户...

    windows下进行单点登录配置操作手册

    5. **配置服务代理**:对于不支持Kerberos的应用,可以使用服务代理软件,如Microsoft Identity Manager(MIM)或Azure AD Connect,它们可以桥接不同身份验证机制,实现单点登录。 6. **测试与调试**:配置完成后...

    单点登录设计说明书

    单点登录的核心原理是通过共享认证信息来实现用户在各个子系统间的无缝切换。通常,一个中央认证服务器(CAS,Central Authentication Service)是整个SSO架构的关键。当用户尝试访问一个受保护的资源时,会被重定向...

    Kerberos认证系统的设计与实现

    这种分离有助于减轻单点故障的风险。 在实际应用中,Kerberos适用于大型企业或组织,因为它能有效地管理大量用户的认证需求。同时,Kerberos还支持多级权限控制,可以通过权限策略来限制用户对特定资源的访问。 ...

    完整的单点登录功能

    下面我们将深入探讨单点登录的工作原理、实现方式及其在实际应用中的关键点。 ### 单点登录的工作原理 SSO的核心思想是用户只需要验证一次身份,然后在整个系统或网络中被识别。这个过程通常涉及以下步骤: 1. ...

    MOSS2007单点登录

    然后,启动“Security Token Service”(STS)服务,这是MOSS 2007实现单点登录的核心服务。 ### 2. 建立安全组 创建一个安全组用于管理具有单点登录权限的用户和用户组。这可以通过 SharePoint 管理中心或命令行...

    Kerberos

    7. **局限性与挑战**:Kerberos虽然强大,但也有其局限性,如对时间同步的依赖、复杂性导致的配置难度、以及可能导致单点故障的KDC。 8. **扩展与集成**:为了适应不断变化的安全需求,Kerberos已经与其他安全框架...

    SANFOR AC WEB 单点登录配置文档

    ** SANFOR AC WEB 单点登录配置文档 ** ...这份配置文档将指导管理员顺利完成整个过程,实现高效且安全的单点登录体验。通过深入理解和实践这些步骤,可以为企业网络访问带来便利,同时增强整体安全性。

    单点登录.zip

    单点登录(Single Sign-On,简称SSO)是一种网络身份验证机制,允许用户在一个系统或应用中登录后,无需再次认证即可访问多个相互关联的系统或应用。这种技术极大地提升了用户体验,减少了用户记忆多组用户名和密码...

    单点登录学位论文,关于研究方面的

    本文将围绕"单点登录学位论文,关于研究方面的"这一主题,探讨单点登录技术的现状、发展、实现方案以及相关技术,如Java和SSO的应用。 1. **单点登录技术的现状**: 目前,随着云计算和大数据的发展,SSO技术已...

    Kerberos简介

    - 单点故障问题:Kerberos依赖于中心化的认证服务器,一旦服务器出现故障,整个系统的认证功能将受到影响。 - 性能开销:加密和解密过程可能对性能产生一定影响。 综上所述,Kerberos作为一种成熟的网络认证协议...

    SANGFOR_AC&SG_v11.0_2016年度渠道高级认证培训04_单点登录.ppt

    在配置单点登录时,理解每种方式的适用场景和实现过程至关重要。例如,对于AD域单点登录,需要配置AC以监听AD域PC的认证交互;对于WEB单点登录,可能需要设置AC的监听口或镜像口;对于数据库单点登录,需设置AC定期...

    单点登录经典案例

    单点登录(Single Sign-On,简称SSO)是一种网络身份验证机制,允许用户在一个系统上登录后,无需再次认证即可访问多个相互信任的系统。它极大地提升了用户体验,减少了记忆和输入多个用户名和密码的麻烦,同时也...

    跨平台的单点登录功能

    4. **Kerberos**:这是一种古老的网络认证协议,主要用于Windows域环境,可以实现单点登录和集中化的身份验证。 5. **JWT(JSON Web Tokens)**:轻量级的身份验证机制,使用JSON编码的数据结构,包含了签名,确保...

    单点登录+在线列表+防浏览器关闭

    5. **单点登录技术**:常见的SSO实现方式有基于票证的协议(如CAS)、基于令牌的协议(如OAuth、OpenID Connect)以及基于Kerberos等。这些协议通过中央认证服务(CAS服务器)实现对多应用的身份验证。 6. **心跳...

    编写你自己的单点登录服务

    单点登录(Single Sign-On,简称SSO)作为一种先进的安全技术,正日益广泛地应用于各类软件系统之中,尤其是在大型企业内部。SSO的核心价值在于它能够实现用户在多个相互信任的应用系统中的统一身份认证,即用户只需...

    SSC单点登录技术

    ### SSC单点登录技术 #### 一、单点登录(SSO)概述 单点登录(Single Sign-On,简称SSO)是一种用户身份验证技术,它允许用户在多个相关但独立的应用程序或系统中仅使用一次凭据进行登录。这种技术在现代企业和...

    Kerberos 网络认证协议

    系统通过Security Support Provider Interface (SSPI)来实现Kerberos认证,Winlogon组件用于处理单点登录(SSO)功能。 #### 七、Kerberos在网络环境中的作用 Kerberos不仅适用于局域网(LAN),还适用于广域网(WAN)...

Global site tag (gtag.js) - Google Analytics