收藏 分销(赏)

kerberos认证系统的实现与配置.pptx

上传人:a199****6536 文档编号:4606947 上传时间:2024-10-05 格式:PPTX 页数:26 大小:1.48MB 下载积分:10 金币
下载 相关 举报
kerberos认证系统的实现与配置.pptx_第1页
第1页 / 共26页
kerberos认证系统的实现与配置.pptx_第2页
第2页 / 共26页


点击查看更多>>
资源描述
密码学课程设计答辩设计题目:Kerberos认证系统的实现与配置指导老师:答辩人 :目录C O N T E N T S绪论绪论KerberosKerberos的原理的原理KerberosKerberos认证的实现认证的实现KerberosKerberos认证的配置认证的配置01010202030304040505总结总结绪论01Kerberos简介设计的主要目的主要术语We have many PowerPoint templates that has been specifically designed to help anyone that is stepping into the world of PowerPoint for the very first time.We have many PowerPoint templates that has been specifically designed to help anyone that is stepping into the world of PowerPoint for the very first time.WHAT MAKES USDIFFERENTDIFFERENT?85%85%Kerberos简介KerberosKerberos是一种网络认证协议,基于对称密码实现,密码设计基于是一种网络认证协议,基于对称密码实现,密码设计基于KDCKDC概念和概念和Needham-SchroederNeedham-Schroeder协议的分布式认证服务系统,它可以在不安全的协议的分布式认证服务系统,它可以在不安全的网络环境中为用户对远程服务器的访问提供自动的鉴别,数据安全性和完整网络环境中为用户对远程服务器的访问提供自动的鉴别,数据安全性和完整性服务,以及密钥管理服务。性服务,以及密钥管理服务。KerberosKerberos协议主要用于计算机网络的身份鉴别协议主要用于计算机网络的身份鉴别(Authentication),(Authentication),其其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据访问票据访问多多个个服务。服务。由于在每个由于在每个ClientClient和和ServiceService之间建立了共享密钥,使得该协议具之间建立了共享密钥,使得该协议具有相当的安全性有相当的安全性。KerberosKerberos系统应用广泛,比如:构造系统应用广泛,比如:构造WindowsWindows网络中的身网络中的身份认证、服务器与服务器之间的认证、网络计算、计算机连成网单点登录访份认证、服务器与服务器之间的认证、网络计算、计算机连成网单点登录访问整个网络资源、访问其他服务器不需要再次验证。问整个网络资源、访问其他服务器不需要再次验证。KerberosKerberos这一名词来源于希腊神话这一名词来源于希腊神话“三个头的狗三个头的狗地狱之门守护者地狱之门守护者”与与KerberosKerberos系统的认证服务器、用户、系统的认证服务器、用户、s s服务器一一对应。服务器一一对应。Kerberos认证设计的主要作用概括起来说概括起来说KerberosKerberos协议主要做了两件协议主要做了两件事事1 1 TicketTicket的安全传递的安全传递。2 2 Session KeySession Key的安全发布的安全发布。再加上时间戳的使用就很大程度上的保证了用户鉴别的安全性。并且利用再加上时间戳的使用就很大程度上的保证了用户鉴别的安全性。并且利用Session Session KeyKey,在通过鉴别之后,在通过鉴别之后ClientClient和和ServiceService之间传递的消息也可以之间传递的消息也可以获得机密性获得机密性,完整完整性的性的保证。不过由于没有使用非对称密钥自然也就无法具有抗否认性,这也限制保证。不过由于没有使用非对称密钥自然也就无法具有抗否认性,这也限制了它的应用。了它的应用。Kerberos的主要术语1 1.许可证(许可证(TicketTicket):用于向服务器认证用户身份的凭证,由以下成分组成:):用于向服务器认证用户身份的凭证,由以下成分组成:(用户登录名,会话密钥,时间戳),并使用服务器的密钥加密。(用户登录名,会话密钥,时间戳),并使用服务器的密钥加密。2.2.会话密钥(会话密钥(Session Key)Session Key):用于两个通信实体之间通信的临时加密密钥,只:用于两个通信实体之间通信的临时加密密钥,只在当前会话期间有效。在当前会话期间有效。3.3.密钥分配中心(密钥分配中心(KDCKDC):用于提供许可证和临时会话密钥,):用于提供许可证和临时会话密钥,KDCKDC服务有两部分服务有两部分组成,用户初始认证服务器组成,用户初始认证服务器ASAS和许可认证服务器和许可认证服务器TGSTGS,它们同驻于一台主机上。,它们同驻于一台主机上。4.4.确认者确认者(Authenticator)(Authenticator):主要包含一个时间戳,用会话密钥加密。:主要包含一个时间戳,用会话密钥加密。5.5.认证服务器认证服务器(Authentiction Server)(Authentiction Server):主要验证用户是否存在数据库中,并主要验证用户是否存在数据库中,并向用户返送访问向用户返送访问TGSTGS的票据等。的票据等。6.6.票据授权票据授权服务中心(服务中心(Ticket Granting ServerTicket Granting Server):在认证中,用户首先向认):在认证中,用户首先向认证服务器申请初始票据,然后票据授权服务获得会话密码。证服务器申请初始票据,然后票据授权服务获得会话密码。Kerberos的原理02Kerberos原理流程AS(认证服务器)交换TGS(票据授权服务器)交换AP(客户/服务器)交换kerberos原理流程当当用户登录系统并表明访问某个系统的资源时,系统并不传送用户用户登录系统并表明访问某个系统的资源时,系统并不传送用户口令口令,而是先去而是先去ASAS认认证服务器进行认证。认证成功,证服务器进行认证。认证成功,ASAS分配一个访问分配一个访问Ticket Granting serverTicket Granting server的票据,凭的票据,凭借此借此TicketTicket向向Ticket Granting ServerTicket Granting Server申请访问申请访问ServerServer准入凭证。过程包括三个交换,准入凭证。过程包括三个交换,分别为认证服务器交换(分别为认证服务器交换(ASAS交换),票据授权服务器交换(交换),票据授权服务器交换(TGSTGS交换),客户交换),客户/服务器服务器交换(交换(APAP交换)。交换)。如下如下以图形的方式将以图形的方式将KerberosKerberos交换进行简单描述:交换进行简单描述:ASTGSSClient435621“We have many PowerPoint templates that has been specifically designed to help anyone that is stepping into the world of PowerPoint for the very first time.“We have many PowerPoint templates that has been specifically designed to help anyone that is stepping into the world of PowerPoint for the very first time.“We have many PowerPoint templates that has been specifically designed to help anyone that is stepping into the world of PowerPoint for the very first time.“AS(认证服务器)交换1.1.客户机向客户机向ASAS发送一个明文信息,代表用户请求服务。此时,既不需要向发送一个明文信息,代表用户请求服务。此时,既不需要向ASAS发送发送密密 钥钥,也不需要发送密码。,也不需要发送密码。2.AS2.AS校验这个客户是否在它的数据库里。如果在,校验这个客户是否在它的数据库里。如果在,ASAS返回以下两条信息给客户:返回以下两条信息给客户:a a.客户客户/TGS/TGS会话密钥。会话密钥。b.b.用用TGSTGS密钥加密的票据授权票据密钥加密的票据授权票据TGTTGT(包括客户(包括客户IDID,客户网络地址,票据有效,客户网络地址,票据有效期期(固定值)(固定值),TGSTGS的名字的名字IDID,TGS/TGS/客户的客户的会话密钥会话密钥)。认证服务器将认证服务器将a,ba,b消息都用用户的密钥加密发送给客户。消息都用用户的密钥加密发送给客户。3.3.一旦客户收到消息一旦客户收到消息a a和和b b,他解密消息,他解密消息a a得到客户得到客户/TGS/TGS会话密钥。会话密钥用在将来会话密钥。会话密钥用在将来与与TGSTGS的通信上,这样的话,客户有了足够的消息向的通信上,这样的话,客户有了足够的消息向TGSTGS证明自己的身份。证明自己的身份。OPTION 04TGS(票据授权服务器)交换1.当申请服务时,客户向当申请服务时,客户向TGSTGS发送以下两条消息:发送以下两条消息:c.c.由从消息由从消息b b(TGTTGT)中获取的票据授权票据和申请的服务的中获取的票据授权票据和申请的服务的IDID组成。组成。d.d.用客户用客户/TGS/TGS会话密钥加密的认证(由客户会话密钥加密的认证(由客户IDID、ADAD和和时间戳组成)。时间戳组成)。2.2.基于收到的消息基于收到的消息c c和和d d,TGSTGS从消息从消息c c中重新获得消息中重新获得消息b b。它用。它用TGSTGS的密钥解密消息的密钥解密消息b b。这一步使它得到。这一步使它得到“客户客户/TGS/TGS会话密钥会话密钥”。通过使用这个密钥,。通过使用这个密钥,TGSTGS解密消息解密消息d d(认(认证),而后返回给客户以下两条信息:证),而后返回给客户以下两条信息:e.e.用服务器密钥加密的客户用服务器密钥加密的客户服务器票据(包括客户服务器票据(包括客户IDID,客户网络地址,客户网络地址,客户客户/服务器会话密钥的服务器会话密钥的有效期)有效期)。f f.客户客户/服务器会话密钥服务器会话密钥。TGSTGS用客户用客户/TGS/TGS会话密钥会话密钥加密加密以上两条消息发送给用户。以上两条消息发送给用户。AP(客户/服务器)交换1.基于从基于从TGSTGS收到的消息收到的消息e e和和f f,客户有足够的信息向,客户有足够的信息向serviceservice认证自己。客户联系认证自己。客户联系serviceservice,并向它发出以下两条消息:,并向它发出以下两条消息:e.e.由先前的步骤得到(客户由先前的步骤得到(客户服务器票据,用服务器的密钥加密)。服务器票据,用服务器的密钥加密)。g.g.用客户用客户/会话密钥加密的一个新的会话密钥加密的一个新的认证认证,包括包括客户客户IDID、ADAD,时间戳。时间戳。2.service2.service用自己的密钥解密票据重新得到客户用自己的密钥解密票据重新得到客户/服务器会话密钥。用这个会话密钥,服务器会话密钥。用这个会话密钥,serviceservice解密得到认证,并返回以下消息给客户,确认他的身份,并解密得到认证,并返回以下消息给客户,确认他的身份,并同意同意向客户提供服务:向客户提供服务:h.h.在客户认证中找到时间戳,加在客户认证中找到时间戳,加1 1,用客户,用客户/服务器会话密钥加密。服务器会话密钥加密。3.3.客户使用客户客户使用客户/服务器会话密钥解密确认函,并检查时间戳是否被正确的更新。如服务器会话密钥解密确认函,并检查时间戳是否被正确的更新。如果是,客户可以信赖服务器,并可以向服务器发送服务请求。果是,客户可以信赖服务器,并可以向服务器发送服务请求。4.4.服务器向客户提供其所请求的服务。服务器向客户提供其所请求的服务。kerberos原理流程Kerberos认证的实现03KerberosKerberos实现的简述实现的简述利用利用JAVAJAVA实现实现加解密加解密的举例的举例认证成功截图认证成功截图在在KerberosKerberos实现的过程中,其中包含实现的过程中,其中包含DESDES、AESAES、RSARSA加解密算法,加解密算法,这三种算法作用这三种算法作用在用户和认证服务器、票据授权服务器、应用服务器进行信息交换时,用指定的的密在用户和认证服务器、票据授权服务器、应用服务器进行信息交换时,用指定的的密码算法产生公钥码算法产生公钥或或私钥,或者将程序中的对象进行加解密变换,为了使信息在发送过私钥,或者将程序中的对象进行加解密变换,为了使信息在发送过程中安全可靠,防止在信息交互过程中遭到攻击或者窃取信息,造成信息泄露。程中安全可靠,防止在信息交互过程中遭到攻击或者窃取信息,造成信息泄露。因为因为所用到的加密算法种类多、而且繁杂,所以我们运用所用到的加密算法种类多、而且繁杂,所以我们运用JavaJava语言对语言对KerberosKerberos认证进行实认证进行实现。现。JavaJava语言本身包含的类特别多,类中有包含很多灵活多变的方法,可以进行调用。语言本身包含的类特别多,类中有包含很多灵活多变的方法,可以进行调用。在在JavaJava中我们又可以自定义类,在类中定义变量、常量、函数等。在调用这个类的对中我们又可以自定义类,在类中定义变量、常量、函数等。在调用这个类的对象时就可以调用类中的每个元素及函数,自定义的类就像一个结构体,对于每个对象象时就可以调用类中的每个元素及函数,自定义的类就像一个结构体,对于每个对象又包含很多信息,又包含很多信息,对产生密钥、对产生密钥、信息共享、加密、解密带来了很大的方便。信息共享、加密、解密带来了很大的方便。Kerberos认证实现的简述KerberosKerberos利用利用JAVAJAVA实现过程中用到类的举例。实现过程中用到类的举例。例如:例如:1)kpg=KeyPairGenerator.getInstance(RSA);1)kpg=KeyPairGenerator.getInstance(RSA);以上代码是用以上代码是用KeyPairGenerator KeyPairGenerator 类用于生成公钥和私钥对。密钥类用于生成公钥和私钥对。密钥对生成器是使用对生成器是使用 getInstance getInstance 工厂方法(返回一个给定类的实例工厂方法(返回一个给定类的实例的静态方法)构造的。也就是调用的静态方法)构造的。也就是调用getInstancegetInstance返回产生指定加密返回产生指定加密算法算法(RSARSA)的密钥对。的密钥对。2)cipher=Cipher.getInstance(RSA);2)cipher=Cipher.getInstance(RSA);以上代码是用应用以上代码是用应用CipherCipher类,此类为加密和解密提供密码功能。类,此类为加密和解密提供密码功能。调用此类的调用此类的getInstancegetInstance方法返回指定方法返回指定RSARSA加密算法转换的对象。加密算法转换的对象。KerberosKerberos利用利用JAVAJAVA实现过程中用到类的举例。实现过程中用到类的举例。3)3)byte byte nbyte=cip.doFinal(bytP nbyte=cip.doFinal(bytP)以上代码是用应用以上代码是用应用CipherCipher类类的对象的对象cip,cip,调用方法调用方法doFinaldoFinal,此,此方法方法为为按单部分操按单部分操作加密或解密数据,或者结束一个多部分操作。数据将被加密或作加密或解密数据,或者结束一个多部分操作。数据将被加密或解密后赋给解密后赋给字节数组。字节数组。4)4)SecretKeyFactory skf=SecretKeyFactory.getInstance(DES);SecretKeyFactory skf=SecretKeyFactory.getInstance(DES);以上代码用到以上代码用到javajava类中的类中的SecretKeyFactory SecretKeyFactory 类,此类表示秘密秘钥工厂,此类类,此类表示秘密秘钥工厂,此类包含的方法包含的方法getInstance(“DES”)getInstance(“DES”)表示用表示用DESDES加密方法转化成秘密秘加密方法转化成秘密秘钥。钥。认证成功简述及截图以上是认证实现成功后客户端显示内容,因为在认证过程中有三次交换即AS交换、TGS交换、AP交换。在交换过程中每次交换内容都会有些改变。Kerberos认证的配置04Kerberos认证的配置过程简介Kerberos认证的配置过程简介Kerberos认证系统多用于服务端,服务器端操作系统多为Linux或Unix,本文以Linux操作系统为例,在CentOs6.4环境下配置Kerberos。下面简单展示配置过程:(1)以管理员身份登录进入CentOs操作系统,启动网卡eth0,用yum命令下载安装krb5-libs krb5-server krb5-workstation。2)配置/etc/krb5.conf 文件 (3)配置/var/Kerberos/krb5kdc/kdc.conf文件 此处EXAMPLE.COM同文件/etc/krb5.conf (4)将根目录切换为rootlocalhost krb5kdc#创建Kerberos数据库并输入密码(5)将Kerberos密钥管理中心,Kerberos服务器和Kerberos用户端设置为开机启动,并关闭防火墙。(6)用kadmin.local命令为Kerberos系统创建管理员admin并赋予密码,存储于krb5kdc文件夹下。(此处密码为password=123456)(7)用kinit admin/adminEXAMPLE.COM命令使管理员登录Kerberos系统,并用klist命令查看管理员进入与退出系统的时间戳及本人的服务地址。(8)在根目录下,用kadmin.local命令创建新用户,addprinc Demo 添加Demo用户及密码与数据库中。用listprincs命令查看包括管理员在内的所有创建用户。(9)若要退出Kerberos系统,只需在控制台键入exit既可回到CentOs系统字符界面总结05Kerberos的局限性Kerberos的优点Kerberos的局限性尽管尽管KerberosKerberos提供了比较强的用户认证方式,但它本身受到环境的制约,还存在一定的局限,提供了比较强的用户认证方式,但它本身受到环境的制约,还存在一定的局限,不能安全解决用户认证过程中所受到的安全威胁,包括以下方面:不能安全解决用户认证过程中所受到的安全威胁,包括以下方面:第一,第一,KerberosKerberos防止防止“口令猜测攻击口令猜测攻击”的能力很弱,攻击者可以收集大量的许可证,的能力很弱,攻击者可以收集大量的许可证,通过计算和密钥分析进行口令猜测。当用户选择的口令不够强时,更不能有效的防止口令猜通过计算和密钥分析进行口令猜测。当用户选择的口令不够强时,更不能有效的防止口令猜测攻击。测攻击。第二,时间同步问题。认证的正确性是基于网络中所有的时钟保持同步,如果主机的第二,时间同步问题。认证的正确性是基于网络中所有的时钟保持同步,如果主机的事件发生错误,原先的认证码就是可以被替换的,大多数网络的时间协议都是不安全的,而事件发生错误,原先的认证码就是可以被替换的,大多数网络的时间协议都是不安全的,而在分布式系统中这将导致极为严重的问题。在分布式系统中这将导致极为严重的问题。第三,原有的认证很可能被存储或被替换,虽然时间戳是专门用于防止重放攻击的,第三,原有的认证很可能被存储或被替换,虽然时间戳是专门用于防止重放攻击的,但在许可的有效时间内仍然可能奏效,假设在一个但在许可的有效时间内仍然可能奏效,假设在一个KerberosKerberos服务域内的全部时钟保持同步,服务域内的全部时钟保持同步,收到消息的时间在规定的范围内,就认为该消息是新的。而事实上,攻击者可以事先把伪造收到消息的时间在规定的范围内,就认为该消息是新的。而事实上,攻击者可以事先把伪造的消息准备好,一旦得到许可证就马上发出,这在的消息准备好,一旦得到许可证就马上发出,这在5 5分钟之内是难以检验出来的。分钟之内是难以检验出来的。第四,随着用户的增加,密钥管理较复杂。第四,随着用户的增加,密钥管理较复杂。KerberosKerberos拥有每个用户的口令字的散列值,拥有每个用户的口令字的散列值,ASAS与与TGSTGS负责用户通信密钥的分配。当负责用户通信密钥的分配。当N N个用户想要同时通信时,仍需要个用户想要同时通信时,仍需要N(N-1)/2N(N-1)/2个密钥。个密钥。Kerberos的优点1.1.安全性高:安全性高:KerberosKerberos系统对用户的口令进行加密后作为用户私钥,从而避免系统对用户的口令进行加密后作为用户私钥,从而避免了用户口令在网络上显示传输,使得窃听者难以在网络上取得相应的口令信息。了用户口令在网络上显示传输,使得窃听者难以在网络上取得相应的口令信息。2.2.透明性高:用户在使用过程中,仅在登陆时要求输入口令,与平常的操作完透明性高:用户在使用过程中,仅在登陆时要求输入口令,与平常的操作完全一样。全一样。KerberosKerberos的存在对于合法用户来说更加透明。的存在对于合法用户来说更加透明。3.3.可扩展性好:可扩展性好:KerberosKerberos为每个服务提供认证,确保应用安全。为每个服务提供认证,确保应用安全。谢谢大家
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服