发明内容
本发明实施例提供一种认证方法、装置和系统,能够防止认证过程中的重放攻击,并能减少通信消耗,提高认证效率。
根据本发明实施例的一个方面,本发明实施例提供了一种认证方法,包括:向密匙分发中心KDC发送包含第一随机数的认证服务请求;
接收所述KDC判断所述认证服务请求合法后返回的认证服务响应消息,所述认证服务响应消息中包含有第二随机数和授权票证;
向KDC发送包含第一序列号和所述第一随机数的票证授权服务请求,所述第一序列号根据所述第二随机数生成;
接收所述KDC判断所述票证授权服务请求合法后返回的票证授权服务响应消息,所述票证授权服务响应消息中包含有所述第二随机数和服务票证;
向目标服务器发送包含所述第一随机数和所述服务票证的应用服务请求;
接收所述目标服务器判断所述应用服务请求合法后返回的应用服务质询消息,所述应用服务质询消息中包含有第三随机数;
向目标服务器发送包含第二序列号的应用服务响应消息,所述第二序列号根据所述第三随机数生成;
接收所述目标服务器判断应用服务响应消息合法后发送的认证成功的应用服务响应消息。
根据本发明实施例的另一个方面,本发明实施例又提供了一种认证方法,包括:接收客户端发送的包含第一随机数的认证服务请求;
当判断所述认证服务请求合法时,向所述客户端返回认证服务响应消息,所述认证服务响应消息中包含有第二随机数和授权票证;
接收所述客户端发送的包含有第一序列号和所述第一随机数的票证授权服务请求,所述第一序列号根据所述第二随机数生成;
当判断所述票证授权服务请求合法时,向所述客户端返回包含有所述第二随机数和服务票证的票证授权服务响应消息;
接收客户端发送的包含有第一随机数和服务票证的应用服务请求;
当判断所述应用服务请求合法时,向所述客户端返回应用服务质询消息,所述应用服务质询消息中包含有第三随机数;
接收所述客户端发送的包含第二序列号的应用服务响应消息,所述第二序列号根据所述第三随机数生成;
当判断所述应用服务响应消息合法时,向所述客户端发送认证成功的应用服务响应消息。
根据本发明实施例的另一个方面,本发明实施例又提供了一种客户端,包括:
第一处理单元,用于向KDC发送包含第一随机数的认证服务请求;接收所述KDC判断所述认证服务请求合法后返回的认证服务响应消息,所述认证服务响应消息中包含有第二随机数和授权票证;
第二处理单元,用于向KDC发送包含第一序列号和所述第一随机数的票证授权服务请求,所述第一序列号根据所述第二随机数生成;接收所述KDC判断所述票证授权服务请求合法后返回的票证授权服务响应消息,所述票证授权服务响应消息中包含有所述第二随机数和服务票证;
第三处理单元,用于向目标服务器发送包含所述第一随机数和所述服务票证的应用服务请求;接收所述目标服务器判断所述应用服务请求合法后返回的应用服务质询消息,所述应用服务质询消息中包含有第三随机数;
第四处理单元,用于向目标服务器发送包含第二序列号的应用服务响应消息,所述第二序列号根据所述第三随机数生成;接收所述目标服务器判断应用服务响应消息合法后发送的认证成功的应用服务响应消息。
根据本发明实施例的另一个方面,本发明实施例又提供了一种认证装置,包括:认证服务模块AS、票证授权服务模块TGS、服务端认证服务模块SAS和服务提供模块;其中,
认证服务模块AS,用于接收客户端发送的包含第一随机数的认证服务请求后,当判断所述认证服务请求合法时,向所述客户端返回认证服务响应消息,所述认证服务响应消息中包含有第二随机数和授权票证;
票证授权服务模块TGS,用于接收所述客户端发送的包含有第一序列号和所述第一随机数的票证授权服务请求,所述第一序列号根据所述第二随机数生成;并当判断所述票证授权服务请求合法时,向所述客户端返回包含有所述第二随机数和服务票证的票证授权服务响应消息;
服务端认证服务模块SAS,用于接收客户端发送的包含有第一随机数和服务票证的应用服务请求后,当判断所述应用服务请求合法时,向所述客户端返回应用服务质询消息,所述应用服务质询消息中包含有第三随机数;
所述服务提供模块用于接收所述客户端发送的包含第二序列号的应用服务响应消息,所述第二序列号根据所述第三随机数生成;当判断所述应用服务响应消息合法时,向所述客户端发送认证成功的应用服务响应消息。
根据本发明实施例的另一个方面,本发明实施例又提供了一种认证系统,包括如上所述的客户端和认证装置。
可以看出,采用本发明实施例的方法、装置和系统,在认证过程中,采用随机生成的随机数在每次进行认证申请票证时充当序列号使用,通过在信息报文的交互过程中采用随机数与利用该随机数进行防伪映射后产生的序列号的对应关系来进行合法性验证,以此来消除现有的认证过程中对于时钟同步的要求,减少了认证步骤的通信消耗,提高了认证效率,同时利用充当序列号的随机数也可实现防止重放攻击的目的。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中,接收端的和发送端是指接收报文或发送报文的网络设备,在不同的信息交互过程中,同样的网络设备可能是在一过程中是接收端而在另一过程中是发送端,例如:在Kerberos协议认证过程中,客户端即是发送端,也是接收端;具体本文不再赘述。
为了便于本领域技术人员更好的理解,下面结合附图和具体实施例进行详细说明,以下皆以Kerberos协议认证过程为例进行说明。
本发明实施例1提供了一种认证方法,如图1所示,该方法将从客户端侧对认证过程进行描述,该方法包括:
步骤101:向KDC发送包含第一随机数的认证服务请求,并接收所述KDC判断所述认证服务请求合法后返回的包含第二随机数和授权票证的认证服务响应消息;
步骤102:通过对所述第二随机数进行防伪映射生成第一序列号后,向KDC发送包含所述第一序列号和第一随机数的票证授权服务请求;接收所述KDC判断所述认证服务请求合法后返回的包含第二随机数和服务票证的票证授权服务响应消息;
其中,所述第一序列号可以通过以下方式生成,但不局限于此:
S1021、通过对接收到的所述认证服务响应消息进行解密获得所述第二随机数;
S1022、对所述第二随机数进行防伪映射获得所述第一序列号。
步骤103:向目标服务器发送包含第一随机数和所述服务票证的应用服务请求,并接收所述目标服务器返回的包含第三随机数的应用服务质询消息;
步骤104:通过对所述第三随机数进行防伪映射生成第二序列号后,向目标服务器发送包含该第二序列号的应用服务响应消息,并接收所述目标服务器发送的表示是否允许访问的应用服务响应消息;
其中,所述第二序列号可以通过下述方式生成,但不局限于此:
S1041、通过对接收到的所述应用服务质询消息进行解密获得所述第三随机数;
S1042、对所述第三随机数进行防伪映射获得所述第二序列号。
从上述实施例的方案可以看出,在认证过程中,采用随机生成的随机数在每次进行认证申请票证时充当序列号使用,通过在信息报文的收发过程中采用随机数与利用该随机数进行防伪映射后产生的序列号的对应关系来进行合法性验证,以此来消除认证过程中对于时钟同步的要求,减少了认证步骤的通信消耗,提高了认证效率,同时利用充当序列号的随机数也可实现防止重放攻击的目的。
本发明实施例2提供了一种认证方法,如图2所示,该方法将从网络侧对认证过程进行描述,该方法包括:
步骤201:接收客户端发送的包含第一随机数的认证服务请求;当判断所述认证服务请求合法时,向所述客户端返回认证服务响应消息,所述认证服务响应消息中包含有第二随机数和授权票证;
其中,可通过以下方式判断所述认证服务请求是否合法,但并不局限于此:
S2011、根据所述认证服务请求查询用户会话信息数据库,判断是否存在与利用所述第一随机数认证相同的认证会话的四元组信息;
S2012、当不存在与利用所述第一随机数认证相同的认证会话的四元组信息时,确定所述认证服务请求合法。
步骤202:接收所述客户端发送的包含有第一序列号和所述第一随机数的票证授权服务请求,所述第一序列号根据所述第二随机数生成;当判断所述票证授权服务请求合法时,向所述客户端返回包含有所述第二随机数和服务票证的票证授权服务响应消息;
其中,可通过下述方式判断当前所述票证授权服务请求是否合法,同样不限于此:
S2021、通过对所述票证授权服务请求进行解密得到所述第一序列号;
S2022、当所述第一序列号与本地的第二随机数存在映射关系时,确定所述票证授权服务请求合法。
步骤203:接收客户端发送的包含有第一随机数和服务票证的应用服务请求;当判断所述应用服务请求合法时,向所述客户端返回应用服务质询消息,所述应用服务质询消息中包含有第三随机数;
其中,可通过但不限于以下方式判断所述应用服务请求是否合法:
S2031、对所述应用服务请求报文进行解密得到第一随机数;
S2032、根据所述第一随机数查询用户会话信息数据库,所述用户会话信息数据库通常保存了认证会话四元组等信息;当所述用户会话信息数据库中不存在与利用所述第一随机数认证相同的认证会话四元组信息时,确定所述应用服务请求报文合法。
其中,所述用户会话信息数据库设置于KDC侧,用于存放认证会话四元组等信息;所述认证会话四元组表明此次会话的唯一性,例如可以是诸如{c,s,rc,rs}等格式信息,表明此次会话是客户端(Client)与目标服务器(Server)之间进行的,其中c为客户端(Client)、s为目标服务器(Server)、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侧,用于存放认证会话四元组等信息;所述认证会话四元组表明此次会话的唯一性,例如可以是诸如{c,s,rc,rs}等格式信息,表明此次会话是客户端(Client)与目标服务器(Server)之间进行的,其中c为客户端(Client)、s为目标服务器(Server)、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)。
其中,f为防伪映射函数,其可以采用形如以下的函数:rs+1,rs-1,2*rs+1...等,但不局限于此。
所述客户端将产生的第一序列号rs’=f(rs)与随机数rc作为报文的一个字段构建Kerberos授权票证服务请求报文(KRB_TGS_REQ),并发送给KDC的票证授予服务器(TGS,Ticket-Granting Server),以申请服务票证(serviceticket)。
需要注意的是,如果用户申请多个服务,则此处的防伪映射会按照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)发送给目标服务器中的服务端认证服务模块(SAS),请求访问所述服务资源;
步骤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_RES)发送给所述客户端,以向客户端发起应用服务质询。
步骤307:所述客户端向目标服务器发送包含第二序列号的应用服务响应消息,所述第二序列号根据所述第三随机数生成;
具体的,当所述客户端接收到所述SAS模块的Kerberos应用服务质询后,通过下述方式来生成第二序列号:
A、通过对所述KRB_SAS_RES报文进行解密得到第三随机数rv;
B、对第三随机数rv进行防伪映射,并保存起来作为序列号rv’=f(rv)。
其中,f为防伪映射函数,其可以采用形如以下的函数:rs+1,rs-1,2*rs+1...等,但不局限于此;
然后所述客户端将产生的序列号rv’=f(rv)作为报文的一个字段构建Kerberos应用服务响应报文(KRB_AP_REP),并将所述应用服务响应报文(KRB_AP_REP)发送给目标服务器的服务提供模块(Service),以回应所述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、服务端认证服务模块SAS521和服务提供模块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;所述第二查询单元用于查询用户会话信息数据库的认证会话四元组,并将查询结果通知给第二判断单元;所述第二判断单元用于接收所述第二查询单元的通知,并当所述数据库中存在与利用第一随机数相同的认证会话四元组时,确定当前请求为重放攻击,否则确定当前请求合法。
除此之外,所述服务提供模块还可包括:第三解密单元和第二映射单元;其中,所述第三解密单元用于通过对所述应用服务响应报文进行解密得到第二序列号,并通知给所述第二映射单元;所述第二映射单元用于接收所述通知,并当所述第二序列号与本地第三随机数存在映射关系时,认定当前回复合法,否则认定为重放攻击。
基于上述,所述客户端还可包括:第四解密单元和第三映射单元;其中,所述第四解密单元用于通过对认证服务响应报文解密得到第一随机数、通过对应用服务质询报文解密得到第三随机数,并将解密结果通知第三映射单元;所述第三映射单元用于接收通知结果,并对所述第一随机数或第三随机数进行防伪映射后保存起来分别作为第一序列号或第二序列号。
值得注意的是,在本发明上述各实施例中,所述服务端认证服务模块(SAS)是相对于现有标准Kerberos协议认证系统新增加的模块,其主要是通过与客户端的信息交互,并利用所述信息交互过程中的随机数使目标服务器可以验证客户端的身份,进而防止请求服务过程中的防重放攻击;同时,由于所述SAS模块和服务提供模块皆属于所述目标服务器的内部模块,其二者之间的数据信息处于实时共享状态,因而当SAS随机产生随机数rv时,所述服务提供模块即可获知该随机数,所以在该步骤中当解密得到所述序列号rv’后,所述TGS即可判断与本地rv是否存在映射关系rv’=f(rv),具体本文不再赘述。
专业人员还可以进一步应能意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明实施例。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明实施例的精神或范围的情况下,在其它实施例中实现。因此,本发明实施例将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅为本发明实施例的较佳实施例而已,并不用以限制本发明实施例,凡在本发明实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。