发明内容
有鉴于此,本发明的主要目的是提供一种实现动态密码认证的方法和系统,以实现不需要服务器下发动态密码就能够实现动态密码的认证。
为实现上述目的,本发明提供的一种动态密码认证方法是这样实现的:
动态密码服务器收到移动终端的动态密码绑定请求且验证用户合法后,进行与该移动终端的绑定操作。
该方法包括以下步骤:
所述终端获取在绑定操作后在其上所存储的第二种子,将第二种子以及当前和所述服务器同步的时间作为计算因子,根据动态密码产生算法计算出动态密码,将该动态密码作为认证过程中使用的认证密码。
所述服务器收到认证设备发送的认证密码及用户信息,获取在绑定操作后在其上所存储的用户信息和第一种子的对应关系,所述第一种子与第二种子相同,根据所述用户信息查询与所述终端对应的第一种子,将第一种子和当前时间作为计算因子,根据所述动态密码产生算法计算出动态密码,根据此动态密码验证发送过来的认证密码是否正确。
优选地,动态密码服务器收到移动终端的动态密码绑定请求且验证用户合法后,进行与该移动终端的绑定操作包括:
所述移动终端向动态密码服务器发送动态密码绑定请求,所述动态密码绑定请求含有用户账号信息和所述终端对应的具有唯一性的第一标识。
动态密码服务器根据所述账号信息验证该终端用户是否具有合法性,如果是,则根据第一标识计算出第一种子,并存储用户信息和第一种子的对应关系。
所述终端接收到服务器发送的验证成功消息后,根据具有唯一性的终端第二标识计算出与第一种子相同的第二种子,存储第二种子。
优选地,动态密码服务器根据第一标识计算出第一种子以及所述终端根据具有唯一性的终端第二标识计算出与第一种子相同的第二种子包括:
所述服务器生成第一公钥和第一私钥,所述第一私钥的生成利用第一标识。
所述终端生成第二公钥和第二私钥,所述第二私钥的生成利用具有唯一性的终端第二标识。
所述服务器和所述终端交换公钥,分别根据各自的私钥和对方的公钥计算出相同的第一和第二种子。
优选地,所述服务器生成第一私钥包括:所述服务器生成第一私钥,所述第一私钥的生成利用第一标识和随机数,
和/或
所述终端生成第二私钥包括:所述第二私钥的生成利用具有唯一性的终端第二标识和随机数。
优选地,动态密码服务器根据第一标识计算出第一种子以及所述终端根据具有唯一性的终端第二标识计算出与第一种子相同的第二种子包括:
所述终端生成密钥,向所述服务器发送密钥以及根据具有唯一性的第二标识和密钥计算出第二种子,所述服务器根据第一标识和密钥计算出第一种子,所述第一种子和第二种子相同。
优选地,所述服务器存储用户信息和第一种子的对应关系包括:所述服务器存储用户信息与加密后的第一种子的对应关系,
所述服务器将第一种子和当前的时间作为计算因子之前进一步包括:服务器对加密存储的第一种子进行解密,
和/或
所述终端存储第二种子包括:所述终端存储加密后的第二种子,
所述步骤A之前进一步包括所述终端对加密存储的第二种子进行解密。
优选地,所述第一标识、第二标识为手机IMEI号码和/或sim卡IMEI号码。
优选地,所述服务器收到的绑定请求包含用户账号信息,所述服务器与该移动终端的绑定操作包括:
所述终端根据具有唯一性的终端标识计算出种子,将种子发送至动态密码服务器和存储所述种子到所述终端,将此种子作为第二种子。
所述服务器接收到种子后,存储账号信息和种子的对应关系,将此种子作为第一种子。
优选地,所述服务器收到的绑定请求包含用户账号信息,所述服务器与该移动终端的绑定操作包括:
动态密码服务器分配与终端对应的唯一标识作为种子,向所述终端发送验证成功消息,所述验证消息包含所述种子,存储账号信息和所述种子的对应关系,将此种子作为第一种子。
所述终端接收到验证消息后,存储验证消息中包含的种子,将此种子作为第二种子。
优选地,所述认证设备为所述移动终端。
优选地,所述认证设备为计算机,步骤A之后进一步包括:将所述认证密码和用户信息输入到计算机。
优选地,所述动态密码服务器包括动态密码绑定服务器、动态密码验证服务器和数据库。
动态密码服务器收到移动终端的动态密码绑定请求且验证用户合法后,进行与该移动终端的绑定操作包括:
所述绑定服务器收到移动终端的动态密码绑定请求且验证用户合法后,进行与该移动终端的绑定操作。
所述步骤A中所述终端获取在绑定操作后在其上所存储的第二种子包括:所述终端获取在绑定操作后在数据库中所存储的第二种子。
所述步骤B中所述服务器收到认证设备发送的认证密码及用户信息,获取在绑定操作后在其上所存储的用户信息和第一种子的对应关系包括:动态密码验证服务器收到计算机发送的认证密码及用户信息,获取在绑定操作后在数据库中所存储的用户信息和第一种子的对应关系。
优选地,所述具有网络功能的移动终端为手机。
本发明还提供了一种实现动态密码认证的系统,该系统包括:
具有网络功能的移动终端,用于存储第二种子,需要进行动态密码认证时,用第二种子与当前和服务器同步的时间作为计算因子,通过动态密码产生算法计算出动态密码,将此动态密码作为认证过程中使用的认证密码。
动态密码服务器,用于存储已绑定的移动终端的用户信息与第一种子的对应关系,第一种子与第二种子相同,当接收到认证设备发送过来的用户信息和认证密码,根据用户信息查询与终端对应的第一种子,将第一种子和当前的时间作为计算因子,利用所述动态密码产生算法计算动态密码,根据此动态密码验证认证密码是否正确。
认证设备,用于将所述认证密码发送给所述服务器。
优选地,所述认证设备为所述移动终端或计算机。
优选地,所述服务器包括:动态密码绑定服务器、动态密码验证服务器和数据库。
所述动态密码绑定服务器用于将已绑定的移动终端的用户信息与第一种子的对应关系存储在数据库中。
所述验证服务器用于接收认证设备发送过来的认证密码和用户信息,根据用户信息,根据用户信息在数据库中查询与终端对应的第一种子,将第一种子和当前的时间作为计算因子,利用所述动态密码产生算法计算动态密码,根据此动态密码验证认证密码是否正确。
优选地,所述具有网络功能的移动终端为手机。
经由上述的技术方案可知,本发明中移动终端根据终端存储的种子以及当前和服务器同步的时间,通过动态密码产生算法计算出动态密码,将此动态密码作为认证过程中使用的认证密码,由认证设备将此认证密码和用户信息发送给动态密码服务器,该服务器根据用户信息查询终端对应的种子,将该种子和当前的时间作为计算因子,通过所述动态密码产生算法计算出动态密码,并根据此动态密码验证发送过来的认证密码是否正确。因此,认证设备不再通过服务器下发的动态密码进行认证,而是利用特定的种子以及与服务器当前的时间计算出动态密码,避免了现有技术中服务器下发短信时可能出现被劫持的风险,进而保证了用户信息的安全性。其次,又利用移动终端和服务器的物理隔离,产生密码和使用密码分别存在于不同的计算平台,无疑又提高了安全门槛。再加上动态密码是种子和时间的双因子认证方案,因此很难被穷举。
具体实施方式
请参阅图1,本发明实现动态密码认证方法的具体步骤如下:
步骤101:移动终端向动态密码服务器发送动态密码绑定请求。
步骤102:服务器判断终端用户是否合法。
步骤103:如果该终端具有合法性,执行与该移动终端的绑定操作。
以上步骤只需执行一次。
当需要进行动态密码认证时,执行以下步骤:
步骤104:所述移动终端获取在绑定操作后在其上所存储的第二种子,将第二种子以及当前和所述服务器同步的时间作为计算因子,根据动态密码产生算法计算出动态密码,将此动态密码作为认证过程中的认证密码。
步骤105:移动终端将用户信息和认证密码发送给所述服务器。
步骤106:所述服务器获取在绑定操作后在其上所存储的用户信息和第一种子的对应关系,所述第一种子与第二种子相同,根据用户信息查询与所述终端对应的第一种子,将第一种子和当前的时间作为计算因子,根据所述动态密码产生算法计算出动态密码,根据此动态密码验证认证密码是否正确。
以上认证方法中,认证设备与移动终端为同一设备,实际上,认证设备也可以为计算机。
当认证设备为计算机时,步骤105应为:将移动终端产生的认证密码输入到计算机中,计算机将用户信息和认证密码发送给服务器。
动态密码服务器可以包括:动态密码绑定服务器、动态密码验证服务器和数据库。此时移动终端向动态密码绑定服务器发送动态密码绑定请求,由绑定服务器完成与终端的绑定过程,将用户信息和第一种子的对应关系存储在数据库中。当需要进行身份认证时,移动终端将用户信息和认证密码发送至验证服务器,验证服务器根据数据库存储的信息查询对应的第一种子,根据计算的动态密码验证认证密码的正确性。
这里具有网络功能的移动终端可以为手机,上述第一、第二标识可以为手机IMSI号码和/或sim卡的IMSI号码等。
这种动态密码认证方法可以用在任何需要密码认证的情况,如用户登录、对数据等各种信息的保护认证等。
这里先介绍三种与终端的绑定过程,绑定过程主要目的是产生种子并存储,主要区别在于产生种子的方法不同。
图2是通过手机端产生种子,发送给服务器的一种绑定过程,具体步骤如下:
步骤201:手机向动态密码服务器发送动态密码绑定请求,所述动态密码绑定请求含有用户账号和预先设置的静态密码。
步骤202:动态密码服务器根据所述用户账号和静态密码验证该手机用户是否具有合法性。例如,可根据该用户账号和预先设置的静态密码判断是否与服务器里预先存储的用户账号和密码对应关系匹配,如果匹配,则具有合法性。
步骤203:如果该手机用户合法,向该手机发送验证成功消息。
步骤204:手机接收到验证消息后,根据具有唯一性的终端标识计算种子。
步骤205:手机将种子发送至动态密码服务器。
步骤206:手机存储所述种子。
步骤207:服务器存储用户账号和种子的对应关系。
步骤206和207的执行顺序不受限制。
图3为另一种实现绑定的过程,由服务器分配一个唯一的标识给手机,将此标识作为种子,具体过程如下:
步骤301:手机向动态密码服务器发送动态密码绑定请求,所述动态密码绑定请求含有用户账号和静态密码。
步骤302:动态密码服务器根据用户账号和密码判断该手机用户是否具有合法性,如果是,执行步骤303和304。
步骤303:服务器分配与手机对应的唯一标识作为种子,向手机发送验证成功消息,所述验证消息中包含所述种子。
步骤304:所述服务器存储用户账号和所述种子的对应关系。
步骤305:手机接收到验证消息后,存储所述种子。
图4是由服务器生成第一种子以及手机生成第二种子的绑定过程,第一种子和第二种子相同,具体过程如下:
步骤401:手机向动态密码服务器发送动态密码绑定请求,该绑定请求中包含有手机的第一标识、手机用户账号和预先设置的静态密码。
步骤402:动态密码服务器接收到手机的动态密码绑定请求,根据该用户账号和静态密码判断该手机用户是否具有合法性,如果该手机用户具有合法性,执行步骤403和404。
步骤403:服务器向手机发送验证成功消息。
步骤404:服务器根据手机第一标识计算第一种子。
步骤405:手机接收到服务器发送的验证消息后,根据手机第二标识计算出第二种子,第一种子和第二种子相同,这里手机第二标识可以和第一标识相同,也可以不同。
步骤406:服务器存储用户信息和第一种子的对应关系。
步骤407:手机存储第二种子。
步骤406和407的顺序不受约束。
步骤405和406中计算出的第一和第二种子为相同的种子,这里可以采用对称加密算法或非对称加密算法生成。
图5采用对称加密算法生成种子,步骤501至503与图4的步骤401至403相同,故从步骤504开始介绍:
步骤504:手机接收到验证成功消息后,产生密钥。
步骤505:手机将步骤504产生的密钥发送给服务器。
步骤506:服务器根据接收到的密钥和第一标识生成第一种子。
步骤507:手机根据步骤504产生的密钥和第二标识生成第二种子,第一种子和第二种子相同。
步骤506和507的执行顺序不受限制。
步骤508和509与图4的步骤406、407相同。
采用这种方法生成种子,如果密钥被截获会对种子的安全性造成了隐患。
图6采用非对称加密算法生成种子,步骤601至603与图4的步骤401至403相同,这里从步骤604开始介绍:
步骤604:服务器根据第一标识生成第一私钥。
步骤605:手机根据第二标识和随机数生成第二私钥,第二标识可以与第一标识相同,也可以不同,这里随机数的加入进一步保证了私钥的唯一性、保密性和不可窃取性。
步骤606:服务器生成第一公钥。
步骤607:手机生成第二公钥。
步骤608:服务器和手机交换各自的公钥。
步骤609:服务器根据第二公钥和第一私钥计算出第一种子。
步骤610:手机根据第一公钥和第二私钥计算出第二种子,第一种子与第二种子相同。
步骤611和612和图4中的步骤406和407相同。
使用非对称加密算法计算的种子具有很高的安全性,即使公钥被截获,也无法对种子进行穷举。
为了便于对本发明进一步理解,下面结合本发明的具体实施方式对本发明进行详细描述。请参阅图7所示,本发明的一种实施例具体过程如下:
绑定过程采用图4介绍的方法,故步骤701至705与图4的步骤401至405相同。下面从步骤706开始介绍:
步骤706:服务器存储用户信息和第一种子的对应关系,这里第一种子可以进行加密存储,如果是加密存储,执行步骤710之前需要对加密后的第一种子进行解密。
步骤707:手机存储第二种子,该种子也可以加密存储。
以上过程只需执行一次,当需要进行身份认证时,执行以下步骤:
步骤708:手机根据第二种子与当前和服务器同步的时间作为计算因子,根据动态密码产生算法计算出动态密码,将此动态密码作为认证过程中的认证密码。
步骤709:移动终端将用户信息和动态密码发送给动态密码服务器。
步骤710:服务器根据用户信息查询与手机对应的第一种子,根据第一种子和当前服务器时间,通过动态密码产生算法计算出动态密码,根据此动态密码验证认证密码是否正确。
具体验证过程可以为:手机和服务器计算动态密码时采用的时间因子以分钟为最小计时单位,服务器计算当前时间2分钟内的所有动态密码,用产生的所有动态密码去验证认证密码,只要认证密码与任一动态密码相同,则认为该认证密码正确。
本发明还公开了一种实现动态密码的系统,如图8所示,该系统包括:动态密码服务器、具有网络功能的移动终端和认证设备。
具有网络功能的移动终端,用于存储第二种子,需要进行动态密码认证时,用第二种子与当前和服务器同步的时间作为计算因子,通过动态密码产生算法计算出动态密码,将此动态密码作为认证过程中使用的认证密码。
动态密码服务器,用于存储已绑定的移动终端的用户信息与第一种子的对应关系,第一种子和第二种子相同,当接收到认证设备发送过来的用户信息和认证密码,根据用户信息查询与终端对应的第一种子,将第一种子和当前的时间作为计算因子,利用所述动态密码产生算法计算动态密码,根据此动态密码验证所述认证密码是否正确。
认证设备,用于将所述认证密码发送给所述服务器。
所述认证设备可以为移动终端,也可以为计算机。
所述服务器可以包括动态密码绑定服务器、动态密码验证服务器和数据库。这时实现本发明的系统包括动态密码绑定服务器、动态密码验证服务器、数据库、具有网络功能的移动终端以及认证设备。
所述具有网络功能的移动终端可以为手机。这里介绍认证设备与移动终端为同一设备的情况。
手机用于存储第二种子,需要进行动态密码认证时,用第二种子与当前和服务器同步的时间作为计算因子,通过动态密码产生算法计算出动态密码,将此动态密码作为认证密码,将此认证密码发送给验证服务器。
所述绑定服务器用于将已绑定的移动终端的用户信息与第一种子的对应关系存储在数据库中,第一种子和第二种子相同。
所述验证服务器用于接收手机发送过来的认证密码和用户信息,根据用户信息,在数据库中查询与终端对应的第一种子,将第一种子和当前的时间作为计算因子,利用所述动态密码产生算法计算动态密码,根据此动态密码验证认证密码是否正确。
认证设备也可以为计算机,这时需要将认证过程中手机计算出的认证密码输入到计算机中,由计算机将用户信息和认证密码发送给验证服务器。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。