一种认证方法、装置和系统的制作方法

文档序号:7762804阅读:195来源:国知局
专利名称:一种认证方法、装置和系统的制作方法
技术领域
本发明涉及网络通信技术领域,尤其涉及一种认证方法、装置和系统。
背景技术
目前随着网络通信技术的发展,对用户身份的认证方式也越来越多;其中,针对于网络的认证方式,尤其是分布式网络环境下的用户身份认证和资源访问认证通常采用 Kerberos协议进行认证。常见的Kerberos认证系统有三个参与者客户端(Client)、目标服务器(Server) 和密匙分发中心(KDC,Key Distribution Center),其基本原理为用户(客户端)若要访问服务器上的服务,首先必须通过KDC进行身份验证(Authentication),并申请针对该服务的票证(Ticket Request);在获得KDC授予的服务票证之后,将该票证提交给服务器以申请服务(Service Request);最后,服务器验证票证的合法性,决定是否向其提供服务。然而,在上述认证过程中,部分报文非常容易被攻击者攻击并重放,以骗取相关用户和服务的凭证信息。而为了防止这种重放攻击,目前的机制是在Kerberos认证过程中, 在用户的请求报文中加入时间戳,并设置时间窗(例如5min),如果服务器收到用户报文的时间戳落在时间窗里,则认为合法报文,否则认为是攻击者重放的历史报文。但是,一方面, 为了保证时间戳生效,使用Kerberos认证的全网客户端和服务器就要保持时间同步,但在分布式网络环境中,时钟同步的实现并非易事,代价较大;另一方面,一旦时间系统被攻破, 则Kerberos防重放攻击的机制也会随之瓦解。

发明内容
本发明实施例提供一种认证方法、装置和系统,能够防止认证过程中的重放攻击, 并能减少通信消耗,提高认证效率。根据本发明实施例的一个方面,本发明实施例提供了一种认证方法,包括向密匙分发中心KDC发送包含第一随机数的认证服务请求;接收所述KDC判断所述认证服务请求合法后返回的认证服务响应消息,所述认证服务响应消息中包含有第二随机数和授权票证;向KDC发送包含第一序列号和所述第一随机数的票证授权服务请求,所述第一序列号根据所述第二随机数生成;接收所述KDC判断所述票证授权服务请求合法后返回的票证授权服务响应消息, 所述票证授权服务响应消息中包含有所述第二随机数和服务票证;向目标服务器发送包含所述第一随机数和所述服务票证的应用服务请求;接收所述目标服务器判断所述应用服务请求合法后返回的应用服务质询消息,所述应用服务质询消息中包含有第三随机数;向目标服务器发送包含第二序列号的应用服务响应消息,所述第二序列号根据所述第三随机数生成;
接收所述目标服务器判断应用服务响应消息合法后发送的认证成功的应用服务响应消息。根据本发明实施例的另一个方面,本发明实施例又提供了一种认证方法,包括接收客户端发送的包含第一随机数的认证服务请求;当判断所述认证服务请求合法时,向所述客户端返回认证服务响应消息,所述认证服务响应消息中包含有第二随机数和授权票证;接收所述客户端发送的包含有第一序列号和所述第一随机数的票证授权服务请求,所述第一序列号根据所述第二随机数生成;当判断所述票证授权服务请求合法时,向所述客户端返回包含有所述第二随机数和服务票证的票证授权服务响应消息;接收客户端发送的包含有第一随机数和服务票证的应用服务请求;当判断所述应用服务请求合法时,向所述客户端返回应用服务质询消息,所述应用服务质询消息中包含有第三随机数;接收所述客户端发送的包含第二序列号的应用服务响应消息,所述第二序列号根据所述第三随机数生成;当判断所述应用服务响应消息合法时,向所述客户端发送认证成功的应用服务响应消息。根据本发明实施例的另一个方面,本发明实施例又提供了一种客户端,包括第一处理单元,用于向KDC发送包含第一随机数的认证服务请求;接收所述KDC判断所述认证服务请求合法后返回的认证服务响应消息,所述认证服务响应消息中包含有第二随机数和授权票证;第二处理单元,用于向KDC发送包含第一序列号和所述第一随机数的票证授权服务请求,所述第一序列号根据所述第二随机数生成;接收所述KDC判断所述票证授权服务请求合法后返回的票证授权服务响应消息,所述票证授权服务响应消息中包含有所述第二随机数和服务票证;第三处理单元,用于向目标服务器发送包含所述第一随机数和所述服务票证的应用服务请求;接收所述目标服务器判断所述应用服务请求合法后返回的应用服务质询消息,所述应用服务质询消息中包含有第三随机数;第四处理单元,用于向目标服务器发送包含第二序列号的应用服务响应消息,所述第二序列号根据所述第三随机数生成;接收所述目标服务器判断应用服务响应消息合法后发送的认证成功的应用服务响应消息。根据本发明实施例的另一个方面,本发明实施例又提供了一种认证装置,包括认证服务模块AS、票证授权服务模块TGS、服务端认证服务模块SAS和服务提供模块;其中,认证服务模块AS,用于接收客户端发送的包含第一随机数的认证服务请求后,当判断所述认证服务请求合法时,向所述客户端返回认证服务响应消息,所述认证服务响应消息中包含有第二随机数和授权票证;票证授权服务模块TGS,用于接收所述客户端发送的包含有第一序列号和所述第一随机数的票证授权服务请求,所述第一序列号根据所述第二随机数生成;并当判断所述票证授权服务请求合法时,向所述客户端返回包含有所述第二随机数和服务票证的票证授权服务响应消息;服务端认证服务模块SAS,用于接收客户端发送的包含有第一随机数和服务票证的应用服务请求后,当判断所述应用服务请求合法时,向所述客户端返回应用服务质询消息,所述应用服务质询消息中包含有第三随机数;所述服务提供模块用于接收所述客户端发送的包含第二序列号的应用服务响应消息,所述第二序列号根据所述第三随机数生成;当判断所述应用服务响应消息合法时,向所述客户端发送认证成功的应用服务响应消息。根据本发明实施例的另一个方面,本发明实施例又提供了一种认证系统,包括如上所述的客户端和认证装置。可以看出,采用本发明实施例的方法、装置和系统,在认证过程中,采用随机生成的随机数在每次进行认证申请票证时充当序列号使用,通过在信息报文的交互过程中采用随机数与利用该随机数进行防伪映射后产生的序列号的对应关系来进行合法性验证,以此来消除现有的认证过程中对于时钟同步的要求,减少了认证步骤的通信消耗,提高了认证效率,同时利用充当序列号的随机数也可实现防止重放攻击的目的。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的一种认证方法流程示意图;图2是本发明实施例提供的另一种认证方法流程示意图;图3是本发明实施例提供的又一种认证方法流程示意图;图4是本发明实施例提供的一种认证装置结构示意框图;图5是本发明实施例提供的另一种认证装置结构示意框图;图6是本发明实施例提供的认证系统结构示意框图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在本发明实施例中,接收端的和发送端是指接收报文或发送报文的网络设备,在不同的信息交互过程中,同样的网络设备可能是在一过程中是接收端而在另一过程中是发送端,例如在Kerberos协议认证过程中,客户端即是发送端,也是接收端;具体本文不再赘述。为了便于本领域技术人员更好的理解,下面结合附图和具体实施例进行详细说明,以下皆以Kerberos协议认证过程为例进行说明。本发明实施例1提供了一种认证方法,如图1所示,该方法将从客户端侧对认证过
7程进行描述,该方法包括步骤101 向KDC发送包含第一随机数的认证服务请求,并接收所述KDC判断所述认证服务请求合法后返回的包含第二随机数和授权票证的认证服务响应消息;步骤102 通过对所述第二随机数进行防伪映射生成第一序列号后,向KDC发送包含所述第一序列号和第一随机数的票证授权服务请求;接收所述KDC判断所述认证服务请求合法后返回的包含第二随机数和服务票证的票证授权服务响应消息;其中,所述第一序列号可以通过以下方式生成,但不局限于此S1021、通过对接收到的所述认证服务响应消息进行解密获得所述第二随机数;S1022、对所述第二随机数进行防伪映射获得所述第一序列号。步骤103 向目标服务器发送包含第一随机数和所述服务票证的应用服务请求, 并接收所述目标服务器返回的包含第三随机数的应用服务质询消息;步骤104 通过对所述第三随机数进行防伪映射生成第二序列号后,向目标服务器发送包含该第二序列号的应用服务响应消息,并接收所述目标服务器发送的表示是否允许访问的应用服务响应消息;其中,所述第二序列号可以通过下述方式生成,但不局限于此S1041、通过对接收到的所述应用服务质询消息进行解密获得所述第三随机数;S1042、对所述第三随机数进行防伪映射获得所述第二序列号。从上述实施例的方案可以看出,在认证过程中,采用随机生成的随机数在每次进行认证申请票证时充当序列号使用,通过在信息报文的收发过程中采用随机数与利用该随机数进行防伪映射后产生的序列号的对应关系来进行合法性验证,以此来消除认证过程中对于时钟同步的要求,减少了认证步骤的通信消耗,提高了认证效率,同时利用充当序列号的随机数也可实现防止重放攻击的目的。本发明实施例2提供了一种认证方法,如图2所示,该方法将从网络侧对认证过程进行描述,该方法包括步骤201 接收客户端发送的包含第一随机数的认证服务请求;当判断所述认证服务请求合法时,向所述客户端返回认证服务响应消息,所述认证服务响应消息中包含有第二随机数和授权票证;其中,可通过以下方式判断所述认证服务请求是否合法,但并不局限于此S2011、根据所述认证服务请求查询用户会话信息数据库,判断是否存在与利用所述第一随机数认证相同的认证会话的四元组信息;S2012、当不存在与利用所述第一随机数认证相同的认证会话的四元组信息时,确定所述认证服务请求合法。步骤202 接收所述客户端发送的包含有第一序列号和所述第一随机数的票证授权服务请求,所述第一序列号根据所述第二随机数生成;当判断所述票证授权服务请求合法时,向所述客户端返回包含有所述第二随机数和服务票证的票证授权服务响应消息;其中,可通过下述方式判断当前所述票证授权服务请求是否合法,同样不限于此S2021、通过对所述票证授权服务请求进行解密得到所述第一序列号;S2022、当所述第一序列号与本地的第二随机数存在映射关系时,确定所述票证授权服务请求合法。步骤203 接收客户端发送的包含有第一随机数和服务票证的应用服务请求;当判断所述应用服务请求合法时,向所述客户端返回应用服务质询消息,所述应用服务质询消息中包含有第三随机数;其中,可通过但不限于以下方式判断所述应用服务请求是否合法S2031、对所述应用服务请求报文进行解密得到第一随机数;S2032、根据所述第一随机数查询用户会话信息数据库,所述用户会话信息数据库通常保存了认证会话四元组等信息;当所述用户会话信息数据库中不存在与利用所述第一随机数认证相同的认证会话四元组信息时,确定所述应用服务请求报文合法。其中,所述用户会话信息数据库设置于KDC侧,用于存放认证会话四元组等信息; 所述认证会话四元组表明此次会话的唯一性,例如可以是诸如Ic,s, rc, rs}等格式信息, 表明此次会话是客户端(Client)与目标服务器(Server)之间进行的,其中c为客户端 (Client)、s为目标服务器(krVer)、rc为客户端(Client)产生的随机数、rs为目标服务器(Server)产生的随机数,依此类推,本文在此不再赘述。步骤204 接收所述客户端发送的包含第二序列号的应用服务响应消息,所述第二序列号根据所述第三随机数生成;当判断所述应用服务响应消息合法时,向所述客户端发送认证成功的应用服务响应消息;值得注意的是,可通过但不限于下述方式判断所述应用服务响应消息是否合法S2041、通过对所述应用服务响应消息进行解密获得第二序列号;S2042、当所述第二序列号与本地的第三随机数存在映射关系时,确定所述应用服务响应消息合法。采用此种认证方法,在通过生成认证会话随机数序列号,并利用防伪映射的方法, 能够确保被窃取的报文不能被重放,消除可认证过程中对于时钟同步的要求,减少了认证步骤的通信消耗,提高了认证效率。下面以上述实施例的方法步骤在Kerberos认证过程中的具体实现为例,对上述实施例的方法进行详细说明。如图3所示,在Kerberos认证过程中防止重放攻击的方法可以包括以下步骤步骤301 当客户端请求认证时,所述客户端向KDC的认证服务模块(AS, Authentication Services)发送包含随机数rc的Kerberos认证服务请求报文(KRB_AS_ REQ),以请求访问服务资源的票证授权票证(TGT,Ticket-Granting Ticket);其中,该随机数rc可以由客户端(Client)预先产生,并在系统中与所述KDC和目标服务器共享。步骤302 所述KDC中的AS接收到所述客户端发送的Kerberos认证服务请求报文KRB_AS_REQ后,当判断所述认证服务请求报文KRB_AS_REQ合法后,向所述客户端返回认证服务响应消息(KRB_AS_REP),所述认证服务响应消息中包含有第二随机数和授权票证 TGT ;具体的,所述KDC可以通过下述方式判断当前请求报文是否为合法报文,但不局限于此1)查询用户会话信息数据库,判断是否存在与随机数rc相同的认证会话四元组;
其中,所述用户会话信息数据库设置于KDC侧,用于存放认证会话四元组等信息; 所述认证会话四元组表明此次会话的唯一性,例如可以是诸如Ic,S, rc, rs}等格式信息, 表明此次会话是客户端(Client)与目标服务器(Server)之间进行的,其中c为客户端 (Client)、s为目标服务器(krVer)、rc为客户端(Client)产生的随机数、rs为目标服务器(Server)产生的随机数,依此类推,本文在此不再赘述。2)当所述用户会话信息数据库中存在与随机数rc相同的认证会话四元组时,则认为所述认证服务请求报文KRB_AS_REQ不合法,为重放攻击报文;否则,认为所述认证服务请求报文合法;AS根据判断的结果进行后续处理,具体包括如果是重放攻击报文,则直接向客户端返回错误信息;如果是合法报文,则生成第二随机数rs,并以第二随机数rs构建 Kerberos认证服务回应报文(KRB_AS_REP),向客户端提供其所需的票证TGT。步骤303 向KDC发送包含第一序列号和所述第一随机数的票证授权服务请求 KRB_TGS_REQ,所述第一序列号根据所述第二随机数生成;具体的,当所述客户端根据接收到的所述KDC的AS模块返回的Kerberos认证服务回应报文KRB_AS_REP后,可以通过下述方式来生成第一序列号1)通过对所述KRB_AS_REP报文进行解密得到随机数rs ;2)对该随机数rs进行防伪映射,并保存起来作为第一序列号rs’ = f (rs)。其中4为防伪映射函数,其可以采用形如以下的函数1^+1,1^-1,2打8+1...等, 但不局限于此。所述客户端将产生的第一序列号rs’ = f (rs)与随机数rc作为报文的一个字段构建Kerberos授权票证服务请求报文(KRB_TGS_REQ),并发送给KDC的票证授予服务器 (TGS, Ticket-Granting Server),以申请服务票证(service ticket)。需要注意的是,如果用户申请多个服务,则此处的防伪映射会按照f的不同而进行不同变化,而无须重新发起步骤301和302中的报文;步骤304 所述KDC判断所述票证授权服务请求合法后,向所述客户端返回票证授权服务响应消息KRB_TGS_REP,所述票证授权服务响应消息中包含有所述第二随机数和服务票证;具体的,当所述KDC的TGS接收到客户端发送的KRB_TGS_REQ报文之后,可以通过下述方式判断当前Kerberos票证授予服务请求是否合法,但不局限于此1)通过对所述KRB_TGS_REQ报文进行解密得到序列号rs,和TGT ;2)判断所述序列号rs’与本地rs是否存在映射关系rs’ = f (rs),如果是则认为当前请求合法,否则认为不合法,是重放攻击报文。所述TGS根据判断的结果进行相应处理,具体包括如果是重放攻击报文,则KDC 直接向客户端返回错误信息;如果不是重放攻击,则从所述TGT中提取出用户的身份标识信息,并以第二随机数rs和服务票证(service ticket)构建Kerberos票证授权服务回应报文(KRB_TGS_REP)发送给所述客户端,以向客户端提供其访问服务资源的票证TGT。值得注意的是,由于TGS和AS皆为KDC内部的模块,其二者之间可以进行数据信息的实时共享,因而在步骤302中当AS随机产生随机数rs时,所述TGS即可获知该随机数, 所以在该步骤中当解密得到所述序列号rs’后,所述TGS即可判断与本地rs是否存在映射关系rs’ =f(rs),具体本文不再赘述。步骤305 所述客户端根据接收的所述票证授权服务响应消息中的服务票证 (service ticket),向目标服务器发送包含所述第一随机数和所述服务票证的应用服务请求;具体的,当所述客户端接收到所述票证授权服务响应消息,获得服务票证 (service ticket)后,利用该服务票证和第一随机数rc构建Kerberos应用服务请求报文 (KRB_AP_REQ),并将所述应用服务请求报文(KRB_AP_REQ)发送给目标服务器中的服务端认证服务模块(SAQ,请求访问所述服务资源;步骤306 所述目标服务器判断所述应用服务请求合法后,向所述客户端返回应用服务质询消息,所述应用服务质询消息中包含有第三随机数;具体的,当所述目标服务器中的服务端认证服务模块SAS接收到所述客户端发送的Kerberos应用服务请求报文KRB_AP_REQ后,可以通过下述方式判断当前Kerberos应用服务请求报文是否为合法报文,但不局限于此 1)通过对所述KRB_AP_REQ报文进行解密得到第一随机数rc ;2)查询用户会话信息数据库,判断是否存在与第一随机数rc相同认证会话四元组3)如果存在,则认为该KRB_AP_REQ报文为重放攻击报文;否则,认为该KRB_AP_ REQ报文为合法;然后SAS根据判断的结果进行后续处理,具体包括如果是重放攻击报文,则SAS 直接向客户端返回错误信息;如果不是重放攻击报文,则SAS生成第三随机数rv,并以第三随机数rv构建Kerberos应用服务质询报文(KRB_SAS_REQ发送给所述客户端,以向客户端发起应用服务质询。步骤307 所述客户端向目标服务器发送包含第二序列号的应用服务响应消息, 所述第二序列号根据所述第三随机数生成;具体的,当所述客户端接收到所述SAS模块的Kerberos应用服务质询后,通过下述方式来生成第二序列号A、通过对所述KRB_SAS_RES报文进行解密得到第三随机数rv ;B、对第三随机数rv进行防伪映射,并保存起来作为序列号rv’ = f (rv)。其中4为防伪映射函数,其可以采用形如以下的函数1^+1,1^-1,2打8+1...等, 但不局限于此;然后所述客户端将产生的序列号rv’= f (rv)作为报文的一个字段构建Kerberos 应用服务响应报文(KRB_AP_REP),并将所述应用服务响应报文(KRB_AP_REP)发送给目标服务器的服务提供模块(krvice),以回应所述SAS发起的质询;步骤308 当判断所述应用服务响应消息合法时,所述目标服务器向所述客户端发送认证成功的应用服务响应消息。具体的,当所述目标服务器的Service模块接收到所述客户端的Kerberos应用服务响应报文后,通过对所述应用服务响应报文进行解密得到第二序列号rv’,判断所述第二序列号rv’与本地rv是否存在映射关系rv’ = f (rv),如果存在映射关系,则认为该应用服务响应报文合法,否则认为该应用服务响应报文是重放攻击报文。进一步的,当目标服务器判断该应用服务响应报文是重放攻击报文时,则直接向客户端返回错误信息;当目标服务器判断该应用服务响应报文不是重放攻击报文时,则可允许客户端访问,为其提供服务资源,并通过Kerberos应用服务响应报文(KRB_AP_REP)通知所述客户端。除此之外,受Kerberos协议报文长度的制约,上述实施例的方法在具体实施时, 产生的各种随机数的长度通常为32bit,当然本发明实施例并不局限于此,在具体实施时也可根据实际情况进行调整,不再赘述。尤其需要注意的是,在本发明上述实施例的方法中,对于判断包含随机数的请求报文是否为重放攻击可以通过多种方式进行判断,只要是利用所述随机数进行判断即可, 而上述几种判断方式仅仅是其中优选的方式而已,并不局限于此;同时,对于各种序列号的生成也可采用多种方式实现,只要是利用随机数生成即可,上述的几种生成方式仅仅是其中的有选方式而已,具体的生成方式并不局限于此。可以看出,在Kerberos认证过程中,利用该随机数来替代现有标准Kerberos协议报文中的时间戳,即采用随机生成的随机数在每次进行认证申请票证时充当序列号使用, 在信息报文的交互过程中采用随机数与利用该随机数进行防伪映射后产生的序列号的对应关系来进行合法性验证,从而可使得该防止重放攻击的方法不受限于时间同步的要求, 因而可以更好的实现防止重放攻击。例如,当随机产生随机数rc时,利用rc替代KRB_AS_ REQ报文中的时间戳;再例如,当随机产生随机数rs时,利用rs替代KRB_AS_REP报文中的时间戳;其它随机数替代报文中的时间戳的方式与此类似,在此不再赘述;同时,也减少了认证过程中时间同步的通信消耗,提高了认证效率。本发明实施例4又提出了一种客户端,如图4所示,所述客户端包括第一处理单元401、第二处理单元402、第三处理单元403和第四处理单元404 ;其中,所述第一处理单元401,用于向KDC发送包含第一随机数的认证服务请求;接收所述KDC判断所述认证服务请求合法后返回的认证服务响应消息,所述认证服务响应消息中包含有第二随机数和授权票证;所述第二处理单元402,用于向KDC发送包含第一序列号和所述第一随机数的票证授权服务请求,所述第一序列号根据所述第二随机数生成;接收所述KDC判断所述票证授权服务请求合法后返回的票证授权服务响应消息,所述票证授权服务响应消息中包含有所述第二随机数和服务票证;所述第三处理单元403,用于向目标服务器发送包含所述第一随机数和所述服务票证的应用服务请求;接收所述目标服务器判断所述应用服务请求合法后返回的应用服务质询消息,所述应用服务质询消息中包含有第三随机数;所述第四处理单元404,用于向目标服务器发送包含第二序列号的应用服务响应消息,所述第二序列号根据所述第三随机数生成;接收所述目标服务器判断应用服务响应消息合法后发送的认证成功的应用服务响应消息。此外,所述第二处理单元可包括通过对接收到的所述认证服务响应消息进行解密获得所述第二随机数的第一解密模块,以及对所述第二随机数进行防伪映射获得所述第一序列号的第一生成模块。除此之外,所述第四处理单元可包括通过对接收到的所述应用服务质询消息进行解密获得所述第三随机数的第二解密模块,以及对所述第三随机数进行防伪映射获得所述第二序列号的第二生成模块。本发明实施例又提出了一种认证装置,如图5所示,该认证装置包括认证服务模块AS 531、票证授权服务模块TGS 532、服务端认证服务模块SAS 521和服务提供模块522 ; 其中,所述AS 532用于接收客户端发送的包含第一随机数的认证服务请求后,当判断所述认证服务请求合法时,向所述客户端返回认证服务响应消息,所述认证服务响应消息中包含有第二随机数和授权票证;所述TGS 532用于接收所述客户端发送的包含有第一序列号和所述第一随机数的票证授权服务请求,所述第一序列号根据所述第二随机数生成;并当判断所述票证授权服务请求合法时,向所述客户端返回包含有所述第二随机数和服务票证的票证授权服务响应消息;所述SAS 521用于接收客户端发送的包含有第一随机数和服务票证的应用服务请求后,当判断所述应用服务请求合法时,向所述客户端返回应用服务质询消息,所述应用服务质询消息中包含有第三随机数;所述服务提供模块522用于接收所述客户端发送的包含第二序列号的应用服务响应消息,所述第二序列号根据所述第三随机数生成;当判断所述应用服务响应消息合法时,向所述客户端发送认证成功的应用服务响应消息。具体的,所述AS可以包括第一查询模块,用于根据所述认证服务请求查询用户会话信息数据库;第一确定模块,用于所述用户会话信息数据库中当不存在与利用所述第一随机数认证相同的认证会话的四元组信息时,确定所述认证服务请求合法。此外,所述TGS可包括第一获取模块,用于通过对所述票证授权服务请求进行解密得到所述第一序列号;第一映射模块,用于当所述第一序列号与的第二随机数存在映射关系时,确定所述票证授权服务请求合法。优选的,所述SAS可包括第二获取模块,用于对所述应用服务请求报文进行解密得到第一随机数;第二查询模块,用于根据所述第一随机数查询用户会话信息数据库;第二确定模块,用于当所述用户会话信息数据库中不存在与利用所述第一随机数认证相同的认证会话四元组信息时,确定所述应用服务请求报文合法。值得注意的是,基于上述认证装置的各种结构,所述服务提供模块还可包括第三获取模块,用于通过对所述应用服务响应消息进行解密获得第二序列号;第二映射模块,用于当所述第二序列号与的第三随机数存在映射关系时,确定所述应用服务响应消息合法。本发明实施例6又提出一种Kerberos认证系统,如图6所示,该系统包括客户端 510、目标服务器520和KDC530 ;所述目标服务器520还包括服务端认证服务模块SAS521 ; 其中,所述客户端分别与目标服务器中的SAS521和服务提供模块522、以及KDC530中的认证服务模块AS531和票证授权服务模块TGS532相连;具体的,所述客户端510用于生成第一随机数,并向所述AS531发送包含第一随机数的认证服务请求;所述AS531用于判断所述认证服务请求是否合法,如果是,则生成第二随机数,并利用该第二随机数与授权票证构建认证服务响应报文发送给客户端510 ;所述客户端510用于利用所述第二随机数生成第一序列号,并向所述TGS532发送包含第一序列号和第一随机数的票证授权服务请求;所述TGS532用于判断所述票证授权服务请求是否合法,如果是,则向客户端510 返回包含第二随机数和服务票证的票证授权服务回复;所述客户端510用于向SAS521发送包含第一随机数和服务票证的应用服务请求;所述SAS521用于判断所述应用服务请求是否合法,如果是,则生成第三随机数并向所述客户端510发起应用服务质询;所述客户端510用于利用所述第三随机数生成第二序列号,并向服务提供模块 522发送包含该第二序列号的应用服务回复;所述服务提供模块522用于判断当前应用服务回复是否合法,如果是,则向所述客户端510发送允许访问服务的应用服务响应。具体的,所述AS531还可包括第一查询单元和第一判断单元;其中,所述第一查询单元用于查询用户会话信息数据库的认证会话四元组,并将查询结果通知给第一判断单元;所述第一判断单元用于接收所述第一查询单元的通知,并当所述数据库中存在与利用第一随机数相同的认证会话四元组时,确定当前请求为重放攻击,否则确定当前请求合法。此外,所述TGS还可包括第一解密单元和第一映射单元;其中,所述第一解密单元用于通过对所述票证授权服务请求报文进行解密得到第一序列号,并通知所述第一映射单元;所述第一映射单元用于接收所述通知,并当所述第一序列号与本地的第二随机数存在映射关系时,认定当前请求合法,否则认定为重放攻击。另外,所述SAS还可包括第二解密单元、第二查询单元和第二判断单元;其中,所述第二解密单元用于通过对应用服务请求报文进行解密得到随机数rc ;所述第二查询单元用于查询用户会话信息数据库的认证会话四元组,并将查询结果通知给第二判断单元; 所述第二判断单元用于接收所述第二查询单元的通知,并当所述数据库中存在与利用第一随机数相同的认证会话四元组时,确定当前请求为重放攻击,否则确定当前请求合法。除此之外,所述服务提供模块还可包括第三解密单元和第二映射单元;其中,所述第三解密单元用于通过对所述应用服务响应报文进行解密得到第二序列号,并通知给所述第二映射单元;所述第二映射单元用于接收所述通知,并当所述第二序列号与本地第三随机数存在映射关系时,认定当前回复合法,否则认定为重放攻击。基于上述,所述客户端还可包括第四解密单元和第三映射单元;其中,所述第四解密单元用于通过对认证服务响应报文解密得到第一随机数、通过对应用服务质询报文解密得到第三随机数,并将解密结果通知第三映射单元;所述第三映射单元用于接收通知结果,并对所述第一随机数或第三随机数进行防伪映射后保存起来分别作为第一序列号或第二序列号。值得注意的是,在本发明上述各实施例中,所述服务端认证服务模块(SAQ是相对于现有标准Kerberos协议认证系统新增加的模块,其主要是通过与客户端的信息交互, 并利用所述信息交互过程中的随机数使目标服务器可以验证客户端的身份,进而防止请求服务过程中的防重放攻击;同时,由于所述SAS模块和服务提供模块皆属于所述目标服务器的内部模块,其二者之间的数据信息处于实时共享状态,因而当SAS随机产生随机数rv 时,所述服务提供模块即可获知该随机数,所以在该步骤中当解密得到所述序列号rv’后,所述TGS即可判断与本地rv是否存在映射关系rv’ = f (rv),具体本文不再赘述。专业人员还可以进一步应能意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。 这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。 专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明实施例。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明实施例的精神或范围的情况下,在其它实施例中实现。因此,本发明实施例将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。以上所述仅为本发明实施例的较佳实施例而已,并不用以限制本发明实施例,凡在本发明实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
1权利要求
1.一种认证方法,其特征在于,包括向密匙分发中心KDC发送包含第一随机数的认证服务请求;接收所述KDC判断所述认证服务请求合法后返回的认证服务响应消息,所述认证服务响应消息中包含有第二随机数和授权票证;向KDC发送包含第一序列号和所述第一随机数的票证授权服务请求,所述第一序列号根据所述第二随机数生成;接收所述KDC判断所述票证授权服务请求合法后返回的票证授权服务响应消息,所述票证授权服务响应消息中包含有所述第二随机数和服务票证;向目标服务器发送包含所述第一随机数和所述服务票证的应用服务请求; 接收所述目标服务器判断所述应用服务请求合法后返回的应用服务质询消息,所述应用服务质询消息中包含有第三随机数;向目标服务器发送包含第二序列号的应用服务响应消息,所述第二序列号根据所述第三随机数生成;接收所述目标服务器判断应用服务响应消息合法后发送的认证成功的应用服务响应消息。
2.根据权利要求1所述的方法,其特征在于,所述第一序列号的生成方式包括 通过对接收到的所述认证服务响应消息进行解密获得所述第二随机数; 对所述第二随机数进行防伪映射获得所述第一序列号。
3.根据权利要求1所述的方法,其特征在于,所述第二序列号的生成方式包括 通过对接收到的所述应用服务质询消息进行解密获得所述第三随机数; 对所述第三随机数进行防伪映射获得所述第二序列号。
4.一种认证方法,其特征在于,包括接收客户端发送的包含第一随机数的认证服务请求;当判断所述认证服务请求合法时,向所述客户端返回认证服务响应消息,所述认证服务响应消息中包含有第二随机数和授权票证;接收所述客户端发送的包含有第一序列号和所述第一随机数的票证授权服务请求,所述第一序列号根据所述第二随机数生成;当判断所述票证授权服务请求合法时,向所述客户端返回包含有所述第二随机数和服务票证的票证授权服务响应消息;接收客户端发送的包含有第一随机数和服务票证的应用服务请求; 当判断所述应用服务请求合法时,向所述客户端返回应用服务质询消息,所述应用服务质询消息中包含有第三随机数;接收所述客户端发送的包含第二序列号的应用服务响应消息,所述第二序列号根据所述第三随机数生成;当判断所述应用服务响应消息合法时,向所述客户端发送认证成功的应用服务响应消肩、ο
5.根据权利要求4所述的认证方法,其特征在于,所述判断所述认证服务请求合法包括根据所述认证服务请求查询用户会话信息数据库,判断是否存在与利用所述第一随机数认证相同的认证会话的四元组信息;当不存在与利用所述第一随机数认证相同的认证会话的四元组信息时,确定所述认证服务请求合法。
6.根据权利要求4所述的认证方法,其特征在于,所述判断所述票证授权服务请求合法包括通过对所述票证授权服务请求进行解密得到所述第一序列号; 当所述第一序列号与本地的第二随机数存在映射关系时,确定所述票证授权服务请求合法。
7.根据权利要求4所述的方法,其特征在于,所述判断所述应用服务请求合法的方法包括对所述应用服务请求报文进行解密得到第一随机数;根据所述第一随机数查询用户会话信息数据库,当所述用户会话信息数据库中不存在与利用所述第一随机数认证相同的认证会话四元组信息时,确定所述应用服务请求报文合法。
8.根据权利要求4至7任意一项所述的方法,其特征在于,所述判断所述应用服务响应消息合法的方法包括通过对所述应用服务响应消息进行解密获得第二序列号;当所述第二序列号与本地的第三随机数存在映射关系时,确定所述应用服务响应消息合法。
9.一种客户端,其特征在于,包括第一处理单元,用于向KDC发送包含第一随机数的认证服务请求;接收所述KDC判断所述认证服务请求合法后返回的认证服务响应消息,所述认证服务响应消息中包含有第二随机数和授权票证;第二处理单元,用于向KDC发送包含第一序列号和所述第一随机数的票证授权服务请求,所述第一序列号根据所述第二随机数生成;接收所述KDC判断所述票证授权服务请求合法后返回的票证授权服务响应消息,所述票证授权服务响应消息中包含有所述第二随机数和服务票证;第三处理单元,用于向目标服务器发送包含所述第一随机数和所述服务票证的应用服务请求;接收所述目标服务器判断所述应用服务请求合法后返回的应用服务质询消息,所述应用服务质询消息中包含有第三随机数;第四处理单元,用于向目标服务器发送包含第二序列号的应用服务响应消息,所述第二序列号根据所述第三随机数生成;接收所述目标服务器判断应用服务响应消息合法后发送的认证成功的应用服务响应消息。
10.根据权利要求9所述的客户端,其特征在于,所述第二处理单元包括第一解密模块,用于通过对接收到的所述认证服务响应消息进行解密获得所述第二随机数;第一生成模块,用于对所述第二随机数进行防伪映射获得所述第一序列号。 所述第四处理单元包括第二解密模块,用于通过对接收到的所述应用服务质询消息进行解密获得所述第三随机数;第二生成模块,用于对所述第三随机数进行防伪映射获得所述第二序列号。
11.一种认证装置,其特征在于,包括认证服务模块AS,用于接收客户端发送的包含第一随机数的认证服务请求后,当判断所述认证服务请求合法时,向所述客户端返回认证服务响应消息,所述认证服务响应消息中包含有第二随机数和授权票证;票证授权服务模块TGS,用于接收所述客户端发送的包含有第一序列号和所述第一随机数的票证授权服务请求,所述第一序列号根据所述第二随机数生成;并当判断所述票证授权服务请求合法时,向所述客户端返回包含有所述第二随机数和服务票证的票证授权服务响应消息;服务端认证服务模块SAS,用于接收客户端发送的包含有第一随机数和服务票证的应用服务请求,当判断所述应用服务请求合法时,向所述客户端返回应用服务质询消息,所述应用服务质询消息中包含有第三随机数;所述服务提供模块,用于接收所述客户端发送的包含第二序列号的应用服务响应消息,所述第二序列号根据所述第三随机数生成;当判断所述应用服务响应消息合法时,向所述客户端发送认证成功的应用服务响应消息。
12.根据权利要求11所述的认证装置,其特征在于,所述AS包括第一查询模块,用于根据所述认证服务请求查询用户会话信息数据库;第一确定模块,用于所述用户会话信息数据库中当不存在与利用所述第一随机数认证相同的认证会话的四元组信息时,确定所述认证服务请求合法。
13.根据权利要求11所述的认证装置,其特征在于,所述TGS包括第一获取模块,用于通过对所述票证授权服务请求进行解密得到所述第一序列号;第一映射模块,用于当所述第一序列号与的第二随机数存在映射关系时,确定所述票证授权服务请求合法。
14.一种认证系统,其特征在于,包括如上述权利要求9至10任意一项所述的客户端, 以及如上述权利要求11至13任意一项所述的认证装置。
全文摘要
本发明实施例提供一种认证方法、装置和系统;该方法包括向KDC发送包含第一随机数的认证服务请求,接收KDC返回的包含第二随机数和授权票证的认证服务回复;利用第二随机数生成第一序列号,向KDC发送包含第一序列号和第一随机数的票证授权服务请求;接收KDC返回的包含第二随机数和服务票证的票证授权服务回复;向目标服务器发送包含第一随机数的应用服务请求,接收目标服务器返回的包含第三随机数的应用服务质询;利用第三随机数生成第二序列号,向目标服务器发送包含第二序列号的应用服务回复,接收目标服务器发送的允许访问的应用服务响应。采用本发明实施例的方法、装置和系统,能够防止重放攻击,并能减少通信消耗,提高认证效率。
文档编号H04L29/06GK102457482SQ20101051591
公开日2012年5月16日 申请日期2010年10月19日 优先权日2010年10月19日
发明者潘锦锋 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1