在一个开放的分布式网络环境中,用户通过工作站访问服务器上提供的服务。服务器应该能够限制非授权用户的访问并能够认证对服务的请求。工作站不能够被网络服务所信任其能够正确地认定用户,即工作站存在三种威胁:一个工作站上一个用户可能冒充另一个用户操作;一个用户可能改变一个工作站的网络地址,从而冒充另一台工作站工作;一个用户可能窃听他人的信息交换,并用回放攻击获得对一个服务器的访问权或中断服务器的运行。
Kerberos是标准网络身份认证协议,采用传统加密算法(无公钥体制),旨在给计算机网络提供“身份认证”。它是基于信任第三方,如同一个经纪人集中地进行用户认证和发放电子身份标识。它提供了在开放型网络中进行身份认证的方法,认证实体可以是用户或用户服务。
在用户初始登录成功后,其密钥和身份标识信息会长期保存在内存中,当以后要申请新的票据(新的应用服务)时,系统会自动提取之,加密后传送出去,整个过程对于用户来说是透明的,在不再需要用户输入任何口令的情况下实现用户身份的自动传递。
①安全。
②可靠。
③透明。
④可伸缩。
在Kerberos协议中:用户(C)和认真服务器(AS)共享密钥KC,认证服务器(AS)和票据许可服务器(TGS)共享密钥Ktgs,票据许可服务器(TGS)和服务器(V)之间共享密钥KV,但是用户(C)和服务器(V)之间没有密钥共享,因此,用户想要访问服务器,就必须通过认证服务器(AS)和票据许可服务器(TGS)获得相应的密钥KC,V。
Kerberos协议的第一阶段:用户(C)和认证服务器(AS)的交互,用户(C)获取据许可服务器(TGS)的票据许可票据Tickettgs。
用户(C)向AS发送请求:DIC:用户(C)的标识;IDtgs:用户请求访问TGS;TS1:时间戳,让AS验证用户端时间的有效性,以防止重放攻击。
AS返回应答信息给用户(C):基于用户(C)和AS共享口令KC的加密,使得AS和用户端可以验证口令,并保护通信安全;Ekc:基于用户口令的加密,使得用户端可以验证口令,以保护认证服务器返回给客户端的信息,用户可用Kc解密;Kc,tgs:由AS产生,是用户与TGS之间进行信息交换的临时口令;IDtgs:确认这个票据是为TGS制作的;TS2:时间戳;LT2:告知用户该票据的有效性;Tickettgs:用户用来访问TGS的票据,由Ektgs加密,可以重用,从而用户不用重复被AS认证。Ektgs:使用AS和TGS才知道的密钥Ktgs来加密信息,防止信息被才该。Kctgs:用户C和TGS之间的会话密钥。IDC:指明票据Ticket的正确主人。
具体过程:用户(C)将自己的信息{IDC,IDtgs,TS1}发送到AS进行验证;AS验证用户的身份后返回给用户一个信息{Kc,tgs,IDtgs,TS2,LT2,Tickettgs},这个信息由Ekc进行加密,用户可以用自身和AS共享的密钥KC来解密。这个信息中包含了用户可以访问票据许可服务器(TGS)的票据Tickettgs以及用户和票据许可服务器(TGS)之间通信的密钥Kc,tgs。
用户(C)向票据许可服务器(TGS)发送请求:IDV:用户请求服务器;Tickettgs:向TGS证实该用户已经被AS认证;AUC:由用户的客户端生成,由Ekc,tgc加密,用于验证ticket。Ekc,tgc:使用用户(C)和TGS共享的密钥Kc,tgs来加密,以保护TGS返回给用户(C)的信息,可用Kc,tgs解密。
票据许可服务器(TGS)返回应答信息给用户(C):基于用户(C)和TGS共享口令Kc,tgs的加密,是的TGS和客户端可以验证口令,并保护通信安全;KC,V:由TGS产生,是用户和服务器(V)之间进行信息交换时的临时口令;IDV:确认该票据是为服务器而签发;TS4:时间戳;TicketV:由Ekv加密用户用来访问服务器的票据。Ekv:使用TGS服务器知道的会话密钥Kv加密信息以防止信息被篡改。
具体过程:用户(C)将访问TGS的票据和对服务器的请求以及自己的信息{IDV,Tickettgs,AUC}发送到TGS进行验证;TGS验证用户的身份以及请求后返回给用户一个信息{KC,V,TS4,TicketV},这个信息由进行加密,用户可以用自身和TGS共享的密钥Kc,tgs来解密。同时这个信息中包含了用户可以访问服务器(V)的票据TicketV以及用户和服务系(V)之间通信的密钥KC,V。
用户(C)向服务器(V)发送服务请求:TicketV:项服务其证实该票据已被AS和TGS认证;AUC:由用户的客户端生成,用于验证ticket。
服务器(V)返回应答信息给用户(C):基于用户(C)和服务器共享口令KC,V来加密,使用户确认这报文来自于服务器(V);TS5+1:时间戳,使用户确信这不是报文重放攻击。
具体过程:用户(C)将访问服务器(V)的票据和自身的信息{TicketV,AUC}发送给服务器进行验证;服务器验证用户的身份以及请求后,返回给用户一个信息{TS5+1},这个信息由Ekc,v进行加密,用户可以用自身和服务器之间共享的口令Kc,v来解密。同时用户可以开始访问服务器。
(4)Kerberos身份认证代理的好处
①身份委派。Windows服务可按照用户的意愿模仿客户端访问网络资源。Kerberos协议可以使一个服务为客户端完成本地计算机上的资源访问,同时可以使一个服务在连接到其他服务时去模仿客户端。
②更高效的身份认证。Kerberos身份认证协议,服务器不用去连接域控制器,相应的,服务器可以检验客户端提供的验证的票据。客户端可以为特定的服务获取一次验证票据并再一次登录过程中反复使用这个验证票据。
③相互身份验证。通过使用Kerberos协议,在网络连接的一段都可以以验证网络另一段的声明是它自己的实体。
各省软考办 | ||||||||||