Windows系统中如何完成Kerberos认证协议

合集下载

Kerberos协议

Kerberos协议

(0)名词解析1、Authentication:身份鉴别2、TGT:票据(ticket-granting ticket)3、SSO:Single Sign On 单点4、KDC:密钥分发中心5、PKI:Public Key Infrastructure 即"公钥基础设施"6、Kerberors: Network Authentication Protocol7、DES:数据加密标准8、TGS:门票分配服务器(1)Kerberors协议Kerberors协议:Kerberors协议主要用于计算机网络的身份鉴别(Authentication),其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务,即SSO(Single Sign On)。

由于在每个Client和Service之间建立了共享密钥,使得该协议具有相当的安全性。

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

过程Kerberors协议分为两个部分: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的身份鉴别。

一种单jvm进程中同时支持多个kerberos认证的方法与流程

一种单jvm进程中同时支持多个kerberos认证的方法与流程

一种单jvm进程中同时支持多个kerberos认证的方法与流程如何在单个JVM进程中同时支持多个Kerberos认证Kerberos是一种网络身份验证协议,可用于在计算机网络中进行强大的身份验证。

当涉及到在单个JVM进程中同时支持多个Kerberos认证时,有一些特定的步骤和流程需要遵循。

在本文中,我们将一步一步回答如何实现这个需求。

步骤1:理解Kerberos认证的基本原理在开始之前,我们需要对Kerberos认证的基本原理有一定的了解。

Kerberos使用对称密钥加密和票据传递来验证用户和服务之间的身份。

它依赖于KDC(Key Distribution Center)服务器来分发凭证和密钥。

Kerberos身份验证包括以下步骤:1. 用户发送用户名和密码到KDC。

2. KDC验证用户的身份并生成一个票据(Ticket)。

3. 用户使用票据向服务请求访问。

4. 服务使用服务密钥解密并验证票据。

5. 如果票据有效,则服务授予用户访问权限。

步骤2:准备环境和配置KDC在单个JVM进程中同时支持多个Kerberos认证之前,我们需要设置KDC 服务器和相关配置。

KDC是负责管理用户和服务的密钥分发的服务器。

1. 安装KDC服务器:选择一个合适的KDC服务器,例如MIT Kerberos 或Microsoft Active Directory。

2. 配置KDC:根据您的环境和需求,配置KDC服务器和相关认证参数,包括Realm(领域)、Principal(主体)和Keytabs(密钥文件)等。

步骤3:配置JVM以支持多个Kerberos认证现在,我们可以开始配置JVM以支持多个Kerberos认证。

1. 创建不同的JAAS(Java Authentication and Authorization Service)配置文件:JAAS是Java的身份验证和授权框架,用于配置各种身份验证模块和策略。

针对每个Kerberos认证,我们需要创建一个独立的JAAS 配置文件。

组策略的管理(Kerberos策略的配置)

组策略的管理(Kerberos策略的配置)

组策略的管理(Kerberos策略的配置)3. Kerberos策略的配置Kerberos策略用于域用户账户,用于确定与Kerberos相关的设置,例如票证的有效期限和强制执行。

但Kerberos策略只能应用于域中的计算机中。

要设置Kerberos策略,可在“默认域安全设置”窗口中,依次选择“Windows设置”→“安全设置”→“账户策略”→“Kerberos 策略”选项。

(1)服务票证最长寿命该策略用来设置确定使用所授予的会话票证可访问特定服务的最长时间(以分钟为单位)。

该设置必须大于10分钟并且小于或等于用户票证最长寿命设置。

如果客户端请求服务器连接时出示的会话票证已过期,服务器将返回错误消息。

客户端必须从Kerberos V5密钥分发中心(KDC)请求新的会话票证。

然而一旦连接通过了身份验证,该会话票证是否仍然有效就无关紧要了。

会话票证仅用于验证和服务器的新建连接。

如果用于验证连接的会话票证在连接时过期,则当前的操作不会中断。

打开“服务票证最长寿命属性”对话框,选中“定义这个策略设置”复选框(如图17-35所示),然后设置最长时间即可。

其他几个策略的操作方式与此相同。

该策略用来设置确定KerberosV5所允许的客户端时钟和提供Kerberos身份验证的Windows Server 2003域控制器上的时间的最大差值(以分钟为单位)。

为防止“轮番攻击”,KerberosV5在其协议定义中使用了时间戳。

为使时间戳正常工作,客户端和域控制器的时钟应尽可能地保持同步。

换言之,应该将这两台计算机设置成相同的时间和日期。

因为两台计算机的时钟常常不同步,所以管理员可使用该策略来设置KerberosV5所能接受的客户端时钟和域控制器时钟间的最大差值。

如果客户端时钟和域控制器时钟间的差值小于该策略中指定的最大时间差,那么在这两台计算机的会话中使用的任何时间戳都将被认为是可信的。

该设置并不是永久性的。

如果配置该设置后重新启动计算机,那么该设置将被还原为默认值。

Windows-NTLM,Kerboers认证---最新微软资料

Windows-NTLM,Kerboers认证---最新微软资料
具体来说,ST 是通过 KDC 的另一个服务 TGS(Ticket Granting Service)出售 的。客户端先向 TGS 发送一个 ST 购买请求,该请求主要包含如下的内容:客户 端用户名;通过 Logon Session Key 加密的 Authenticator;TGT 和访问的服务 器(其实是服务)名。
Windows 安全认证是如何进行的?[Kerberos 认证篇]
最近一段时间都在折腾安全(Security)方面的东西,比如 Windows 认证、非对 称加密、数字证书、数字签名、TLS/SSL、WS-Security 等。如果时间允许,我 很乐意写一系列的文章与广大网友分享、交流。对于很多读者来说,今天讨论的 可能是一个既熟悉、又陌生的话题——Windows 认证。 目录 一、Kerberos 认证简介 二、如何获得“认购权证”? 三、如何通过“认购权证”购买“入场券”? 四、凭票入场
为了解决客户端对服务器的验证,服务要需要将解密后的 Authenticator 再次用 Service Session Key 进行加密,并发挥给客户端。客户端再用缓存的 Service Session Key 进行解密,如果和之前的内容完全一样,则可以证明自己正在访问 的服务器和自己拥有相同的 Service Session Key,而这个会话秘钥不为外人知 晓(以上的内容对应流程图中的步骤 5、6)
四、凭票入场
客户端接收到 TGS 回复 后,通过缓存的 Logon Session Key 解密获取 Service Session Key。 同时它也得到了进入 服务器的入场券——ST。那么它在进行服务访问的时候就可以借助这张 ST 凭票 入场了。该 Serivce Session Key 和 ST 会被客户端缓存。

第十三讲.Kerberos认证协议与X.509

第十三讲.Kerberos认证协议与X.509
第十九页,共四十四页。
14. 公开公证或证书(zhèngshū)机构
• 可信的离线服务器 • server 有个公开的公钥 • server 对每个用户签名公钥证书
• 利用(lìyòng)公钥加密
第二十页,共四十四页。
15. 要素(yào sù)与基本原理
(a) 认证(rènzhèng)服务交换
第十页,共四十四页。
考虑以下下假假定定的(jiǎd对ìng)话的:对话:
(1) C AASS:: IIDDCC|||PPCC|||IIDDVV (2) AS C: Ticket
(3) C VV :: IIDDCC|||T| Ticikcektet
Ticket == EEKKVV[[IIDDCC|||AADDCC |||| IDV]
|| Lifetime2]
第十七页,共四十四页。
Kerberos V4报文交换总结(zǒngjié)(2)
• 票据(piào jù)许可服务交换:获得服务许可票据(piào jù)
– (3) C TGS : IDV || Tickettgs || Authenticatorc
– (4) TGS C : EKc,tgs[Kc,v || IDV || TS4 || Ticketv]
: password of user on C
: nneettwwoorrkkadaddrderssesosf Cof C : AASS与与VV共共有有(ɡ的ònɡ保yǒu密)的密保钥密密
10.上述(shàngshù)对话存在的问题
• 两个主要问题(wèntí)
– 希望用户输入口令的次数最少。
– 口令以明文传送会被窃听。
Kerberos V4报文交换总结(zǒngjié)(3)

Kerberos身份认证方案

Kerberos身份认证方案

Kerberos身份认证方案5.1 身份认证概述Kerberos是IETF发布的一种身份认证标准协议(目前最新版本为V5)。

它采用对称密钥方案,也可以说是后面出现的非对称密钥方案的基础。

Kerberos协议应用非常广泛,特别是在Windows系统中(包括在Windows系统的内部网络登录中,目前也主要采用的是Kerberos协议)。

所以总体来说,Kerberos认证协议主要是在系统层中得到广泛应用,不过像交换机、路由器这些设备目前也有较多应用。

但是目前的国内图书市场上还没有见到全面、系统地介绍这种得到广泛应用的身份认证协议工作原理,以及协议体系结构。

笔者在IETF和Microsoft英文官方网站上进行搜集和翻译,然后整理、扩展了该协议比较全面的第一手专业资料,非常感谢IETF和Microsoft公司为我们提供了如此全面、深入的第一手专业技术资料。

本章重点* Kerberos V5身份认证机制。

* Kerberos V5身份认证的优点与缺点。

* Kerberos SSP体系架构。

* Kerberos物理结构。

* Kerberos V5身份认证的3个子协议。

* AS、TGS、CS交换。

* Kerberos交换消息。

* Kerberos的本地登录、域用户的工作站登录、单域身份认证和用户到用户的身份认证原理。

* Kerberos V5身份认证的启用与策略配置。

5.1 身份认证概述在正式介绍Kerberos身份认证协议之前,先来了解一下什么是身份认证。

这个概念同样适用于本书后面介绍的其他身份认证技术。

身份认证是系统安全的一个基础方面,它用来确认尝试登录域或访问网络资源的任何用户的身份。

Windows服务器系统身份认证针对所有网络资源启用“单点登录”(Single Sign-on,SSO)。

采用单点登录后,用户可以使用一个密码或智能卡一次登录到域,然后向域中的任何计算机验证身份。

身份认证的重要功能就是它对单点登录的支持。

java kerberos 通用认证方法

java kerberos 通用认证方法

java kerberos 通用认证方法【原创实用版3篇】目录(篇1)一、引言二、Kerberos 认证概述1.Kerberos 的历史和发展2.Kerberos 认证的基本原理三、Java Kerberos 认证配置1.Java Kerberos 认证流程2.Java Kerberos 认证配置步骤3.Java Kerberos 认证示例四、Java Kerberos 认证的优缺点1.优点2.缺点五、总结正文(篇1)一、引言在计算机网络领域,安全性一直是一个备受关注的话题。

为了保证数据的安全,各种加密和认证技术应运而生。

Kerberos 认证就是其中一种广泛应用的认证技术,尤其在 Java 领域。

本文将为您介绍 Java Kerberos 认证的方法和相关知识。

二、Kerberos 认证概述1.Kerberos 的历史和发展Kerberos 认证源于麻省理工学院(MIT),最早出现在 1970 年代。

随着网络技术的发展,Kerberos 认证逐渐成为一种重要的网络安全认证手段。

2.Kerberos 认证的基本原理Kerberos认证采用客户端/服务器模型。

用户首先向认证服务器(AS)发起认证请求,认证服务器会向用户发送一个临时证书。

然后,用户将这个临时证书带到目标服务器,目标服务器验证证书的有效性,如果证书有效,则允许用户访问资源。

三、Java Kerberos 认证配置1.Java Kerberos 认证流程Java Kerberos 认证主要包括以下几个步骤:(1)启动 Kerberos 客户端,并使用用户名和密码进行认证。

(2)获取临时证书。

(3)携带临时证书访问目标服务器。

(4)目标服务器验证临时证书的有效性,并根据验证结果决定是否允许用户访问资源。

2.Java Kerberos 认证配置步骤(1)安装 Kerberos 客户端。

(2)配置 Kerberos 客户端,包括设置 kerberos.properties 文件和 krb5.conf 文件。

公钥Kerberos协议的认证服务过程的建模与验证

公钥Kerberos协议的认证服务过程的建模与验证
周 倜 李梦君1 李舟军 , , 。
Z O T L n- n , I h u u  ̄ H U P,I Meg u 1L o - n・ j Z j
(. 1国防科技大学计算机学院 , 湖南 长沙 407 ;. 1032北京航 空航天大学计算 机学院 , 京 108 ) 北 003
(.c ol f o u rSi c , ai a U vri o D fne eh o g ,h n sa4 07 ; 1 Sh o o C mp  ̄ c e eN t n l n e t f ees T c n l y C a gh 10 3 n o i sy o
而文献1415所给出的中间人攻击并不能使攻击者获得任何非法的权益并且它们只对对称的基本kerbems协议进行了检cervesato在分析公钥kerberos协议时发现了一个中间人攻击并用msr方法证明了pkinit27中描述的版本不存在该攻击口但攻击的发现过程并不是由验证工具自动完成的
C 31 5/ P N4-2 8 T

要: 公钥 Keb rs reo 协议是 目前广泛使 用的一类认证 协议 。本 文使 用安 全协议验证工具 S v P T对公钥 Kebrs r eo 协
议( K I 的认证服务过程进行 了形式化 的建模 与验证 。S VT 自动地检 测 出 P NI P T) P KI T存在一 个 中间人 攻 击, 该攻击 可
2 Sh o o o ue i c dE g er gB Un ie i f eoa t sadA toa t sB in 00 3 C ia .c ol f mp tr e ea n i ei , e ig vr t o rn ui srn ui ,e ig1 0 8 , hn ) C c S n n n n Un s y A c n c j
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Windows系统中如何完成Kerberos认证协议
2010-05-11 17:50 李洋 我要评论(0)
摘要:Kerberos认证协议定义了客户端和称为密钥分配中心KDC的认证服务之间的安全交互过程。

Kerberos是基于共享密钥的认证协议,用户和密钥分配中心KDC都知道用户的口令,并定义了一套客户端、KDC和服务器之间获取和使用Kerberos票据的交换协议。

标签:Kerberos认证协议
限时报名参加“甲骨文全球大会·2010·北京”及“JavaOne和甲骨文开发者大会2010”
【51CTO独家特稿】Kerberos认证协议定义了客户端和称为密钥分配中心KDC(Key Distribution Center)的认证服务之间的安全交互过程。

Windows 2000在每一个域控制器中应用KDC认证服务,其域同Kerberos中的realm功能类似,具体可参考RFC 1510协议。

Windows 2000中采用多种措施提供对Kerberos协议的支持:Kerberos客户端使用基于SSPI的Windows 2000安全提供者,初始Kerberos认证协议同WinLogon的单次登录进行了集成,而Kerberos KDC也同运行在域控制器中的安全服务进行了集成,并使用活动目录作为用户和组的账号数据库。

Kerberos是基于共享密钥的认证协议,用户和密钥分配中心KDC都知道用户的口令,或从口令中单向产生的密钥,并定义了一套客户端、KDC和服务器之间获取和使用Kerberos票据的交换协议。

当用户初始化Windows登录时,Kerberos SSP利用基于用户口令的加密散列获取一个初始Kerberos票据TGT,Windows 2000把TGT存储在与用户的登录上下文相关的工作站的票据缓存中。

当客户端想要使用网络服务时,Kerberos首先检查票据缓存中是否有该服务器的有效会话票据。

如果没有,则向KDC发送TGT来请求一个会话票据,以请求服务器提供服务。

请求的会话票据也会存储在票据缓存中,以用于后续对同一个服务器的连接,直到票据超期为止。

票据的有效期由域安全策略来规定,一般为8个小时。

如果在会话过程中票据超期,Kerberos SSP将返回一个响应的错误值,允许客户端和服务器刷新票据,产生一个新的会话密钥,并恢复连接。

在初始连接消息中,Kerberos认证协议把会话票据提交给远程服务,会话票据中的一部分使用了服务和KDC共享的密钥进行了加密。

因为服务器端的Kerberos有服务器密钥的缓存拷贝,所以,服务器不需要到KDC进行认证,而直接可以通过验证会话票据来认证客户端。

在服务器端,采用Kerberos认证系统的会话建立速度要比NTLM认证快得多,因为使用NTLM,服务器获取用户的信任书以后,还要与域控制器建立连接,来对用户进行重新认证。

Kerberos会话票据中包含有一个唯一的、由KDC创建的、用于客户端和服务器之间传输数据和认证信息加密的会话密钥。

在Kerberos模型中,KDC是作为产生会话密钥的可信第三方而存在的,这种形式更适合于分布式计算环境下的认证服务。

Kerberos作为基本的Windows 2000认证协议,与Windows 2000认证和存取控制安全框架进行了紧密整合。

初始的Windows域登录由WinLogon提供,它使用Kerberos安全提供者(security provider)来获取一个初始的Kerberos认证协议票据。

操作系统的其他组件,如转向器(Redirector)则使用安全提供者的SSPI接口来获取一个会话票据,以连接对远程文件存取的SMB服务器。

Kerberos V5协议在会话票据中定义了一个携带授权数据的加密域,该域的使用留给了应用开发,而Windows 2000则使用Kerberos票据中的授权数据来附带代表用户和组成员的Windows 安全ID。

在服务器端的Kerberos安全提供者则使用授权数据来建立代表用户的一个Windows安全存取控制令牌,可以模拟客户端来请求提供相应服务。

Windows 2000中应用了Kerberos协议的扩展,除共享密钥外,还支持基于公/私钥对的身份认证机制。

Kerberos公钥认证的扩展允许客户端在请求一个初始TGT时使用私钥,而KDC 则使用公钥来验证请求,该公钥是从存储在活动目录中用户对象的X.509证书中获取的。

用户的证书可以由权威的第三方,如VeriSign和Digital IDs等来发放,也可以由Windows 2000中的微软证书服务器来产生。

初始认证以后,就可以使用标准的Kerberos来获取会话票据,并连接到相应的网络服务。

通过对Kerberos认证协议进行公钥扩展,可以使用户采用多种方式来登录工作站和网络,如采用智能卡技术。

智能卡中一般存储有用户的私钥,可用于Kerberos的初始化认证处理。

目前,使用公钥技术来扩展Kerberos认证协议的计划和建议已经提交到IETF来进行标准化推广。

相关文档
最新文档