CN1905446A - 管理多个验证的基于客户机的方法和系统 - Google Patents

管理多个验证的基于客户机的方法和系统 Download PDF

Info

Publication number
CN1905446A
CN1905446A CNA2006100850957A CN200610085095A CN1905446A CN 1905446 A CN1905446 A CN 1905446A CN A2006100850957 A CNA2006100850957 A CN A2006100850957A CN 200610085095 A CN200610085095 A CN 200610085095A CN 1905446 A CN1905446 A CN 1905446A
Authority
CN
China
Prior art keywords
user
applied cryptography
password
computer
application
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
Application number
CNA2006100850957A
Other languages
English (en)
Inventor
A·盖拉尔多
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1905446A publication Critical patent/CN1905446A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application

Abstract

在此披露了一种用于管理对多个应用的具有安全性的验证的方法、系统和程序。根据所述方法,用户提供永远不会被存储并且对所有所述应用都唯一的主密码。应用密码初次从所述主密码并且可选地从应用密码句法规则来计算。对于每个新的验证请求,所述应用密码都被重新计算并且永远不会被存储在所述系统中。在初次生成所述应用密码时将生成至少一个随机密钥。为了重新计算所述应用密码而存储的仅有信息是应用名称、所生成的随机密钥以及所述应用密码句法规则。可以根据安全级别来更改应用密码计算函数,并且可以更改所述应用句法规则以符合所述应用的要求。

Description

管理多个验证的基于客户机的方法和系统
技术领域
本发明一般地涉及计算机辅助验证方法;更具体地说,当用户具有访问多个系统的权限时可以使用本发明。
背景技术
目前,用户面临着保存多个将在属于该用户的公司或外部系统(通常是因特网应用/网站)的不同系统/应用中验证的用户ID和密码的需要。为了保持高级安全性,用户通常应对每个应用/系统采用不同的密码。但是,人们具有如此多的用户ID和密码要管理,以致他们在应用/站点之间共享密码和/或将密码以纯文本写入备忘录或文本文件。因此,即使对于高度重要和完善保护的应用,安全性也受到威胁。有许多系统用来减轻此问题,例如那些使用“单一登入”(SSO)软件堆栈(证书、第三方验证等)或密码同步的系统。问题在于所有这些系统都只能管理已知的应用(即,可以被与SSO/密码同步解决方案集成的应用/系统)并且这必须是集中的复杂工作。因此,在任何情况下,用户都面临着管理多个密码的需要。
Sun Microsystems公司的美国专利US 6006333试图通过使用主密码来解决多个密码的问题。尽管使用不同的密码来访问每个远程服务器,但用户只需记住一个主密码。遗憾的是,根据此专利的解决方案,密码和用户ID被存储在数据库中并且即使它们被加密,如果黑客成功破坏了该数据库,整个验证系统都将被破坏。
因此,需要提供一种用于在多个系统上验证用户同时避免用户记忆太多密码并通过避免存储直接可用的敏感信息来维护高级别安全性的系统和方法。
发明内容
本发明的一个目标是提供一种用于在多个应用或系统上验证用户同时限制该用户必须记忆的密码数的方法和系统。
本发明的另一个目标是避免存储诸如密码之类的直接可用的敏感信息。
使用用于在计算机上管理访问应用或系统,即所谓的应用,的用户验证的方法来达到这些目标,所述方法包括以下步骤:
-所述用户在所述计算机上输入应用名称和至少一个优选的密码,即所谓的一个或多个主密码;
-所述计算机生成至少一个随机密钥;
-所述计算机将所述应用名称和所述至少一个生成的随机密钥存储在存储装置的记录中;
-所述计算机使用所述至少一个主密码和所述至少一个随机密钥作为输入来使用预定算法计算应用密码;
-所述计算机将所述计算的应用密码提供给所述用户。
还使用以上方法达到这些目标,其中所述用户输入步骤还包括:
-所述用户输入应用密码句法规则;
并且所述计算机存储步骤还包括:
-所述计算机将所述应用密码句法规则存储在所述存储装置的所述记录中;
并且用于计算所述应用密码的步骤还包括:
-计算所述应用密码的所述预定算法考虑所述应用密码句法规则。
还使用上述方法中的任一方法来达到这些目标,还包括以下步骤:
-所述用户输入应用名称和至少一个主密码;
-所述计算机在所述存储装置中搜索具有相同应用名称的记录并读取所述至少一个随机密钥;
-所述计算机使用所述至少一个主密码、所述至少一个随机密钥和所述应用密码句法规则作为输入,如果在所述存储装置的所述记录中找到任何一项的话,来使用所述预定算法重新计算所述应用密码;
-所述计算机将所述重新计算的应用密码提供给所述用户。
还使用上述方法中的任一方法来达到这些目标,其中所述生成至少一个随机密钥的步骤包括:将随机密钥生成函数应用与由所述应用密码句法规则规定的所述应用密码中的字符数一样的次数,从而获得与所述应用密码中的字符数一样多的随机密钥。
还使用上述方法中的任一方法来达到这些目标,其中所述使用预定算法来计算所述应用密码的步骤包括以下步骤:
-使用预定的接合(meshing)函数将所述至少一个随机密钥与所述至少一个主密码相接合;
-根据应用到所述接合步骤的结果的所述应用密码句法规则(如果在所述存储装置的所述记录中找到的话),通过执行模数计算来计算所述应用密码的每个字符。
还使用上述方法中的任一方法来达到这些目标,还包括确定接合函数的初始步骤,所述初始步骤本身包括以下步骤:
-所述用户选择接合函数;
-所述计算机将所述选择的接合函数存储在所述存储装置的具有所述应用名称和所述至少一个生成的随机密钥的同一记录中;
-所述计算机读取对应于此应用的接合函数。
还使用上述方法中的任一方法来达到这些目标,其中所述存储和读取所述存储装置的步骤对所述计算机来说被本地地执行。
还使用上述方法中的任一方法来达到这些目标,其中所述存储和读取所述存储装置的步骤对所述计算机来说被远程地执行。
还使用上述方法中的任一方法来达到这些目标,其中所述存储和读取所述存储装置的步骤通过根据列拆分密钥表来远程地和本地地执行。
还使用上述方法中的任一方法来达到这些目标,其中由所述用户执行的步骤在用户计算设备上执行,而由所述计算机执行的步骤在所述用户通过网络访问的远程服务器上执行。
还使用前一方法来达到这些目标,其中由所述用户执行的步骤还包括在所述主密码的末端添加本地伪随机生成的尾密钥(tail key)的步骤,并且在所述远程服务器上执行的步骤还包括在所述远程服务器上同时随机生成相同的尾密钥,并且在主密码的所述尾密钥不同于在所述远程服务器上生成的所述尾密钥的情况下,将错误消息发送给所述用户而不是处理所述方法的其他步骤的步骤。
还使用上述方法中的任一方法来达到这些目标,还包括:
在所述用户请求更改所述应用密码时,重新计算旧的应用密码;以及,所述用户输入应用名称和至少一个优选的密码,即所谓的一个或多个主密码;
-所述计算机生成至少一个随机密钥;
-所述计算机将所述应用名称和所述至少一个生成的随机密钥存储在存储装置的记录中;
-所述计算机使用所述至少一个主密码和所述至少一个随机密钥作为输入来使用预定算法计算新的应用密码;
-所述计算机将所述旧的和所述新计算的应用密码提供给所述用户。
还使用上述方法中的任一方法来达到这些目标,其中在存储装置的记录中执行的所述读取、搜索和存储步骤是在所谓所述密钥表的表的记录中执行的读取、搜索和存储步骤。
还使用上述方法中的任一方法来达到这些目标,其中:
所述步骤‘所述用户在所述计算机中输入应用名称和至少一个主密码’被以下两个步骤所替代:
-所述计算机从所述应用接收所述应用名称;
-所述用户在所述计算机中输入至少一个主密码;以及,
所述步骤‘所述计算机将所述计算的应用密码提供给所述用户’被以下步骤所替代:
-所述计算机将所述计算的应用密码提供给所述应用。
还使用计算机程序产品来达到这些目标,所述计算机程序产品包括编程代码指令,当所述程序在计算机上执行时,所述编程代码指令用于执行根据以上方法中的任一方法的步骤。
还使用包括适合于执行根据以上方法中的任一方法的装置的系统来达到这些目标。
使用本发明的验证方法,用户可以轻松并安全地管理大量验证操作而不会危害总体安全性。当从用户输入(包括一个或多个主密码)初次计算密码时,生成并存储一个或多个随机密钥。然后,所述计算的密码可以被用来连接到应用但是不会存储所述密码。相反,使用存储的所述随机密钥来重新生成这些密码;读取存储有所述密钥的表的内容的黑客在不知道所述主密码和所使用的计算算法的情况下无法重新生成相应的密码。更改密码以遵守到期策略通过重新生成新的随机密钥并计算新的密码来简单地管理。
在不危害安全性的情况下,相同的主密码可以被用作用于计算连接到多个应用的密码的用户输入。这简化了用户(其只需记住一个密码)的责任。
所述解决方案的其他优点与其对不同情况的适应性有关。例如,可以使用多个主密码来进一步增强安全性:一个主密码用于公司内联网,一个用于因特网应用。其他替代方案包括使用多个主密码来连接到一个非常敏感的应用。
其他修改还可以包括,对于低安全级别的解决方案,提供共享服务器,其通过将存储的密钥发送给请求它们的用户来从全球实现验证服务。这意味着用户不必在本地进行存储,他们只需临时加载所需的密码。
由于为每个远程系统在密码计算中使用不同的函数总是可能的,所以对所述解决方案的其他修改也是可能的。
还指出的是,本发明的方法可以被用来锁定用户对应用的访问或从特定的计算机辅助设备(所谓的用户设备)对系统的登录。实际上,密码计算依赖于位于在该处请求访问的特定用户设备上的密钥表。为了进一步的安全性,可以考虑将所述密钥表存储在机器的不可移动存储装置中。由于用户可能并不知道最终应用密码是什么,所以如果他未使用该特定的用户设备,则他无法访问或被强制访问所述应用/系统。相对于包括从系统/应用选择由其网络地址标识的已授权机器的现有解决方案或类似的解决方案,此解决方案获得了改进。事实上,后者的解决方案通常依赖网络协议并且由于用户设备的地址可能被欺骗而安全性较弱。此外,维护用户设备地址需要繁重的维护过程,这是本发明的解决方案完全不需要的。
此外,本发明的解决方案安装简单,因为其可以是仅基于客户机的解决方案。
本发明的一个显著优点在于,在实际情况中,用户可以通过从用于处理验证请求的所有不同的可能实现变型具有不同选择来在同一验证程序中同时受益(优选实施例是用户激活的解决方案,是当应用自动激活验证程序时发布的接口,特定应用验证协议进行集成,其中验证程序知道该应用验证协议),这随后将在优选实施例的详细说明中进行描述。
附图说明
图1描述了本发明的优选实施例的环境;
图2是根据优选实施例的方法的总体流程图;
图3示出了根据优选实施例的存储由所述方法随机生成的密钥和与应用密码生成有关的其他信息的密钥表的实例;
图4示出了根据优选实施例的是开发的用户界面的一部分的用于重新计算应用密码的对话;
图5示出了根据优选实施例的是开发的用户界面的一部分的用于新应用密码生成的对话;
图6是根据优选实施例的用于图2的总体流程图的步骤275的应用密码生成的详细流程图;
图7描述了验证程序被实现为服务的情况下本发明的实施例的环境。
具体实施方式
图1描述了本发明的优选实施例的环境。在优选实施例中,使用特定密钥表(175)的验证程序(170)在计算机辅助设备(140、145、150)上执行以控制用户对计算机系统或应用的访问。对于文档的其余部分,优选实施例的方法讨论了对所谓的应用(其是应用程序)的访问,但是可以理解,同样的方法可用于访问系统。应用(190)在数据处理系统(160)上运行,并且每个应用(190)都可能提供应用接口(180)。要指出的是,所述应用接口也可以由服务器(160)直接提供。所述计算机辅助设备可以为任何类型,诸如类似于智能卡阅读器之类的嵌入式接口或工作站(140、150、145)或者可以是诸如PSTN之类的VOIP和POTS的语音系统(195+197+196)。应用数据处理系统可以在具有任何性质的网络(100、110、120、130、197)上分布:局域网(130、120)、广域网(100、110)、无线或有线网络、VOIP或PSTN(197)等。实现本发明的验证程序的设备对应用系统(145)可以是远程(140、150)或本地的或者甚至位于同一系统上。
图2是根据优选实施例的方法的总体流程图。当设备的用户需要本地或远程地连接到应用时,他通常启动合适的应用接口(180)。所述应用接口可以是浏览器、telnet会话、终端仿真、基于窗口的接口或任何其他接口程序。所述用户通过应用接口将服务请求发送给应用。在满足用户服务请求之前,所述应用通常通过所述应用接口将验证请求发送给用户。为了满足所述请求,所述用户必须通过所述应用接口输入所谓的用户ID和应用密码。在优选实施例中,用户随后启动对用户是本地应用的验证程序(200)。所述验证程序负责为用户计算将被所述应用接受的应用密码。所述验证程序请求用户输入应用名称(210)。所述验证程序搜索(220)表(密钥表(175和图3))中是否存在任何在指定字段中包含所述应用名称的记录。
如果所述验证程序没有在密钥表中找到任何具有所述用户提供的应用名称的记录(对测试230做出回答否),则这意味着所述用户从未连接到此应用并且必须为用户初次连接到此应用创建密码。在此情况下,所述验证程序使用窗口(随后在文档中根据图5来描述)提示用户为初次应用密码计算输入(240)优选密码、主密码、“函数类型”以及应用的密码句法规则。所述函数类型是一个标识符,其可以是如以后在文档中说明的由所述验证程序在应用密码的计算中使用的数学函数的助记名称;其可以与所述验证程序中的预定函数相对应或者,可以请求所述用户输入数学函数。如果用户没有输入函数,则为所述函数类型和所述句法规则提供默认值。在优选实施例中,显示函数类型的列表并且所述用户在其中进行选择。然后,所述验证程序随机地生成(250)至少一个密钥,在优选实施例中,为应用密码的每个字符生成一个密钥。一旦生成了所述随机密钥,所述验证程序就在密钥表中创建具有用于应用名称的字段(对于密钥表的以后使用,此字段将用作搜索关键字)、用于函数类型、随机密钥以及应用密码句法规则的字段的记录(260)。然后,所述验证程序使用所述主密码、应用密码句法规则和随机密钥来计算应用密码(275)。有许多现有的方法来根据句法规则和密钥来计算密码,优选实施例是随后在文档中根据图6描述的一个实例。在优选实施例中,一旦已计算,所述验证程序就以隐藏形式(‘********’)将所述应用密码显示(280)给用户。
如果所述验证程序在密钥表中找到了具有由用户输入的应用名称的记录(对测试230做出回答是),则这意味着所述用户已经访问了所述应用并且如之前在文档中描述的先前已计算了应用密码。因此,所述验证程序已经生成随机密钥并将其存储在密钥表的记录中。在此情况下,与显示用于初次应用密码计算的窗口相反,所述验证程序在窗口(随后在文档中根据图4来描述)中提示用户重新计算应用密码。所述验证程序从所述密钥表的记录检索(265)用于此应用的函数类型、随机密钥和应用密码句法规则。然后,所述用户被要求输入主密码(270)并且所述验证程序以与根据初次应用密码计算描述的相同方法计算应用密码(275),并且如在优选实施例中那样以隐藏形式(“********”)将其(280)显示给所述用户。
所述用户读取由所述验证程序提供的计算密码并将其输入应用接口。在优选实施例中,所述用户复制显示在所述验证程序的窗口上的隐藏形式的应用密码,并将其粘贴到应用接口(285)的窗口中。然后,所述用户通过所述应用接口将所述应用密码发送给所述应用。然后,所述应用在执行所述应用的服务器上执行密码检查并通过所述应用接口启动与现在已被验证的用户的连接。所述用户现在可以停止应用程序的执行。
随机密钥的生成:存在许多本领域的技术人员公知的现有随机密钥生成器。唯一的约束是,这些密钥必须被写入密钥表的记录中。在优选实施例中,生成的随机密钥数与所述应用密码中的字符数相等。
应用密码的计算:在优选实施例中,逐个字符地执行使用随机密钥的应用密码的计算。在优选实施例中,已为所述应用密码的每个字符生成一个随机密钥,并且所有密钥都被存储在密钥表中相应应用的记录中。对于应用密码的每个字符‘i’(‘i’在1与所述应用密码中的字符数之间),计算的第一步包括使用由用户选择的函数类型在数学上将从所述随机密钥“i”计算的值与从所述主密码计算的值相接合。所述函数具有形式f(M,Ki),其中M是以预定方式从所述主密码的每个字符的ASCII值计算的正数,而Ki是以预定方式从相应随机密钥的每个字符的ASCII值计算的正数。在优选实施例中,用于计算所述应用密码的字符“i”的第二步包括通过使用模数计算技术将第一步中计算的数转换为与如图6中描述的该应用的密码句法规则相一致的字符。如上所述,根据优选实施例的解决方案,本地用户设备只存储这样的随机密钥:如果该密钥被黑客窃取,其并不足以计算所述应用密码,因为需要用于计算的算法和所述主密码。
随机密钥数:在计算所述应用密码的过程中,所述验证程序可能生成一个或多个随机密钥。在用于计算应用密码字符的所有循环中可以使用相同且唯一的随机密钥。可替代地,并且在优选实施例中是这种情况,与生成用于计算整个应用密码的唯一随机密钥相反,所述验证程序为所述应用密码的每个字符计算一个随机密钥。增加随机密钥数就增加了安全性。在其他实施例中,可以生成不同的密钥数并用于所述应用密码的计算。
主密码数:用户可以使用同一主密码来验证所有应用。即使同一主密码用于所有应用,但是因为使用为每个应用随机生成的密钥来计算所述应用密码并且因为所述应用密码句法规则可能不同,计算的应用密码都是不同的。可替代地,所述用户可以根据不同类型应用的安全级别来选择使用有限数量的主密码。此可能性使得优选实施例的解决方案变得灵活并且同时适用于许多安全级别完全不同的环境。
应用句法规则可选字段:在初次计算所述应用密码时,用户将所述应用密码句法规则输入所述验证程序的窗口。然后,所述验证程序将所述应用密码句法规则存储在密钥表中并在每次重新计算所述应用密码时将重新使用该应用密码句法规则。如果用户没有定义,则所述验证程序将应用默认的应用密码句法规则。
函数类型可选字段:函数类型是在计算所述应用密码中使用的数学函数的助记名称。在优选实施例中,在应用密码字符计算的第一步中使用所述函数。根据此函数的复杂性,应用密码计算将具有不同的安全级别。但是,数学函数越复杂,计算使用CPU时间就越多。许多数学函数可用于此目的并且所述验证程序可以被相应地参数化。在优选实施例中,对于初次应用密码计算,从所述验证程序的窗口中的列表来选择函数类型。如果用户没有定义,则所述验证程序将应用默认的应用密码句法规则。
通常,为了处理应用程序请求的应用密码更改,用户同时需要旧密码和新密码。用户将启动所述验证程序,所述验证程序将向用户询问与图4中的信息相同的信息以进行旧密码计算以及如图5中的信息以进行新密码计算。然后,所述验证程序重新计算旧密码并计算新密码。最后,在优选实施例中,所述验证程序以隐藏形式(‘********’)将旧的和新的应用密码一同显示给用户。
用户读取由所述验证程序提供的计算的密码并将其输入所述应用接口。在优选实施例中,所述用户复制显示在所述验证程序的窗口上的隐藏形式的应用密码并将它们粘贴在所述应用接口的窗口中。当所述应用程序向用户确认密码更改和所述用户向所述验证程序确认密码更改时,新的信息被存储在密钥表的记录中。
其他实施例可以具有下列可能被组合的变型:
-远程密钥表:远程地(而不是本地地)从所述应用接口来定位密钥表。在此情况下,所述密钥表还可以被多个用户使用并且每个记录然后将包括用于“用户ID”的附加字段。当用户使用所述验证程序时,他必须还提供用户ID。集中且公用的表对于提供具有用户ID和应用名称组合作为唯一密钥来区分记录的集中服务来说是有用的。
-永不结束的验证程序:将所述验证程序实现为仍在用户设备上本地运行的自动启动的永不结束的程序,其拦截来自所述应用的验证请求并将提供应用名称给用户的验证程序接口显示给该用户,然后像通常那样执行并将计算的密码直接发送给发出请求的应用。
这并不是优选实施例,因为在此情况下,所述验证程序适合于有关验证的应用的特定协议。本实施例中的验证程序不能是独立于用户想要从其用户设备连接的任何应用的程序。偶然情况(如当多个应用确实符合用于验证的同一标准时)可以减轻此负面影响。
作为已发布接口的验证程序:将所述验证程序实现为具有由验证系统调用的驻留程序(java、applet、ActiveX,....)或远程服务(Web服务,....)的已发布接口。所述应用使用验证程序已发布的接口来向其发送应用名称。然后,所述验证程序连接提供应用名称的用户并获得丢失的数据(主密码,....)。然后计算所述应用密码并使用已发布的接口将计算的密码直接发送回发出请求的应用。对于永不结束的验证程序,这并不是优选实施例,因为在此情况下,应用适合于有关验证的验证程序的特定已发布接口。所述应用程序不能独立于用户使用的验证程序。如果所述验证程序的已发布接口可以被标准化,则可以减轻的此负面影响。
图3示出了根据优选实施例的密钥表的实例。所述密钥表只存储所述验证程序所需的永久信息。第一个字段包含应用名称(301),接下来的字段包含随机密钥(303...304),而最后的字段包含应用密码句法规则(305)。在305中,“A”表示描述密码句法规则的字母和数字字符:N用于任何数字,C用于任何字符。其他编码可用于表示密码规则。
如果对于函数类型,所述验证程序提供了具有除默认值以外的可能选择的可能性,则字段(306)还包含由用户指定的函数类型。其是不存储所述函数类型以增强安全性的选项。在此情况下,所述用户将在每次需要验证时提供信息。在初次计算所述应用密码时,所述用户输入并且所述验证程序存储应用名称、应用密码句法规则和函数类型。所述验证程序在初次计算应用密码时计算随机密钥并将其存储在密钥表中。
图4示出了根据优选实施例的用于重新计算应用密码的验证程序用户对话的窗口(400)。在此实例中,用户先前已输入了应用名称,在此是‘我的因特网邮件’(405)。在此窗口中,所述验证程序显示信息框(410)以便在相应字段(420)中收集重新计算已知应用的应用密码所需的主密码,其中所述主密码以隐藏形式(‘********’)显示。所述验证程序还向所述用户提供从字段(440、460)中的密钥表检索的用于密码句法规则(430)和函数类型(450)的信息。用户单击一个按钮(470)以便在不提供信息的情况下关闭所述界面,用户单击第二个按钮(480)以便将信息提交给用于应用密码重新计算的验证程序。
图5示出了根据优选实施例的用于初次计算应用密码并更新密钥表的验证程序用户对话的窗口(500)。在此实例中,用户已输入应用名称,在此是‘我的因特网邮件’(505)。在此窗口中,所述验证程序显示其他信息框以便收集所有初次计算应用密码所需的信息。第一个信息框(510)用于使用户在相应的字段(520)中输入主密码,其中所述主密码以隐藏形式(‘********’)显示。另一信息框(530)用于使用户在相应的字段(540)中输入所述应用密码句法规则。另一信息框(550)用于使用户通过在相应字段(560)中选择某一列表来输入函数类型。所述函数类型是将由优选实施例的验证程序用来在应用密码生成的第一步中数学地将所述主密码与所述随机密钥接合的函数。函数类型的列表按照复杂性的顺序排列,其意味着更安全和在执行时更多的CPU时间。用户使用一个按钮(570)在不提供信息的情况下关闭所述界面,并且用户使用第二个按钮(580)将信息提交给用于应用密码初次计算的验证程序并且将所述信息(505、540、560)与所述随机密钥一起存储在如图3中描述的密钥表的新记录中。
图6是图2的总体流程图中称为步骤275的应用密码生成步骤的流程图。第一个步骤(600)包括所述验证程序读取将用于应用密码生成的信息。在此应用密码生成是重新计算的情况下,所述验证程序在对应于此应用的密钥表的记录中读取所述随机密钥、函数类型和应用密码句法规则。在如根据图4描述的菜单中,所述验证程序从所述用户提供的输入读取所述主密码。在所述应用密码生成是初次计算的情况下,密码生成器通过在如根据图5描述的相应窗口中读取用户提供的输入来获得所需的数据。在优选实施例中,所述验证程序逐个字符地计算所述应用密码。所述验证程序读取所述主密码并将其与第一个随机密钥数学地接合(615)以获得如本专利中先前描述的第一个数字。如果用于第一个字符的应用密码句法规则必须是字母字符,则作为一个实例,所述验证程序采用此数字(620)的模数26并将其用作指针来查找所述字母表(A表示0、B表示1,...)的相应字母(630)。因此,此字母是所述应用密码的第一个字符。类似地,如果字符的句法规则是单个位整数,则将对如本领域中公知的接合操作产生的数字执行模数10计算(620、630)。一般来说,所述验证程序使用f(M,Ki)的结果作为数字并且使用与密码规则的最大允许字符对应的数字作为除数来执行模数计算。如果尚未创建所有字符(对测试640做出回答‘否’),则读取(645)下一个随机密钥并重复过程(615、620、630)直到计算了所述应用密码的所有字符为止(对测试640做出回答是)。
图7描述了其中将所述验证程序作为服务提供给想要连接到给定应用的用户的本发明的实施例。所述用户可以是图1中描述的所有类型。其可以是需要验证以通过网络(710)从用户设备(730)连接到远程服务器(160)上的应用(190)的用户,也可以是需要通过电话线路(196、197)和运行IVR(交互语音响应)程序和应用接口的中继服务器(700)连接到应用的用户。区别在于验证服务(170)既不在用户设备上运行也不在中继服务器(700)上运行,而是作为运行在提供商服务器(720)上的独立应用并充当用户的代理。用户接口(740)允许将用户连接到所述验证程序服务。所述验证服务生成并存储用于所述用户的密钥表(175)。注意,当用作服务时,所述验证程序标识请求验证的用户并使用其特定的密钥表。当用户希望提供商处的验证程序重新计算应用密码时,所述验证程序从所述用户收集主密码和应用名称、生成应用密码并将其发送回所述用户。
另一种服务情况是向用户提供安全存储和密钥表的传送。在此情况下,验证程序(170)和密钥表(175)将被传送给发出请求的用户,所述用户然后将在优选实施例及其可能的适用变型中使用它们。如果用在具有提供商服务器(720)的内联网中并且当仅可从安全的用户设备(730)或中继服务器(700)访问以实施位置安全性时,此服务和先前的服务都将是有价值的。
具有多种不同的实施方式,其中验证程序被实现为服务以提高可用性和安全性。为了提高可用性和安全性,如果用户设备(730)被认为是不安全的,则提供商服务器(720)上的验证程序将应用密码直接发送给远程服务器(160)上的相应应用(190),而不是将应用密码发送回所述用户,从而消除了将其提供给不安全的系统(730、700)的需要。根据已在文档中描述的永不结束的验证程序或作为发布接口的验证程序的解决方案,所述应用程序并不独立于所述验证程序。
作为服务的本发明的其他实施方式可以具有提高的安全性。为了避免将所述主密码从用户设备发送到提供商,在从用户接口(UI)发送主密码之前,在其末端添加了一次性密码(OTP)。在此实施方式中,由用户和提供商运行OTP生成器程序。所述OTP生成器是本领域中公知的:所述OTP生成器为用户和提供商同时伪随机生成令牌,其例如是一个八位数字。当在提供商上接收到所述主密码和OTP后,所述验证程序通过检查由所述用户生成的OTP和由所述提供商生成的OTP是否相同来检查所述主密码是否确实来自给定用户。只有当两台机器上的OTP相同时,所述验证程序才根据所述主密码和随机密钥来计算应用密码。黑客可以拦截所述应用密码和OTP,但是不能使用它们来访问远程应用,因为访问将发生在不同的时刻并且所述OTC对于所述验证程序将不再有效。
作为服务的本发明的另一个实施方式可以包括在用户设备(730)与提供商服务器(720)之间拆分密钥表(175)。将所述密钥表拆分成两个密钥表可以通过以下操作来完成:复制远程和本地密钥表上的应用名称,复制或不复制两个密钥表上的应用密码句法规则和函数类型,以及随机密钥的一部分被存储在所述本地密钥表中而剩余的随机密钥被存储在远程密钥表中。当所述密钥表被拆分成远程和本地密钥表时,由UI发送的对验证服务的请求始终包括由用户计算机设备上的UI程序本地地读取的随机密钥的一部分。为了计算应用密码,提供商上的验证程序需要存储在密钥表(其存储在提供商上)的一部分中的随机密钥和存储在密钥表(其存储在用户计算机设备上)的第二部分中的随机密钥,并且它们与所述主密码一起被用户发送给所述提供商。这将提供由服务提供商隐式验证用户和用户作为将不会对提供商服务器(720)永久可用的一个部分来控制其密钥表的的好处。
还指出的是,在所述验证程序被实现为发布接口的情况下,与以上段落中描述的拆分类型类似的密钥表的拆分可以在用户设备(730)、提供商(720)和保存应用(190)的服务器之间进行,因为应用(190)可以使用此发布接口与提供商上的验证程序通信。这将进一步提供由服务提供商隐式验证用户和应用的额外好处。

Claims (16)

1.一种用于在计算机上管理访问应用或系统,即所谓的应用,的用户验证的方法,所述方法包括以下步骤:
所述用户在所述计算机上输入应用名称和至少一个优选的密码,即所谓的一个或多个主密码;
-所述计算机生成至少一个随机密钥;
-所述计算机将所述应用名称和所述至少一个生成的随机密钥存储在存储装置的记录中;
-所述计算机使用所述至少一个主密码和所述至少一个随机密钥作为输入来使用预定算法计算应用密码;
-所述计算机将所述计算的应用密码提供给所述用户。
2.根据权利要求1的方法,其中所述用户输入步骤还包括:
-所述用户输入应用密码句法规则;
并且所述计算机存储步骤还包括:
-所述计算机将所述应用密码句法规则存储在所述存储装置的所述记录中;
并且所述用于计算所述应用密码的步骤还包括:
-计算所述应用密码的所述预定算法考虑所述应用密码句法规则。
3.根据权利要求1或权利要求2中的任一权利要求的方法,还包括以下步骤:
-所述用户输入应用名称和至少一个主密码;
-所述计算机在所述存储装置中搜索具有相同应用名称的记录并读取所述至少一个随机密钥;
-所述计算机使用所述至少一个主密码、所述至少一个随机密钥和所述应用密码句法规则作为输入,如果在所述存储装置的所述记录中找到任何一项的话,来使用所述预定算法重新计算所述应用密码;
-所述计算机将所述重新计算的应用密码提供给所述用户。
4.根据权利要求1到3中的任一权利要求的方法,其中所述生成至少一个随机密钥的步骤包括:将随机密钥生成函数应用与由所述应用密码句法规则规定的所述应用密码中的字符数一样的次数,从而获得与所述应用密码中的字符数一样多的随机密钥。
5.根据权利要求1到4中的任一权利要求的方法,其中所述使用预定算法计算所述应用密码的步骤包括以下步骤:
-使用预定的接合函数将所述至少一个随机密钥与所述至少一个主密码相接合;
-根据应用到所述接合步骤的结果的所述应用密码句法规则,如果在所述存储装置的所述记录中找到的话,通过执行模数计算来计算所述应用密码的每个字符。
6.根据权利要求1到5中的任一权利要求的方法,还包括确定接合函数的初始步骤,所述初始步骤本身包括以下步骤:
-所述用户选择接合函数;
-所述计算机将所述选择的接合函数存储在所述存储装置的具有所述应用名称和所述至少一个生成的随机密钥的同一记录中;
-所述计算机读取对应于此应用的接合函数。
7.根据权利要求1到6中的任一权利要求的方法,其中所述存储和读取所述存储装置的步骤对所述计算机来说被本地地执行。
8.根据权利要求1到6中的任一权利要求的方法,其中所述存储和读取所述存储装置的步骤对所述计算机来说被远程地执行。
9.根据权利要求1到6中的任一权利要求的方法,其中所述存储和读取所述存储装置的步骤通过根据列拆分密钥表来远程地和本地地执行。
10.根据权利要求1到9中的任一权利要求的方法,其中由所述用户执行的步骤在用户计算设备上执行,而由所述计算机执行的步骤在所述用户通过网络访问的远程服务器上执行。
11.根据权利要求10的方法,其中由所述用户执行的步骤还包括在所述主密码的末端添加本地伪随机生成的尾密钥的步骤,并且在所述远程服务器上执行的步骤还包括在所述远程服务器上同时随机生成相同的尾密钥,并且在主密码的所述尾密钥不同于在所述远程服务器上生成的所述尾密钥的情况下,将错误消息发送给所述用户而不是处理所述方法的其他步骤的步骤。
12.根据权利要求1到11中的任一权利要求的方法,还包括:
在所述用户请求更改所述应用密码时,重新计算旧的应用密码;以及,所述用户输入应用名称和至少一个优选的密码,即所谓的一个或多个主密码;
-所述计算机生成至少一个随机密钥;
-所述计算机将所述应用名称和所述至少一个生成的随机密钥存储在存储装置的记录中;
-所述计算机使用所述至少一个主密码和所述至少一个随机密钥作为输入来使用预定算法计算新的应用密码;
-所述计算机将所述旧的和所述新计算的应用密码提供给所述用户。
13.根据权利要求1到12中的任一权利要求的方法,其中在存储装置的记录中执行的所述读取、搜索和存储步骤是在所谓所述密钥表的表的记录中执行的读取、搜索和存储步骤。
14.根据权利要求1到13中的任一权利要求的方法,其中:
所述步骤‘所述用户在所述计算机中输入应用名称和至少一个主密码’被以下两个步骤所替代:
-所述计算机从所述应用接收所述应用名称;
-所述用户在所述计算机中输入至少一个主密码;以及,
所述步骤‘所述计算机将所述计算的应用密码提供给所述用户’被以下步骤所替代:
-所述计算机将所述计算的应用密码提供给所述应用。
15.一种包括编程代码指令的计算机程序产品,当所述程序在计算机上执行时,所述编程代码指令用于执行根据权利要求1到14中的任一权利要求的方法的各步骤。
16.一种系统,所述系统包括适合于执行根据权利要求1到14中的任一权利要求的方法的装置。
CNA2006100850957A 2005-07-26 2006-05-31 管理多个验证的基于客户机的方法和系统 Pending CN1905446A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05106881.5 2005-07-26
EP05106881 2005-07-26

Publications (1)

Publication Number Publication Date
CN1905446A true CN1905446A (zh) 2007-01-31

Family

ID=37674585

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006100850957A Pending CN1905446A (zh) 2005-07-26 2006-05-31 管理多个验证的基于客户机的方法和系统

Country Status (3)

Country Link
US (1) US20070028299A1 (zh)
JP (1) JP2007035041A (zh)
CN (1) CN1905446A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314564A (zh) * 2010-06-30 2012-01-11 百度在线网络技术(北京)有限公司 多业务系统的统一的分级安全方法及系统
CN103535010A (zh) * 2011-03-14 2014-01-22 高通股份有限公司 混合联网主口令短语
CN106257859A (zh) * 2015-06-18 2016-12-28 黄瑞杰 一种密码使用方法
US9887990B2 (en) 2016-04-25 2018-02-06 International Business Machines Corporation Protection of application passwords using a secure proxy
CN108885654A (zh) * 2016-04-05 2018-11-23 华为技术有限公司 一种进入目标应用的方法和终端

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2008202090A1 (en) * 2007-06-07 2009-01-08 Aristocrat Technologies Australia Pty Limited Method of credit input and a gaming system
WO2009043661A1 (en) * 2007-10-04 2009-04-09 International Business Machines Corporation Authentication method and system
JP5258258B2 (ja) * 2007-10-26 2013-08-07 新日鉄住金ソリューションズ株式会社 パスワード生成装置、パスワード生成方法及びプログラム
US8276196B1 (en) 2008-08-18 2012-09-25 United Services Automobile Association (Usaa) Systems and methods for implementing device-specific passwords
US8789154B2 (en) * 2011-06-30 2014-07-22 Qualcomm Incorporated Anti-shoulder surfing authentication method
US10291658B2 (en) * 2011-11-09 2019-05-14 Microsoft Technology Licensing, Llc Techniques to apply and share remote policies on mobile devices
US20130167223A1 (en) * 2011-12-27 2013-06-27 Symbol Technologies, Inc. Methods and apparatus for securing a software application on a mobile device
US9763086B2 (en) * 2013-08-27 2017-09-12 Qualcomm Incorporated Owner access point to control the unlocking of an entry
US10033723B2 (en) * 2013-12-18 2018-07-24 At&T Intellectual Property I, L.P. Methods, devices, and computer readable storage devices for authenticating devices having non-SIM based clients
JP6184316B2 (ja) * 2013-12-24 2017-08-23 エンカレッジ・テクノロジ株式会社 ログイン中継サーバ装置、ログイン中継方法、及びプログラム
US9660980B1 (en) * 2014-04-21 2017-05-23 Google Inc. Methods and systems of authenticating a password
US9652606B2 (en) * 2015-07-06 2017-05-16 Unisys Corporation Cloud-based active password manager
FR3041196A1 (fr) * 2015-09-15 2017-03-17 Orange Procede de gestion d'une liste d'au moins un mot de passe
JP6589518B2 (ja) * 2015-09-29 2019-10-16 富士通株式会社 パスワード管理プログラム、パスワード管理装置、及びパスワード管理方法
CN106656913A (zh) 2015-10-28 2017-05-10 珠海金山办公软件有限公司 一种数字验证码的生成方法及装置
EP3514711A1 (en) * 2018-01-18 2019-07-24 Fernanda Analia Diaz Novel access management solution for endpoint, servers and applications with automated password rotation functionality
WO2020027791A1 (en) * 2018-07-31 2020-02-06 Hewlett-Packard Development Company, L.P. Password updates
US11087321B2 (en) * 2019-02-04 2021-08-10 Mastercard International Incorporated Securely upgrading an untrusted channel into a trusted channel
CN111130774A (zh) * 2019-12-26 2020-05-08 北京阿尔山区块链联盟科技有限公司 密码生成方法、装置和设备
JP7316714B1 (ja) 2023-02-13 2023-07-28 株式会社フレアリンク 認証情報生成装置、認証情報生成方法、認証情報生成プログラム、及び認証情報生成システム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006333A (en) * 1996-03-13 1999-12-21 Sun Microsystems, Inc. Password helper using a client-side master password which automatically presents the appropriate server-side password to a particular remote server
JP3746919B2 (ja) * 1999-07-22 2006-02-22 エヌ・ティ・ティ・アドバンステクノロジ株式会社 可変認証情報を用いる資格認証方法
JP4569851B2 (ja) * 1999-08-18 2010-10-27 ネッツエスアイ東洋株式会社 一方向性関数を用いたカード認証システム
US7451147B1 (en) * 1999-11-18 2008-11-11 International Business Machines Corporation Flexible encryption scheme for GSO target passwords
US20020122553A1 (en) * 2001-03-01 2002-09-05 International Business Machines Corporation Method and apparatus for lightweight rekeying of a master key in a single sign-on system
EP1253500A1 (en) * 2001-04-26 2002-10-30 Nokia Corporation Method and device for authenticating a user on a remote server
JP2003330892A (ja) * 2002-05-15 2003-11-21 Oki Electric Ind Co Ltd パスワード生成装置および認証装置並びにパスワード生成方法および認証方法
US7454783B2 (en) * 2003-08-08 2008-11-18 Metapass, Inc. System, method, and apparatus for automatic login
US20050071645A1 (en) * 2003-09-25 2005-03-31 International Business Machines Corporation Algorithmic generation of passwords
US7210166B2 (en) * 2004-10-16 2007-04-24 Lenovo (Singapore) Pte. Ltd. Method and system for secure, one-time password override during password-protected system boot

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314564A (zh) * 2010-06-30 2012-01-11 百度在线网络技术(北京)有限公司 多业务系统的统一的分级安全方法及系统
CN102314564B (zh) * 2010-06-30 2016-03-16 百度在线网络技术(北京)有限公司 多业务系统的统一的分级安全方法及系统
CN103535010A (zh) * 2011-03-14 2014-01-22 高通股份有限公司 混合联网主口令短语
CN103535010B (zh) * 2011-03-14 2016-10-26 高通股份有限公司 混合联网主口令短语
CN106257859A (zh) * 2015-06-18 2016-12-28 黄瑞杰 一种密码使用方法
CN108885654A (zh) * 2016-04-05 2018-11-23 华为技术有限公司 一种进入目标应用的方法和终端
CN108885654B (zh) * 2016-04-05 2020-10-23 华为技术有限公司 一种进入目标应用的方法和终端
US10977352B2 (en) 2016-04-05 2021-04-13 Huawei Technologies Co., Ltd. Method for accessing target application, and terminal
US9887990B2 (en) 2016-04-25 2018-02-06 International Business Machines Corporation Protection of application passwords using a secure proxy
US9998455B2 (en) 2016-04-25 2018-06-12 International Business Machines Corporation Protection of application passwords using a secure proxy
US10171455B2 (en) 2016-04-25 2019-01-01 International Business Machines Corporation Protection of application passwords using a secure proxy
US10320776B2 (en) 2016-04-25 2019-06-11 International Business Machines Corporation Protection of application passwords using a secure proxy

Also Published As

Publication number Publication date
US20070028299A1 (en) 2007-02-01
JP2007035041A (ja) 2007-02-08

Similar Documents

Publication Publication Date Title
CN1905446A (zh) 管理多个验证的基于客户机的方法和系统
EP3375161B1 (en) Single sign-on identity management between local and remote systems
US7500099B1 (en) Method for mitigating web-based “one-click” attacks
CN111783075B (zh) 基于密钥的权限管理方法、装置、介质及电子设备
CN107423632B (zh) 可定制的敏感数据脱敏方法和系统
CN109460966A (zh) 基于请求方类别的合同签订方法、装置及终端设备
CN109768961A (zh) 基于一账通的微信小程序登录方法、装置及存储介质
JP2005526334A (ja) アプリケーションジェネレータ
CN1409836A (zh) 通过鉴定数据访问应用的信息系统
CN101419686A (zh) 一种基于互联网的网上合同签订系统
CN105743905B (zh) 一种实现安全登录的方法、设备、装置及系统
CN106416125A (zh) 用于虚拟机实例的自动目录加入
CN112860778B (zh) 桌面应用程序的数据库管理方法、装置、设备和介质
CN1744504A (zh) 用于服务资源定位符的请求的方法
CN104685511A (zh) 策略管理系统、id提供者系统以及策略评价装置
US7013388B2 (en) Vault controller context manager and methods of operation for securely maintaining state information between successive browser connections in an electronic business system
US8522323B1 (en) System and method for obtaining identities
CN1806217A (zh) 用于验证口令的方法和设备
CN107409129A (zh) 使用访问控制列表和群组的分布式系统中的授权
US20040025028A1 (en) Method, program, and apparatus for managing certification management environment
CN1894882A (zh) 认证系统
JP7068826B2 (ja) セキュアな製品識別及び検証のための難読化又はランダム化の強化
CN108769004B (zh) 一种工业互联网智能设备远程操作安全验证方法
WO2008077326A1 (fr) Procédé de saisie de caractère et système associé
CN1591448A (zh) 数据管理装置、数据管理方法及其程序

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned

Effective date of abandoning: 20070131

C20 Patent right or utility model deemed to be abandoned or is abandoned