`
jaroddang
  • 浏览: 31784 次
  • 性别: 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. **测试与调试**:配置完成后...

    Internet上的单点登录研究

    单点登录(Single Sign-On,简称SSO)是一种网络身份验证技术,旨在简化用户登录多应用的过程。随着互联网服务的普及,用户需要记忆多个网站的用户名和密码,这既不安全也不方便。SSO的核心理念是创建一个统一的认证...

    单点登录技术的研究.pdf

    在基于Kerberos的B/S架构单点登录模型中,用户通过与Kerberos服务器交互进行身份验证。这种模型通常包括优化过的Kerberos计算,以适应Web环境。用户的身份验证信息在所有支持此技术的网站间共享,用户无需在每个站点...

    配置Domino 8.5.1使用Windows Active Directory单点登录.doc

    Lotus Domino 8.5.1作为一个强大的协作平台,通过与Windows Active Directory(AD)的集成,可以实现单点登录(Single Sign-On, SSO),从而提高用户体验和安全性。本文将详细阐述如何配置Domino 8.5.1以利用Windows...

    SANGFOR-AC-v11.0-脚本方式单点登录测试指导书.doc

    《SANGFOR AC v11.0 脚本方式单点登录测试指导书》 本文档旨在详细介绍如何对深信服SANGFOR AC v11.0版本的单点登录(Single Sign-On, SSO)功能进行脚本化的测试。深信服是一家专注于网络安全解决方案的公司,其AC...

    单点登录de实例详解

    单点登录(Single Sign-On,简称SSO)是一种身份验证技术,允许用户在一次登录后访问多个相互信任的应用系统,而无需为每个系统分别进行身份验证。SSO在大型企业中广泛应用,尤其对于拥有众多业务系统的公司,它可以...

    Kerberos身份认证方案.pdf

    在Windows环境中,Kerberos是实现内部网络登录的主要协议,支持单点登录,简化了用户的登录过程,同时也降低了管理员的管理负担。 Kerberos的物理结构通常包括多个组件,如KDC服务器、备份KDC、以及各种客户端。...

    网络技术-网络基础-数字化校园统一身份认证系统的研究与实现.pdf

    为了提升用户体验,系统采用了“票据”机制,允许用户在一次登录后无需重复认证即可访问所有授权应用,实现了单点登录(Single Sign-On, SSO)。这种设计减少了用户的登录操作,同时也提高了系统的安全性,因为系统...

    网络技术-网络基础-现代服务业中基于SOA的电子认证服务的设计.pdf

    通过研究现有的单点登录系统,分析其优缺点,结合电子认证服务的特点,设计了一种改进的单点登录系统框架。该系统明确了设计原则,阐述了各个功能模块的作用,并详细描述了单点登录系统的通信协议设计。 最后,对...

    网康深信服上网行为管理功能对比.pdf

    网康和深信服的产品可以基于IP、MAC地址、AD域用户识别、邮件账号用户识别、Kerberos单点识别、NTLM单点识别、PPPoE用户识别等多种方式进行用户识别。 网康和深信服的上网行为管理功能非常丰富,涵盖了硬件、功能、...

    网络技术-网络基础-认证授权模型的研究实现及其应用.pdf

    【单点登录】(Single Sign-On, SSO)简化了用户登录过程,提高了用户体验,同时保持了安全标准。为了确保平台的高可用性,作者还讨论了冗余和故障恢复策略。 【平台在表决系统中的应用】展示了认证授权模型的实际...

    SSO补丁方法

    完成以上所有步骤后,SAP SSO应该已经配置成功,用户现在可以尝试无密码登录SAP系统,体验单点登录带来的便利。在整个过程中,确保遵循SAP的官方文档和Notes,因为安全配置的细微差别都可能影响SSO的正常工作。同时...

    网络安全技术03.ppt

    RADIUS协议远程认证拨入用户服务提供了集中式的身份验证服务,而SSO(单点登录)允许用户只需一次登录即可访问多个相互关联的应用系统,Kerberos是实现SSO的一种流行方案,依赖于可信的第三方Key Distribution ...

    网络内控之统一身份管理.pptx

    4. **IDM技术方案**:IDM技术方案包括统一认证,实现单点登录(Single Sign-On, SSO),基于角色的访问控制(Role-Based Access Control, RBAC)以及应用间的信息同步和共享。通过这些技术,可以实现用户信息一致性...

    解密网格安全(GSI)

    GSI 基于公钥基础设施(PKI),并与现有的网络安全技术相结合,如 Kerberos 和 SSH,以支持单点登录,简化用户访问控制。 在GSI的安全策略中,重点在于跨域交互和操作的映射。对于单一信任域内的操作,可以使用...

    发布服务器搭建和使用手册.docx

    为了实现用户统一认证,可能需要安装单点登录(Single Sign-On, SSO)控件,如CAS或Kerberos。这涉及服务器和客户端的配置,确保用户只需一次登录即可访问所有授权应用。 5. 组策略配置 使用Windows的组策略...

    网络安全概述认证技术基础.ppt

    4. 单点登录(Single Sign-On, SSO):SSO允许用户只需一次登录即可访问多个相关系统,减少了记忆多套凭证的负担,同时降低了管理复杂性。常见的SSO实现方式有脚本、Kerberos和Sesame等。 综上所述,网络安全的认证...

    Security+知识点整理.pdf

    SAML(Security Assertion Markup Language)基于XML,用于跨安全域交换认证和授权信息,常用于实现单点登录(SSO)和权限管理基础设施(PMI)。 【证书与安全协议】 X.509是数字证书的标准,用于PKI(Public Key ...

Global site tag (gtag.js) - Google Analytics