用于通过可视阵列路径结合隐藏运算符保护界面访问安全的方法和***
技术领域
本发明总体涉及图形/文本用户界面,更具体地说,涉及用于保护机器界面访问安全的方法和***。
背景技术
计算机***和例如自动柜员机(ATM)的专用设备,不断地提供对必须保护免于非授权使用的界面的访问。通常这种用户界面上的安全性由口令或“个人识别码”PIN来提供,所述口令或“个人识别码”PIN必须在访问界面的个体(或者,在一些情况下是另一台机器)进行进一步访问之前,通过输入设备提供给用户界面。
由“弱”口令或令牌(token),例如,口令或PIN提供的安全性等级通常与其长度和任意度有关。但是,相同因素也决定了一个人记忆令牌的难度。同样,可能的令牌元素值的数量,例如,通常使单纯的数字相对于数字加字母变得更大来提高安全性,但是,输入集尺寸的增加通常受限于在总体可能的值空间内使用通用单词或数字。
当可以向用户提供鼓励再次收集令牌的“提示”时,这种提示也产生了潜在的安全漏洞,因为令牌可以通过当提示给出时进行推测而发现。其他***包括对于令牌拥有者具有一些具体含义的二级口令,其能够用于揭示实际令牌。例如,界面可以使用用户母亲的婚前姓或“喜爱的动物”等作为二级口令,用于在用户遗忘时保护基本的访问令牌。
已经提出了二维文本或图形提示***,从例如以“隐藏单词”谜题的形式实际显示口令的***到利用必须按序选择的随机图标排列或者必须以一定图案选择的特定图标排列用于满足令牌输入的***。所有上述***的优点在于,它们不能仅仅通过重复的机器输入被轻易地突破。
但是,上述所有***可以最终通过人们的观察而揭示出它们的基本令牌,尤其当基本令牌隐藏机制是已知先验时。例如,如果已知令牌隐藏机制是必须以一定图案选择的特定图标排列,那么观察者可以忽略实际图标而仅关注图案。
具有改进“强度”的令牌***可以依靠元素输入值的较小集,能够使用更长寿命的口令和/或能跨多个***使用,而没有妥协为较弱口令的相同风险。
因此,希望提供一种方法和***,用于在提示显示中隐藏令牌,使得不能通过观察令牌输入图案和值来轻易地发现令牌,同时允许使用简单的算法来创建该令牌。
发明内容
在提示显示中隐藏令牌使得不能通过对令牌输入的观察轻易地发现令牌的上述目标在一种方法和***中实现。
所述方法和***显示包括多个元素的提示显示,其中,每个元素具有值和位置,所述提示显示可以是数字阵列。所述方法和***结合利用一个或多个运算符在图案序列上执行一个或多个运算的算法接收与显示元素的选定图案序列对应的用户输入序列。
所述方法和***通过从提示显示中计算令牌并将用户输入与令牌进行比较,验证用户是否知道适当的图案和算法。对一个或多个***资源进行访问或者对***的一个或多个资源的哪个访问由***控制,由令牌与用户输入的匹配来决定。
从图案计算令牌采用的运算符可以是数学(包括逻辑的)运算符或关系运算符。可以从令牌计算中排除一个或多个图案元素,其可以根据关系运算或通过固定地忽略其中一个图案元素来决定。
所述方法可以在通用计算机***中以通用计算机***中执行的浏览器来实现或在专用终端中实现。所述方法也可以在对用于执行所述方法的步骤的程序指令进行编码的计算机程序产品实现。
根据本发明的一个方面,提供一种用于保护要由用户使用的资源的方法,包括:
生成提示显示,所述提示显示由在阵列中排列的元素组成;
在所选阵列元素的阵列中提供预定图案;
预定图案的每个元素在所述阵列中具有唯一位置特征;
至少一个预定图案元素具有数字值;
向所述用户显示所述提示显示;
使所述用户根据所述生成的提示显示的所述预定图案元素的所述元素来计算令牌;
在计算所述令牌期间,使所述用户对所述至少一个落入所述预定图案的所述元素的所述数字值执行至少一个运算,使得该令牌包括至少一个隐藏的数字值,该隐藏的数字值与在其上执行非同一性运算的所述至少一个所述元素的数字值不相同;
使所述用户将令牌输入到认证***的用户界面;
从所述用户接收所述令牌;
比较所接收的令牌的至少一个隐藏数字值与该认证***生成的对应令牌的至少一个对应数字值;以及
根据所述比较的结果选择性地提供对所述资源的访问。
根据本发明的一个方面,提供一种用于接收保护资源的安全令牌的输入的方法,包括:
生成具有至少一个拟随机字符的提示显示,所述显示由每个都具有值和唯一位置特征的元素组成;
根据所述生成的提示显示的预定图案元素的值和对至少一个落入所述图案的所述元素执行的至少一个运算来计算令牌;
向用户显示所述提示显示;
从所述用户接收输入;
比较所述令牌与所述接收的输入;以及
根据所述比较结果选择性地提供对资源的访问。
根据本发明的第二方面,提供一种计算机***,包括:存储器,用于存储程序指令和数据;处理器,耦接到所述存储器用于执行所述程序指令;可视显示器,耦接到所述处理器用于显示用户界面输出;以及输入设备,耦接到所述处理器用于提供用户界面输入;其中,所述通用计算机内的所述程序指令包括程序指令用于:
生成具有至少一个拟随机字符的提示显示,所述显示由每个都具有值和唯一位置特征的元素组成;
根据所述生成的提示显示的预定图案元素的值和对至少一个落入所述图案的所述元素执行的至少一个运算来计算令牌;
向用户显示所述提示显示;
从所述用户接收输入;
比较所述令牌与所述接收的输入;以及
根据所述比较结果选择性地提供对资源的访问。
通过结合下文中附图对本发明的优选实施例进行更为具体的描述,本发明的上述以及其他的目标、特点和优点将变得更为明显。
附图说明
图1是其中可以实现本发明的实施例的***框图。
图2是根据本发明的实施例描述用户界面的图形示意图。
图3是根据本发明的实施例的描述在方法中实现的***运算的流程图。
具体实施方式
本发明利用通过执行程序指令实现的方法,对通过令牌或口令输入访问***提供改进的安全性。该技术适用于在计算机***或例如ATM的专用终端中替代传统口令和PIN输入。在计算机***中,本发明可以在通用计算***的操作***中采用,也可以嵌入到专用应用程序中,或者通过从服务器下载的网页界面提供,例如,通过可扩展标记语言(XML)程序或java script程序。本发明通常用于保护对资源的访问,例如,***登录访问,ATM上的金融信息和事务处理能力的登录访问或者对如应用程序或数据库的其他安全资源的登录访问。
除了如传统口令***那样仅仅接受口令或令牌的输入并选择地对令牌进行处理以将其与存储值进行比较以外,本发明还有效地生成随机运行令牌。通过对呈现给用户的提示显示中隐藏的值的集合的有规则的处理生成随机令牌。在处理中有两个成分:1)图案,用户通过该图案从提示显示中选择元素序列;以及2)算法,利用在从至少部分元素序列中产生的值上执行的一个多个运算中的一个或多个运算符以生成令牌。提示显示可以是随机生成元素集,除了元素的值和值的范围必须适于与所采用的特定算法一起使用,以及图案必须适于显示以外,所述元素集与图案和算法没有预定的关系。如果提示显示随机生成为信号阵列或其他显示,那么,可以在通过用户识别代码或其他方法识别用户之前生成显示。一旦用户被识别,就从提示显示中的适当位置选择序列。可替代地,如果在生成显示之前识别用户,那么可以在提示显示的特定位置首先生成并隐藏序列,所述特定位置通过利用另一个随机生成的元素集产生非图案位置与上述图案中的位置对应。
在元素序列已知后,将算法应用于元素序列值以生成令牌,其可以是数的序列,但也可以是单个数,例如图案中所有数的总和。运算符能够结合序列中的任何数量的值,并在输出序列中将其减少或在输出序列中对其进行扩大。例如,图案元素的三个值的总和可以表示输出序列缩小为3∶1,但是,应用于序列中两个值的求和、相乘和“大于”运算符可以表示输出序列2∶3的展开。使用的运算符可以是数学的(包括逻辑的)或关系的,例如应用于两个数的“大于”或“小于”运算符。通常,不希望减少输出序列中的元素数量,其提供低于某种等级的访问令牌,因为较短的令牌更容易“猜测”。
用户模拟图案序列选择的运算以及存储器中的基于运算符算法,并根据选择和心算输入令牌值。所要求的心算复杂等级能够通过选择适当的运算符和用户可设置的整体算法设计进行调整。例如,简单的算法能够通过数字阵列模拟水平线,其中令牌序列值是直线中从左到右的每对数字的较小数。非常复杂的算法可以明显地结合从值阵列中有序选择的随机位置,并对每个值利用不同的数学运算对它们进行结合。
此外,在没有对用户改变图案和算法的情况下,***的安全性等级能够发生变化。图案可以被截去以降低所要求的令牌长度,改变每个元素允许的值的范围,和/或将线索表确定为静态阵列。上述技术中的每一个都不影响分配给用户安全机制的基本图案和算法,而是可以使安全性等级和复杂性适应访问特定的访问实例或对特定***的访问。
本发明还提供用于共享以过去为基础的访问信息的机制,而不在基本图案和算法上妥协。如果访问图案和算法的拥有者知道特定提示显示,那么,另一人能够被告知结果输入令牌而不在图案/算法结合上妥协。
现在参考附图,尤其是图1,在框图中示出了可以在其中实现本发明的实施例的网络化***。所述***10表示通用计算设备,包括:处理器16以及耦接到处理器16的用于存储数据和处理器16执行的程序指令的存储器17。图形显示器13耦接到***10,并且实际上可以集成到相同的外壳中,如通常的ATM和便携式设备,例如,笔记本/平板计算机或个人数字助理(PDA)一样。根据本发明的实施例,键盘或小键盘14也耦接到(或集成在)***10用于接收用户输入。可替代地,可以使用定位设备,如在下文中示出的,利用定位设备进行输入要求所有输入值的元素都在图形显示器13的屏幕上呈现,然而利用键盘或小键盘,值不需要在屏幕上呈现。
网络连接12可以实现为到处理器16的有线接口15A或无线接口15B,并且尽管本发明不要求网络连接,例如ATM的设备通常要求用于金融访问操作的一些网络形式。
现在参考图2,根据本发明的实施例的用户界面描述为图形显示器13的屏幕20。示出了由四个3x3子阵列24A-D组成的提示显示23。每个子阵列包括多个元素26,每个元素在提示显示23中具有唯一的位置。每个元素26也具有可能唯一也可能不唯一的值。在示意性例子中,值是在每个元素26表面显示的数字的数值。但是,本发明不限于数字,值也不一定与对应元素有关的显示信息匹配。例如,图形图标可用于替代数字,通过定位设备进行的选择和与选择序列结合的隐藏算法可以是逻辑运算,其可以以逻辑的方式将提供的信息与一个或多个图标进行结合。
同样,当单个阵列可以用于实现本发明时,子阵列的使用向用户提供了另一个等级的提示,因为,示出的四个子阵列可以在屏幕24A-D上以任何排列呈现。用户为每个元素确定适当的子阵列24A-D,用户通过对每个子阵列24A-D唯一的线索,例如,每个子阵列周围的唯一颜色框架或在各个元素26上显示的颜色的值(例如,数字)进行输入。屏幕20也包括用于输入用户名和口令的区域20、21,通常作为登录屏幕等存在。但是,输入区域不是本发明所要求的,屏幕20可以单独包括提示显示23,尤其是当输入的所有值都有呈现在屏幕20上的对应元素时,在这种情况下,例如鼠标或触摸屏的定位设备可用于实现接收令牌序列的输入设备。如果用户是先前已知识别的,如果图案/算法为所有用户共用,或者如果可以接受更为宽松的安全性方案,其中,通过匹配允许和使用多个令牌来识别用户,那么用户识别区域20是不必要的。
能够随机和拟随机地生成子阵列24A-D的元素26,用于对阵列进行初始化。如果这样,元素26的图案用于从对应于用户已知的正确元素序列的元素26选择序列值。可替代地,可以生成元素序列,在图案位置中“生成”,接着,其他随机生成的“不相关”值能够填充到子阵列24A-D中其他元素26的位置中。如果提示显示23被分为子阵列,那么序列还必须为每个元素考虑正确的子阵列中的适当位置。例如,如果子阵列24A-D被各自着色:{红色、蓝色、黄色、绿色},用户已知的适当的元素序列是最高一行红色,中间一行蓝色,那么根据示出的提示显示23的序列,从左到右读取该行,依次是8、7、3、5、4、2。
本发明实现的安全性机制的下一部分,是利用隐藏算法(与上述可视图案相反)的序列值的结合。选定序列接着通过至少一个运算中的至少一个运算符进行运算。运算符可以是数学运算符,例如,加、减、乘和除,以及产生元素值的等同(或“复制”或“重复”)运算符,或者例如“小于”或“大于”的关系运算符,可以对两个或更多元素或在有些情况下只对一个元素进行运算。不是所有的运算都是等同运算或者算法不是隐藏的并仅仅揭示上面的序列,尽管根据本发明的实施例的***可以额外地将“非隐藏”算法实现为具有较低安全性等级的选择方案。为图案中的每个元素中的一个,通过等同运算符序列提供非隐藏算法,使得算法的输出等同于输入序列。也可以结合上述运算符采用隐藏常数,例如“对每个数字加1”或“如果>4,输入数字”以及类似其他规则。
作为关系运算的例子,利用上述例子作为序列,算法可以返回每行中的最小元素,在这种情况下,适当的令牌输入可以是3、2。在另一个例子中,算法可以为第一值增加该行的前两个元素,并为第二值使用第三元素,在这种情况下,正确的令牌是15、3、9、2。运算/算法也可以在子阵列中延伸。例如,算法可以将第一子阵列中的每个元素依次与第二子阵列中的每个元素相乘,并将结果作为令牌字符串。上例序列中适当的令牌是40、28、6。
如例子中示出的,根据可以变得任意大的提示显示的相对复杂性,同样具有任意大范围的元素值以及所采用的算法的复杂性,本发明可以实现非常复杂和强健的机制。通常,在图案和算法便于被记忆和由特定组合提供的安全性等级二者之间直接取得平衡。
现在参考图3,描述了示出根据本发明的实施例方法的流程图。可以由在计算设备中,例如个人计算机、工作站或如ATM的专用终端,执行的程序指令实现所述方法。程序指令可以在包括编码所述程序指令的介质的计算程序产品中实现。利用随机数生成器(步骤30)生成提示显示,并显示提示显示(步骤31)。接着,通过用户标识输入区域20识别用户,从存储器检索用户图案和算法(步骤32)。接着,根据预定的图案元素从提示显示收集序列值(步骤33)。然后,利用根据预定算法收集的值计算令牌(步骤34)。当用户输入数字序列时(步骤35),将序列与步骤33中计算的令牌值进行比较,如果输入序列匹配(决定36),那么,授权对保护的资源进行访问(步骤37)。
根据本发明的另一个实施例,还提供用于配置算法和图案的控制面板,并可以以图形或文本方式实现。图形控制面板通常允许通过定位设备选择图案序列,并将规则分配到图案中元素的值的结合或单个值。文本控制面板能够,例如通过利用矩阵位置作为索引接受描述图案和算法的字符串,每个元素都可以通过位置编号被唯一识别。运算符可以被赋予它们自己的符号,例如,“R”表示复制,“+”表示求和,“X”表示相乘,“S”表示“小于”等等。为了对字符串进行编码,可以将以子阵列“原始”顺序排列的任何子阵列结合到一个矩阵中。
例如,如果位置编号跨行从左到右分配,并在提示显示中下降,那么上述示例性算法将第一子阵列的每个元素依次与第二子阵列中的每个元素相乘,并将结果作为令牌字符串,可以被编码为“E1XE25,E2XE26,E3XE27”,其中,X是“相乘”运算符。(如在上例中所用的,元素25-27对应于子阵列24B的中间一行。)
当本发明被具体示出并结合优选实施例进行描述时,本领域技术人员应当理解,在不背离本发明的精神和范围的情况下可以对本发明的形式和细节进行上述和其他的改变。