是否通过认证,若否,则执行步骤303 ;
[0119]服务器接收客户端发送的认证数据后,判断认证数据是否通过认证,若不是,则执行步骤303
[0120]303、服务器判断客户端对应的备用密钥及用户身份识别码是否通过认证,若是,则执行步骤304 ;
[0121]当服务器确定该认证数据不通过认证时,服务器判断客户端对应的备用密钥及用户身份识别码是否通过认证,若是,则执行步骤304 ;
[0122]304、服务器生成服务器认证数据;
[0123]当服务器确定备用密钥及用户身份识别码通过认证时,服务器生成服务器认证数据。
[0124]305、服务器向客户端发送服务器认证数据,并更新客户端对应的动态密钥。
[0125]服务器生成服务器认证数据后,向客户端发送该服务器认证数据,并更新客户端对应的动态密钥。
[0126]本发明实施例中,当客户端发送的认证数据不通过认证时,服务器可以判断备用密钥及用户身份识别码是否通过认证,当备用密钥及用户身份识别码通过认证时,服务器可以生成服务器认证数据,向客户端发送该数据并更新动态密钥。也就是说,客户端设置动态密钥及静态密钥,当数据库受到同步攻击时,服务器能使用备用密钥对客户端进行认证,抵御了针对数据库的同步攻击。又由于每次认证都会对动态密钥进行更新,降低了因用户密钥泄露对系统带来的风险。也就是说本发明实施例既能降低因用户密钥泄露对系统带来的风险,还能抵御针对数据库的同步攻击。
[0127]基于上述图3对应的实施例,本发明实施例中,服务器接收客户端发送的认证数据具体可以是根据码分多址(Code Divis1n Multiple Access,CDMA)协议接收,CDMA是扩频通信技术上发展起来的一种崭新而成熟的无线通信技术。CDMA技术的原理是基于扩频技术,即将需传送的具有一定信号带宽信息数据,用一个带宽远大于信号带宽的高速伪随机码进行调制,使原数据信号的带宽被扩展,再经载波调制并发送出去。接收端使用完全相同的伪随机码,与接收的带宽信号作相关处理,把宽带信号换成原信息数据的窄带信号即解扩,以实现信息通信。需要说明的是,服务器还可以通过其他协议接收客户端发送的认证数据。
[0128]另外,当服务器确定认证数据通过认证时,服务器可以生成服务器认证数据,向客户端发送该服务器认证数据,并更新动态密钥。当服务器确定备用密钥及用户身份识别码认证不通过时,服务器确定客户端认证失败,可以向客户端发送认证失败消息,还可以执行其他流程,具体此处不作限定。
[0129]本发明实施例中,提供了当认证数据通过认证时,及当备用密钥及用户身份识别码认证不通过时的具体处理流程,提高了方案的可实现性。
[0130]下面对客户端及服务器两侧之间交互进行描述,请参阅图4,本发明实施例中无线多用户防碰撞安全认证方法的另一实施例包括:
[0131]401、服务器向客户端发送认证请求;
[0132]服务器检测到进入认证范围的用户,生成第一随机数,向用户对应的客户端发送认证请求,该认证请求中携带第一随机数。
[0133]402、客户端选择第二扩频码;
[0134]客户端接收服务器发送的认证请求,生成第二随机数,客户端根据认证请求中携带的第一随机数,自身生成的第二随机数选择第二扩频码。具体地,客户端根据第一随机数及第二随机数得到目标值,客户端根据该目标值对扩频码数进行取模得到第二频码对应的地址信息,再根据该地址信息选择第二扩频码。需要说明的是,该目标值可以是第一随机数及第二随机数之和,也可以是第一随机数及第二随机数之积,还可以是第一随机数及第二随机数通过其他方式运算得到的,具体此处不作限定。扩频码数量是指客户端与该服务器通信的信道包含的扩频码的数量,可以是服务器根据认证范围内的用户数量估算的,也可以是服务器预设的固定值,客户端可以是从接收的重传请求中解析获得,也可以通过与服务器之间的协议获得,还可以通过其他途径获得,具体此处不作限定。
[0135]403、客户端检验标志位,并生成认证数据;
[0136]客户端预先设置标志位,并存储用户的动态密钥和备用密钥,标志位的初始值设为“O”。客户端选择第二扩频码后,检验标志位,如果标志位为“0”,即标志位没有发生变化,则客户端根据动态密钥生成认证数据,如果标志位为“ I ”,即标志位发生变化,则客户端根据备用密钥生成认证数据。需要说明的是,备用密钥为固定密钥,不会随着认证过程而发生变化。动态密钥是动态变化的,每次认证完成后都会更新。
[0137]404、客户端根据第二扩频码向服务器发送该认证数据;
[0138]客户端生成认证数据后,根据随机选择的第二扩频码向服务器发送该认证数据。
[0139]405、服务器判断该认证数据是否发生碰撞,若是,则服务器执行步骤404,若否,则服务器执行步骤407 ;
[0140]服务器接收客户端根据第二扩频码发送的认证数据后,判断该认证数据是否发生碰撞,即是否有其他客户端也选择第二扩频码发送认证数据,若有,则确定该认证数据发生碰撞,服务器执行步骤404,若没有,则确定该认证数据没有发生碰撞,服务器执行步骤407。
[0141]406、服务器向客户端发送重传请求;
[0142]服务器确定该认证数据发生碰撞后,向该客户端发送重传请求,通知该客户端重新发送认证数据。
[0143]407、客户端根据用户身份识别码选择第一扩频码;
[0144]客户端接收到重传请求后,根据用户身份识别码选择第一扩频码。具体地,客户端可以通过以下几种方式选择第一扩频码:
[0145](I)客户端根据自身生成的第二随机数、重传请求中携带的第三随机数及用户身份识别码得到目标值,再根据目标值对扩频码数量进行取模得到第一扩频码对应的地址信息,在根据该地址信息选择第一扩频码。
[0146]需要说明的是,目标值可以是第二随机数、第三随机数及用户身份识别码这三个数相加得到的,也可以是这三个数相乘得到的,还可以是这三个数通过其他运算方式得到的,具体此处不作限定。
[0147](2)客户端根据用户身份识别码对扩频码数量进行取模得到第一扩频码对应的地址信息,再根据该地址信息选择第一扩频码。
[0148]需要说明的是,用户身份识别码用于标识用户身份,每个用户的用户身份识别码是唯一的。
[0149]408、客户端根据第一扩频码向服务器发送该认证数据;
[0150]客户端选择第一扩频码后,根据第一扩频码再次向服务器发送该认证数据。
[0151]409、服务器判断该认证数据是否通过认证,若否,则执行步骤408,若是,则执行步骤 409 ;
[0152]服务器接收到客户端发送的认证数据后,判断该认证数据是否通过认证,若否,则执行步骤408,若是,则执行步骤409。具体地,服务器判断客户端发送的认证数据中的动态密钥与服务器存储的该用户对应的动态密钥是否相同,若是,则确定该认证数据通过认证,若否,则确定该认证数据不通过认证。服务器还可以通过其他方式判断客户端发送的认证数据是否通过认证,具体此处不作限定。
[0153]410、服务器判断客户端对应的备用密钥及用户身份识别码是否通过认证,若是,则执行411,若否,则执行步骤412 ;
[0154]当服务器确定该客户端发送的认证数据不通过认证时,服务器判断该客户端对应的备用密钥及用户身份识别码是否通过认证。需要说明的是,服务器预先存储了用户对应的用户身份识别码及备用密钥。
[0155]411、服务器生成服务器认证数据;
[0156]当服务器确定该客户端对应的备用密钥及用户身份识别码通过认证,或服务器确定客户端发送的认证数据通过认证时,服务器生成服务器认证数据。
[0157]412、服务器向客户端发送该服务器认证数据,并更新客户端对应的动态密钥;
[0158]服务器生成服务器认证数据后,向该客户端发送该服务器认证数据,并更新该客户端对应的动态密钥。客户端接收该服务器认证数据后,对服务器认证数据进行认证,认证通过,则服务器与客户端可以进入后续的服务流程。
[0159]413、服务器确定客户端认证失败。
[0160]当服务器确定该客户端对应的备用密钥及用户身份识别码不通过认证时,服务器确定该客户端认证失败。
[0161]本发明实施例中,当认证数据发生碰撞时,客户端可以根据用户身份识别码选择第一扩频码,再根据第一扩频码向服务器重新发送认证数据。由于不同用户的用户身份识别码不一样,所以根据用户身份识别码选择扩频码,避免了多个用户选择相同扩频码的情况,从而避免了多个用户发送的认证数据再次碰撞,有效提高了系统的效率。
[0162]其次,本发明实施例提供认证过程中客户端与服务器两侧之间的详细过程,提高了方案的可实现性。
[0163]为了便于理解,下面以一实际应用场景对本发明实施例中的防碰撞安全认证方法进行详细描述:
[0164]认证服务器探测到用户身份识别码为13598533236的用户A进入认证范围,认证服务器产生第一随机数66,向该用户发送认证请求和第一随机数,用户A通过客户端A接收服务器发送的认证请求,该请求携带第一随机数66,客户端A接收到认证请求后,生成第二随机数31,客户端根据第一随机数66和第二随机数31计算和值得到97,再根据该和值对扩频码数量进行取模选取扩频序列I作为扩频码,即第二扩频码为“1”,客户端生成认证数据P,并将P扩频后发送给认证服务器,认证服务器对接收到的数据进行解扩,并判断该认证数据是否发生碰撞,服务器确定有多个用户选择了扩频序列为“ I ”作为扩频码发送认证数据,即认证数据P发生了数据碰撞,服务器通过扩频序列为“I”的扩频码进行扩频将重传请求发送至各个用户,客户端A扩频序列为“ I ”的扩频码接收该重传请求,该重传请求携带第三随机数54,客户端对用户身份识别码13598533236、第二随机数31和第三