发明内容
本申请的主要目的在于提供一种可应用于通信设备的数据通信安全性高的口令认证方法、设备及系统,以解决现有技术存在的通信设备的数据通信安全性差的问题,其中:
本申请的一个方面,提供一种口令认证方法。该方法包括:基于由服务器生成的第一图形矩阵来设置针对用户账号的挑战码;以及将所述挑战码发送到所述服务器,以使得判定所述挑战码是否顺序地存在于由服务器生成针对用户账号的口令中。
另外,在该方法中,所述基于由服务器生成的第一图形矩阵来设置针对用户账号的挑战码的步骤中进一步包括:接收由所述服务器基于图形密码而生成的所述第一图形矩阵,其中,所述第一图形矩阵附带有随机产生的无序字符;以及识别从所述第一图形矩阵中选择的特定位置,将所述特定位置对应的字符记录为所述挑战码。
另外,在该方法中,所述挑战码是由所述特定位置对应的字符构成的字符串。
另外,在该方法中,所述口令是基于所述第一图形矩阵和所述用户账号的位置信息密码来生成。
另外,在该方法中,所述位置信息密码通过如下方式来生成:在启动口令认证业务时,接收由所述服务器基于图形密码而生成的第二图形矩阵;识别从所述第二图形矩阵中有序地选择出的任意位置,并记录所选位置对应的位置信息;以及将所述位置信息发送到所述服务器,以使得将所述位置信息记录为所述用户账号的位置信息密码,并将所述位置信息密码保存在所述服务器中。
另外,在该方法中,所述第二图形矩阵与所述第一图形矩阵的大小相等,所述第二图形矩阵是不附带字符的图形矩阵。
本申请的另一方面,提供一种口令认证方法。该方法包括:基于图形密码生成第一图形矩阵,并将所述第一图形矩阵发送到客户端;接收由所述客户端使用所述第一图形矩阵而设置的针对用户账号的挑战码;基于所述第一图形矩阵和存储在服务器中与所述用户账号相关联的位置信息密码生成口令;判定所述挑战码是否顺序地存在于所述口令中;以及如果判定结果为是,则认证成功。
另外,在该方法中,所述第一图形矩阵是附带有随机产生的无序字符的图形矩阵,所述挑战码是由从所述第一图形矩阵中选择的位置对应的字符构成的字符串。
另外,在该方法中,所述基于所述第一图形矩阵和存储在服务器中与所述用户账号相关联的位置信息密码生成口令的步骤进一步包括:获取所述第一图形矩阵所附带的所有字符、所有字符与所述第一图形矩阵的位置对应关系以及与用户账号相关联的位置信息密码;以及基于所有字符、所述位置对应关系以及所述位置信息密码,计算出所述位置信息密码对应的字符信息以将所述字符信息作为口令。
另外,在该方法中,所述位置信息密码通过如下方式来生成:在启动口令认证业务时,基于图形密码生成第二图形矩阵,并将所述第二图形矩阵发送到所述客户端;接收由所述客户端使用所述第二图形矩阵而设定的位置信息;以及将所述位置信息记录为所述用户账号的位置信息密码,并保存所述位置信息密码。
另外,在该方法中,所述第二图形矩阵是不附带字符的图形矩阵,所述第二图形矩阵与所述第一图形矩阵的大小相同。
本申请的另一方面,提供一种用于口令认证的客户端设备。所述设备包括:设置装置,其用于基于由服务器生成的第一图形矩阵来设置针对用户账号的挑战码;以及第一发送装置,其用于将所述挑战码发送到所述服务器,以使得判定所述挑战码是否顺序地存在于由服务器生成针对用户账号的口令中。
另外,在所述设备中,所述设置装置进一步包括:第一接收装置,其用于接收由所述服务器基于图形密码而生成的所述第一图形矩阵,其中,所述第一图形矩阵附带有随机产生的无序字符;以及第一识别装置,其用于识别从所述第一图形矩阵中选择的特定位置,将所述特定位置对应的字符记录为所述挑战码。
另外,在所述设备中,所述挑战码是由所述特定位置对应的字符构成的字符串。
另外,在所述设备中,所述口令是基于所述第一图形矩阵和所述用户账号的位置信息密码来生成。
另外,所述设备还包括:第二接收装置,其用于在启动口令认证业务时接收由所述服务器基于图形密码而生成的第二图形矩阵;第二识别装置,其用于识别从所述第二图形矩阵中有序地选择出的任意位置,并记录所选位置对应的位置信息;以及第二发送装置,其用于将所述位置信息发送到所述服务器,以使得将所述位置信息记录为所述用户账号的位置信息密码,并将所述位置信息密码保存在所述服务器中。
另外,在所述设备中,所述第二图形矩阵与所述第一图形矩阵的大小相等,所述第二图形矩阵是不附带字符的图形矩阵。
本申请的另一方面,提供一种用于口令认证的服务器设备。所述设备包括:第一生成装置,其用于基于图形密码生成第一图形矩阵,并将所述第一图形矩阵发送到所述客户端,其中,所述第一图形矩阵是附带有随机产生的无序字符的图形矩阵;第三接收装置,其用于接收由所述客户端使用所述第一图形矩阵而设置的针对用户账号的挑战码;口令生成装置,其用于基于所述第一图形矩阵和存储在服务器中与所述用户账号相关联的位置信息密码生成口令;以及判定装置,其用于判定所述挑战码是否顺序地存在于所述口令中。
另外,在所述设备中,所述挑战码是由从所述第一图形矩阵中选择的位置对应的字符构成的字符串。
另外,在所述设备中,所述口令生成装置进一步包括:获取装置,其用于获取所述第一图形矩阵所附带的所有字符、所有字符与所述第一图形矩阵的位置对应关系以及与用户账号相关联的位置信息密码;以及计算装置,其用于基于所有字符、所述位置对应关系以及所述位置信息密码,计算出所述位置信息密码对应的字符信息以将所述字符信息作为口令。
另外,所述设备还包括:第二生成装置,其用于在启动口令认证业务时,基于图形密码生成第二图形矩阵,并将所述第二图形矩阵发送到所述客户端;第四接收装置,其用于接收由所述客户端使用所述第二图形矩阵而设定的位置信息;以及保存装置,其用于将所述位置信息记录为所述用户账号的位置信息密码,并保存所述位置信息密码。
另外,在所述设备中,所述第二图形矩阵是不附带字符的图形矩阵,所述第二图形矩阵与所述第一图形矩阵的大小相同。
本申请的另一方面,提供一种用于口令认证的系统。该包括所述客户端设备和所述服务器设备。
与现有技术相比,根据本申请的技术方案,在通信设备的口令认证过程中,利用图形密码以及一次一密方式,服务器能够使用用户每次设置的临时的挑战码和由服务器生成的口令来验证用户账号的身份。在有监听者的情况下,即使被监听者获取到当次使用的挑战码也无法还原口令本身,由此能够可靠地确保用户账号的安全性。而且,当向海外的用户提供基于这种口令认证技术的业务时,也能够确保海外用户的用户账号的安全性。
具体实施方式
本申请的主要思想在于,在手机、平板电脑、台式电脑、膝上型电脑等通信设备的口令认证过程中,结合图形密码技术及一次一密方式,使得服务器能够使用用户每次设置的临时的挑战码和由服务器生成的口令来验证用户账号的身份。即使在被监听的情况下,监听者也无法通过获取到的临时的挑战码来还原口令本身,能够可靠地确保用户账号的安全性。而且,当向海外的用户提供基于这种口令认证技术的业务时,也能够确保海外用户的用户账号的安全性。此外,由于本申请涉及的口令认证方案不存在硬件及苛刻的客户端运行环境的需求,因此可广泛地应用于各种通信设备的应用场景下。
另一方面,由本申请涉及的口令认证方法获得的效果类似于采用秘密共享门限方案而得到的效果。详细地说,在应用密码学中,秘密共享门限的思想是将秘密以适当的方式拆分,拆分后的每一份额的信息由不同的参与者管理,单独的参与者无法恢复秘密信息,只有若干个参与者一同协作才能恢复秘密信息。更重要的是,当其中任何参与者出现问题时,秘密仍可以完整地恢复。也就是说,秘密共享有一个门限,多个因素决定一个秘密,只要其中部分因素达到标准就能证明该秘密。相对于此,本申请的口令认证方法也可以达到这样的效果。即,在执行口令认证处理时,无需使用用户已设置的位置信息密码,而仅使用挑战码就可以实现用户的身份认证。也就是说,在设定密码的用户与执行口令认证的用户是同一用户的情况下,挑战码对应的位置信息实质上是位置信息密码对应的位置信息的一部分。
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
<口令认证系统>
图1是本申请涉及的口令认证系统100的结构示意图。
如图1所示,口令认证系统(以下简称为“系统”)100可以包括客户端101和服务器102。客户端101可以是如手机、平板电脑、台式电脑、膝上型电脑等这样的通信设备。服务器102是与客户端101相对应的服务器端,它可以是管理资源并为用户提供服务的计算机软件,也可以是网络环境中的高性能计算机硬件。从系统整体来说,当系统处于通讯的状态下,在客户端101与服务器102之间进行口令认证处理。本系统100可用于安全性需求较高的应用中。在后面详细叙述系统100的各部分构成。另外,在本申请中,口令认证是指使用由服务器生成的口令和临时设置的挑战码来对用户账号进行身份认证的过程。
<基于客户端的口令认证方法>
本申请的一个方面,提供一种基于客户端的口令认证方法。本方法适用于客户端101。下面,结合图2~图4来说明基于客户端的口令认证方法。
具体来说,基于客户端的口令认证方法包括密码生成处理和口令认证处理这两个过程。而且,密码生成处理和口令认证处理之间存在着既相互独立又相互关联的关系。所谓的相互独立是指,在用户账号被监听或钓鱼的情况下,密码生成处理是由真正的用户完成的,而口令认证处理是由监听者来完成的,因此说这两个处理过程是相互独立的。所谓的相互关联是指,在未被监听或钓鱼的情况下,密码生成处理和口令认证处理均由真正的用户来完成,并且在这种情况下用户必须使用在密码生成处理中所生成的密码来执行口令认证处理,这样口令认证才能成功,因此说这两个处理过程是相互关联的。
下面,首先说明密码生成处理的具体过程。
图2是本申请涉及的基于客户端的密码生成处理的示意流程图。
具体来说,在首次申请一项业务时,用户需要注册一个用户账号。即,用户通过客户端101向服务器102申请一个可用于服务器102核实用户身份的账号,该用户账号例如可以是用户ID。当成功注册用户账号以后,为了可靠地确保在通信状态下的用户账号的数据安全性,用户需要通过客户端101与服务器102执行密码生成处理。所生成的密码是服务器102对用户账号进行身份核实时使用的密码,该密码与用户账号存在着一一对应的关系。在本实施方式中,该密码也被称作“位置信息密码”。密码生成处理的具体过程如图2所示。
在步骤S201中,在启动口令认证业务时,接收由服务器基于图形密码而生成的图形矩阵(即第二图形矩阵)。为了便于与后续的其他图形矩阵进行区分,将该图形矩阵称作“密码图形矩阵”。在此,口令认证业务是指具有口令认证功能的业务,启动口令认证业务是表示针对用户已申请的业务开通口令认证功能的意思,即是首次执行口令认证业务的意思。也就是说,在首次执行口令认证业务时,客户端101从服务器102接收到密码图形矩阵后将其显示出来,供用户设定与位置信息密码相应的位置信息。在此,该密码图形矩阵是不附带字符的图形矩阵,例如该密码图形矩阵可以是空白的图形矩阵。该密码图形矩阵是基于图形密码的认证技术而生成的,其是如图8所示那样的矩阵式的图形。此外,也可以根据业务需求而预先任意地设置密码图形矩阵的大小,例如密码图形矩阵可以是8*4的图形矩阵。特别是,经多次试验得知,在将本申请应用于手机等移动设备时,密码图形矩阵优选为12*4的图形矩阵,采用这种大小的图形矩阵的原因是,这种尺寸适合于移动设备的显示装置,并且使用这种图形矩阵而设置的位置信息密码能够更好地确保用户数据的安全性。该12*4的图形矩阵具有48个位置,可以利用坐标唯一地标识该48个位置的每一个位置。
另外,关于启动口令认证业务的时机,可以根据各种业务的应用场景的不同需求来设定,例如可以在注册用户账号时执行,也可以在用户某次登录到服务器时执行。而且,启动口令认证业务这一动作可以任意设定,既可以由用户方发起,也可以由服务器方发起。
在步骤S202中,识别从密码图形矩阵中有序地选择出的任意位置,并记录所选位置对应的位置信息。换句话说,客户端101显示出密码图形矩阵以后,使用户在密码图形矩阵中任意地选择一部分位置,然后客户端101识别出用户所选择的这一部分位置,并按照所选择的顺序将这部分位置对应的位置信息记录下来。该位置信息例如可以包括每一个位置的坐标信息。图9是表示用户从密码图形矩阵中选择位置的示例,在该图中字母P所示的区域即为用户选择出的位置。实际上,由于图形矩阵是基于图形密码的认证技术而生成的,而图形密码是一种身份认证技术,它与传统的密码不同,图形密码使用图形作为认证媒介,通过用户对图形的点击、识别、重现进行认证。因此,在本申请中,在密码生成处理的过程中,用户通过有序地点击密码图形矩阵中的一部分位置来设定与位置信息密码相应的位置信息,用以生成位置信息密码。并且,在后续的口令认证处理过程中,用户通过随机地点击挑战码图形矩阵中的若干位置来设定挑战码,并使用该挑战码和基于位置信息密码而生成的口令来进行口令认证。关于挑战码图形矩阵,在后面进行叙述。
在步骤S203中,将位置信息发送到服务器,以使得将该位置信息记录为用户账号的位置信息密码,并将位置信息密码保存在服务器中。也就是说,位置信息是用于被服务器转换成位置信息密码的信息,且其被存储在服务器102的数据库中,供后续的口令认证处理所使用。
接着,说明口令认证处理的具体过程。
图3是本申请涉及的基于客户端的口令认证处理的示意流程图。
如图3所示,在步骤S301中,基于由服务器生成的图形矩阵(即第一图形矩阵)来设置挑战码。这里的图形矩阵与上述的密码图形矩阵不同,其不同点在于,该图形矩阵中的每个位置都存在一个由服务器随机产生的无序字符,而上述的密码图形矩阵不附带任何字符。因此,为了将该图形矩阵与上述的密码图形矩阵进行区分,将此处的图形矩阵称作“挑战码图形矩阵”。该挑战码图形矩阵的作用是用于用户设置挑战码。在此,挑战码是由挑战码图形矩阵所附带的一部分字符构成。实际上,为了在通信过程中保证用户的真实的密码不被泄露,考虑到可以采用设置挑战码的方式来解决密码泄露问题。即,不需要直接使用位置信息密码进行口令认证,而是使用挑战码来进行口令认证。使用挑战码的原因在于,挑战码是由字符构成,而位置信息密码是基于位置信息而得到的,两者之间不存在直接的关系,因此能够有效地确保位置信息密码不会被泄漏。此外,在每次进行口令认证时服务器102生成的挑战码图形矩阵中的字符均不相同,并且用户每次设置的挑战码所对应的位置也可以是不同的,因此每次使用的挑战码各不相同,即是一次一密的方式。这样,即使被监听者窃取到挑战码,窃取到的数据也只是由服务器随机生成的字符构成的字符串,而真实的密码(即位置信息密码)无法被还原,因此能够可靠地确保密码的安全性。进而,提高了用户数据的安全性。
另外,关于进行口令认证的触发条件,即设置挑战码的时机,既可以设定为每次登录服务器时均进行口令认证,也可以是根据各种业务的应用场景的不同需求而预先设定好进行口令认证的条件,当满足该条件时就进行口令认证。
关于设置挑战码的具体过程,如图4所示。图4是本申请的图3中S301涉及的设置挑战码的示意流程图。
具体来说,如图4所示,在步骤S401中,接收由服务器基于图形密码而生成的挑战码图形矩阵。也就是说,当用户通过客户端101登录到服务器102以后,在执行口令认证处理时,客户端101接收由服务器102基于图形密码而生成的挑战码图形矩阵,供用户进行挑战码的设置。如图10所示那样,该挑战码图形矩阵是附带有由服务器102随机产生的无序字符的图形矩阵,其大小与上述的密码图形矩阵相同。这些无序字符及其与挑战码图形矩阵的位置对应关系被存储在服务器102的缓存中。
在步骤S402中,识别从挑战码图形矩阵中选择的特定位置,将该特定位置对应的字符记录为挑战码。实际上,从用户的角度来看,用户从客户端101显示出的附带有字符的挑战码图形矩阵中选择出一部分字符作为挑战码。而从客户端的角度来看,用户从挑战码图形矩阵中选择一部分位置,客户端101识别用户所选的位置,并将这些位置对应的字符作为挑战码。在本实施方式中,挑战码是由挑战码图形矩阵中的特定位置对应的字符构成的字符串。特别是,在密码图形矩阵优选为12*4的图形矩阵的情况下,该特定位置的数量优选为四位或五位。但是,特定位置的数量不限于此,可以根据业务需求、图形矩阵的大小来任意地设定。
关于挑战码的设置,从挑战码的设置源的角度来看存在以下两种情况。
第一种情况是挑战码的设置源为真正的用户。在这种情况下,用户需要使用预先在密码生成处理中所生成的位置信息密码来设置挑战码。即,当接收到来自服务器102的挑战码图形矩阵以后,在挑战码图形矩阵中,与位置信息密码对应的位置范围内,用户按照位置信息密码对应的位置顺序随机地选择一部分特定位置后,客户端101将所选择出的这些特定位置对应的字符记录为挑战码。这里所说的随机地选择是指,可以按照顺位相邻地选择,也可以按照顺位间隔地选择,或者还可以按照顺位以相邻和间隔的组合方式进行选择。在此,特定位置可以是挑战码图形矩阵中的与位置信息密码对应的位置中的全部位置或一部分位置。另外,为了避免密码被窃取,优选挑战码所对应的位置的数目少于位置信息密码所对应的位置的数目。由以上描述可知,在第一种情况下,挑战码对应的位置就是位置信息密码对应的位置的一部分。实际上,在口令认证处理过程中仅使用挑战码而非位置信息密码来进行口令认证,能够有效地解决密码被泄漏的问题。这样做的好处是,由于挑战码是由字符构成的字符串,而位置信息密码是基于位置信息而得到的,因此,即使挑战码被他人窃取也不会还原位置信息密码本身。而且,由于用户每次通过客户端101从服务器102接收到的挑战码图形矩阵中随机生成的字符都是各不相同的,所以用户每一次选择的挑战码均不相同,因而,即使在口令认证的过程中被监听或者钓鱼,用户所设置的位置信息密码也不会被还原,从而能够可靠地使通信过程的数据安全性更高。
第二种情况是挑战码的设置源为非真正的用户、即监听者等。在这种情况下,用户无需按照一定的规则来设置挑战码。在此,为了与真正的用户进行区分,将非真正的用户、即监听者等称为“伪用户”。另外,将被监听者等窃取到的字符串称作“伪密码”。在这种情况下,如果伪用户拥有已窃取到的伪密码时,则伪用户在挑战码图形矩阵中选择该伪密码,客户端101识别出该伪密码对应的位置,将这些位置对应的字符记录为挑战码。另一方面,如果伪用户不拥有任何伪密码,则伪用户从挑战码图形矩阵中任意地选择一部分位置,客户端101识别出这些位置,将这些位置对应的字符记录挑战码。在第二种情况下,伪用户不会按照一定的规则从挑战码图形矩阵中选择位置,由此形成的挑战码也与位置信息密码无任何关系。
以上,说明了设置挑战码的两种情况。然而,实际上,无论采用哪种方式来设置挑战码,都可以通过将挑战码与后述的口令进行比对来实现口令认证。
返回至图3,在步骤S302中,将挑战码发送到服务器,以使得判定挑战码是否顺序地存在于由服务器生成针对用户账号的口令中。也就是说,客户端101向服务器102发送挑战码之后,服务器102基于用户账号的位置信息密码和挑战码图形矩阵来生成口令,然后判定挑战码是否顺序地存在于口令中。具体来说,服务器102根据存储在服务器102的缓存中的挑战码图形矩阵中的无序字符及其与挑战码图形矩阵的位置对应关系,将位置信息密码转换成由字符构成的字符串来作为口令。也即是说,可以从位置信息密码中取回针对该用户账号的顺序位置坐标,并将挑战码图形矩阵中的相应顺序位置坐标上的字符构成的字符串作为口令。接着再判定挑战码所包含的各字符是否顺序地排列在作为口令的字符串中。如果判定为挑战码顺序地存在于口令中,则口令认证成功,反之,则口令认证失败。
至此,完成基于客户端的口令认证。
<基于服务器的口令认证方法>
本申请的另一方面,提供一种基于服务器的口令认证方法。本方法适用于服务器102。下面,结合图5~图7来说明基于服务器的口令认证方法。关于与上述基于客户端的口令认证方法相同的内容,在此省略说明。
同样地,基于服务器的口令认证方法也包括密码生成处理和口令认证处理这两个方面。而且,密码生成处理和口令认证处理之间存在着既相互独立又相互关联的关系。
下面,首先说明密码生成处理的具体过程。
图5是本申请涉及的基于服务器的密码生成处理的示意流程图。
在用户成功申请了用户账号以后,为了可靠地确保在通信状态下的用户账号的数据安全性,需要设置一个用于认证用户身份的密码。在本实施方式中,该密码也被称作“位置信息密码”。因此,服务器102通过与客户端101之间的数据交互来进行位置信息密码的生成处理。该密码生成处理的具体过程如图5所示。
具体来说,在步骤S501中,在启动口令认证业务时,基于图形密码生成图形矩阵(即第二图形矩阵),并将该图形矩阵发送到客户端。为了便于与后续的其他图形矩阵进行区分,将该图形矩阵称作“密码图形矩阵”。在此,口令认证业务是指具有口令认证功能的业务,启动口令认证业务是表示首次执行口令认证业务的意思。换句话说,在首次执行口令认证业务时,服务器102基于图形密码生成密码图形矩阵,并将其发送到客户端101,供用户进行位置信息密码所对应的位置信息的设定。该密码图形矩阵是不附带字符的图形矩阵,例如可以是空白的图形矩阵。此外,可以根据业务需求而预先任意设置密码图形矩阵的大小,例如密码图形矩阵可以设置为12*10的图形矩阵。特别是,在将本申请应用于手机等移动设备时,密码图形矩阵优选为12*4的图形矩阵。关于启动口令认证业务的时机,可以根据各种业务的应用场景的不同需求来设定,例如可以在注册用户账号时执行,也可以在用户某次登录到服务器时执行。而且,启动口令认证业务这一动作可以任意设定,既可以由用户方发起,也可以由服务器方发起。
在步骤S502中,接收由客户端使用密码图形矩阵而设定的位置信息。也就是说,在客户端101接收到如图9所示那样的密码图形矩阵以后,使用户在密码图形矩阵中选择一部分位置,由客户端101识别出这些位置,并按照所选顺序记录这些位置对应的位置信息,然后由客户端101将该位置信息发送给服务器102,用以生成位置信息密码,供在后续的口令认证处理中使用。另外,位置信息的记录方式可以采用坐标的方式,但不限于此,只要该记录方式能够表现出与选择顺序有关的位置信息即可。
在步骤S503中,将位置信息记录为用户账号的位置信息密码,并保存该位置信息密码。也就是说,服务器102接收到来自客户端101的位置信息以后,将该位置信息与用户账号相关联地记录为位置信息密码,并将该位置信息密码保存在数据库中。通过将位置信息与用户账号相关联,可以在后续的口令认证过程中,直接根据用户账号来获得与其相对应的位置信息密码。实际上,位置信息密码的生成,意味着为后续的口令认证处理提供了认证依据。
由此,完成密码生成处理。
接着,说明口令认证处理的具体过程。
图6是本申请涉及的基于服务器的口令认证处理的示意流程图。
如图6所示,在步骤S601中,基于图形密码生成图形矩阵(即第一图形矩阵),并将该图形矩阵发送到客户端。为了将该图形矩阵与上述的密码图形矩阵进行区分,将此处的图形矩阵称作“挑战码图形矩阵”。也就是说,在用户通过客户端101登录到服务器102后,当需要进行口令认证时,服务器102基于图形密码技术生成挑战码图形矩阵,供用户来设置挑战码。此外,如图10所示,挑战码图形矩阵是附带有由服务器102随机产生的无序字符的图形矩阵,其大小与上述的密码图形矩阵的大小相同。如上所述,这些无序字符及其与挑战码图形矩阵的位置对应关系被存储在服务器102的缓存中。
另外,关于进行口令认证的触发条件,即用户通过客户端登录到服务器以后是否进行口令认证,可以根据业务的应用场景的不同需求来设定。
在步骤S602中,接收由客户端使用挑战码图形矩阵而设置的针对用户账号的挑战码。也就是说,在客户端101显示了来自服务器102的挑战码图形矩阵以后,由于该挑战码图形矩阵附带有随机生成的字符,所以使用户在该挑战码图形矩阵中选择一部分位置,客户端101将这些位置对应的字符记录为挑战码,然后将该挑战码发送给服务器102。由此可知,挑战码是由从挑战码图形矩阵中选择的位置对应的字符构成的字符串。
关于挑战码的设置,从挑战码的设置源的角度来看存在以下两种情况。
第一种情况是挑战码的设置源为真正的用户。在这种情况下,用户需要使用预先在密码生成处理中所生成的位置信息密码来设置挑战码。即,在挑战码图形矩阵中,与位置信息密码对应的位置范围内,用户按照位置信息密码对应的位置顺序随机地选择一部分特定位置,客户端101识别出这些特定位置,并将这些特定位置对应的字符记录为挑战码。在此,特定位置可以是挑战码图形矩阵中的与位置信息密码对应的位置中的全部位置或一部分位置。所说的随机地选择是指,可以按照顺位相邻地选择,也可以按照顺位间隔地选择,或者还可以按照顺位以相邻和间隔的组合方式进行选择。为了避免口令被窃取,优选挑战码所对应的位置的数目少于位置信息密码所对应的位置的数目。在这种情况下,由于挑战码对应的位置是位置信息密码对应的位置的一部分,因此,通过在口令认证处理过程中仅使用挑战码而非位置信息密码来进行口令认证,能够有效地解决口令被泄漏的问题。即使在被监听或者钓鱼的情况下,即在挑战码被他人窃取的情况下,也无法还原口令本身。
第二种情况是挑战码的设置源为非真正的用户、即监听者等。在这种情况下,用户无需按照一定的规则来设置挑战码。在此,为了与真正的用户进行区分,将非真正的用户、即监听者等称为“伪用户”。此外,将被监听者等窃取到的字符串称作“伪密码”。在这种情况下,如果伪用户拥有窃取到的伪密码时,则伪用户在挑战码图形矩阵中选择该伪密码,客户端101识别出该伪密码对应的位置,将这些位置对应的字符记录为挑战码。另一方面,如果伪用户不拥有任何伪密码,则伪用户从挑战码图形矩阵中任意地选择一部分位置,客户端101识别出这些位置,将这些位置对应的字符记录挑战码。在第二种情况下,伪用户不会按照一定的规则从挑战码图形矩阵中选择位置,由此形成的挑战码也与位置信息密码毫无关系。
同样地,无论采用哪种方式来设置挑战码,都可以通过将挑战码与后述的口令进行比对来实现口令认证。
在步骤S603中,基于挑战码图形矩阵和存储在服务器中与用户账号相关联的位置信息密码生成口令。也就是说,为了将挑战码与作为认证依据的位置信息密码进行比对,需要将位置信息密码转换成由挑战码图形矩阵所附带的字符构成的字符串。因此,服务器102基于自身生成的挑战码图形矩阵和预先存储在数据库中的位置信息密码,生成可用于与挑战码进行比对的口令。关于生成口令的具体过程如图7所示。
图7是本申请的图6中S603涉及的口令生成过程的示意流程图。
如图7所示,在步骤S701中,获取挑战码图形矩阵所附带的所有字符、所有字符与该挑战码图形矩阵的位置对应关系以及与用户账号相关联的位置信息密码。也就是说,服务器102从缓存中获取挑战码图形矩阵所附带的所有字符、所有字符与该挑战码图形矩阵的位置对应关系,从数据库中获取与用户账号相关联的位置信息密码。
在步骤S702中,基于所有字符、位置对应关系以及位置信息密码,计算出位置信息密码对应的字符信息以将该字符信息作为口令。在此,字符信息是指由若干个字符构成的字符串。也就是说,由于挑战码图形矩阵与密码生成处理中的密码图形矩阵的大小相同,所以,根据挑战码图形矩阵所附带的无序字符以及无序字符与挑战码图形矩阵之间的位置对应关系,就可以将位置信息密码转换成由挑战码图形矩阵所附带的字符构成的字符串。即,生成与位置信息密码相对应的口令。
返回至图6,在步骤S604中,判定挑战码是否顺序地存在于口令中。也就是说,对于挑战码是否顺序地存在于口令中,需要判定两个方面:一是,按照构成挑战码的字符的顺序,将每个字符依次与口令进行比对,检验每个字符是否存在于口令中;二是,对于挑战码而言,需要判定当前的字符在口令中的位置是否位于相邻的前一个字符在口令中的位置之后。
进而,如果挑战码所包含的各字符顺序地存在于口令中,则进入步骤S605,即判定为口令认证成功。反之,则进入步骤S606中,即判定为口令认证失败。
例如,假设口令是cadhieg,挑战码是ahg,那么只需判定字符a、h、g是否顺序地排列在字符串cadhieg中。通过比对可知,字符a、h、g是顺序地排列在字符串cadhieg之中,因此可判定为口令认证成功。
又例如,假设口令是cadhieg,挑战码是abg,那么需要判定a、b、g是否顺序地排列在字符串cadhieg中。经比对可知,字符b不存在于字符串cadhieg中,因此可判定为口令认证失败。
至此,完成基于服务器的口令认证处理。
<实施例>
下面,参照图8至图10,并结合基于客户端的口令认证方法和基于服务器的口令认证方法,举例说明整个系统的口令认证处理的过程。图8是本申请涉及的密码图形矩阵的示意图,图9是本申请涉及的用户从密码图形矩阵中选择位置的示意图,图10是本申请涉及的挑战码图形矩阵的示意图。
首先,用户通过客户端101申请了一个用于服务器102核实用户身份的账号,并将该用户账号保存在服务器102的数据库中。在此,将用户账号设为用户ID。
下面,结合实例描述密码生成处理。
如图8所示,在启动口令认证业务时,服务器102基于图形密码而生成一个12*4的图形矩阵,并显示在客户端101上。
然后,用户在图8所示的密码图形矩阵中选择任意的位置。如图9所示,p序列所对应的位置即是用户选择的位置。接着,通过客户端101识别出所选位置,并将这些位置对应的位置信息以坐标的形式有序地记录下来。即,所记录的位置信息是(1,1),(1,2),(1,3),(1,4),(2,4),(3,4),(12,1),(12,2),(12,3),(12,4),(11,4),(10,4),(9,4)。并且,客户端101将所记录的位置信息发送给服务器102。
接着,服务器102从客户端101接收到位置信息以后,将该位置信息记录为与用户ID相关联的位置信息密码,并将该位置信息密码保存在服务器102的数据库中。
下面,结合实例描述口令认证处理。
当用户登录到服务器102而需要进行口令认证时,服务器102基于图形密码再次生成一个如图10所示那样的字符图形矩阵,该字符图形矩阵的每行与每列交叉的位置均附带有随机生成的字符即无序数字。当然,字符不限于数字,也可以是字母等字符。另外,字符图形矩阵中的数字信息和这些数字信息与图形矩阵的位置对应关系均被暂时存储在服务器102的如用户session这样的缓存中。并且,将该附带有无序数字的字符图形矩阵发送到客户端101。
接着,当用户看到该字符图形矩阵后,随机地选择若干(例如四个)位置,将这些位置对应的字符作为本次口令认证的挑战码。实际上,用户无需记住这些数字,也无需输入全部的数字,只需要在该图形矩阵内选择若干位置即可。然后,客户端记录所选位置对应的字符,并将其作为挑战码。在本步骤中,假定用户所设置的挑战码是0963(或4037)。然后,通过客户端101将该挑战码发送到服务器102。
然后,服务器102根据预先存储在用户session中的图片数字信息和保存在数据库中的位置信息密码所对应的坐标值来生成口令,该口令为4001309069358。接着,根据该口令(400130906935)和挑战码(0963(或4037)),判定挑战码包含的各数字0、9、6、3(或4、0、3、7)是否存在于口令(4001309069358)中。即,在本次的挑战码是0963的情况下,由于挑战码包含的数字0、9、6、3依次排列在口令4001309069358中,则判定为口令认证成功。相对于此,在本次的挑战码是4037的情况下,发现数字7不存在于口令4001309069358中,从而导致挑战码4037没有依次存在于口令中,则判定为口令认证失败。
由此,系统完成口令认证处理。
通过采用本申请的口令认证方法,即使监听者获取到图10的信息以及用户选择的挑战码,也难以还原出用户的位置信息密码。其原因是,监听者获取到的数据只是服务器102随机产生的无序字符,而不是用户设定的位置信息,因此仅凭获取到的字符是无法还原用户的位置信息密码。但是,服务器却可以根据用户的挑战码来验证用户的身份。由此可见,通过采用本申请的口令认证方法,能够可靠地确保口令的安全性,进而提高用户数据的安全性。
<系统的各部分构成>
下面,参照图11以及图12来说明用于口令认证的系统100的各部分构成。
[客户端101]
图11是本申请涉及的客户端101的结构示意图。如图11所示,图1所示的客户端101可以包括第一密码生成装置1001和第一口令认证装置1002。
具体来说,第一密码生成装置1001是用于与服务器102进行位置信息密码的生成的装置。
第一口令认证装置1002是用于与服务器102进行口令认证的装置。
如图11所示,第一密码生成装置1001可以进一步包括第二接收装置1011、第二识别装置1012以及第二发送装置1013。
第二接收装置1011是用于在启动口令认证业务时接收由服务器102基于图形密码而生成的密码图形矩阵的装置。该密码图形矩阵是不附带字符的图形矩阵。
第二识别装置1012是用于识别从密码图形矩阵中有序地选择出的任意位置、并记录所选位置对应的位置信息的装置。
第二发送装置1013是用于将位置信息发送到服务器102,以使得将该位置信息记录为用户账号的位置信息密码,并将该位置信息密码保存在服务器102中的装置。
如图11所示,第一口令认证装置1002可以进一步包括设置装置1021和第一发送装置1022。
具体来说,设置装置1021是用于基于由服务器102生成的挑战码图形矩阵来设置针对用户账号的挑战码的装置。
第一发送装置1022是用于将挑战码发送到服务器102,以使得判定挑战码是否顺序地存在于由服务器102生成针对用户账号的口令中的装置。该口令是基于挑战码图形矩阵和用户账号的位置信息密码来生成。
进而,设置装置1021可以进一步包括第一接收装置1031和第一识别装置1032。
第一接收装置1031是用于接收由服务器102基于图形密码而生成的挑战码图形矩阵的装置。该挑战码图形矩阵是附带有随机产生的无序字符的图形矩阵。并且,该挑战码图形矩阵与上述的密码图形矩阵的大小相等。
第一识别装置1032是用于识别从挑战码图形矩阵中选择的特定位置,将该特定位置对应的字符记录为挑战码的装置。由此可知,挑战码是指由特定位置对应的字符构成的字符串。
[服务器102]
图12是本申请涉及的服务器102的结构示意图。如图12所示,服务器102可以包括第二密码生成装置1201和第二口令认证装置1202。
第二密码生成装置1201是用于与客户端101进行位置信息密码的生成的装置。
第二口令认证装置1202是用于与客户端101进行口令认证的装置。
如图12所示,第二密码生成装置1201可以进一步包括第二生成装置1211、第四接收装置1212以及保存装置1213。
具体来说,第二生成装置1211是用于在启动口令认证业务时基于图形密码生成密码图形矩阵,并将密码图形矩阵发送到客户端101的装置。该密码图形矩阵是不附带字符的图形矩阵。
第四接收装置1212是用于接收由客户端101使用密码图形矩阵而设定的位置信息的装置。
保存装置1213是用于将位置信息记录为用户账号的位置信息密码,并保存该位置信息密码的装置。
如图12所示,第二口令认证装置1202可以进一步包括第一生成装置1221、第三接收装置1222、口令生成装置1223以及判定装置1224。
具体来说,第一生成装置1221是用于基于图形密码生成挑战码图形矩阵,并将挑战码图形矩阵发送到客户端101的装置。该挑战码图形矩阵是附带有由服务器102随机产生的无序字符的图形矩阵,其大小与上述的密码图形矩阵相同。
第三接收装置1222是用于接收由客户端101使用挑战码图形矩阵而设置的针对用户账号的挑战码的装置。
口令生成装置1223是用于基于挑战码图形矩阵和存储在服务器102中与用户账号相关联的位置信息密码生成口令的装置。
判定装置1224是用于判定挑战码是否顺序地存在于口令中的装置。
其中,口令生成装置1223可以进一步包括获取装置1231和计算装置1232。
获取装置1231是用于获取挑战码图形矩阵所附带的所有字符、所有字符与挑战码图形矩阵的位置对应关系以及与用户账号相关联的位置信息密码的装置。
计算装置1232是用于基于所有字符、位置对应关系以及位置信息密码来计算出位置信息密码对应的字符信息以将该字符信息作为口令的装置。
本申请的客户端101和服务器102所包括的各个模块的具体实施与本申请的方法中的步骤的具体实施是相对应的,为了不模糊本申请,在此省略不再对各个模块的具体细节进行描述。
本申请的方法、设备以及系统可以在任何可以进行口令认证的设备中应用。所述可以进行口令认证的设备可以包括但不限于:台式电脑、移动终端设备、膝上型电脑、平板电脑、个人数字助理等。
在本申请中,仅举例说明了将本申请涉及的技术方案与数字图形密码的结合的情况,但不限于此,也可以将本申请涉及的技术方案与卡片图形密码的结合来进行应用。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。