专利名称:利用数字身份的表单填充以及自动口令生成的制作方法
利用数字身份的表单填充以及自动口令生成背景网站常常要求用户提供个人信息才能使用该网站所提供的服务。例如,网站可以 收集个人信息以为用户注册新帐户,特征用户或处理用户的支付。为了从用户收集此信息, 网站将常常向用户呈现“表单”。表单或web表单是带有为输入信息而预留的叫做“表单字 段”的空间的结构化web文档。表单是用于在万维网上收集用户输入的无所不在的手段。随着人们越来越习惯于通过表单向网站提供个人信息,发生身份盗窃的情况越来 越多。身份盗窃者可能向用户呈现请求个人信息的web表单——常常与受信任网站的web 表单相类似或完全是受信任网站的web表单的镜像。然后,没有疑心的用户可能给罪犯提 供口令、信用卡号或其他个人信息。还存在对于使用用户名和口令表单进行网站认证而言特有的其他问题。人们常常 选择基于词典中的单词或名称的短口令。这些类型的口令比长且随机化的口令更加容易猜 测或破解。另外,人们通常为多个网站使用相同的口令,这会增大在一个网站的口令被泄露 的情况下他们遭受的风险级别。如果一个人希望使用长的、随机并且唯一的口令,则个人口 令管理变得相当麻烦,因为在不将它们记下来的情况下可能难以记住口令。为了促进更安全、一致和对用户友好的数字信息交换,已开发出了开放、可互操作 的数字标识系统。这种数字标识系统常常被称为“身份元系统”。至少在一个常规实现中,身份元系统提供用户可以用来管理和使用数字身份的安 全机制。身份元系统通过为用户提供通过因特网向可验证方提供信息的安全手段来使数字 信息交换更一致和对用户友好,并帮助防止发生身份盗窃。用户的一些数字身份可以是自 颁发的,而其他的数字身份可以由受信任的第三方提供。颁发数字身份的实体——无论它 是用户还是第三方——被称为“身份提供商”。请求来自数字身份的信息并使用该信息的诸 如网站之类的一方被称为“依赖方”。如果用户导航到作为合法依赖方的网站,则嵌入在浏 览器中“身份选择器”软件将允许用户选择表示要发送到该站点的数字身份的信息卡。一 旦选择了数字身份,身份选择器就促进身份提供商与依赖方之间的称为“安全令牌”的数字 身份数据的加密数据包的安全交换。微软 WINDOWS CARDSPACE 是身份选择器软件 的示例。简要概述此处所描述的各实施例涉及使用数字身份来填充和提交表单字段数据。诸如这些 实施例之类的各实施例具有使得网站能够与数字身份兼容的潜力,且所花的开发工作量比 先前已实现的使一个网站与身份元系统兼容所花的开发工作量要少。此处所描述的各实施 例还提供用于用户名和口令的自动生成和维护的机制。在一示例实施例中,计算机应用程序从具有表单的网站获得表单字段说明。表单 字段说明标识表单中可以使用数字身份向其提供数据的表单字段。一旦获得了表单字段说 明,计算机应用程序就提示用户选择或创建数字身份。计算机应用程序使用此数字身份来 获得用来填充表单的表单字段中的一个或多个的数据。计算机应用程序使用所获得的数据 来填充表单的表单字段,然后,将表单字段数据提交到网站。
在另一示例实施例中,计算机应用程序从网站或应用程序获得用户名和口令参 数。计算机应用程序自动地生成满足所指定的参数的用户名和口令。所生成的用户名和口 令对被计算机应用程序安全地存储。用户名和口令对可以被计算机应用程序调用以便向网 站或应用程序进行将来的认证。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于 帮助确定所要求保护的主题的范围。附图简述为了描述可获得本发明的上述和其它优点和特征的方式,将通过参考附图来呈现 各实施例的更具体描述。可以理解,这些附图只描绘了样本实施例,并且因此不被认为是 对其范围的限制,将通过使用附图并利用附加特性和细节来描述和解释各实施例,在附图 中
图1示出了可以用来利用此处所描述的各实施例的示例计算系统;图2示出了其中可以实现使用数字身份进行表单填充的技术并可以实现自动口 令技术的环境;图3示出了使用利用数字身份所获得的数据进行web表单填充的方法的流程图;图4示出了用于安全用户名和口令对的自动生成和存储的方法的流程图;以及图5示出了结合使用数字身份的web表单填充和自动口令生成两者的方法的流程 图。详细描述此处所描述的至少一些实施例涉及使用数字身份的表单填充和/或涉及安全口 令的自动生成。此处所描述的各实施例具有这样的潜力使得网站能够与数字身份元系统 兼容,而所花的开发工作量比以前实现的使一个网站与身份元系统兼容所花的开发工作量 要少。另外,此处所描述的各实施例可以流线化并提高基于口令的认证机制的安全性,并且 减轻计算机用户为多个网站和应用程序进行口令管理的负担。虽然是参考网站来描述一些 实施例的,但是,所属领域技术人员可以理解,可以将此处所描述的技术应用于其他应用程 序,包括各种Web应用程序和独立计算机应用程序。如下面所进一步描述的,在一个实施例中,具有表单的网站提供关于被包含在表 单内的表单字段的信息。该信息可以任选地包括关于可以向表单字段输入的数据的类型和 格式的某些约束。提示用户选定或创建数字身份。所选数字身份可以与关于用户的某些信 息相关联,并可以被用来填充表单的各表单字段。来自所选数字身份的数据被格式化,以使 它符合由网站所指定的任何约束。然后,向网站提交数据。替代地或作为补充,在另一实施例中,可以生成安全的用户名和口令对,以用于在 网站或应用程序处进行注册,以及在网站或应用程序处进行将来的认证。安全的用户名和 口令对可以与数字身份相关联。首先,将参考图1描述其中可以使用此处所描述的各种原理的计算系统。然后,将 参考图2到5描述使用数字身份来进行表单填充和/或安全的用户名和口令的生成的各实 施例。图1示出了示例计算系统100。计算系统现在越来越多地呈现各种形式。计算系 统可以例如是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统,或者甚至通常不被视为计算系统的设备。在此描述和权利要求书中,术语“计算系统”被广泛 地定义为包括包含至少一个处理器以及能够在其上具有可以由处理器执行的计算机可执 行指令的存储器的任何设备或系统(或其组合)。存储器可以采取任何形式,并可以取决于 计算系统的特性和形式。计算系统可以分布在网络环境中,并可包括多个组成计算系统。如图1所示,在其最基本的配置中,计算系统100通常包括至少一个处理单元1102 和存储器104。存储器104可以是物理系统存储器,可以是易失性、非易失性、或两者的某种 组合。此处也可以使用术语“存储器”来指代诸如物理存储介质之类的非易失性大容量存储 器。如果计算系统是分布式的,那么,处理、存储器和/或存储能力也可以是分布式的。如 此处所使用的,术语“模块”或“组件”可以指代在计算系统上执行的软件对象或例程。此处 所描述的不同组件、模块、引擎,以及服务可以实现为在计算系统上执行的对象或进程(例 如,作为分开的线程)。在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果 这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已 经执行了计算机可执行指令,引导计算系统的操作。这样的操作的示例涉及对数据的操纵。 计算机可执行指令(以及被操纵的数据)可以存储在计算系统100的存储器104中。计算系统100还可以包含可允许计算系统100诸如通过例如网络110与其他消息 处理器进行通信的通信信道108。通信信道108是通信介质的示例。通信介质通常以诸如 载波或其它传输机制等“已调制数据信号”来体现计算机可读指令、数据结构、程序模块或 其它数据,并包括任何信息递送介质。作为示例而非限制,通信介质包括有线介质,如有线 网络或直接线连接,以及诸如声学、无线电、红外线及其他无线介质之类的无线介质。如这 里所使用的术语“计算机可读介质”包括存储介质和通信介质两者。本发明的范围内的实施例还包括用于携带或其上储存有计算机可执行指令或数 据结构的计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机访问的 任何可用介质。作为示例而非限制,这样的计算机可读介质可包括诸如RAM、ROM、EEPROM、 CD-ROM之类的物理存储器和/或存储介质或其他光盘存储、磁盘存储或其他磁存储设备、 或可用于携带或存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用 或专用计算机访问的任何其他介质。当信息通过网络或另一通信连接(硬连线、无线或硬 连线或无线的组合)传输或提供给计算机时,计算机将该连接完全视为计算机可读介质。 因此,任何这样的连接被适当地称为计算机可读介质。上述的组合也应被包括在计算机可 读介质的范围内。计算机可执行指令例如包括,使通用计算机、专用计算机、或专用处理设备执行某 一功能或某组功能的指令和数据。尽管用结构特征和/或方法动作专用的语言描述了本主 题,但可以理解,所附权利要求书中定义的主题不必限于此处所描述的具体特征或动作。相 反,此处所描述的具体特征和动作是作为实现权利要求的示例形式来公开的。图2示出了其中可以发生如此处所描述的使用数字身份的表单填充的技术的示 例环境200。用于自动化的安全口令生成的技术也可以在示例环境200中执行。图2包含 客户端计算系统201,其可以是例如类似图1的计算系统100那样来构造的。客户端计算系 统201连接到网络205。网络205可以是因特网,或者替换地,网络205可以是将客户端计 算系统201连接到环境的如图2所示并在下面所描述的其他组件的任何网络。
可以类似图1的计算系统100那样来构造的web服务器202包含计算机可执行指 令,web服务器202通过这些计算机可执行指令主存可以被客户端计算机201通过网络205 访问的网站210。网站210可以包含一个或多个网页21IA-D (在本说明书中有时统称为“网 页211”)。每一个网页211都可以包含元数据215,以及可见元素216,可见元素可包括可 见交互式元素和可见非交互式元素。网页211可以使用HTML以传统方式描述,或者,可另 选地,可以以本领域内已知的或将来开发的其他语言、脚本、协议或格式提供到客户端计算 系统。在替换的配置中,网站210可以被跨多个web服务器地主存,所述多个web服务器 可以类似于所描绘的web服务器202。另外,网站210和/或网页211可以通过分布式体 系结构来提供,诸如,例如,实现允许网页及其他内容跨多个web服务器地被镜像和分发的 机制的分布式体系结构,以便促进更大数量的用户、更高的带宽可用性、更快的连接速度等 等。实际上,此处所描述的技术可以与涉及表单的任何环境兼容,不管实现该环境的web服 务器(如果有的话)的数量或类型如何,并且不管可以将网页及其他内容分发到环境中的 最终用户的手段如何。网站210,或网站的一个或多个网页211,包含表单,而表单又可包含多个表 单字段。例如,在包含表单212的网页211A的情况下,表单212被示为包括表单字段 213A-213D (统称为“表单字段213”)。虽然较详细地示出了网页211A,但是网页211A所特 有的一些或全部特征也可以可任选地归属于其他网页211。例如,一个或多个其他网页211 也可以具有表单。然而,通常,表单内的表单字段的数量、身份,以及布局常常可以在一个表 单与另一个表单之间不同。一般而言,作为此处所使用的术语,并且作为本技术已知的术语,“表单”是带有为 用户输入信息预留的空间的结构化文档,而“表单字段”是表单中用户或其他实体可以输入 特定信息项的空间。除包含带有表单字段213的表单212之外,网站210的网页211A还可 包含引用表单字段213中的一个或多个(但不一定全部)的表单字段说明214。表单字段 说明214和其中包含的引用向客户端计算系统201提供标识应该通过此处所描述的表单填 充方法和技术来填充的表单字段的信息。表单212、表单字段213和表单字段说明214可以全部包含在单个网页211A内, 或者,可另选地,可以是诸如所示出的网页211之类的多个网页的部分。可另选地,可以通 过除常规的用图形方式呈现的网页以外的手段,诸如通过web服务器202和客户端计算系 统201之间的直接信息交换,或通过应用程序,包括不被视为传统网页的web应用程序,来 使表单212、表单字段213,以及表单字段说明214可为客户端计算系统201所用。至少在其中作为一个或多个网页211的部分向客户端计算系统201提供表单字段 说明214的各实施例中,表单字段说明214可以作为网页的元数据215的部分被包括。表单 字段说明214中的数据可以被组织为本领域内已知的或还有待于开发的多种类型的数据 结构中的任一种。例如,一种常规机制是使用标记语言来组织数据结构,诸如,例如,以XML 或HTML数据结构来组织。可另选地,表单字段说明214可以简单地在描述网页的标记语言 (诸如HTML)内的一个或多个标签内进行描述。作为将表单字段说明214作为网页元数据215的部分提供到客户端计算系统201 的另一种替换方案,可以通过网络205以更直接的方式,诸如通过本领域内已知的或还有待于开发的各种手段中的任何一种,包括例如通过诸如TCP或UDP之类的已知协议跨网络 发送的数据包,来将表单字段说明214提供到客户端计算系统。然而,还有许多其他可以用 来通过网络发送数据的机制。可以使用这些机制中的任何一种来将表单字段说明214发送 到符合此处所描述的原理的客户端计算系统201。表单字段说明214可以任选地为其中引用的表单字段指定一个或多个表单字段 限制。这些表单字段限制常常是关于可以输入到表单字段说明214所引用的表单字段中的 数据的参数或限制。表单字段限制的示例包括(但不限于)下列各项所指定的表单字段 是否是所需的,输入到表单字段的数据的最小和/或最大长度限制,当填写表单字段时要 使用的所需字符集,所需或被禁止的字符类型等等。表单字段说明214还可包括为在表单 字段说明214中被引用的用户名和口令表单字段所特有的表单字段限制。这将是“用户名 和口令说明”的示例,如下面参考图4所讨论的。在包含导致客户端计算系统201除通常由web浏览器执行的功能之外还执行下 面更详细地描述的用于使用数字身份进行表单填充的方法和技术的计算机可读指令的web 浏览器软件218的实现中,客户端计算系统201可以显示网页211A的可见元素216。用户 230可以与客户端计算系统201 (且特别是与web浏览器软件218)进行交互。虽然是结合 web浏览器软件218来描述此处所描述的各实施例,但是,应该理解,可以将导致客户端计 算系统201执行此处所描述的技术中的任一种的计算机可执行代码集成到各种计算机应 用程序,包括在软件和/或硬件中实现的应用程序。客户端计算系统201包括一个或多个数字身份引用220A_E(统称为“数字身份引 用220”),它们引用用户可以支配的一个或多个数字身份。这些数字身份引用220可被存 储在前面参考图1所描述的各种计算机可读介质中。例如,数字身份引用220可被存储在 客户端计算系统201本地的非易失性存储介质中,或者可另选地,数字身份引用220可被存 储在诸如闪存驱动器或智能卡之类的便携式设备上。然而,对于可以存储数字身份引用220 的方式没有限制。数字身份引用220包含允许由客户端计算系统201执行的计算机可执行代码连接 到如身份提供商203A-D和203S所示的一个或多个身份提供商(下面简称为“身份提供商 203”)的信息。如由数字身份引用220A-D所指代的第三方身份提供商203A-D可以在类似 图1中所示出的计算系统100那样构造的服务器中实现。通过网络205向客户端计算系统 201提供到这些第三方身份提供商的连接。第三方身份提供商203A-D的示例包括提供数字 身份的政府机构、信用卡提供商、用户230在其中具有成员资格或从属关系的俱乐部或团 体,诸如VERISIGN inc.之类的证书颁发机构等等。这些只是第三方身份提供商的几个 示例,因为事实上以数字身份的形式为用户提供信息的任何实体都可以被视为第三方身份 提供商。此外,如数字身份引用220E所示的,一些数字身份引用可以指代由自颁发身份提 供商203S(也称为“自颁发身份提供商软件203S”)所发行的自颁发数字身份。自颁发身 份提供商203S可以以计算机可执行代码来实现,该计算机可执行代码驻留在客户端计算 系统201的存储器中,且在被执行时,允许用户230创建、存储和/或访问包含有关用户的 一些信息的数字身份。包括自颁发身份提供商203S的计算机可执行代码可以作为web浏 览器软件218的部分、作为身份选择器软件219(下面详细地讨论)的部分、作为另一软件产品的部分,或者,可另选地,作为独立软件。在图2中,通过让自颁发身份提供商203S仅 与web浏览器软件218部分地重叠来以符号方式表示在对自颁发身份提供商203S的管理 中的这种灵活性。客户端计算系统201可包括身份选择器软件219。身份选择器软件219向用户230 呈现图形界面,其中显示数字身份引用220的图形表示(并由此的相对应的标识)。身份选 择器软件219还提供用户230可以用来提供从正被显示的数字身份引用的图形表示中进行 选择的手段。身份选择器软件219作为web浏览器软件218的部分,或者,另选地,可以是 单独的或独立应用程序的部分。在图2中,通过使身份选择器软件219仅与web浏览器软 件218部分重叠来以符号方式表示这种情况。在其中身份选择器软件219被结合到web浏 览器软件218的外部的一些实现中,在客户端计算系统201上甚至可以无需存在web浏览 器软件218。数字身份引用220可以作为数字身份的信息卡或其他视觉表示由身份选择器软 件219呈现给用户。每一信息卡都可以向用户提供有关该卡表示的数字身份的信息的视觉 显示。对于此类卡可使用此处所描述的原理来表示的数字身份的类型确实没有限制。然而, 使用具体示例可以帮助阐明此处所描述的更广泛的原理。因此,只作为示例,数字身份可以 表示声明用户是某一年龄的政府颁发的数字身份。在此示例中,数字身份引用可以包含对 政府身份提供商的引用,其可以是例如第三方身份提供商203A-D中的一个。在此示例中, 假设政府身份提供商愿意担保并验证对用户年龄的声明。在该情况下,继续此示例,表示数 字身份引用的信息卡可以提供图形显示,该图形显示向用户标识提供数字身份引用所引用 的数字身份的身份提供商具有颁发年龄验证身份的能力。虽然此处所讨论的一些实施例是参考网页和web环境(例如,图2中所示出的网 页211)来描述的,但是,本领域普通技术人员在阅读本说明书之后将理解,在此处所描述 的各实施例中实现的概念和技术可以应用于可以不结合常规网页的各种环境和技术中。例 如,对于涉及表单的使用的各实施例,表单通常用在不是网页的各种计算机应用程序中。表 单可以用在WORDPERFECT 文档或微软 OFFICE文档中。表单可以用于通常不被视 为“网页”的各种web应用程序中,诸如使用MACROMEDIA FLASH 技术开发的web 应用程序。的确,表单实际上可以用在需要用户输入数据的任何独立或其他计算机应用程 序中。上文所提及的环境200的一些组件已经在本领域内已知的其他计算环境和应用 程序中实现,虽然在很多情况下带有与此处所描述的功能不同的功能。例如,涉及用于数字 身份交换的方法——包括使用身份选择器和身份提供商——的平台在本领域内通常被称 作“身份元系统”。作为再一个示例,微软 WINDOWSCARDSPACE 尤其包括向用户呈现 信息卡的身份选择器软件的实现,该信息卡包含对由身份提供商所提供的一个或多个数字 身份的引用。这已通过背景技术指出,以便例示此处所公开的一些有用的技术和机制可以 结合现有身份元系统结构及本领域内已知的其他结构来实现,虽然带有合适的修改以适应 于此处所描述的原理。图3示出了用于利用使用数字身份获得的数据来填充表单字段的方法300。方法 300可以在类似于图2中所示出的环境200的环境中执行。诸如客户端计算系统201之类 的一个或多个计算系统及通过网络205连接到客户端计算系统201的其他计算系统,可以执行包含在计算机可读介质上的计算机可执行指令,这些指令导致计算系统执行方法300 中所描述的动作。方法300包括从网站获得指定表单的表单字段的表单字段说明的动作301。例如, 在图2的上下文中,客户端计算系统201可以从网站210获得表单212的表单字段说明214。 回想一下,表单212指定数个表单字段213,并且表单字段说明214可以引用表单字段213 中的一个或多个。此外,表单字段说明214还可以任选地对表单212的一个或多个表单字 段213指定一个或多个表单字段限制,如前面所讨论的。作为示例,在动作301中获得的表单字段说明214可以引用用于在网站210处为 用户230注册新帐户的表单(此处称为“注册表单”)212的表单字段213。网站210可以, 另选地或附加地,包含也是与表单212类似的格式的另一个表单,其用于认证或登录到网 站210(此处称为“登录表单”),。然而,表单可以用于这些或各种其他目的中的任一个或 多个目的。在任何情况下,表单字段213中的一个可以是口令字段——在注册表单的情况 下,用于新口令,或者,在登录表单的情况下,用于现有口令。可能的表单字段213的其他示 例可以是用户名字段、信用卡信息字段、护照标识符字段、国籍字段、年龄字段、婚姻状况字 段、地址信息字段、犯罪记录字段、职业字段等等。然而,此处所描述的原理不仅限于与表单 字段213相关联地描述的信息的类型。在至少一个实施例中,表单字段213可以包括文本 信息。然而,在某些实施例中,只作为示例,信息可以附加或另外地是文件、列表、用图形方 式显示的对象、日历日期选择,或任何其他类型的信息。此处所描述的原理对于所使用的信 息类型没有限制,而各实施例可以利用各种不同类型的信息一种或多种。图3中所示出的方法300还包括提示计算系统的用户选择或者创建将被用来向表 单的表单字段中的至少一个提供至少一个值的数字身份的动作302。可以由身份选择器软 件219提示用户230从可为用户所用的一个或多个数字身份引用220中选择一个数字身份 引用。如前面所讨论的,可以以数字身份的信息卡或其他图形表示的形式,将数字身份引用 220呈现给用户,且每一图形表示都可以向用户230呈现例如图形表示所表示的数字身份 的简短摘要。在至少一个实施例中,用户230可以选择创建新数字身份,而并非选择预先存在 的数字身份。当作出此选择时,自颁发身份提供商软件203S可以被激活,且用户230可以 提供输入——例如通过图形界面——自颁发身份提供商软件203S可以使用该输入来创建 将在方法300中使用的数字身份。可以存在用户可以藉由其来创建新数字身份的各种其他 机制。可另选地,与选择创建新数字身份不同,用户230可以选择现有的一组数字身份引用 220A-E中的一个。所选定数字身份引用可以引用来自第三方身份提供商203A-D的现有数 字身份,或者另选地,可以引用来自自颁发身份提供商203S的数字身份。方法300中的下一动作303包括使用用户在前一动作302中选择或创建的数字身 份引用来获得可以被用来填充表单212的表单字段213中的一个或多个的数据。作为此动作303的一个应用的示例例示,如果用户230前面在动作302中已选择 例如引用由第三方身份提供商203A所提供的数字身份的数字身份引用220A,则客户端计 算系统201通过网络205连接到所选数字身份引用220A所涉及的第三方身份提供商203A。 然后,第三方身份提供商220A可以向客户端计算系统201提供所选数字身份包含的数据字 段(也称为“声明”)。数据可以通过本领域内已知的或将来开发的一些安全手段或协议来传输。可以将数据封装到在本说明书和当前技术中统称为安全令牌的各种不同类型的数据 包的任一个中。安全令牌可以是本领域内已知的或将来可能开发的任何类型的数据包,包 括诸如例如,SAML令牌之类的安全数据包。继续前一段落的说明性示例,如果用户先前(在动作302中)选择了称为自颁发 数字身份的数字身份引用220E或者选择创建新的自颁发数字身份,则驻留在客户端计算 系统201上的自颁发身份提供商203S可以提供表示包括在用户选择的或者用户创建的数 字身份内的数据的安全令牌。此数据可被封装在可以类似于安全令牌的数据包中,如在前 一段落中所讨论的。另选地,可以将从自颁发数字身份获得的数据直接传达给执行方法300 的软件。一旦在动作303中接收到数据,方法300包括使用所获得的数据来填充在表单字 段说明214中指定的表单字段213中的一个或多个的动作304。在前一动作303中接收到 的数据可能需要是从安全令牌中提取和/或经过转换,然后其才可用于填充表单字段213 中的一个。例如,在其中安全令牌是从身份提供商203接收到的实施例中,安全令牌可能需 要被“打开”和/或解析,以便提取简单的文本数据或表单字段说明214中指定的表单字段 213的兼容输入的其他数据(在非文本表单字段的情况下)。此外,还可以格式化或转换数 据,以便使它符合在表单字段说明214中指示的任何或全部任选表单字段限制。一旦在动作304中已使用数据来填充在表单字段说明214中指定的表单字段213 中的一个或多个,方法300就涉及向网站210提交已填充的表单字段的动作305。此数据 提交动作305可以由客户端计算系统201自动地执行,且除在用户230于前一动作302中 选择了数字身份时可能已发生的用户交互以外,无需进一步的用户交互。另选地,在可以提 交已填充的表单字段之前,用户230可能需要向客户端计算系统201提供一些进一步的交 互。在一个示例中,用户230可能需要点击对话框中的确认按钮,以便确认表单212已准备 好被提交。然而,虽然点击对话框中的按钮是用户交互的一个常见示例,但是,在于此动作 305中将数据提交到网站210之前,用户可能需要提供可能在用户230和客户端计算系统 201之间的许多交互中的一个或多个。在一个或多个实施例中,将已填充的表单字段提交到web服务器202的方式可能 涉及客户端计算系统上的web浏览器软件218用与在用户230手动向表单212输入数据并 将表单提交到网站230时提交数据的相同的方式向web服务器202提交数据。在此示例中, web浏览器软件218可以模仿用户点击“提交”按钮或与类似的用户界面元件进行交互。另 选地,web浏览器软件218可以简单地向web服务器202发送包含已填充的表单字段信息 的HTTP请求。尽管这些是向web服务器提交表单字段的两个示例实现,但是,有本领域内 已知的或将来开发的各种其他手段——藉由其客户端计算系统201可通过网络205向web 服务器202提交已填充的表单字段数据。在一个或多个实施例中,在执行方法300之前或在执行方法300的过程中,web浏 览器软件218和/或身份选择器软件219可以尝试在继续方法300之前检测网站210与方 法300的技术的兼容。作为可如何进行此兼容性检测的一个示例,在继续执行方法300之 前,web浏览软件218可以检测网页211A包含经适当格式化的表单字段说明214。另一方 面,web浏览软件218可能认识到网页211A没有经适当格式化的表单字段说明,并且不会 继续执行方法300。此表单字段说明检测技术只是基于一些条件的存在来如何选择性地执行此处所描述的方法和技术的一个示例;此处所描述的技术可能潜在地取决于可能不同于 此说明性示例中所使用的条件或作为其补充的一个或多个条件。此外,对一些条件的检测, 诸如在本段落中所描述的示例中所描述的,对于此处所描述的方法300及其他技术,完全 是任选的;可以存在根本不取决于任何条件的存在的实施例。图4示出了用于自动并且安全地生成用户名和口令对的方法400的流程图。方法400包括获得应用程序或网站的用户名和口令说明的动作401。在网站210 的情况下,用户名和口令说明可被包含在表单字段说明214中,或者也可以通过跨网络205 传输数据的其他手段来传达,如前面所讨论的。在应用程序的情况下,用户名和口令说明可 以包括应用程序用来指示需要用户名和口令才能访问应用程序的至少一些功能的某种其 他结构。另外,用户名和口令说明可以任选地指定对要向应用程序或网站提供的用户名和 口令的各种限制。例如,可以有长度限制(最小或最大),所需或受限的字符集,所需或被禁 止的字符类型,对词典词或者名称或它们的简单变体的使用的限制,或者所生成的用户名 和口令在特定情况下应该适应的许多其他可以想象的限制或参数。接下来,方法400包括自动地生成符合所获得的用户名和口令说明的用户名和口 令对的动作402。所生成的用户名和口令应该满足用户名和口令说明中所包括的全部限制、 限定和参数——如果包括了任何这样的限制和参数的话。除在用户名和口令说明中指定的限制之外,生成过程还可以任选地对可以通过该 过程生成的用户名和口令施加其自己的限制。例如,生成过程可以针对使用词典词或名称 施加其自己的限制,或者它可以始终产生由网站或应用程序支持的最大长度的口令。在这 样的示例中,由生成过程添加说明的限制或使其限制性更强。作为自施加限制的另一个示 例,生成过程可以施加任何所生成的用户名和口令对应该不同于先前在生成过程中为其他 应用程序或网站创建的用户名和口令对。自施加限制的这些示例只是可以在口令生成过程 之际施加的各种可能的限制中的几个。在某些实施例中,自施加限制可以是完全任选的,或 不存在。在在动作402中生成用户名和口令对之后,生成过程400包括存储所生成的用户 名和口令的动作403,以使得它可以被计算系统调用,以便在应用程序或网站处进行将来的 认证。用户名和口令可以存储在本地,或者,可另选地,存储在未被包括在客户端计算系统 201内的设备或者存储介质上。对于可如何存储用户名和口令没有限制。在某些实施例中, 用户名和口令可以以加密并且安全的方式存储,以使得仅生成该对的应用程序可解密所存 储的用户名和口令对来供将来使用。在替换实施例中,用户名和口令对可以存储在一个以上的位置;例如,用户可能在 客户端计算系统和诸如膝上型计算机、PDA或蜂窝电话之类的便携式计算设备上具有所存 储的用户名和口令。另一种可能性是,该对可以被安全地存储在诸如闪存之类的便携式存 储介质上或存储在诸如智能卡之类的便携式设备上,以使得所生成的用户名和口令对可以 在用户230有机会访问的任何计算机上使用。这些只是可如何存储和使用由此处所描述的 技术所生成的用户名和口令的许多可能性中的几种。一旦所生成的用户名和口令对以使得该对可以被调用以在网站或应用程序处进 行将来的认证的方式被存储,就可以有使用所生成的对来采取的进一步的任选步骤404。例如,在动作411中所示出的一个任选步骤中,所生成的用户名和口令对可以被用来向为其生成该对的网站或应用程序自动地进行认证。在涉及网站210的各实施例中, 当用户230返回到先前为其生成了用户名和口令的网站210(如参考动作401-403所讨论 的)时,客户端计算系统201上的计算机可执行代码可以导致生成的对被用来自动地登录 到网站210。另选地,在涉及与网站不同的应用程序的各实施例中,包括可被启用成使用此 处所描述的技术的许多不同类型的应用程序,可在动作411中使用所生成的用户名和口令 对来自动地登录到应用程序。在为用于进行网站认证的口令生成所特有的各实施例中,一旦存储了所生成的 对,计算系统就可以提示用户(如动作421所示)来选择或创建要与所生成的用户名和口 令对相关联的数字身份。一旦用户选择或创建要与生成的对相关联的数字身份,则将所生 成的对与数字身份进行关联,如动作422所示。除与数字身份进行关联之外,所生成的对可 以任选地与网站进行关联,以使得当网站随后被拜访时,用户名和口令具有已知的与网站 的关联,且此关联可以被用来向诸如web浏览器软件218或身份选择器软件219之类的应 用程序提供附加的认证功能。在方法400的替换性配置中,任选动作421和422可以在存储所生成的用户名和 口令对的动作403之前被执行。在任何情况下,在包括任选动作421-423的各实施例中,作 为将来的认证使用的示例,当用户230导航到与此处所描述的技术兼容的网站210且网站 210要求用户230认证以便访问其中包含的某些特征时,在动作423中提示用户选择数字身 份。此对选择数字身份的提示可以按与前面参考方法300的动作302所描述的方式类似的 方式来完成。一旦用户230为网站选择了与用户名和口令对相关联的数字身份,用户230 在随后就将被自动地认证或登录到网站,这类似于在动作411中所示出的并且在上文描述 的动作。在这样的实施例中,例如,包括在用户230选择了数字身份之后在网站210使用所 生成的对来进行自动认证的动作423可以涉及使用用户名和口令对来填充表单字段213, 然后,向网站210提交表单字段213,这类似于方法300的动作303-305中所示出的用于填 充和提交表单字段数据的技术,如图3所示。涉及图4中所示出的方法400的各实施例的一个优点在于,用户230不需要记住 或记下所生成的用户名和口令对。另外,另一个人将难以或不可能获得用户名和口令来进 行未经授权使用。尽管在用户名和口令对的一般化概念的上下文中讨论方法400,但是,应认识到, 有利用口令的各种不同的认证机制。在这样的系统中,口令常常与一些补充标识信息结合 起来,该补充标识信息可以是用户名,即在图4的例示和此处的讨论中通篇所使用的示例, 但是,也可以另选地是用于进行标识的各种其他手段中的任一种。用于进行标识的手段的 另一个常见的示例将是结合口令使用电子邮件地址来进行认证。还有用于进行用户标识的 其他机制,包括更复杂的机制,诸如,例如,智能卡和生物测定技术。然而,这些只是使用口 令的技术的几个说明性示例。可以将此处所描述的技术应用于任何认证系统,这些认证系 统可以从口令的安全的自动生成获益,而不管该系统是否涉及用户名和口令配对或用于进 行用户标识和认证的某种其他方法。在某些实施例中,可以使用方法400来向网站提供用户名和口令,在这样的情况 下,图2的环境适用。在这样的实施例中,可以通过表单212向网站210提供用户名和口令。 如此,图4的技术可以结合诸如图3的方法之类的方法来使用。例如,作为在动作301中获得的表单字段说明214的一部分,可以从网站210获得用户名和口令说明。作为再一个示 例,可以按与动作305中所示出的并参考动作305所描述的方式类似的方式向表单212提 交所生成的用户名和口令。此外,在某些实施例中,客户端计算系统201可包括web浏览器 软件218,且方法400可以通过计算机可执行代码来执行,计算机可执行代码作为web浏览 器软件218或身份选择器软件219的一部分或结合其来一起执行。在替换实施例中,方法400可以由独立应用程序执行,该独立应用程序包含执行 该方法的计算机可执行指令,或者,该方法可以由作为更大的应用程序或代码库的一部分 的代码模块来执行。图3和4中所示出的方法和技术300和400,当在类似于图2中所示出的环境的环 境中执行时,可以被组合以创建混合式系统,该混合式系统执行方法300的表单填充并结 合在方法400中所演示的安全用户名和口令的自动生成。这样的方法500在图5中示出, 并且可以允许通常被用来访问由网站210所提供的特征的注册和认证过程的有效自动化, 还有其他优点。例如,在诸如图2的环境200所示的之类的环境中,方法500可包括获得指定表单 212的多个表单字段213的表单字段说明214的动作501。表单字段说明214可包括对于 表单212的一个或多个表单字段213的表单字段限制,如前面所描述的。此动作501类似 于图3中所示出的动作301。接下来,在动作502中,由客户端计算系统201提示用户230 选择或创建数字身份。随后,在动作503中,使用数字身份来获得用于填充表单212里在表 单字段说明214中指定的表单字段213里的至少一个的数据。这可能涉及使用来自第三方 身份提供商203A-D或自颁发数字身份提供商203S的数字身份,且可能涉及对前面结合动 作303所讨论的安全令牌的传送和解析。取决于网站210所需的数据的类型,可以使用数字身份来从各种不同的源获得数 据,如动作503所示。在图5中通过包含在表示动作503内的三个框511、512和513进一 步示出了这种情况。如此,动作503的执行可以包括在511,512和513中所描述的并在下 面所描述的动作中的任何一个或多个。在一种情况下,如动作511所示,当用户230正在访问网站210并且网站210正在 请求有关用户230的信息时,可以直接从数字身份内包含的或由其表示的信息获得数据。 例如,用户可能正在访问网站210以注册新帐户,且网站可能正在请求关于用户的信息以 便注册新帐户。用于从数字身份获得数据的技术可以类似于上文例如参考图3的动作303 所描述的那些技术。在其中网站210正在要求用户提供新用户名和口令的另一种情况下——动作512 中所示出的,可以通过使用与前面结合方法400所讨论的过程类似的过程,使用数字身份 来生成新的和唯一的用户名和口令对。此动作512可以作为动作511和/或513的替换或 作为其补充来发生。在用户230返回到用户230先前访问过网站210并且网站210要求用户230提供 现有的用户名和口令来进行认证的情况下——动作513中所描绘的,可以使用数字身份来 检索先前生成的用户名和口令对,并将此所生成的对提供到网站210,以便认证用户230。—旦使用数字身份来获得上文所讨论的数据中的任何数据,在动作504中,使用 该数据来填充表单212里在表单字段说明214中指定的表单字段213里的一个或多个。最后,自动地提交已填充的表单字段,如动作505中所示的。动作504和505与方法300的动 作304和305非常类似,且结合图3所提供的描述是可以适用的。
因此,此处所描述的原理提供了使用数字身份进行表单填充和/或安全用户名和 口令的自动生成的灵活机制。本发明可具体化为其它特定形式而不背离其精神或本质特 征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范 围由所附权利要求书而非前述描述来指示。落入权利要求书的等效方案的含义和范围内的 所有改变应被权利要求书的范围所涵盖。
权利要求
1.一种包括在其上具有计算机可执行指令的一个或多个计算机可读介质(104)的计 算机程序产品,当所述计算机可执行指令由计算系统(100)的一个或多个处理器(102)执 行时,导致所述计算系统执行下列动作从网站(210)获得(301,501)指定表单的多个表单字段的表单字段说明(214)的动作;提示(302,50 所述计算系统的用户(230)选择或者创建将被用来将至少一个值提供 到所述表单的所述多个表单字段中的至少一个的数字身份O20)的动作;使用所述用户所选或用户创建的数字身份O20D)来获得(303,50 将用于填充所述 表单的所述多个表单字段中的所述至少一个的数据的动作;使用所述获得的数据来填充(304,504)所述表单的所述多个表单字段中的所述至少 一个以生成至少一个已填充的表单字段的动作;以及将所述至少一个已填充的表单字段提交(305,50 到所述网站的动作。
2.如权利要求1所述的计算机程序产品,其特征在于,所述一个或多个计算机可读介 质是物理存储器和/或存储介质。
3.如权利要求2所述的计算机程序产品,其特征在于,所述表单用于在所述网站上注 册新帐户。
4.如权利要求2所述的计算机程序产品,其特征在于,所述表单用于登录到所述网站 或以其他方式在所述网站上进行认证。
5.如权利要求2所述的计算机程序产品,其特征在于,所述表单的所述表单字段中的 至少一个里的一个或多个是口令字段。
6.如权利要求2所述的计算机程序产品,其特征在于,所述表单字段说明还对于所述 表单的所述表单字段中的一个或多个指定一个或多个表单字段限制。
7.如权利要求6所述的计算机程序产品,其特征在于,在使用所述获得的数据来填充 所述表单的所述表单字段中的所述至少一个的所述动作中,满足在所述表单字段说明中指 定的所述一个或多个表单字段限制。
8.如权利要求2所述的计算机程序产品,其特征在于,将数字身份作为信息卡呈现给 所述用户。
9.一种包括在其上具有计算机可执行指令的一个或多个计算机可读介质(104)的计 算机程序产品,当所述计算机可执行指令由计算系统(100)的一个或多个处理器(102)执 行时,导致所述计算系统执行下列动作获得G01)应用程序或网站O10)的用户名和口令说明(214)的动作;自动地生成(402)符合所述所获得的用户名和口令说明的用户名和口令对的动作;安全地存储(40 所述所生成的用户名和口令对以使得其可以被所述计算系统调用 以便用于在所述应用程序或网站处进行将来认证的动作;
10.如权利要求9所述的计算机程序产品,其特征在于,所述一个或多个计算机可读介 质是物理存储器和/或存储介质。
11.如权利要求10所述的计算机程序产品,其特征在于,所述所生成的用户名和口令 不同于由所述计算系统为其他应用程序或网站生成的用户名和口令对。
12.如权利要求11所述的计算机程序产品,其特征在于,还导致所述计算系统自动地登录或以其他方式向所述所生成的用户名和口令对所对应的所述应用程序或网站进行认 证。
13.如权利要求11所述的计算机程序产品,其特征在于,所述计算系统包括web浏览器 客户端计算系统,而所述应用程序或网站包括网站。
14.如权利要求13所述的计算机程序产品,其特征在于,还导致所述计算系统提示用 户选择或创建用于在网站处进行随后认证的数字身份。
15.如权利要求14所述的计算机程序产品,其特征在于,还导致所述计算系统将所述 所生成的用户名和口令对与所述网站以及与所述用户所选或用户创建的数字身份相关联。
16.如权利要求15所述的计算机程序产品,其特征在于,当与所述所生成的用户名和 口令对相关联的所述网站随后被访问时,还提示所述用户选择数字身份,并且还导致所述 计算系统自动地登录或以其他方式向所述网站进行认证。
17.在包括浏览器客户端计算系统(201)和提供至少一个网页OllA)的至少一个页面 服务器计算系统O02)的网络Q05)中,一种所述浏览器客户端计算系统向所述至少一个 页面服务器计算系统提供数据的方法(300,500),所述方法包括下列动作获得(301,501)所述至少一个网页的表单字段说明,所述表单字段说明指定表单的多 个表单字段以及所述表单的所述表单字段中的每一个的零或多个表单字段限制;提示(302,50 用户(230)选择或创建数字身份O20)获得(303,50 用于填充所述表单的所述表单字段中的至少一个的数据,其中所述数 据包括下列各项中的一个或多个使用所述用户所选或用户创建的数字身份获得的数据, 动态地生成的用户名和口令对,或先前已生成的用户名和口令对;使用所述获得的数据来填充(304,504)所述表单的所述表单字段中的所述至少一个;以及将所述表单的所述至少一个已填充的表单字段自动地提交(305,505)到所述至少一 个页面服务器计算系统。
18.如权利要求17所述的方法,其特征在于,所获得的用于填充所述表单的所述表单 字段中的所述至少一个的所述数据包括使用所述用户所选或用户创建的数字身份获得的 数据。
19.如权利要求17所述的方法,其特征在于,所获得的用于填充所述表单的所述表单 字段中的所述至少一个的所述数据包括动态地生成的用户名和口令对。
20.如权利要求17所述的方法,其特征在于,所获得的用于填充所述表单的所述表单 字段中的所述至少一个的所述数据包括先前已所生成的用户名和口令对。
全文摘要
在一种实现中,使用利用数字身份获得的数据来填充网站或应用程序的表单的表单字段,且将已填充的表单字段提交到网站或应用程序。获得指定关于表单的表单字段的信息的表单字段说明。用户选择或创建数字身份。使用数字身份获得数据,并使用该数据来向表单提供值。将数据提交到网站或应用程序。在另一种实现中,自动地生成用户名和口令。所生成的用户名和口令满足可以由网站或应用程序指定的参数。将用户名和口令提交到网站或应用程序,以便用于诸如注册或认证之类的用途,并将其存储起来以供将来的认证之用。
文档编号G06Q20/00GK102132304SQ200980130775
公开日2011年7月20日 申请日期2009年7月28日 优先权日2008年8月8日
发明者A·K·纳恩达, R·A·弗朗科, R·兰德尔, T·谢里夫 申请人:微软公司