一种口令认证方法及装置与流程

文档序号:12600352阅读:674来源:国知局
一种口令认证方法及装置与流程

本申请涉及认证技术领域,尤其涉及一种口令认证方法及装置。



背景技术:

认证是用可靠的技术验证某个实体身份的过程,在计算机、互联网等应用领域,用户身份认证是一种最基本的需求,常用的技术包括口令认证、物理认证、生物特征认证等,其中口令认证以其实现简单、使用方便等特点成为应用最为广泛的认证方式。

口令认证方式的主要缺陷是面临被暴力破解的问题,目前解决该问题主要有以下几种思路:

1)让用户设置比较复杂的口令,例如增加口令位数、使用无规律字符组合、字母、数字、特殊字符混用等等。这种方法在理论上能够增加破解难度,缺点是会增加用户的记忆成本,输入起来也更为麻烦。

2)结合随机问题、图形校验码等方式来增加穷举的困难。这种方法的缺点是会增加用户的输入成本,而且还会由于图像不清晰,输入超时等原因导致输入失败。



技术实现要素:

针对上述技术问题,本申请提供一种口令认证方法及装置,技术方案如下:

一种口令认证方法,用于认证的口令由自定义认证信息序列部分及自定义输入状态部分组成,所述认证方法包括:

判断口令输入方是否在正确的输入状态下输入了正确的认证信息序列,如 果是则认证成功,否则认证失败。

一种口令认证装置,其特征在于,用于认证的口令由自定义认证信息序列部分及自定义输入状态部分组成,所述认证装置包括:

输入状态检测模块,用于检测口令输入方的输入状态;

认证信息序列接收模块,用于接收口令输入方输入的认证信息序列;

认证模块,用于判断口令输入方是否在正确的输入状态下输入了正确的认证信息序列,如果是则认证成功,否则认证失败。

本申请实施例所提供的技术方案,为认证口令增加一个新的维度:输入状态,用户必须在正确的输入状态下输入正确的认证信息序列才能认证成功,与现有的口令认证方式相比,增加的维度有效地扩展了口令的组合方式,而且能够更有效地保证口令输入方的“真实用户”属性,从而减少被机器暴力破解的可能;另一方面,应用本申请方案,仅使用简单的字符序列+输入方式的组合,就能够形成安全性较高的口令,从而更便于用户记忆和输入。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1是本申请的口令认证方法的流程示意图;

图2是本申请的口令认证装置的结构示意图。

具体实施方式

现有的口令认证系统,防止暴力破解的解决思路主要有两种:1)使用更长更复杂的口令,2)增加“真实用户”验证机制,然而这两种方式都会不同程度 地增加用户的操作负担。针对该问题,本申请采用一种新的思路来防止暴力破解,具体方案如下:

用于认证的口令由自定义认证信息序列部分以及自定义输入状态部分组成,用户必须在正确的输入状态下输入正确的认证信息序列才能认证成功。

现有的口令都是由一维的认证信息序列构成,较为常见的是字符序列,例如纯数字序列、字母数字混合序列等等,此外还有一些特殊形式的信息序列,例如图形序列、颜色序列等等。在这种机制下,增加口令的长度以及增加可用信息码字都可以有效增加排列组合的数量,从而提升暴力破解的难度,然而这样做的缺点是会给用户的记忆和输入都带来麻烦。跟据本申请所提供的口令认证方案,在原有认证信息序列的基础上,增加了一个新的维度:输入状态。一方面,通过“输入状态”的变化可以有效增加口令的排列组合数量,相应地可以减少认证信息序列的长度和复杂度;另一方面,“输入状态”难以用机器模拟实现,具有天然的真实用户验证效果,而且“输入状态”本身是口令的一部分,不需要用户在输入口令时额外输入其他验证信息,从而也可以减小输入失败的可能性。

为了使本领域技术人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请保护的范围。

图1所示,为本申请提供的口令认证方法的流程图,该方法可以包括以下步骤:

S101判断口令输入方是否在正确的输入状态下输入了正确的认证信息序列,如果是则认证成功(S102),否则认证失败(S103)。

本申请方案中的口令,由“认证信息序列”和“输入状态”两部分组成,两个部分均可以由用户自行定义。其中“认证信息序列”与现有的一维口令相同,可以是普通的字符序列,也可以是特殊形式的信息序列,例如图形序列、 颜色序列等等。用户可以直接利用实体输入设备(例如键盘)输入认证信息序列,也可以利用通过触摸、鼠标点击等操作在虚拟键盘上完成认证信息序列的输入。

对于“输入状态”,可以从以下几个方面来定义:

1)能够与“认证信息序列”的输入操作同步进行;

2)认证系统侧能够感知;

3)用户可以直接“制造”这种状态。

根据本申请方案,要求“制造正确的输入状态”和“输入正确的认证信息序列”两个条件同时满足才能够正确认证,实际应用中,建议在这两个条件之间建立一定的关联,以减少分别被破解的可能性。例如,认证信息序列的输入可以受输入状态的影响,在输入状态不正确的情况下,无论用户输入什么样的认证信息序列都应该是无效的。也就是说,在不了解正确输入状态的情况下,暴力破解认证信息序列是无法实现的。

以下将通过若干实例,对本申请的口令认证方案进行说明:

首先,从“系统可感知”的角度考虑,最直接的方式是通过键盘、鼠标等输入设备来直接定义输入状态,例如,定义认证口令如下:

在按住0键的同时,输入字符序列“1234”。

其中“按住0键”为自定义的输入状态,“1234”则为自定义认证信息序列。在这种认证机制下,用户输入序列“1234”的操作,必须在按住0键的同时完成才有效。

在上述方案的基础上,还可以对“输入状态”做各种形式的替换,例如:“同时按住a键和s键”、“按住空格键”、“按住鼠标左键”等等。

如果是采用虚拟键盘输入,则“输入状态”的定义还可以进一步扩展,例如:“按住虚拟键盘上的一个或多个按键”,这里的虚拟按键既可以是普通的字符按键,也可以是用于输入特殊信息的按键,例如颜色、表情、特殊符号等等。此外,还可以是“按住屏幕特定区域(例如左上角)”、“m指同时按住触摸屏上的任意区域(即保证m个触摸点)”等等。

上述的自定义输入状态可以总结为:保持认证信息序列输入设备持续输出自定义状态信息的状态。其中,持续输出的方式可以是用户自定义的,例如按住鼠标按键、按住键盘按键等等,持续输出的内容也可以是自定义的,例如具体按住哪些按键,由此可以产生大量的排列组合。但是对于用户而言,真正需要记忆的内容实际又非常简单,例如“按住鼠标左键”“按住键盘a键”等等,由于在“输入状态”维度增加了认证口令的复杂度,用户可以定义更为简短、容易记忆的认证信息序列,而且“输入方式”本身就包含着对输入方是真实用户的需求,这又进一步降低了被暴力破解的风险。因此本申请方案可以在不增加用户使用难度的情况下有效提升认证口令的使用安全性。

当然,在上述方案的基础上,仍然可以进一步改进认证口令以增加安全性,一种可用的方案是,将认证信息序列拆分为若干个子序列,每个子序列分别对应自身的输入状态,例如,定义认证口令如下:

完整的认证字符序列为“1234”,认证输入时,要求在按住x键的同时,输入子序列“12”,然后在按住y键的同时,输入子序列“34”。

在上述认证口令中,将认证字符序列为“1234”拆分为两个子序列,并且每个序列分别对应定义一种输入状态。用户在输入口令时,需要分别在每个正确的输入状态下输入正确的认证信息子序列,才能够通过认证。

再例如:完整的认证字符序列为“123456”,认证输入时,要求在按住x键的同时,输入子序列“12”、在不按住任何按键时,输入子序列“34”、在按住鼠标右键的同时,输入子序列“56”。

在上述认证口令中,将认证字符序列为“123456”拆分为三个子序列,并且每个序列分别对应定义一种输入状态,需要注意的是,这里将“不按住任何按键”也看作是一种输入状态。用户在输入口令时,同样要求分别在每个正确的输入状态下输入正确的认证信息子序列,才能够通过认证。

可以理解的是,通过对认证序列的拆分,还可以定义更为复杂的输入状态组合方式,本申请中不做一一列举。通过这种方式,不仅进一步增加了口令组合的复杂度,而且通过多次变换输入方式,也使得用户的输入行为隐蔽性更强, 从而降低被跟踪记录的可能性。

在上述方案中,通过直接利用鼠标、键盘等基本输入设备定义输入状态,这样做的好处是实现简单,不需要引入其他功能模块。而在终端设备中,除了鼠标、键盘等一般意义上的信息输入设备,还包括如麦克风、摄像头,各类传感器等信息感应模块,这些信息感应模块在广义上都属于信息输入设备,因此都可以用来定义本申请的“输入状态”,通过与鼠标、键盘等认证信息序列输入设备相配合,实现口令认证,具体而言,可以将信息感应模块可持续感应到的某种自定义场景信息的状态定义为输入状态,举例说明如下:

在无法感应光照的情况下,输入字符序列“1234”。用户可以用手指挡住摄像头以满足该输入状态;

在移动终端向左倾斜的情况下,输入字符序列“1234”。该输入状态需要配合移动终端上的姿态传感模块感应实现;

在指纹传感器能够采集到指纹的情况下,输入字符序列“1234”。值得注意的是,这里只是利用指纹传感器的采集功能定义“输入状态”,而并不需要利用采集到的指纹进行认证。

理论上,任何可以用来采集信息的模块都可以用来定义本申请的“输入状态”,本申请中不再一一列举,当然,在实际应用中还需要考虑便利性、实用性隐蔽性等因素,本领域技术人员可以根据实际需求灵活实施。

从信息处理的角度,认证系统需要存储的口令由两部分构成,这两部分可以式为fn(x)和S,其中S代表认证信息序列,而fn(x)则以函数值的形式代表“输入状态”,其中n取不同值代表不同的输入状态定义方式,例如f1(x)代表按住键盘上的按键、f2(x)代表按住鼠标上的按键,等等。而x的不同取值则代表在某一确定的输入状态定义方式下的具体状态要求,例如f1(“a”)代表按住键盘上的a键,f1(“b”)代表按住键盘上的b键,等等。

在用户定义口令阶段,认证系统根据用户定义的输入状态计算出fn(x)的值后,与认证信息序列S共同保存在系统中;在认证阶段,系统通过感应当前输入状态计算出fn(x)的值,并且获取用户当前输入的认证信息序列,与口令定义 阶段所保存的fn(x)及S进行对比,如果完全一致,则认证通过。在一种改进的实施方式中,系统也可以先根据感应计算出当前的fn(x)值,与口令定义阶段所保存的fn(x)对比一致后,才将后续认证信息序列的输入操作视为有效,也就是说,如果输入状态错误,那么即便用户输入了正确的认证信息序列,系统也不会做出任何反应。

函数fn()可以是一个保密的函数,除了与用户输入内容相关之外,还可以增加其他相关参数,例如,对于一个基于连续按住某字符按键定义的输入状态,其对应函数可以是f(字符,频率)、f(字符,频率,干扰码)、f(字符,时间,频率,干扰码)、f(区域位置像素点,时间,干扰码)等形式,通过这种定义复杂保密函数的方式进一步提高暴力破解的难度。

相应于上述方法实施例,本申请还提供一种口令认证装置,参见图2所示,该装置可以包括:

输入状态检测模块110,用于检测口令输入方的输入状态;

认证信息序列接收模块120,用于接收口令输入方输入的认证信息序列;

认证模块130,用于判断口令输入方是否在正确的输入状态下输入了正确的认证信息序列,如果是则认证成功,否则认证失败。

在本申请的一种具体实施方式中,认证信息序列由1个以上的认证信息子序列组成,且为每个子序列分别定义对应的输入状态;

相应地认证模块130可以具体用于:判断口令输入方是否分别在正确的输入状态下输入了正确的认证信息子序列。

在本申请的一种具体实施方式中,自定义输入状态可以包括:保持输入设备持续输出自定义状态信息的状态。其中,保持输入设备持续输出自定义状态信息的状态,可以包括:持续按住输入设备自定义实体按键或自定义虚拟按键的状态。

在本申请的一种具体实施方式中,自定义输入状态可以包括:保持与输入设备相配合的传感器模块可持续感应到自定义场景信息的状态。

上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步 骤的实现过程,在此不再赘述。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本申请方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1