CN104021323A - 用于口令验证的方法和装置 - Google Patents
用于口令验证的方法和装置 Download PDFInfo
- Publication number
- CN104021323A CN104021323A CN201310064536.5A CN201310064536A CN104021323A CN 104021323 A CN104021323 A CN 104021323A CN 201310064536 A CN201310064536 A CN 201310064536A CN 104021323 A CN104021323 A CN 104021323A
- Authority
- CN
- China
- Prior art keywords
- button
- user
- keyboard
- character
- password
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/36—User authentication by graphic or iconic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/83—Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2133—Verifying human interaction, e.g., Captcha
Abstract
本发明涉及用于口令验证的方法和装置。公开了一种口令验证方法,该方法包括:根据用户对键盘的操作而生成一组有序候选字符,所述键盘的至少一个按键与至少两个字符相关联,其中所述用户对所述键盘的任何一个按键的单次操作导致与该按键相关联的字符被选为具有相同顺序的候选字符;以及验证由所述有序候选字符组成的字符串之一是否与所述用户的口令相匹配。还公开了相应的口令验证装置。利用本发明的实施例,可以提高口令验证的安全性。
Description
技术领域
本发明总体上涉及人机交互技术,更具体地,涉及用于口令验证的方法和装置。
背景技术
随着计算机和网络技术的发展,信息安全已经变得越发重要。例如,很多操作需要用户登录之后才能执行。口令(password)验证是一种得到广泛使用登录安全机制。用户只有在输入正确的口令之后才被允许进行后续的动作。口令通常由英文字母、阿拉伯数字和/或其他字符组成。用户可以借助于键盘之类的输入设备键入口令。备选地,已经提出利用虚拟键盘输入口令的方案。虚拟键盘是在用户界面(例如,图形用户界面GUI)上绘制的交互工具,具有可操作的按钮以供用户输入字符。某些解决方案还允许用户在用户界面上输入预先定义的图形或路径作为口令。
在上述传统口令验证机制中,口令具有被他人窃取的风险。例如,恶意第三方可能侵入用户所使用的计算机系统并且安装木马程序。这种木马程序非法地记录、传播或者使用用户通过用户界面输入的口令。此外,在诸如自动出纳机(Automatic TellerMachine,ATM)等终端设备上,恶意第三方可能安装照相机、摄像机之类的图像/视频捕获设备。这些设备可以记录用户按压按键的顺序并由此获得用户所输入的口令。又如,用户所输入的口令可能被旁观者看到并记下,从而导致口令的泄露。
可见,本领域中需要一种更为安全的口令验证机制,允许用户以更为安全的方式键入口令,同时不影响用户交互的方便性和效率。
发明内容
鉴于现有技术中存在的上述问题以及其他潜在问题,本发明提供一种用于口令验证的方法和装置。
在本发明的一个方面,提供一种口令验证方法。该方法包括:根据用户对键盘的操作而生成一组有序候选字符,所述键盘的至少一个按键与至少两个字符相关联,其中所述用户对所述键盘的任何一个按键的单次操作导致与该按键相关联的字符被选为具有相同顺序的候选字符;以及验证由所述有序候选字符组成的字符串之一是否与所述用户的口令相匹配。
在本发明的另一方面,提供一种口令验证装置。该装置包括:候选字符生成单元,被配置为根据用户对键盘的操作而生成一组有序候选字符,所述键盘的至少一个按键与至少两个字符相关联,其中所述用户对所述键盘的任何一个按键的单次操作导致与该按键相关联的字符被选为具有相同顺序的候选字符;以及口令验证单元,被配置为验证由所述有序候选字符组成的字符串之一是否与所述用户的口令相匹配。
通过下文描述将会清楚,根据本发明的实施例,键盘的至少一个按键可以与至少两个字符相关联。在操作中,用户对任一按键的单次都将操作将导致与该按键相关联的所有字符被选为具有相同顺序的候选字符,无需用户指明究竟期望输入哪个特定的字符。这样,用户对键盘的操作可以生成一组有序的候选字符。如果这些有序候选字符所组成的多个字符串中的任何一个字符串与用户的口令相匹配,则可以认为用户输入了正确的口令。特别地,键盘可以是随机生成的虚拟键盘。以此方式,即使第三方通过非法手段记录了用户操作按键的顺序,也无法窃取用户的口令。由此,用户口令验证的安全性得以提高,同时确保了操作效率和便捷性。
附图说明
通过结合附图对本发明示例性实施方式进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显其中:
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的示意性框图;
图2示出了根据本发明一个示例性实施例的口令验证方法200的流程图;
图3-图7分别示出了根据本发明示例性实施例的虚拟或实体键盘300-700的示意性框图;以及
图8示出了根据本发明一个示例性实施例的口令验证装置800的示意性框图。
贯穿所有附图,相同或相似的标号被用来表示相同或相似的元素。
具体实施方式
下面将参照附图更详细地描述本发明的优选实施方式。虽然附图中显示了本发明的优选实施方式,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明可以实现为装置、方法或计算机程序产品。因此,本发明可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是-但不限于-电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括-但不限于-电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括-但不限于-无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络-包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
下面参考附图详细描述根据本发明的示例性实施例。图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括-但不限于-操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管未在图中示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
下面参考图2,其示出了根据本发明一个示例性实施例的口令验证方法200的流程图。方法200开始之后,在步骤S201,根据用户对键盘的操作生成一组有序候选字符。
根据本发明的某些实施例,在步骤S201处操作的键盘可以是虚拟键盘。在这样的实施例中,在步骤S201之前可以具有一个可选步骤,用于生成并且向用户呈现一个虚拟键盘,例如称为第一虚拟键盘。本领域的技术人员知道,虚拟键盘是在指在计算机系统中被生成并且在用户界面上被显示以供用户操作的一种交互工具。虚拟键盘具有一个或多个称为“虚拟按键”或简称“按键”的交互元素,每个按键与预定的字符相关联。通过操作(例如,按压、点击)虚拟键盘的按键,可以将与该按键相关联的字符输入计算机系统。
注意,在本发明的上下文中,字符可以包括英文字母、阿拉伯数字、数学符号、标点符号、斜线、反斜线、星号、井号等各种可以用来构成口令的字符。本发明的范围在此方面不受限制。
根据发明的实施例,虚拟键盘可以始终呈现在用户界面中。备选地,虚拟键盘可以响应于用户的口令验证操作而被生成和呈现。例如,可以在用户将交互焦点(例如,光标)置于用于输入口令的域(field)时生成和呈现虚拟键盘。又如,用户可以交互地指示呈现虚拟键盘。本发明的范围在此方面不受限制。
根据本发明的实施例,虚拟键盘上的至少一个按键与至少两个字符相关联。作为示例,在某些实施例中,虚拟键盘上的所有按键均与至少两个字符相关联。图3示出了一个这样的示例性虚拟键盘300。备选地,虚拟键盘上可以只有特定数目的某些按键与至少两个字符相关联,而其他按键则仅与单个字符相关联。本发明的范围在此方面不受限制。
根据本发明的实施例,虚拟键盘可以是随机生成的。例如,在某些实施例中,可以随机生成虚拟键盘的按键布局。换言之,在每次生成和向用户呈现虚拟键盘时,按键被随机分布在键盘上,从而得到不同的键盘布局。例如,假设当用户某次输入口令时,如图3所示的虚拟键盘被呈现给用户。接下来,当用户期望再次输入口令时,向用户呈现的可以是如图4所示的虚拟键盘400。可以看到,与图3的示例相比,图4所示的虚拟键盘400的布局发生了改变,从3行6列的布局变为了3行4列。应当理解,图4所示的仅仅是示例性而非限制性的实施例。可以按照任意布局来组织虚拟键盘中的按键。
备选地或附加地,根据本发明的实施例,可以随机地或者说动态地生成虚拟键盘上的按键与字符之间的关联。例如,在某些实施例中,这可以包括在每次生成虚拟键盘时随机地确定各按键所关联的字符的数目。也即,一个按键可以与任意适当数目的字符相关联。作为示例,在图3所示的虚拟键盘300中,每个按键与2个字符相关联;而在图4所示的虚拟键盘400中,每个按键则与3个字符相关联。不仅如此,在随机生成的同一虚拟键盘中,每个按键可以与不同数目的字符相关联。图5示出了一个这样的示例性键盘500,其中按键501与两个字符(“a”和“b”)相关联,而按键502与4个字符(“c”到“f”)相关联。
备选地或附加地,每个按键所关联的字符本身也可以随机地改变。换言之,随机生成按键-字符关联可以包括随机地将字符指派给虚拟键盘上的各按键。作为示例,仍然假设当用户某次输入口令时向用户呈现的是如图3所示的虚拟键盘300。此后,当用户期望再次输入口令时,例如可以向用户呈现如图6所示的虚拟键盘600。可以看到,与图3的示例相比,图6所示的虚拟键盘上的按键所关联的字符发生了改变。例如,位于相同位置的按键301和601分别与字符“ab”以及“al”相关联。
按键与字符之间的随机关联可以通过各种适当的技术手段来实现。例如,在某些实施例中,假设虚拟键盘上的按键数目为n(n为自然数),则可以针对每个字符设置范围在[0,n-1]之间的随机整数,并且根据所生成的随机数将字符映射至对应的按键。也可以使用其他任何适当的手段建立字符与按键之间的随机映射关系。本发明的范围在此方面不受限制。
另外,根据本发明的某些实施例,同一字符可以与键盘上的两个或者更多按键相关联。换言之,两个或更多按键的关联字符可以存在交集。例如,在图7所示的键盘700中,字符“d”与按键701和702二者关联。在此实施例中,当用户想要输入字符“d”时,既可以按压按键701,也可以按压按键702。当然,应当理解,可以只是某些而非全部的字符与键盘的至少两个按键相关联。
上文结合图4-图7所描述的这些可选特征将有益于提高口令验证的安全性,这还将在下文详述。然而,图4-图7所示出的仅仅是本发明的若干示例性实施例,不应被理解为对本发明范围的限制。
注意,根据本发明的实施例,用户操作的可以是物理的实体键盘,例如ATM上的键盘,而并非必须是虚拟键盘。实际上,任何键盘均可与本发明结合使用,只要该键盘上的至少一个按键与至少两个字符相关联即可。因此,生成和呈现虚拟键盘的步骤仅仅是一个可选步骤。
相应地,图3-图7所示的键盘亦可表示与本发明的实施例结合使用的实体键盘。上文参考图3-图7描述的特征同样可以适用于实体键盘。例如,一个或多个字符中的每一个可以与实体键盘上的至少两个按键相关联,等等。
继续参考方法200的步骤S201,在操作中,每当用户按压键盘上的任何一个按键,与该按键相关联的字符将被选择为候选字符。请注意,候选字符是有顺序的,即,先被按压的按键所关联的字符的顺序早于后被按压的按键所关联的字符。
特别地,根据本发明的实施例,用户对任何给定按键的一次按压将导致与该按键相关联的全部字符被选为具有相同顺序的候选字符。应当理解,根据本发明实施例的这种操作机制与现有技术具有实质性的区别。具体而言,在现有技术中,当用户按压与多个字符相关联的单个按键时,用户需要以某种方式指明其希望输入的究竟是与该按键关联的哪个特定字符。在常见的现有技术方案中,这可以通过连续按压按键来实现。例如,当用户首次按压一个按键时,与该按键先关联的第一个字符被选中。如果用户在足够短的时间间隔内再次按压该按键,则第二个字符被选中以覆盖先前被选中的第一个字符,以此类推。以图3所示的键盘300为例,根据现有技术的上述操作机制,如果用户期望输入字符串“bd”,则用户需要连续两次按压按键301,继而连续两次按压按键302。
相反,根据本发明的实施例,为了输入字符串“bd”,用户只需单次按压按键301,随后单次按压按键302。当用户单次按压按键301之后,与按键301关联的字符“a”和“b”均被选为候选字符,并且二者具有相同的顺序(例如以序号“1”表示)。继而,用户单次按压按键302。作为响应,与按键302相关联的字符“c”和“d”均被选为候选字符,并且二者也具有相同的顺序(例如以序号“2”表示)。这种操作机制能够显著提高口令验证操作的安全性,这将在下文结合具体示例详述。
返回图2,例如响应于用户指示其完成了口令的输入,方法200进行到步骤S202。在步骤S202,验证用户的口令是否与由候选字符组成的字符串中的至少一个字符串相匹配。根据本发明的实施例,只要候选字符所组成的任何一个字符串与用户口令相匹配,即可认为用户已经输入了正确的口令。
为了阐释根据本发明的实施例的原理和优点,下面考虑一个示例。假设用户想要输入的口令是“test01”。以图3所示的键盘300为例,在现有技术中,用户为了输入该口令需要如下操作键盘300:按压两次按键303、按压一次按键304、按压一次按键303、按压两次按键303、按压两次按键305以及按压一次按键306。这种操作的结果将产生唯一的字符串。结果是,如果恶意第三方通过木马程序、图像捕获或者偷窥等手段记录了用户的上述操作,则可以容易地获得用户的口令。
与此不同,根据本发明的实施例,为了输入口令“test01”,用户可以依次按压键盘300的如下按键各一次:按键303、按键304、按键303、按键303、按键305以及按键306。相应地,有序候选字符包括:
{(“s”,“t”),(“e”,“f”),(“s”,“t”),(“s”,“t”),(“9”,“0”),(“1”,“2”)}其中候选字符按照用户的操作顺序排序,同一小括号内的字符与相同的按键相关联并且因而具有相同的排序。
由于用户在每次按压按键时无需指明期望输入的究竟是与该按键关联的哪个字符,因此通过按压按键产生的有序候选字符可以组成多个待匹配的字符串。具体而言,根据本发明的实施例,候选字符可以按照顺序组成字符串,使得相同排序的候选字符有且仅有一个被包含在字符串中。在上面描述的示例中,有序候选字符集可以组成多个(在此例中是64个)字符串,例如“sess91”、“sfts02”、“tess92”、“test01”,等等。
在一种实施例中,在步骤S202,只要确定这些字符串中的任何一个字符串与用户的口令相匹配,则可以认为用户已经输入了正确的口令。与此方式,用户在操作中可以避免显式地指明口令所包含的字符。这样,即使恶意第三方通过木马程序、图像捕获、偷窥或任何其他手段而记录了用户的按键顺序,也无法确定用户的口令。根据本发明的实施例,降低了存储用户口令的后端与用户执行口令输入操作的前端(键盘及其上的按键)之间的耦合紧密度,从而有效地降低了用户口令被窃取的风险,提高了用户口令验证的安全性。
而且,如上文所述,在使用虚拟键盘的某些可选实施例,虚拟键盘上的按键-字符关联可以是随机生成的。这可以进一步提高口令验证的安全性。考虑一个具体示例:在用户使用图3所示的虚拟键盘300输入口令之后,当任何人期望再次输入口令时,虚拟键盘上的按键-字符关联将随机地改变,例如变为如图6所示的虚拟键盘600。此时,输入口令“test01”的操作变为依次按压如下按键一次:按键602、按键603、按键604、按键602、按键604以及按键601。可以理解,恶意第三方按照对虚拟键盘300的操作将无法使用虚拟键盘600输入正确的口令。由此,恶意第三方无法通过简单地重复用户的操作而实现非法登录。同样地,通过改变虚拟键盘的布局和/或与按键相关联的字符数目,也可以进一步提高口令验证的安全性。
另外,通过使用同一字符可以与两个或更多按键相关联的虚拟键盘(例如,图7所示的虚拟键盘700),用户在操作中可以选择不同的按键来输入同一字符,这可以进一步降低用户口令被盗取的风险。
特别地,根据本发明的某些实施例,口令可以在后端以加密形式存储,从而避免口令的明文保存。在匹配时,可以在哈希(例如,多组合哈希)映射的基础上对候选字符组成的字符串与加密的口令进行比较。以此方式,能够进一步提高口令验证的安全性。哈希映射是本领域中已知的,在此不再赘述。
返回图2,在步骤S202处,如果确定用户已经输入了正确的口令,则根据某些实施例,可以直接许可用户登录。备选地,在使用虚拟键盘的某些可选实施例中,可以重复执行方法200任意指定的次数。具体而言,在这些实施例中,如果在步骤S202验证了有序候选字符所组成的字符串之一与用户口令是相互匹配的,则可以生成另一虚拟键盘(例如记为“第二虚拟键盘”),以要求用户重复输入其口令。第二虚拟键盘的特征及其操作均与先前使用的第一虚拟键盘相似。
特别地,第二虚拟键盘布局、按键-字符关联和/或其他方面可以不同于第一虚拟键盘。如上所述,根据本发明的可选实施例,每当生成和呈现虚拟键盘时,键盘布局和/或按键-字符关联可以是随机生成的。在这样的实施例中,第二虚拟键盘与第一虚拟键盘自然而然地将具有不同的布局和/或按键-字符关联。也可以通过设置虚拟键盘的生成机制来强制确保第二虚拟键盘不同于第一虚拟键盘不同,本发明的范围在此方面不受限制。
用户操作第二虚拟键盘的方式与上文参考第一虚拟键盘所描述的方式相似:操作第二虚拟键盘以生成第二组有序候选字符,其中用户对任何一个按键的单次操作导致与该按键相关联的每个字符被选为具有相同顺序的候选字符;以及验证由第二组有序候选字符组成的至少一个字符串是否与用户的口令相匹配。
实验已经证明:在第三方不知道口令的情况下,使用具有不同的虚拟键盘连续两次输入正确口令的概率趋近于零。因此,通过多次执行方法200的步骤并且改变所使用的虚拟键盘,能够更为有效地防止第三方的任何非法登录企图,从而进一步提高口令验证的安全性。应当理解,方法200的重复执行是可选的。而且,方法200的重复执行次数可以根据具体需求而改变。本发明的范围在此方面不受限制。
返回图2,在步骤S202处,如果用户输入的有序候选字符所构成的所有字符串与用户口令均不匹配,则确定用户输入的口令错误。在这种情况下,可以直接拒绝用户登录。备选地,根据某些实施例,可以重新生成虚拟键盘要求用户再次输入口令(该过程称为“失败重试”)。重新生成的虚拟键盘可以不同于先前使用的虚拟键盘(例如在按键-字符关联和/或布局等方面)。这种失败重试可以进行预定的次数。如果超过该次数用户仍然不能正确地输入口令,则可以采取相应的安全性措施,例如冻结用户账户、要求用户以其他方式认证身份、以各种通信手段将输入错误口令的情况通知给用户,等等。
可以理解,设定失败重试的上限阈值可能是有益的。如果第三方记录了用户对虚拟键盘的操作,因为他/她不知道确切的口令,因此必然要通过多次操作来尝试以不同方式对用户按压的按键所关联的字符进行排列组合。在这种情况下,通过适当地设置失败重试阈值次数,可以进一步降低第三方非法获得用户口令的风险。
方法200在步骤S202之后结束。
下面参考图8,其示出了根据本发明示例性实施例的口令验证装置800的框图。如图所示,口令验证装置800包括:第一候选字符生成单元801,被配置为根据用户对键盘的操作而生成一组有序候选字符,所述键盘上的至少一个按键与至少两个字符相关联,其中所述用户对所述键盘上的任何一个按键的单次操作导致与该按键相关联的字符被选为具有相同顺序的候选字符;以及第一口令验证单元802,被配置为验证由所述有序候选字符组成的字符串之一是否与所述用户的口令相匹配。
根据某些可选实施例,装置800还可以包括第一虚拟键盘生成单元,被配置为生成第一虚拟键盘以作为所述键盘。在这样的实施例中,可选地,所述第一虚拟键盘生成单元包括以下至少一个:按键-字符关联生成单元,被配置为随机地生成所述第一虚拟键盘上的按键与字符之间的关联;以及布局生成单元,被配置为随机地生成所述第一虚拟键盘的按键布局。根据某些可选实施例,所述按键-字符关联生成单元包括以下至少一个:被配置为随机地将字符指派给所述第一虚拟键盘上的按键的单元;以及被配置为随机地确定与所述第一虚拟键盘上的按键相关联的字符的数目的单元。
根据某些可选实施例,装置800还可以包括:第二虚拟键盘生成单元,被配置为响应于由所述有序候选字符组成的字符串之一与所述用户的所述口令相匹配,而生成不同的第二虚拟键盘,所述第二虚拟键盘上的至少一个按键与至少两个字符相关联;第二候选字符生成单元,被配置为根据所述用户对所述第二虚拟键盘的操作生成第二组有序候选字符,其中所述用户对所述第二虚拟键盘上的任何一个按键的单次操作导致与该按键相关联的字符被选为具有相同顺序的候选字符;以及第二口令验证单元,被配置为验证由所述第二组有序候选字符组成的字符串之一是否与所述用户的所述口令相匹配。
根据某些可选实施例,所述用户的所述口令以加密形式存储,并且所述第一口令验证单元包括:被配置为基于哈希映射来验证由所述有序候选字符组成的字符串之一是否与以加密形式存储的所述口令相匹配的单元。
根据某些可选实施例,键盘上的每个按键与至少两个字符相关联。备选地或附加地,根据某些可选实施例,单个字符可以与键盘上的至少两个按键相关联。
为清晰起见,图8中没有示出装置800所包含的可选单元或者子单元。应当理解,装置800包含的各个单元或者子单元分别对应于上文参考图2描述的方法200的相应步骤。由此,上文针对方法200描述的所有特征和操作同样分别适用于装置800,故在此不再赘述。
而且,装置800中的单元或子单元的划分不是限制性的而是示例性的,旨在从逻辑上描述其主要功能或操作。在图8中所示的单个单元的功能可以由多个单元来实现。反之,在图8中所示的多个单元亦可由单个单元来实现。本发明的范围在此方面不受限制。
特别地,装置800中包含的单元可以利用各种方式来实现,包括软件、硬件、固件或其任意组合。例如,根据本发明的某些实施例,装置800的各单元可以利用软件和/或固件模块来实现。此时,如上所述,这些软件单元可以通过调用其他装置或器件来实现光电转换或电光转换。备选地或附加地,装置800的单元也可以利用硬件来实现。例如,装置800的各单元可以实现为集成电路(IC)芯片、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、片上系统(SOC),等等。现在已知或者将来开发的其他方式也是可行的,本发明的范围在此方面不受限制。
上文已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文公开的各实施例。
Claims (16)
1.一种口令验证方法,包括:
根据用户对键盘的操作而生成一组有序候选字符,所述键盘的至少一个按键与至少两个字符相关联,其中所述用户对所述键盘的任何一个按键的单次操作导致与该按键相关联的字符被选为具有相同顺序的候选字符;以及
验证由所述有序候选字符组成的字符串之一是否与所述用户的口令相匹配。
2.根据权利要求1所述的方法,还包括:
生成第一虚拟键盘以作为所述键盘。
3.根据权利要求2所述的方法,其中生成第一虚拟键盘包括以下至少一个:
随机地生成所述第一虚拟键盘的按键与字符之间的关联;以及
随机地生成所述第一虚拟键盘的按键布局。
4.根据权利要求3所述的方法,其中随机地生成所述第一虚拟键盘的按键与字符之间的关联包括以下至少一个:
随机地将字符指派给所述第一虚拟键盘的按键;以及
随机地确定与所述第一虚拟键盘的按键相关联的字符的数目。
5.根据权利要求1所述的方法,其中单个字符与所述键盘的至少两个按键相关联。
6.根据权利要求2到4任一项所述的方法,还包括:
响应于由所述有序候选字符组成的字符串之一与所述用户的所述口令相匹配,而生成不同的第二虚拟键盘,所述第二虚拟键盘的至少一个按键与至少两个字符相关联;
根据所述用户对所述第二虚拟键盘的操作生成第二组有序候选字符,其中所述用户对所述第二虚拟键盘的任何一个按键的单次操作导致与该按键相关联的字符被选为具有相同顺序的候选字符;以及
验证由所述第二组有序候选字符组成的字符串之一是否与所述用户的所述口令相匹配。
7.根据权利要求1所述的方法,其中所述用户的所述口令以加密形式存储,并且其中验证由所述有序候选字符组成的字符串之一是否与所述用户的口令相匹配包括:
基于哈希映射来验证由所述有序候选字符组成的字符串之一是否与以加密形式存储的所述口令相匹配。
8.根据权利要求1所述的方法,其中所述键盘的每个按键与至少两个字符相关联。
9.一种口令验证装置,包括:
第一候选字符生成单元,被配置为根据用户对键盘的操作而生成一组有序候选字符,所述键盘的至少一个按键与至少两个字符相关联,其中所述用户对所述键盘的任何一个按键的单次操作导致与该按键相关联的字符被选为具有相同顺序的候选字符;以及
第一口令验证单元,被配置为验证由所述有序候选字符组成的字符串之一是否与所述用户的口令相匹配。
10.根据权利要求9所述的装置,还包括:
第一虚拟键盘生成单元,被配置为生成第一虚拟键盘以作为所述键盘。
11.根据权利要求10所述的装置,其中所述第一虚拟键盘生成单元包括以下至少一个:
按键-字符关联生成单元,被配置为随机地生成所述第一虚拟键盘的按键与字符之间的关联;以及
布局生成单元,被配置为随机地生成所述第一虚拟键盘的按键布局。
12.根据权利要求11所述的装置,其中所述按键-字符关联生成单元包括以下至少一个:
被配置为随机地将字符指派给所述第一虚拟键盘的按键的单元;以及
被配置为随机地确定与所述第一虚拟键盘的按键相关联的字符的数目的单元。
13.根据权利要求9所述的装置,其中单个字符与所述键盘的至少两个按键相关联。
14.根据权利要求10到12任一项所述的装置,还包括:
第二虚拟键盘生成单元,被配置为响应于由所述有序候选字符组成的字符串之一与所述用户的所述口令相匹配,而生成不同的第二虚拟键盘,所述第二虚拟键盘的至少一个按键与至少两个字符相关联;
第二候选字符生成单元,被配置为根据所述用户对所述第二虚拟键盘的操作生成第二组有序候选字符,其中所述用户对所述第二虚拟键盘的任何一个按键的单次操作导致与该按键相关联的字符被选为具有相同顺序的候选字符;以及
第二口令验证单元,被配置为验证由所述第二组有序候选字符组成的字符串之一是否与所述用户的所述口令相匹配。
15.根据权利要求9所述的装置,其中所述用户的所述口令以加密形式存储,并且所述第一口令验证单元包括:
被配置为基于哈希映射来验证由所述有序候选字符组成的字符串之一是否与以加密形式存储的所述口令相匹配的单元。
16.根据权利要求9所述的装置,其中所述键盘的每个按键与至少两个字符相关联。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310064536.5A CN104021323A (zh) | 2013-02-28 | 2013-02-28 | 用于口令验证的方法和装置 |
US14/186,129 US9286451B2 (en) | 2013-02-28 | 2014-02-21 | Password authentication |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310064536.5A CN104021323A (zh) | 2013-02-28 | 2013-02-28 | 用于口令验证的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104021323A true CN104021323A (zh) | 2014-09-03 |
Family
ID=51389701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310064536.5A Pending CN104021323A (zh) | 2013-02-28 | 2013-02-28 | 用于口令验证的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9286451B2 (zh) |
CN (1) | CN104021323A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108694011A (zh) * | 2017-04-03 | 2018-10-23 | 富士通株式会社 | 生成用于访问码输入的动态小键盘的方法、系统和介质 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103632075B (zh) * | 2013-10-17 | 2016-03-30 | 东莞盛世科技电子实业有限公司 | 鉴权装置及鉴权方法 |
CN105224121B (zh) * | 2014-07-03 | 2017-12-12 | 深圳Tcl新技术有限公司 | 密码输入方法及系统 |
EP3142038B1 (en) * | 2015-09-10 | 2019-01-23 | Tata Consultancy Services Limited | Authentication system and method |
US10395065B2 (en) * | 2015-12-28 | 2019-08-27 | International Business Machines Corporation | Password protection under close input observation based on dynamic multi-value keyboard mapping |
US10075448B2 (en) * | 2016-06-06 | 2018-09-11 | Ca, Inc. | Password setup management |
CN106096350B (zh) * | 2016-06-14 | 2019-02-05 | 东莞盛世科技电子实业有限公司 | 终端设备密码解锁方法、装置和终端设备 |
CH713015A2 (de) * | 2016-10-06 | 2018-04-13 | Alderava Sagl | Eingabevorrichtung und -verfahren. |
US11496457B2 (en) | 2019-06-10 | 2022-11-08 | Microsoft Technology Licensing, Llc | Partial pattern recognition in a stream of symbols |
US11514149B2 (en) | 2019-06-10 | 2022-11-29 | Microsoft Technology Licensing, Llc | Pattern matching for authentication with random noise symbols and pattern recognition |
US11736472B2 (en) | 2019-06-10 | 2023-08-22 | Microsoft Technology Licensing, Llc | Authentication with well-distributed random noise symbols |
EP3959583A4 (en) | 2019-06-11 | 2022-11-30 | Vuzix Corporation | METHOD OF UNLOCKING AN ELECTRONIC DEVICE |
US11394551B2 (en) | 2019-07-17 | 2022-07-19 | Microsoft Technology Licensing, Llc | Secure authentication using puncturing |
CN110517402A (zh) * | 2019-08-26 | 2019-11-29 | 拉卡拉支付股份有限公司 | 密码键盘和用户终端 |
JP7241939B1 (ja) | 2022-01-26 | 2023-03-17 | レノボ・シンガポール・プライベート・リミテッド | 情報処理システム、情報処理装置、サーバ、及び制御方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040257238A1 (en) * | 2003-02-25 | 2004-12-23 | De Jongh Ronald Anton | Virtual keyboard |
US20080235772A1 (en) * | 2007-03-23 | 2008-09-25 | Sap Ag. | Iterated password hash systems and methods for preserving password entropy |
US20090063850A1 (en) * | 2007-08-29 | 2009-03-05 | Sharwan Kumar Joram | Multiple factor user authentication system |
US20090106825A1 (en) * | 2007-10-22 | 2009-04-23 | Cerruti Julian A | System and method for user password protection |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007310515A (ja) | 2006-05-16 | 2007-11-29 | Fuji Xerox Co Ltd | パスワード認証システム、パスワード認証サーバ、パスワード認証方法及びプログラム |
CN101183941B (zh) | 2007-08-03 | 2011-03-09 | 廖睿 | 随机隐询式密码认证技术 |
-
2013
- 2013-02-28 CN CN201310064536.5A patent/CN104021323A/zh active Pending
-
2014
- 2014-02-21 US US14/186,129 patent/US9286451B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040257238A1 (en) * | 2003-02-25 | 2004-12-23 | De Jongh Ronald Anton | Virtual keyboard |
US20080235772A1 (en) * | 2007-03-23 | 2008-09-25 | Sap Ag. | Iterated password hash systems and methods for preserving password entropy |
US20090063850A1 (en) * | 2007-08-29 | 2009-03-05 | Sharwan Kumar Joram | Multiple factor user authentication system |
US20090106825A1 (en) * | 2007-10-22 | 2009-04-23 | Cerruti Julian A | System and method for user password protection |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108694011A (zh) * | 2017-04-03 | 2018-10-23 | 富士通株式会社 | 生成用于访问码输入的动态小键盘的方法、系统和介质 |
CN108694011B (zh) * | 2017-04-03 | 2023-08-22 | 富士通株式会社 | 生成用于访问码输入的动态小键盘的方法、系统和介质 |
Also Published As
Publication number | Publication date |
---|---|
US9286451B2 (en) | 2016-03-15 |
US20140245433A1 (en) | 2014-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104021323A (zh) | 用于口令验证的方法和装置 | |
Reynolds et al. | A tale of two studies: The best and worst of yubikey usability | |
US20170337380A1 (en) | Self-contained cryptographic boot policy validation | |
US20100242104A1 (en) | Methods and systems for secure authentication | |
AU2022204797B2 (en) | Raw sensor input encryption for passcode entry security | |
US20160127134A1 (en) | User authentication system and method | |
RU2632122C2 (ru) | Способ и устройство проверки пароля для проверки входного пароля и компьютерная система, содержащая устройство проверки пароля | |
CN103793659B (zh) | 设置密码的方法和系统以及验证密码的方法和系统 | |
CN109891418A (zh) | 用于保护从非安全终端执行的交易的方法 | |
US8904482B1 (en) | Techniques for securing a one-time passcode with an alteration code | |
CN101529366A (zh) | 可信用户界面对象的标识和可视化 | |
US8661532B2 (en) | Method and apparatus for authenticating password | |
TWI443517B (zh) | 記憶體儲存裝置及其記憶體控制器與密碼驗證方法 | |
KR102055625B1 (ko) | 인증 서버 장치, 프로그램 및 인증 방법 | |
US8984599B2 (en) | Real time password generation apparatus and method | |
KR101505295B1 (ko) | 키 입력 방법 및 그 장치 | |
US20160357952A1 (en) | Verification of a pattern based passcode | |
CN104834441A (zh) | 一种触摸屏解锁的方法和装置 | |
US20180341402A1 (en) | Method for executing of security keyboard, apparatus and system for executing the method | |
KR20200082723A (ko) | 취약점 대응 가상키보드 제공 장치 및 방법 그리고 그 방법을 수행하는 프로그램이 기록된 컴퓨터 판독이 가능한 기록매체 | |
CN115688120A (zh) | 安全芯片固件导入方法、安全芯片及计算机可读存储介质 | |
US20160292685A1 (en) | Authenticating a user with a passcode using a passcode entry table | |
CN103034594A (zh) | 存储器储存装置及其存储器控制器与密码验证方法 | |
US11062001B2 (en) | Matrix transformation-based authentication | |
KR20120107610A (ko) | 휴대 단말기에서의 사용자 인증 장치 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140903 |
|
RJ01 | Rejection of invention patent application after publication |