用户的静态口令,根据与认证服务器中保留的静态口令是否相同来进行认证。如果两者相同,则说明静态口令认证成功。如果两者不同,则说明用户提交的静态口令不正确,返回“认证失败”的标识,拒绝用户的本次认证请求。静态口令认证成功后,再根据Fd的值来进行判断。如果Fd=0,表示用户不需要进行动态口令二次认证,则认证服务器返回“认证成功”的标识,同意用户的接入请求;如果Fd=1,表示用户还需要进行动态口令身份认证,认证服务器于是记录下本次用户的IP地址,将静态口令认证成功的标志Fs置为1,将同步计数器值Ns增加1,并将以上数据回写到数据库中。根据新的Ns产生一个口令返回给用户,作为用户对服务器进行身份认证的口令,同时返回“需要动态口令再认证”的标识。Р如果A=1,表示待认证数据中的口令是用户的动态口令。认证服务器先检查该用户的静态口令认证是否成功的标志Fs。如果Fs=0,则说明该用户尚未完成静态口令认证,是非法的认证数据,应当拒绝该用户的认证请求,返回Р“认证失败”的标识。如果Fs=1,说明用户完成了静态口令认证。认证服务器于是将静态口令认证成功的标志Fs置为0,将同步计数器值Ns增加1,并将以上数据回写到数据库中。根据新的Ns产生一个口令P(Ns),并与用户提交的动态口令P(Nc)进行比较,如果两者不同,则说明用户提交的动态口令不正确,返回“认证失败”的标识,拒绝用户的本次认证请求。如果两者相同,则说明用户提交的动态口令是正确的,但还需要验证本次认证用户的IP地址是否与进行静态口令认证用户的IP地址相同。如果两次认证的IP地址不同,则说明这两次认证不是来源于同一用户,其中之一肯定是来自非法攻击者,所以应当拒绝该用户的认证请求,返回“认证失败”的标识。如果两次认证的IP地址相同,则说明用户完成了认证系统所有的认证要求,是系统的合法用户,认证服务器返回“认证成功”的标识,同意用户的接入请求。