对移动中数据进行保护的系统和方法

文档序号:7849719阅读:165来源:国知局
专利名称:对移动中数据进行保护的系统和方法
技术领域
本发明一般涉及用于对移动中数据进行保护的系统和方法。可以与在共同拥有的美国专利No. 7391865和在2005年10月25日提交的共同拥有的美国专利申请No. 11/258839、2006年11月20日提交的美国专利申请No. 11/602667、2007年11月7日提交的美国专利申请No. 11/983355、2007年12月5日提交的美国专利申请No. 11/999575、2008年4月18日提交的美国专利申请No. 12/148365、2008年9月12日提交的美国专利申请No. 12/209703、2009年I月7日提交的美国专利申请No. 12/349897、2009年2月23日提交的美国专利申请No. 12/391028、2010年5月19日提交的美国专利申请No. 12/783276、2010年11月24日提交的美国专利申请No. 12/953877、以及2011年I月27日提交的美国临时专利申请No. 61/436991、2009年11月25日提交的美国临时专利申请No. 61/264464、2010年3月31日提交的美国临时专利申请No. 61/319658、2010年4月I日提交的美国临时专利申请No. 61/320242、2010年5月28日提交的美国临时专利申请No. 61/349560,2010年8月12日提交的美国临时专利申请No. 61/373187、2010年8月18日提交的美国临时专利申请No. 61/374950和2010年9月20日提交的美国临时专利申请No. 61/384583中描述的其它系统和方法结合地使用本文所述的系统和方法。上述的每个在先提交的申请的全部公开通过在此引用而并入本文。

发明内容
协作的需要要求企业共享其数据。该共享要求因为遗留烟囱管架构而复杂化,该烟囱管架构的维护昂贵且不会调整。这些复杂的基础设施因风险转移和灾难恢复要求和策略而更加受限制。此外,这些限制直接导致低下的资源利用率、昂贵的点产品以及不一致的信息共享。遗留烟囱管环境的关键驱动物是需要保护数据的保密性、可用性和完整性。因为该环境随着时间而进化,信息共享和协作由于安全性关注和脆弱性的增长而受到限制。随着时间经过,这些遗留环境需要大量的对等(ad-hoc)安全性修补,这进一步限制了信息共享和协作。然而,这些修补并不是针对数据可用性和数据安全性之间的权衡的根由提出的。现有的信息保障(Information Assurance, IA)方案是复杂的,难以调整并且易受安全脆弱性的影响。通过设计,这些方案无法提供数据安全性和数据可用性两者。基于这种IA方案的灾难恢复计划通常较差,很少有效地执行,维护昂贵,并且在企业共享的数据的量增长时难以调整。某些数据安全性方案(例如VPN和基于令牌的基础设施)是昂贵的并且包括对部署和维护两者的严重挑战。此外,一些产品仅解决作为目标的安全问题,但它们低效、昂贵、麻烦并且难以管理。此外,这些方案没有提供对下述基本问题的端到端解决方案使用一个或多个移动装置越来越多地访问云中的数据的位于远方的端用户的安全连接性和数据传送。转而使用云存储(“云”)的远程用户的数目的攀升也产生了云中的以及向或从云传输数据时的增加的数据安全性问题。具体地,这种云存储可以是公有的、私有的、安全的或其任意组合。此外,云存储可由多于一个的存储提供商提供。当遇到新的老练的数据安全威胁时,这些威胁对于个人用户和企业同样严重。远程用户需要使用云作为存储介质与其它人进行协作的灵活性,但是需要在不使数据暴露于安全风险的情况下实现。因此,需要既保护企业数据同时又提供对其的访问。另外,需要在没有服务中断且不关乎用户位置的情况下提供这种安全访问。事实上,需要一种易于部署、无需用户干预、不需要额外的硬件、高度安全且不损害生产率的端到端解决方案。事实上,需要提供一种密码系统,其安全性与用户位置无关,同时在数据处于移动中或者从一个位置转移到另一个位置时仍支持数据的安全性。因此,本发明的一个方面提供一种基于服务器(例如,SecurityFirst Corp.的Bitfiler)的安全数据方案,该方案使数据可证地安全和可访问,同时消除了多个周边硬件和软件技术的需要。该基于服务器的方案致力于比特级的安全性。换言之,数据安全性直接包括或者交织在比特级的数据中。在一些实施例中,该基于服务器的方案可以是在Windows或Linux平台上运行的软件应用。在一些实施例中,通过在内核级操作,实现了性能和易用性的大幅改进。在一些实施例中,该基于服务器的方案使得能够建立企业的兴趣团体(Communities of Interest, COI),其能够在硬件和软件两方面支持共用企业基础设施。因为安全性已被交织到数据中,可以在不损害数据安全性和访问控制的情况下使用该共用基础设施。在同一基础设施内并且在一个安全存储系统内,多个COI可以共存。对于该基于服务器的方案,没有法庭可分辨的数据存储在任何装置或介质上。该基于服务器的方案可以与现有的企业访问控制系统整合,允许简化的部署而无需改动当前建立的访问方案。在另一个方面,本发明的基于服务器的方案与硬件和软件无关。该基于服务器的方案适用于现有企业网络、存储和安全性方案。该基于服务器的方案还适用于任何协作、CRM和ERP应用。由该基于服务器的方案提供的内建安全性使得能够使用刚出现的成本效益高的技术和服务,诸如用于基于云的存储、基于云的计算和基于云的应用的基础设施。本发明的基于服务器的方案可以支持Security First Corp.的SecureParserExtended (SPx)核心技术。在一些实施例中,SecureParser SPx利用多因素秘密共享算法来提供防卫级安全性。数据被认证、加密(FIPS 140-2认证、符合Suite B)、分裂、被添加冗余位、进行完整性检查并再次加密,然后被发送到多个位置(本地的和/或地理上分散的例如在私有或公有云中的位置)。可以使用任何合适的信息分散算法(IDA)来分裂数据。数据在转移到存储位置的同时被隐藏,并且没有正确的访问证明的用户无法访问。本发明的另一方面包括一种重建存储在存储网络中的要保护的数据的一组数据份(share)中的第一子集的方法。该方法包括从安全存储网络检索数据份的第二子集。数据份的第二子集足以重构所述数据。该方法还包括对数据份的第二子集进行认证,并使用数据份的第一子集重建与所述一组数据份对应的加密数据。该方法还包括通过把所述加密数据分裂重新产生所述一组数据份并对重新产生的数据份进行重新认证。该方法还包括在存储网络中至少存储重新产生的数据份的第一子集。
在一些实施例中,分裂包括使用信息分散算法。在一些实施例中,认证包括使用认证密钥。在一些实施例中,重新产生所述一组数据份包括使用分裂密钥。在一些实施例中,存储网络包括私有云、公有云、混合云、可移动存储装置和海量存储装置中的一个。在一些实施例中,首标对应于少于各个份的全部首标。在一些实施例中,重新认证包括使用与用于所述认证的第一认证密钥不同的第二认证密钥。在一些实施例中,该过程包括从安全存储网络检索与数据份的第二子集关联的首标,从检索到的首标中提取密钥加密密钥,用该密钥加密密钥对第二认证密钥加密,并把加密的第二认证密钥在重新产生的数据份的首标内存储在存储网络中。在一些实施例中,重新产生包括使用与用于产生所述一组数据份的第一分裂密钥不同的第二分裂密钥。在一些实施例中,该过程包括从安全存储网络检索与数据份的第二子集关联的首标,从检索到的首标中提取密钥加密密钥,用该密钥加密密钥对第二分裂密钥加密,并把加密的第二分裂密钥在重新产生的数据份的首标内存储在存储网络中。在另一方面,本发明涉及一种用于保护数据的系统。该系统包括用于存储数据的存储器;主处理器,耦接到存储器,被配置为执行数据分裂和数据加密中的至少一个;和协处理器,耦接到主处理器和存储器。该协处理器被配置为执行专门的安全解析功能,包括对解析的数据进行加密或者对加密的数据进行解密中的至少一个。在一些实施例中,该系统包括耦接到协处理器的现场可编程门阵列。该FPGA执行对解析的数据进行加密或者对加密的数据进行解密中的至少一个。在一些实施例中,该协处理器经由PCIe总线耦接到主处理器。在一些实施例中,该协处理器经由HT总线耦接到主处理器。在另一方面,本发明涉及一种使用便携式装置来保护数据的方法。该方法包括以下步骤至少部分地基于密码密钥,从一组数据产生至少两个数据部分,以及把该密钥存储在便携式装置上。所述两个数据部分和所述密钥足以重构所述一组数据。在一些实施例中,便携式装置是可移动存储装置。在一些实施例中,该可移动存储装置经由通用串行总线(USB )接口耦接到端用户装置。在一些实施例中,该方法还包括把所述至少两个数据部分存储在便携式装置上。在另一方面,本发明涉及一种使用便携式装置来保护数据的方法。该方法包括以下步骤至少部分地基于密码密钥,从一组数据产生至少两个数据部分,以及把产生的数据部分中的至少一部分存储在便携式装置上。所述两个数据部分和所述密钥足以重构所述一组数据。在一些实施例中,便携式装置是可移动存储装置。在一些实施例中,该可移动存储装置经由通用串行总线(USB)接口耦接到端用户装置。在一些实施例中,该方法还包括把所述密钥存储在便携式装置上。在一些实施例中,一个或多个密码密钥可存储在诸如USB存储装置的用户装置上。这些密码密钥可用于对存储在端用户装置自身上或其它地方(例如公有或私有云存储中)的数据进行加密或解密。例如,用户可把密码密钥存储在USB存储装置上并使用该密钥对远程地存储在由Dropbox提供的公有云中的加密的数据份进行解密。在一些实施例中,为了使得能够在多个不同的端用户装置的每一个进行数据观看和/或重构,可将一个或多个密码密钥和/或一个或多个数据份存储在便携式用户装置(诸如USB存储装置)上。另外,一个或多个数据份也可被存储在云存储装置上。因此,拥有该便携式用户装置的用户可从不同的端用户装置访问该便携式用户装置和/或从分散在便携式用户装置(如果需要的话还有云存储装置)上的份重建数据。在另一方面,本发明涉及一种对从使用第一分裂密钥通过信息分散算法设置的加密数据产生的一组数据份进行重建的方法。该方法包括至少接收重建所述一组数据份所需的最小数目的数据份,在不解密该最小数目的数据份的情况下从该最小数目的数据份重建所述一组数据份。在一些实施例中,响应于确定所述一组数据份已被损坏而执行重建。在一些实施例中,该最小数目的数据份与第一认证密钥关联,并且重建包括把重建的所述一组数据份与第二认证密钥关联。在一些实施例中,该方法还包括以下步骤检索与该最小数目的数据份关联的首标,从检索到的首标中提取密钥加密密钥,用该密钥加密密钥对第二认证密钥进行加密,并在重建的数据份的首标内恢复加密的第二认证密钥。在一些实施例中,使用与第一分裂密钥不同的第二分裂密钥重建该最小数目的数据份。在一些实施例中,该方法还包括检索与该最小数目的数据份关联的首标,从检索到的首标中提取密钥加密密钥,用该密钥加密密钥对第二分裂密钥进行加密,并在重建的数据份的首标内恢复加密的第二分裂密钥。在一些实施例中,该方法还包括把重建的数据份中的至少一个存储在存储网络上的步骤。在一些实施例中,存储网络包括私有云、公有云、混合云、可移动存储装置和海量存储装置中的一个。在另一方面,本发明涉及一种在存储网络的文件系统上把存根(stubs)与一组数据份相关联的方法。该方法包括从通过信息分散算法设置的加密数据产生一组数据份,并且产生与产生的数据份关联的一组存根。每个存根分别对应于一个数据份,并且每个存根包括与相应的数据份关联的信息。所述一组存根存储在存储网络上的位置。该信息包括相应数据份的名称、相应数据份的创建日期、相应数据份的最后修改时间、指向相应数据份在文件系统内的位置的指针中的一个。存储网络包括与私有云、公有云、混合云、可移动存储装置和海量存储装置中的一个关联的一个或多个存储装置。在一些实施例中,该方法还包括以下步骤接收观看与产生的数据份关联的信息的命令,从存储网络上的所述位置检索存根,从存根提取信息以创建数据份的文件系统,并且显示数据份的文件系统。在一些实施例中,存根存储在产生的数据份的首标内,并且检索包括检索产生的数据份的首标。在一些实施例中,检索少于全部首标的首标。在一些实施例中,存根存储在存根目录中,并且检索包括从存根目录检索存根。在一些实施例中,该方法还包括接收要存储存根的虚拟或物理目录的指示。在一些实施例中,从用户接收该指示。


在下文中结合附图更加详细描述本发明,这些附图旨在例示而非限制本发明,在附图中图1示出了根据本发明的实施例的各方面的密码系统的框图;图2示出了根据本发明的实施例的各方面的图1的信任引擎的框图;图3示出了根据本发明的实施例的各方面的图2的事务引擎的框图;图4示出了根据本发明的实施例的各方面的图2的储存器(depository)的框图;图5示出了根据本发明的实施例的各方面的图2的认证引擎的框图;图6示出了根据本发明的实施例的各方面的图2的密码引擎的框图7示出了根据本发明的另一个实施例的各方面的储存器系统的框图;图8示出了根据本发明的实施例的各方面的数据分裂过程的流程图;图9A示出了根据本发明的实施例的各方面的登记过程的数据流;图9B示出了根据本发明的实施例的各方面的互用性过程的流程图;图10示出了根据本发明的实施例的各方面的认证过程的数据流;图11示出了根据本发明的实施例的各方面的签名过程的数据流;图12示出了根据本发明的另一个实施例的各方面的加密/解密过程的数据流;图13示出了根据本发明的另一个实施例的各方面的信任引擎系统的简化框图;图14示出了根据本发明的另一个实施例的各方面的信任引擎系统的简化框图;图15示出了根据本发明的实施例的各方面的图14的冗余模块的框图;图16示出了根据本发明的一个方面的评估认证的过程;图17示出了根据本发明的如在图16中所示的一个方面向认证分配值的过程;图18示出了在如图17所示的本发明的一个方面中执行信任仲裁的过程;以及图19示出了根据本发明的实施例的各方面的用户与卖方之间的样本事务,其中,初始基于web的合同导致由双方签名的销售合同。图20示出了具有向用户系统提供安全性功能的密码服务提供商模块的样本用户系统。图21示出了在加密以及加密主密钥与数据存储在一起的情况下解析、分裂和/或分离数据的过程。图22示出了在加密以及加密主密钥与数据分离地存储的情况下解析、分裂和/或分离数据的过程。图23示出了在加密以及加密主密钥与数据存储在一起的情况下解析、分裂和/或分离数据的中间密钥过程。图24示出了在加密以及加密主密钥与数据分离地存储的情况下解析、分裂和/或分离数据的中间密钥过程。图25示出了小工作组对本发明的密码方法和系统的利用。图26是采用根据本发明的一个实施例的安全数据解析器的例示性物理令牌安全性系统的框图。图27是根据本发明的一个实施例的将安全数据解析器集成到系统中的例示性布置的框图。图28是根据本发明的一个实施例的例示性移动中数据系统的框图。图29是根据本发明的一个实施例的另一个例示性移动中数据系统的框图。图30-32是根据本发明的一个实施例的集成了安全数据解析器的例示性系统的框图。图33是根据本发明的一个实施例的解析和分裂数据的例示性过程的处理流程图。图34是根据本发明的一个实施例的将数据部分恢复成原始数据的例示性过程的处理流程图。图35是根据本发明的一个实施例的以比特级分裂数据的例示性过程的处理流程图。图36是根据本发明的一个实施例的可以按任何合适组合(具有任何合适添加、删除或修改)使用的例示性步骤和特征的处理流程图。图37是根据本发明的一个实施例的可以按任何合适组合(具有任何合适添加、删除或修改)使用的例示性步骤和特征的处理流程图。图38是根据本发明的一个实施例的可以按任何合适组合(具有任何合适添加、删除或修改)使用的在份内存储密钥和数据成分的简化框图。图39是根据本发明的一个实施例的可以按任何合适组合(具有任何合适添加、删除或修改)使用的使用工作组密钥在份内存储密钥和数据成分的简化框图。图40A和40B是根据本发明的一个实施例的可以按任何合适组合(具有任何合适添加、删除或修改)使用的针对移动中数据的首标产生和数据分裂的简化和例示性处理流程图。图41是根据本发明的一个实施例的可以按任何合适组合(具有任何合适添加、删除或修改)使用的例示性份格式的简化框图。图42是根据本发明的一个实施例的把安全数据解析器整合到与云计算资源连接的系统中的例示性结构的框图。图43是根据本发明的一个实施例的把安全数据解析器整合到通过云发送数据的系统中的例示性结构的框图。图44是根据本发明的一个实施例的使用安全数据解析器来保护云中的数据服务的例示性结构的框图。图45是根据本发明的一个实施例的使用安全数据解析器来保护云中的数据存储的例示性结构的框图。图46是根据本发明的一个实施例的使用安全数据解析器来保护网络访问控制的例示性结构的框图。图47是根据本发明的一个实施例的使用安全数据解析器来保护高性能计算资源的例示性结构的框图。图48是根据本发明的一个实施例的使用安全数据解析器来保护多个存储装置中的数据存储的例示性结构的示意图。图49是根据本发明的一个实施例的使用安全数据解析器来保护多个私有和公有云中的数据存储的例示性结构的示意图。图50是根据本发明的一个实施例的使用安全数据解析器经由公共互联网来保护多个私有和公有云中的数据存储的例示性结构的示意图。图51是根据本发明的一个实施例的使用安全数据解析器来保护用户的可移动存储装置中的数据存储的例示性结构的示意图。图52是根据本发明的一个实施例的使用安全数据解析器来保护多个用户存储装置中的数据存储的例示性结构的示意图。图53是根据本发明的一个实施例的使用安全数据解析器来保护多个公有和私有云以及至少一个用户存储装置中的数据存储的例示性结构的示意图。图54是根据本发明的一个实施例的用于安全数据解析器的协处理器加速装置的示意图。图55是根据本发明的一个实施例的针对安全数据解析器使用图54的协处理器加速装置的例示性加速过程的第一处理流程图。图56是根据本发明的一个实施例的针对安全数据解析器使用图54的协处理器加速装置的例示性加速过程的第二处理流程图。图57示出了根据本发明的例示性实施例的把数据分裂成N份并存储的过程。图58示出了根据本发明的例示性实施例的对数据份进行重建和/或重新施加密钥(re-key)的过程。
具体实施例方式本发明的一个方面是提供一种密码系统,在该密码系统中,一个或多个安全服务器或信任弓I擎存储密码密钥和用户认证数据。该系统可以跨云中的一个或多个存储装置存储数据。云可以包括私有存储装置(仅一组特定用户可访问)或公有存储装置(向存储提供商进行了订阅的任何用户组都可访问)。用户通过对信任引擎的网络访问,访问传统密码系统的功能,然而,信任引擎没有发布实际密钥和其它认证数据,因此这些密钥和数据仍是安全的。密钥和认证数据的这种服务器中心存储提供了用户无关的安全性、移植性、可用性和直率性。因为用户能够确信或信任密码系统来执行用户和文档认证以及其它密码功能,所以多种多样的功能可以包括在该系统内。例如,通过例如对协议参与者进行认证,代表或针对参与者对该协议进行数字签名,并且存储由每个参与者数字签名的协议的记录,信任引擎提供商可以确保不会出现协议抵赖。此外,该密码系统可以监视协议并且例如基于价格、用户、卖方、地理位置、使用地点等来确定应用不同程度的认证。为了便于完全理解本发明,具体实施方式
的其余部分参照附图描述本发明,其中,相同元素始终由相同标号进行表示。图1示出了根据本发明的实施例的各方面的密码系统100的框图。如图1所示,密码系统100包括通过通信链路125进行通信的用户系统105、信任引擎110、认证机构115和卖方系统120。根据本发明的一个实施例,用户系统105包括具有一个或多个微处理器(例如,基于Intel的处理器)的传统通用计算机。此外,用户系统105包括适当的操作系统,例如能够包括图形或窗口的操作系统(例如,Windows、Unix、Linux等)。如图1所示,用户系统105可以包括生物测定装置107。生物测定装置107可以有利地获取用户的生物测定并且将获取的生物测定传送给信任引擎110。根据本发明的一个实施例,生物测定装置可有利地包括具有与在以下文献中公开的类似的属性和特征的装置1997年9月5日提交的题目为“RELIEF OBJECT IMAGE GENERATOR” 的美国专利申请 No. 08/926277、2000 年 4 月 26 日提交的题目为 “IMAGING DEVICE FOR A RELIEF OBJECT ANDSYSTEM AND METHOD OF USING THEIMAGE DEVICE”的美国专利申请No. 09/558634、1999年11月5日提交的题目为“RELIEFOBJECTSENSOR ADAPTOR”的美国专利申请No. 09/435011和2000年I月5日提交的题目为“PLANAR OPTICAL IMAGE SENSOR AND SYSTEMF0R GENERATING AN ELECTRONIC IMAGE OF ARELIEF OBJECTF0R FINGERPINT READING”的美国专利申请 No. 09/477943,上述所有的美国专利申请由当前受让人拥有并且通过引用并入本文。此外,用户系统105可以通过传统的服务提供商(例如,拨号、数字用户线(DSL)、线缆调制解调器、光纤连接等)连接到通信链路125。根据另一个实施例,用户系统105通过网络连接性(例如,局域网或广域网)连接通信链路125。根据一个实施例,操作系统包括TCP/IP栈,该TCP/IP栈处理在通信链路125上传递的所有的出入消息通信。尽管参照上述实施例公开了用户系统105,但是本发明不限于此。相反,熟练技术人员从这里的公开可以识别用户系统105的大量的替代实施例,包括能够发送或从另一个计算机系统接收信息的几乎任何计算装置。例如,用户系统105可以包括但不限于能够与通信链路125进行交互的计算机工作站、交互式电视、交互亭、个人移动计算装置(例如,数字助理、移动电话、膝上型电脑等)、无线通信装置、智能卡、嵌入式计算装置等。在这些替代系统中,操作系统很可能不同并且针对特定装置进行改动。然而,根据一个实施例,操作系统有利地继续提供与通信链路125建立通信所需的适当的通信协议。图1示出了信任引擎110。根据一个实施例,信任引擎110包括用于访问和存储敏感信息的一个或多个安全服务器,敏感信息可以是任何类型或形式的数据,例如是但不限于文本、音频、视频、用户认证数据以及公共和私有密码密钥。根据一个实施例,认证数据包括被设计为唯一识别密码系统100的用户的数据。例如,认证数据可以包括用户识别号、一个或多个生物测定、以及由信任引擎110或用户产生但是在登记时由用户初始回答的一系列提问和回答。上述提问可以包括人口数据(例如,出生地、地址、周年纪念等)、个人数据(例如,母亲未婚时的名字、喜欢的冰激凌等)、或被设计为唯一识别用户的其它数据。信任引擎110将与当前事务关联的用户的认证数据与先前(例如在登记时)设置的认证数据进行比较。信任引擎110可以有利地要求用户在每次事务时生成认证数据,或者信任引擎110可以有利地允许用户定期地(例如,在一串事务的开始时或者在登录到特定卖方网站时)生成认证数据。根据用户生成生物测定数据的实施例,用户向生物测定装置107提供身体特征,例如但不限于面部扫描、手扫描、耳扫描、虹膜扫描、视网膜扫描、血管模式、DNA、指纹、笔迹或语音。生物测定装置有利地生成身体特征的电子模式或生物测定。为了登记或认证,电子模式通过用户系统105传送至信任引擎110。一旦用户生成了适当的认证数据并且信任引擎110确定该认证数据(当前认证数据)与在登记时设置的认证数据(登记认证数据)之间的明确匹配,信任引擎110向用户提供完整的密码功能。例如,正确认证的用户可以有利地采用信任引擎110执行哈希处理、数字签名、加密和解密(常总称为加密)、建立或分布数字证书等等。然而,密码功能中使用的私有密码密钥在信任引擎110之外将不可用,从而确保了密码密钥的完整性。根据一个实施例,信任引擎110产生并存储密码密钥。根据另一个实施例,至少一个密码密钥与每个用户关联。此外,当密码密钥包括公钥技术时,在信任引擎110内产生但不从其发放与用户关联的每个私钥。因此,只要用户可以访问信任引擎110,用户就可以使用他或她的私钥或公钥执行密码功能。有利的是,这种远程访问使用户可以通过实际任何互联网连接(例如,蜂窝和卫星电话、信息亭、膝上型电脑、宾馆房间等)保持完全移动并访问密码功能。根据另一个实施例,信任引擎110使用针对信任引擎110产生的密钥对,执行密码功能。根据这个实施例,信任引擎110首先对用户进行认证,并且在用户正确地生成与登记认证数据匹配的认证数据后,信任引擎110使用它自身的密码密钥对,代表认证的用户执行密码功能。熟练技术人员将从这里的公开认识到,密码密钥可以有利地包括对称密钥、公钥和私钥的全部或一些。此外,熟练技术人员将从这里的公开认识到,可以采用可从商业技术获得的大量的算法(例如,RSA, ELGAMAL等)来实现上述密钥。图1还示出了认证机构115。根据一个实施例,认证机构115可有利地包括发放数字证书的信任第三方组织或公司,例如VeriSign、Baltimore、Entrust等。信任引擎110可有利地通过一个或多个传统的数字证书协议(例如,PKCS10)向认证机构115发送对数字证书的请求。作为响应,认证机构115将发放多个不同协议中的一个或多个(例如,PKCS7)的数字证书。根据本发明的一个实施例,信任引擎110从几个或所有的主要认证机构115请求数字证书,从而使得信任引擎110可访问与任何请求方的证书标准对应的数字证书。根据另一个实施例,信任引擎110在内部执行证书发放。在这个实施例中,当证书被请求时(例如,在密钥产生时)或者在请求时请求的证书标准中,信任引擎110可以访问用于产生证书的证书系统和/或可以在内部产生证书。在下文中将更加详细地公开信任引擎110。图1还示出了卖方系统120。根据一个实施例,卖方系统120有利地包括Web服务器。典型的Web服务器可以使用几种互联网标记语言或文档格式标准(例如,超文本标记语言(HTML)或可扩展标记语言(XML))之一在互联网上提供内容。Web服务器从如Netscape和Internet Explorer的浏览器接受请求,然后返回适当的电子文档。多个服务器或客户端技术能够用于提高Web服务器的能力以超越它的传递标准电子文档的能力。例如,这些技术包括公共网关接口(CGI)脚本、安全套接字层(SSL)安全性和动态服务器页面(ASP)。卖方系统120可有利地提供与商业、个人、教育或其它事务有关的电子内容。尽管参照上述实施例公开了卖方系统120,但是本发明不限于此。相反,熟练技术人员将从这里的公开认识到,卖方系统120可有利地包括参照用户系统105描述的装置中的任何一个或者它们的组合。图1还示出了连接用户系统105、信任引擎110、认证机构115和卖方系统120的通信链路125。根据一个实施例,通信链路125优选包括互联网。本文所用的互联网是计算机的全球网络。本领域普通技术人员公知的互联网的结构包括网络骨干和从骨干分支的网络。这些分支继而具有从它们分支的网络,如此类推。路由器在网络级之间移动信息包,然后从网络到网络移动信息包,直到包到达它的目的地附近。目的地网络的主机将信息包从该目的地导向适当的终端或节点。在一个有利的实施例中,互联网路由集线器包括使用现有技术公知的传输控制协议/互联网协议(TCP/IP)的域名系统(DNS)服务器。路由集线器经由高速通信链路连接到一个或多个其它路由集线器。互联网的一个流行部分是万维网。万维网包含不同的计算机,这些计算机存储能够显示图形和文本信息的文档。在万维网上提供信息的计算机通常称作“网站”。网站由具有关联的电子页面的互联网地址定义。电子页面能够通过统一资源定位符(URL)进行识另O。通常,电子页面是组织文本、图形图像、音频、视频等的呈现的文档。尽管在针对其优选实施例公开了通信链路125,但是本领域普通技术人员将从这里的公开认识到,通信链路125可以包括各种交互通信链路。例如,通信链路125可以包括交互电视网络、电话网络、无线数据传输系统、双向线缆系统、定制的私有或公共计算机网络、交互亭网络、自动柜员机网络、直接链路、卫星或蜂窝网络等。图2示出了根据本发明的实施例的各方面的图1的信任引擎110的框图。如图2所示,信任引擎110包括事务引擎205、储存器210、认证引擎215和密码引擎220。根据本发明的一个实施例,信任引擎110还包括海量存储器225。进一步如图2所示,事务引擎205与储存器210、认证引擎215和密码引擎220以及海量存储器225进行通信。此外,储存器210与认证引擎215、密码引擎220和海量存储器225进行通信。此外,认证引擎215与密码引擎220进行通信。根据本发明的一个实施例,上述通信中的一些或全部可有利地包括将XML文档发送至与接收装置对应的IP地址。如上所述,有利的是,XML文档使设计者可以建立他们自己定制的文档标记,从而实现应用之间以及组织之间的数据的定义、传输、验证和解释。此外,上述通信中的一些或全部可包括传统的SSL技术。根据一个实施例,事务引擎205包括例如可从Netscape、Microsoft、Apache等获得的传统Web服务器的数据路由装置。例如,Web服务器可以有利地从通信链路125接收输入数据。根据本发明的一个实施例,输入数据被寻址至信任引擎110的前端安全系统。例如,前端安全系统可以有利地包括防火墙、搜索已知攻击概况的入侵检测系统、和/或病毒扫描器。在通过了前端安全系统后,数据由事务引擎205接收并且被路由至储存器210、认证引擎215、密码引擎220和海量存储器225之一。此外,事务引擎205监视来自认证引擎215和密码引擎220的输入数据,并且通过通信链路125将该数据路由至特定系统。例如,事务引擎205可有利地向用户系统105、认证机构115或卖方系统120路由该数据。根据一个实施例,使用传统的HTTP路由技术,例如采用URL或统一资源指示符(URI)来路由数据。URI与URL类似,然而,URI通常指示文件或动作(例如,可执行文件、脚本等)的源。因此,根据一个实施例,用户系统105、认证机构115、卖方系统120和信任引擎210的部件有利地包括通信URL或URI内的充足数据,以供事务引擎205在整个密码系统内正确地路由数据。尽管参照其优选实施例公开了数据路由,但是熟练技术人员将认识到大量的可能的数据路由方案或策略。例如,XML或其它数据包可以有利地进行拆包并且通过它们的格式、内容等进行识别,从而使得事务引擎205可以在整个信任引擎110内正确地路由数据。此外,熟练技术人员将认识到,有利的是,例如当通信链路125包括局域网时,数据路由可进行改动以适应符合特定网络系统的数据传输协议。根据本发明的另一个实施例,事务引擎205包括传统的SSL加密技术,从而在特定通信期间,通过事务引擎205,上述系统可以对它们自身进行认证,反之亦然。本发明中使用的术语“1/2SSL”是指服务器(但客户机不必)进行SSL认证的通信,术语“全SSL”是指客户机和服务器均进行SSL认证的通信。当本公开使用术语“SSL”时,通信可以包括1/2SSL或全SSL。由于事务引擎205将数据路由至密码系统100的各个部件,所以事务引擎205可有利地建立审计索引(audit trail)。根据一个实施例,审计索引包括在整个密码系统100内由事务引擎205进行路由的数据的至少类型和格式的记录。这种审计数据可有利地存储在海量存储器225中。
图2还示出了储存器210。根据一个实施例,储存器210包括一个或多个数据存储设施,例如目录服务器、数据库服务器等。如图2所示,储存器210存储密码密钥和登记认证数据。密码密钥可有利地对应于信任引擎110或者密码系统100的用户(例如,用户或卖方)。登记认证数据可有利地包括被设计用于唯一识别用户的数据,例如用户ID、口令、提问的回答、生物测定数据等。有利的是,可以在用户登记时或者在另一个替代的以后时间获取这个登记认证数据。例如,信任引擎110可以包括登记认证数据的周期性或其它的更新或重新发放。根据一个实施例,从事务引擎205到认证引擎215和密码引擎220的通信以及从认证引擎215和密码引擎220到事务引擎205的通信包括安全通信(例如,传统的SSL技术)。此外,如上所述,可以使用URL、UR1、HTTP或XML文档传送到达和来自储存器210的通信的数据,有利地在上述任何一个内部嵌入了数据请求和格式。如上所述,储存器210可有利地包括多个安全数据存储设施。在这种实施例中,安全数据存储设施可被构造为使得对一个个体数据存储设施的安全性的危害将不会危害存储在其中的密码密钥或认证数据。例如,根据这个实施例,密码密钥和认证数据被进行数学运算,从而在统计学上充分地对存储在每个数据存储设施中的数据进行随机化。根据一个实施例,个体数据存储设施的数据的随机化使得该数据无法被破译。因此,对个体数据存储设施的危害仅仅生成随机化的无法译解的数字,并且不会危害作为整体的任何密码密钥或认证数据的安全性。图2还示出了包括认证引擎215的信任引擎110。根据一个实施例,认证引擎215包括数据比较器,该数据比较器被构造为将来自事务引擎205的数据与来自储存器210的数据进行比较。例如,在认证过程中,用户将当前认证数据提供给信任引擎110从而事务引擎205接收当前认证数据。如上所述,事务引擎205识别优选在URL或URI中的数据请求,并且将认证数据路由至认证引擎215。此外,当被请求时,储存器210将与用户对应的登记认证数据转发至认证引擎215。因此,认证引擎215具有当前认证数据和登记认证数据以进行比较。根据一个实施例,到达认证引擎的通信包括安全通信(例如,SSL技术)。此外,安全性(例如,使用公钥技术的超级加密)可以设置在信任引擎110部件内。例如,根据一个实施例,用户用认证引擎215的公钥对当前认证数据进行加密。此外,储存器210还用认证引擎215的公钥对登记认证数据进行加密。这样,仅有认证引擎的私钥能够用于对传输进行解密。如图2所示,信任引擎110还包括密码引擎220。根据一个实施例,密码引擎包括密码处理模块,该模块被构造为有利地提供传统的密码功能(例如,公钥基础设施(PKI)功能)。例如,密码引擎220可以有利地向密码系统100的用户发放公钥和私钥。以这种方式,在密码引擎220处产生密码密钥并且将其转发至储存器210,从而在信任引擎110之外至少无法获得私有密码密钥。根据另一个实施例,密码引擎220至少对私有密码密钥数据进行随机化和分裂,从而仅仅存储随机化的分裂数据。与登记认证数据的分裂类似,分裂过程确保在密码引擎220之外无法获得存储的密钥。根据另一个实施例,密码引擎的功能可以与认证引擎215组合并且由认证引擎215执行。根据一个实施例,到达和来自密码引擎的通信包括安全通信,诸如SSL技术。此夕卜,可有利地采用XML文档以传送数据和/或进行密码功能请求。图2还示出了具有海量存储225的信任引擎110。如上所述,事务引擎205保持与审计索引对应的数据并且将这个数据存储在海量存储器225中。类似地,根据本发明的一个实施例,储存器210保持与审计索引对应的数据并且将这个数据存储在海量存储装置225中。由于审计索引数据包括由储存器210接收到的请求的记录及其响应,所以储存器审计索引数据与事务引擎205的审计索引数据类似。此外,海量存储器225可用于存储在内部包含了用户的公钥的数字证书。尽管参照其优选实施例和替代实施例公开了信任引擎110,但是本发明不限于此。相反,熟练技术人员将从这里的公开中认识到信任引擎110的大量替代。例如,信任引擎110可有利地仅仅执行认证,或者仅仅执行例如数据加密和解密的一些或所有的密码功能。根据这些实施例,可有利地去除认证引擎215和密码引擎220之一,从而为信任引擎110建立更加简单的设计。此外,密码引擎220还可以与认证机构进行通信从而在信任引擎110内实现认证机构。根据另一个实施例,信任引擎110可以有利地执行认证以及例如数字签名的一个或多个密码功能。图3示出了根据本发明的实施例的各方面的图2的事务引擎205的框图。根据这个实施例,事务引擎205包括具有处理线程和侦听线程的操作系统305。有利的是,操作系统305可与在例如可从Apache得到的Web服务器的传统高容量服务器中发现的操作系统类似。侦听线程针对输入数据流,监视来自通信链路125、认证引擎215和密码引擎220之一的输入通信。处理线程识别输入数据流的特定数据结构(例如,上述数据结构),从而将输入数据路由至通信链路125、储存器210、认证引擎215、密码引擎220或海量存储器225之一。如图3所示,有利的是,通过例如SSL技术可以保护输入和输出数据。图4示出了根据本发明的实施例的各方面的图2的储存器210的框图。根据这个实施例,储存器210包括一个或多个轻量目录访问协议(LDAP)服务器。可以从各种制造商(例如,Netscape、ISO等)获得LDAP目录服务器。图4还示出了目录服务器优选存储与密码密钥对应的数据405和与登记认证数据对应的数据410。根据一个实施例,储存器210包括单个逻辑存储结构,用于将认证数据和密码密钥数据索引至唯一用户ID。该单个逻辑存储结构优选包括确保存储在其中的数据的高度信任或安全性的机制。例如,储存器210的物理位置可有利地包括大量的传统安全性措施,诸如受限雇员访问、现代监视系统等。除了物理安全性以外或者替代物理安全性,计算机系统或服务器可以有利地包括保护存储的数据的软件方案。例如,储存器210可有利地建立并存储与采取的动作的审计索引对应的数据415。此外,有利的是,可以用与传统的SSL技术结合的公钥加密,对输入和输出通信进行加密。根据另一个实施例,储存器210可以包括不同的且物理分离的数据存储设施,如进一步参照图7所公开的。图5示出了根据本发明的实施例的各方面的图2的认证引擎215的框图。与图3的事务引擎205类似,认证引擎215包括操作系统505,操作系统505至少具有传统的Web服务器(例如,可从Apache获得的Web服务器)的变型版本的侦听和处理线程。如图5所示,认证引擎215包括对至少一个私钥510的访问。有利的是,私钥510可用于例如对来自事务引擎205或储存器210的数据进行解密,该数据用认证引擎215的对应公钥进行了加LU O图5还示出了包括比较器515、数据分裂模块520和数据组装模块525的认证引擎215。根据本发明的优选实施例,比较器515包括能够比较与上述生物测定认证数据有关的潜在复杂模式的技术。该技术可以包括用于模式比较(例如,表示指纹模式或语音模式的模式比较)的硬件、软件或者组合方案。此外,根据一个实施例,认证引擎215的比较器515可有利地比较文档的传统哈希值以呈现比较结果。根据本发明的一个实施例,比较器515包括对该比较应用启发法(heuristics) 530。有利的是,启发法530可以应对围绕认证尝试的境况(例如,时间、IP地址或子网掩码、购买概况、电子邮件地址、处理器序列号或ID等)。此外,生物测定数据比较的性质会导致从当前生物测定认证数据与登记数据的匹配产生变化的置信度。例如,与可仅仅返回肯定或否定匹配的传统口令不同,指纹可被确定为部分匹配,例如90%匹配、75%匹配或10%匹配,而非简单地为正确或不正确。诸如声纹(voice print)分析或面部识别的其它生物测定识别法会共有这个概率认证的属性,而非绝对认证。当利用这种概率认证进行工作时或者在认为认证低于绝对可靠的其它情况下,期望应用启发法530以确定设置的认证的置信水平是否高到足够对正在进行的事务进行认证。有时候存在如下情况谈及的事务是相对低值事务,其中,它可以较低的置信水平被接受而得到认证。这可以包括具有与之关联的低货币值(例如,$10购买)的事务或者低风险的事务(例如,进入会员制网站)。相反,为了对其它事务进行认证,会期望在允许事务进行之前要求高的认证置信度。这些事务可以包括大货币值的事务(例如,签署几百万美元供货合同)或者在发生不正确认证的情况下具有高风险的事务(例如,远程登录政府计算机)。如下文所述,与置信水平和事务值组合的启发法530的使用可用于允许比较器提供动态的上下文敏感认证系统。根据本发明的另一个实施例,比较器515可有利地跟踪特定事务的认证尝试。例如,当事务失败时,信任引擎110可以请求用户重新输入他或她的当前认证数据。认证引擎215的比较器515可有利地利用尝试限制器535以限制认证尝试的次数,由此禁止假扮用户的认证数据的暴力尝试。根据一个实施例,尝试限制器535包括监视事务的重复认证尝试并且例如将给定事务的认证尝试限制为三次的软件模块。因此,尝试限制器535例如将用于假扮个人的认证数据的自动尝试限制为仅三次“猜测”。当三次失败时,尝试限制器535可有利地拒绝另外的认证尝试。有利的是,例如通过不管正在发送的当前认证数据如何比较器515都返回否定结果,而实现这种拒绝。另一方面,事务引擎205可有利地阻止属于三次尝试先前已经失败的事务的任何另外的认证尝试。认证引擎215还包括数据分裂模块520和数据组装模块525。数据分裂模块520有利地包括具有对各种数据进行数学运算从而充分地将数据随机化并分裂成多个部分的能力的软件、硬件、或组合模块。根据一个实施例,不可以从个体部分重建原始数据。数据组装模块525有利地包括被构造为对上述充分随机化的部分进行数学运算从而使它们的组合提供原始译解数据的软件、硬件或组合模块。根据一个实施例,认证引擎215利用数据分裂模块520将登记认证数据随机化并分裂成多个部分,并且利用数据组装模块525将这些部分重新组装成可用的登记认证数据。图6示出了根据本发明的一个实施例的各方面的图2的信任引擎200的密码引擎220的框图。与图3的事务引擎205类似,密码引擎220包括操作系统605,操作系统605至少具有传统的Web服务器(例如,可从Apache得到的Web服务器)的变型版本的侦听和处理线程。如图6所示,密码引擎220包括功能与图5中类似的数据分裂模块610和数据组装模块620。然而,根据一个实施例,与上述的登记认证数据不同,数据分裂模块610和数据组装模块620处理密码密钥数据。但是,熟练技术人员将从这里的公开认识到,数据分裂模块910和数据分裂模块620可以与认证引擎215的相应模块进行组合。密码引擎220还包括密码处理模块625,密码处理模块625被构造为执行大量的密码功能中的一个、一些或全部。根据一个实施例,密码处理模块625可以包括软件模块或程序、硬件或二者。根据另一个实施例,密码处理模块625可以执行数据比较、数据解析、数据分裂、数据分离、数据哈希法、数据加密或解密、数字签名验证或创建、数字证书产生、存储、或请求、密码密钥产生等等。此外,熟练技术人员将从这里的公开认识到,密码处理模块825可有利地包括公钥基础设施,诸如良好隐私(PGP)、基于RSA的公钥系统、或者大量的替代密钥管理系统。此外,密码处理模块625可以执行公钥加密、对称密钥加密或二者。除了上述以外,密码处理模块625可以包括用于执行无缝、透明的互用性功能的一个或多个计算机程序或模块、硬件或二者。熟练技术人员还将从这里的公开认识到,密码功能可以包括一般与密码密钥管理系统有关的大量或多样的功能。图7示出了根据本发明的实施例的各方面的储存器系统700的简化框图。如图7所示,储存器系统700有利地包括多个数据存储设施,例如,数据存储设施D1、D2、D3和D4。然而,本领域普通技术人员容易理解,储存器系统可以仅仅具有一个数据存储设施。根据本发明的一个实施例,数据存储设施Dl到D4中的每个可以有利地包括参照图4的储存器210公开的一些或全部部件。与储存器210类似,数据存储设施Dl到D4优选通过传统SSL与事务引擎205、认证引擎215和密码引擎220进行通信。通信链路例如传送XML文档。来自事务引擎205的通信可有利地包括对数据的请求,其中,该请求被有利地广播至每个数据存储设施Dl到D4的IP地址。另一方面,事务引擎205可以基于大量的标准(例如,响应时间、服务器负载、维护时间表等),向特定数据存储设施广播请求。响应于来自事务引擎205的对数据的请求,储存器系统700有利地将存储的数据转发至认证引擎215和密码引擎220。相应的数据组装模块接收转发的数据并且将该数据组装成可用格式。另一方面,从认证引擎215和密码引擎220到数据存储设施Dl到D4的通信可以包括要存储的敏感数据的传输。例如,根据一个实施例,认证引擎215和密码引擎220可有利地利用它们各自的数据分裂模块,将敏感数据划分成多个不可译解的部分,然后将敏感数据的一个或多个不可译解的部分发送至特定数据存储设施。根据一个实施例,每个数据存储设施Dl到D4包括分立且独立的存储系统(例如,目录服务器)。根据本发明的另一个实施例,储存器系统700包括多个在地理上分离的独立数据存储系统。通过将敏感数据分布到不同且独立的存储设施Dl到D4(存储设施Dl到D4中的一些或全部可有利地在地理上分离),储存器系统700提供冗余连同附加的安全措施。例如,根据一个实施例,为了对敏感数据进行译解和重新组装,仅需要来自多个数据存储设施Dl到D4中的两个的数据。因此,四个数据存储设施Dl到D4中的两个可以由于维护、系统故障、电源故障等而不工作,这不会影响信任引擎110的功能。此外,根据一个实施例,由于存储在每个数据存储设施中的数据被随机化并且不可译解,所以对任何个体数据存储设施的危害不会必然危害敏感数据。此外,在具有地理分离的数据存储设施的实施例中,对多个地理远离的设施的危害变得愈加困难。实际上,即使是无良雇员,想要破坏所需的多个独立的地理远离的数据存储设施也是具有极大挑战的。尽管参照其优选和替代实施例公开了储存器系统700,但是本发明并不限于此。相反,熟练技术人员将从这里的公开认识到储存器系统700的大量的替代物。例如,储存器系统700可以包括一个、两个或更多个数据存储设施。此外,可对敏感数据进行数学运算,从而使得为了对敏感数据进行重新组装和译解,需要来自两个或更多的数据存储设施的部分。如上所述,认证引擎215和密码引擎220分别包括数据分裂模块520和610,用于分裂任何类型或形式的敏感数据(例如,文本、音频、视频、认证数据和密码密钥数据)。图8示出了根据本发明的实施例的各方面的数据分裂模块执行的数据分裂过程800的流程图。如图8所示,当认证引擎215或密码引擎220的数据分裂模块接收到敏感数据“S”时,数据分裂过程800在步骤805开始。优选地,在步骤810,数据分裂模块产生充分随机数、值、或者比特串或集“A”。例如,可以以本领域普通技术人员可获得的用于生成适用于密码应用的高质量随机数的大量的不同传统技术,产生随机数A。此外,根据一个实施例,随机数A包括可为任何适当长度的比特长度,例如,短于、长于或等于敏感数据S的比特长度。此外,在步骤820中,数据分裂过程800产生另一个统计随机数“C”。根据优选实施例,有利的是,可以并行完成统计随机数A和C的产生。数据分裂模块然后将数A和C与敏感数据S进行组合以产生新的数“B”和“D”。例如,数B可以包括A XOR S的二进制组合,数D可以包括C XOR S的二进制组合。XOR函数或“异或”函数对于本领域普通技术人员是公知的。优选地,分别在步骤825和830中分别发生上述组合,并且根据一个实施例,上述组合也可以并行发生。数据分裂过程800然后进行到步骤835,在步骤835中,对随机数A和C以及数B和D进行配对以使得这些配对均不包含通过它们自身可以重新组织并译解原始敏感数据S的充分数据。例如,这些数可以如下配对AC、AD、BC和BD。根据一个实施例,上述配对中的每个被分布至图7的储存器Dl到D4之一。根据另一个实施例,上述配对中的每个被随机分布至储存器Dl到D4之一。例如,在第一数据分裂过程800期间,配对AC可以例如通过D2的IP地址的随机选择而发送至储存器D2。然后,在第二数据分裂过程800期间,配对AC可以例如通过D4的IP地址的随机选择而发送至储存器D4。此外,这些配对可以全部存储在一个储存器上,并且可以存储在所述储存器的分离的位置上。基于上面的描述,有利的是,数据分裂过程800将敏感数据的各部分安置在四个数据存储设施Dl到D4的每个中,从而使得没有单个数据存储设施Dl到D4包括用于重建原始敏感数据S的充足的加密数据。如上所述,通过将数据随机化成个体不可用的加密部分,提高了安全性并且即使数据存储设施Dl到D4之一受到危害仍可以保持数据的信任。尽管参照其优选实施例公开了数据分裂过程800,但是本发明不限于此。相反,熟练技术人员将从这里的公开认识到数据分裂过程800的大量替代。例如,数据分裂过程可有利地将数据分裂成两个数,例如,随机数A和数B,并且通过两个数据存储设施随机分布A和B。此外,通过产生附加的随机数,数据分裂过程800可有利地在大量的数据存储设施之间分裂数据。数据可被分裂成任何希望的、选择的、预定的或者随机指定的大小单元,包括但不限于一个比特、多个比特、字节、千字节、兆字节或更大、或者大小的任何组合或序列。此外,改变从分裂过程得到的数据单元的大小,可以使数据更加难于恢复成可用形式,由此提高了敏感数据的安全性。本领域普通技术人员易于理解,分裂数据单元大小可以是多种多样的数据单元大小或大小的模式或者大小的组合。例如,数据单元大小可被选择或预定为都具有相同大小、不同大小的固定集合、大小的组合,或者随机产生大小。类似地,根据固定或预定的数据单元大小、数据单元大小的模式或组合、或者随机产生的每份的数据单元大小,数据单元可被分布成一份或多份。如上所述,为了重建敏感数据S,需要对数据部分进行去随机化和重新组织。该过程可以有利地分别在认证引擎215和密码引擎220的数据组装模块525和620中执行。数据组装模块(例如,数据组装模块525)从数据存储设施Dl到D4接收数据部分,并且将数据重新组装成可用形式。例如,根据数据分裂模块520采用图8的数据分裂过程800的一个实施例,数据组装模块525使用来自数据存储设施Dl到D4中的至少两个的数据部分重建敏感数据S。例如,对AC、AD、BC和BD的配对被分布为任何两个提供A和B或者C和D之一。要注意,S=AXOR B或者S=C XOR D指示当数据组装模块接收到A和B或者C和D之一时,数据组装模块525可有利地重新组装敏感数据S。因此,当例如响应于信任引擎110的组装请求,数据组装模块525从数据存储设施Dl到D4中的至少前两个接收到数据部分时,数据组装部分525可以组装敏感数据S。基于以上数据分裂和组装过程,可用格式的敏感数据S仅仅存在于信任引擎110的有限区域内。例如,当敏感数据S包括登记认证数据时,可用的非随机化的登记认证数据仅在认证引擎215中可获得。同样地,当敏感数据S包括私有密码密钥数据时,可用的非随机化的私有密码密钥数据仅在密码引擎220中可获得。尽管参照其优选实施例公开了数据分裂和组装过程,但是本发明不限于此。相反,熟练技术人员将从这里的公开认识到用于分裂和重新组装敏感数据S的大量替代。例如,公钥加密可用于进一步保护数据存储设施Dl到D4中的数据。此外,本领域普通技术人员易于理解,本文所述的数据分裂模块也是可纳入、进行组合或以其它形式成为任何预先存在的计算机系统、软件套装、数据库或其组合的一部分的本发明的独立且不同的实施例,或者本发明的其它实施例,诸如这里公开和描述的信任引擎、认证引擎和事务引擎。图9A示出了根据本发明的实施例的各方面的登记过程900的数据流。如图9A所示,当用户希望向密码系统100的信任引擎110登记时,登记过程900在步骤905开始。根据这个实施例,用户系统105有利地包括例如基于Java的询问用户输入登记数据(例如,人口数据和登记认证数据)的客户机侧Java小程序(applet)。根据一个实施例,登记认证数据包括用户ID、口令、生物测定等等。根据一个实施例,在询问过程中,客户机侧Java小程序优选与信任引擎110进行通信以确保选择的用户ID是唯一的。当用户ID不是唯一时,信任引擎110可有利地建议一个唯一用户ID。客户机侧Java小程序收集登记数据并且例如通过XML文档将登记数据传输至信任引擎110,具体地讲传输至事务引擎205。根据一个实施例,用认证引擎215的公钥对该传输进行编码。根据一个实施例,用户在登记过程900的步骤905中执行单次登记。例如,用户将他或她自己作为特定人员(例如,Joe User)登记。当Joe User希望作为Joe User (Mega公司的CEO)进行登记时,根据这个实施例,Joe User登记第二次,接收第二唯一用户ID并且信任引擎110不将这两个身份进行关联。根据本发明的另一个实施例,登记过程900为一个用户ID提供多个用户身份。因此,在以上例子中,信任引擎110将有利地将Joe User的两个身份进行关联。熟练技术人员从这里的公开应该明白,一个用户可以具有许多身份,例如Joe User (户主)、Joe User (慈善基金成员)等。即使用户可以具有多个身份,根据这个实施例,信任引擎110优选仅仅存储一组登记数据。此外,有利的是,用户可以在需要时添加、编辑/更新或删除身份。尽管参照其优选实施例公开了登记过程900,但是本发明不限于此。相反,熟练技术人员将从这里的公开认识到用于收集登记数据(具体地为登记认证数据)的大量替代。例如,Java小程序可以是基于公共对象模型(COM)的Java小程序等。另一方面,登记过程可包括分级登记。例如,在最低的登记等级,用户可以经由通信链路125进行登记而不生成关于他或她的身份的文档。根据提高的登记等级,用户使用信任第三方(例如,数字公证人)进行登记。例如,用户可以亲自到信任第三方,生成证明(例如,出生证明、驾照、军官证等),并且信任第三方可有利地将例如它们的数字签名包括在登记提交中。信任第三方可以包括真实公证人、政府机构(例如,邮局或机动车部门)、大公司中招募雇员的人力资源人员等。熟练技术人员从这里的公开应该明白,在登记过程900期间可以进行大量的不同等级的登记。在接收到登记认证数据后,在步骤915,事务引擎205使用传统的全SSL技术将登记认证数据转发至认证引擎215。在步骤920中,认证引擎215使用认证引擎215的私钥对登记认证数据进行解密。此外,认证引擎215利用数据分裂模块对登记认证数据进行数学运算从而将该数据分裂成至少两个独立不可译解的随机数。如上所述,至少两个数可以包括统计随机数和二进制异或数。在步骤925中,认证引擎215将随机数的每个部分转发至数据存储设施Dl到D4之一。如上所述,有利的是,认证引擎215还可以对哪些部分传送到哪个储存器进行随机化。在登记过程900中,用户常常还希望发放数字证书使得他或她可以从密码系统100之外的其它人接收加密的文档。如上所述,认证机构115通常根据几个传统标准中的一个或多个发放数字证书。通常,数字证书包括每人皆知的用户或系统的公钥。不管在登记时或者在另一个时间用户是否请求了数字证书,该请求都通过信任引擎110传送到认证引擎215。根据一个实施例,该请求包括例如具有用户的正确名称的XML文档。根据步骤935,认证引擎215将该请求传送给密码引擎220以指示密码引擎220产生密码密钥或密钥对。在被请求时,在步骤935,密码引擎220产生至少一个密码密钥。根据一个实施例,密码处理模块625产生密钥对,其中,一个密钥用作私钥,一个密钥用作公钥。密码引擎220存储私钥,并且根据一个实施例存储公钥的副本。在步骤945中,密码引擎220向事务引擎205发送对数字证书的请求。根据一个实施例,该请求有利地包括例如嵌入在XML文档内的诸如PKCSlO的标准化请求。对数字证书的请求可有利地对应于一个或多个认证机构以及这些认证机构要求的一个或多个标准格式。在步骤950中,事务引擎205将这个请求转发至认证机构115,在步骤955中,认证机构115返回数字证书。有利的是,返回数字证书可以是例如PKCS7的标准化格式或者是一个或多个认证机构115的专有格式。在步骤960中,数字证书由事务引擎205接收,副本被转发至用户并且副本由信任引擎110存储。信任引擎110存储证书的副本从而使得信任引擎110将不需要依赖于认证机构115的可用性。例如,当用户希望发送数字证书或者第三方请求用户的数字证书时,对数字证书的请求通常被发送至认证机构115。然而,如果认证机构115正在进行维护或者成为故障或安全危害的牺牲品,则无法获得数字证书。在发放密码密钥后的任何时间,密码引擎220可有利地利用上述的数据分裂过程800从而使得密码密钥被分裂成独立不可译解的随机数。与认证数据类似,在步骤965中,密码引擎220将随机数传送给数据存储设施Dl到D4。熟练技术人员将从这里的公开认识到,用户可以在登记后的任何时间请求数字证书。此外,系统之间的通信可有利地包括全SSL或公钥加密技术。此外,登记过程可以发放来自多个认证机构(包括信任引擎110内部或外部的一个或多个专有认证机构)的多个数字证书。如在步骤935到步骤960中所公开的,本发明的一个实施例包括对最终存储在信任引擎110上的证书的请求。根据一个实施例,由于密码处理模块625发放由信任引擎110使用的密钥,所以每个证书对应于一个私钥。因此,信任引擎110通过监视用户拥有的或与用户关联的证书,可以有利地提供互用性。例如,当密码引擎220接收对密码功能的请求时,密码处理模块625可以调查请求用户拥有的证书以确定该用户是否拥有与该请求的属性匹配的私钥。当存在这种证书时,密码处理模块625可以使用该证书或者与之关联的公钥或私钥执行被请求的功能。当不存在这种证书时,密码处理模块625可以有利并透明地执行多个动作以尝试补救适当密钥的缺失。图9B示出了互用性过程970的流程图,根据本发明的实施例的各方面,它公开了上述步骤以确保密码处理模块625使用适当密钥执行密码功能。如图9B所示,互用性过程970在步骤972开始,在步骤972中,密码处理模块925确定希望的证书的类型。根据本发明的一个实施例,有利的是,在对密码功能的请求或者由请求者提供的其它数据中指定证书的类型。根据另一个实施例,证书类型可以通过该请求的数据格式进行确定。例如,密码处理模块925可以有利地识别与特定类型对应的请求。根据一个实施例,证书类型可以包括一个或多个算法标准,例如,RSA、ELGAMAL等。此外,证书类型可以包括一个或多个密钥类型,例如,对称密钥、公钥、例如256比特密钥的强加密密钥、较不安全的密钥等。此外,证书类型可以包括一个或多个上述算法标准或密钥、一个或多个消息或数据格式、一个或多个数据封装或编码方案(例如,Base 32或Base64)的升级或替换。证书类型还可以包括与一个或多个第三方密码应用或接口、一个或多个通信协议或者一个或多个证书标准或协议的兼容性。熟练技术人员将从这里的公开认识至IJ,在证书类型中可存在其它差别,并且可以如本文公开地执行从或到这些差别的翻译。一旦密码处理模块625确定了证书类型,互用性过程970进行到步骤974,并且在步骤974中确定用户是否拥有与确定的类型匹配的证书。当用户拥有匹配的证书时,例如,信任引擎110通过例如其先前存储可访问该匹配的证书,加密处理模块825知道匹配的私钥也存储在信任引擎110内。例如,匹配的私钥可存储在储存器210或储存器系统700内。有利的是,密码处理模块625可以请求从例如储存器210组装匹配的私钥,然后在步骤976中,使用该匹配的私钥执行密码操作或功能。例如,如上所述,密码处理模块625可以有利地执行哈希法、哈希比较、数据加密或解密、数字签名验证或建立等。当用户不拥有匹配的证书时,互用性过程970进行到步骤978,在步骤978,密码处理模块625确定用户是否拥有交叉认证的证书。根据一个实施例,当第一认证机构确定信任来自第二认证机构的证书时,出现认证机构之间的交叉认证。换言之,第一认证机构确定来自第二认证机构的证书满足特定质量标准,由此可被“认证”为与第一认证机构自身的证书等效。当认证机构例如发放具有信任等级的证书时,交叉认证变得更加复杂。例如,第一认证机构通常基于登记过程的可靠度可以向特定证书提供三个等级的信任,而第二认证机构可以提供七个等级的信任。有利的是,交叉认证可以跟踪来自第二认证机构的哪些等级和哪些证书可替代来自第一认证机构的哪些等级和哪些证书。当在两个认证机构之间正式公开地完成上述交叉认证时,证书和等级的彼此映射通常称作“链锁(chaining)”。根据本发明的另一个实施例,有利的是,密码处理模块625可以开发由认证机构达成一致的交叉认证之外的交叉认证。例如,密码处理模块625可以访问第一认证机构的证书操作声明(CPS)或者其它公布的政策声明,并且例如使用特定信任等级要求的认证令牌(token ),将第一认证机构的证书与另一个认证机构的证书进行匹配。当在步骤978中密码处理模块625确定用户拥有交叉认证的证书时,互用性过程970进行到步骤976,并且使用交叉认证的公钥、私钥或二者执行密码操作或功能。另选地,当密码处理模块625确定用户不拥有交叉认证的证书时,互用性过程970进行到步骤980,在步骤980,密码处理模块625选择向其发放被请求的证书类型或者交叉认证的证书的认证机构。在步骤982中,密码处理模块625确定上面讨论的用户登记认证数据是否满足选择的认证机构的认证要求。例如,如果用户例如通过回答人口和其它提问经由网络登入,则与提供生物测定数据并且出现在第三方(例如,公证人)前的用户相比,提供的认证数据可以建立较低等级的信任。根据一个实施例,有利的是,可以在选择的认证机构的CPS中提供上述认证要求。当用户已经向信任引擎110提供满足选择的认证机构的要求的登记认证数据时,互用性过程970进行到步骤984,在步骤984,密码处理模块825从选择的认证机构获取证书。根据一个实施例,密码处理模块625通过登记过程900的下面的步骤945到960获取证书。例如,密码处理模块625可有利地利用密码引擎220已经可获得的一个或多个密钥对中的一个或多个公钥,从认证机构请求证书。根据另一个实施例,密码处理模块625可有利地产生一个或多个新密钥对,并且使用与之对应的公钥从认证机构请求证书。根据另一个实施例,信任引擎110可有利地包括能够发放一个或多个证书类型的一个或多个证书发放模块。根据这个实施例,证书发放模块可以提供上述证书。当密码处理模块625获取证书时,互用性过程970进行到步骤976,并且使用与获取的证书对应的公钥、私钥或二者执行密码操作或功能。当在步骤982中用户没有向信任引擎110提供满足选择的认证机构的要求的登记认证数据时,在步骤986中密码处理模块625确定是否存在具有不同的认证要求的其它认证机构。例如,密码处理模块625可以寻找具有更低的认证要求但是仍发放选择的证书或其交叉认证的认证机构。当上述具有更低要求的认证机构存在时,互用性过程970进行到步骤980并且选择该认证机构。另选地,当不存在这种认证机构时,在步骤988中信任引擎110可以从用户请求另外的认证令牌。例如,信任引擎110可以请求包括例如生物测定数据的新的登记认证数据。另外,信任引擎110可以请求用户出现在信任第三方前并且提供适当的认证证明(例如,出现在针对驾照、社会保险卡、银行卡、出生证明、军官证等等的公证前)。当信任引擎110接收到更新的认证数据时,互用性过程970进行到步骤984并且获取上述选择的证书。通过上述互用性过程970,密码处理模块625有利地在不同的密码系统之间提供无缝透明的翻译和转换。熟练技术人员将从这里的公开认识到上述互用系统的大量的优点和实施方式。例如,互用性过程970的上述步骤986可有利地包括信任仲裁的方面(下文更加详细讨论),其中,认证机构可以在特殊境况下接受较低等级的交叉认证。此外,互用性过程970可以包括确保标准证书撤销之间的互用性以及标准证书撤销的利用,例如,利用证书撤销列表(CRL)、在线证书状态协议(OCSP)等。图10示出了根据本发明的实施例的各方面的认证过程1000的数据流。根据一个实施例,认证过程1000包括从用户收集当前认证数据并且将它与用户的登记认证数据进行比较。例如,认证过程1000在步骤1005开始,在步骤1005,用户希望与例如卖方执行事务。这种事务例如可包括选择购买选项、请求访问卖方系统120的限制区或装置、等等。在步骤1010中,卖方向用户提供事务ID和认证请求。事务ID可有利地包括192比特量(32比特时间戳,串连128比特随机量或“现时(nonce)”,再串连32比特卖方特定常数)。这种事务ID唯一识别事务从而使信任引擎110能够拒绝假冒事务。认证请求可有利地包括针对特定事务需要什么等级的认证。例如,卖方可以指定谈及的事务要求的特定置信等级。如果不能够使得认证达到这个置信等级,则如下文所述,在用户没有进一步认证以提升置信等级或者卖方与服务器之间的认证条款没有变化的情况下,将不会发生事务。在下文中更加完整地讨论这些问题。根据一个实施例,有利的是,可由卖方侧Java小程序或其它软件程序产生事务ID和认证请求。此外,事务ID和认证数据的传输可以包括使用传统的SSL技术(例如,1/2SSL或换言之卖方侧认证的SSL)加密的一个或多个XML文档。在用户系统105接收到事务ID和认证请求后,用户系统105从用户收集潜在包括当前生物测定信息的当前认证数据。在步骤1015,用户系统105用认证引擎215的公钥至少对当前认证数据“B”和事务ID进行加密,并且将该数据传送到信任引擎110。所述传输优选包括至少用传统的1/2SSL技术进行加密的XML文档。在步骤1020中,事务引擎205接收该传输,优选识别URL或URI中的数据格式或请求,并且将该传输转发至认证引擎215。在步骤1015和1020中,卖方系统120在步骤1025使用优选的全SSL技术向信任引擎110转发事务ID和认证请求。该通信还可以包括卖方ID,尽管还可以通过事务ID的非随机部分传送卖方标识。在步骤1030和1035,事务引擎205接收该通信,建立审计索引的记录,并且产生对要从数据存储设施Dl到D4进行组装的用户的登记认证数据的请求。在步骤1040,储存器系统700向认证引擎215传送与用户对应的登记认证数据的部分。在步骤1045,认证引擎215使用它的私钥对该传输进行解密并且将该登记认证数据与由用户提供的当前认证数据进行比较。步骤1045的比较可有利地应用启发式上下文敏感认证(上文提及并且在下文更加详细讨论)。例如,如果接收到的生物测定信息没有完美匹配,则得到较低置信匹配。在特定实施例中,认证的置信等级针对事务的性质以及用户和卖方二者的期望进行平衡。在下文对此进行更加详细的讨论。在步骤1050,认证引擎215在认证请求内填入步骤1045的比较的结果。根据本发明的一个实施例,认证请求填充有认证过程1000的是/否或者真/假结果。在步骤1055,被填充的认证请求返回到卖方以由卖方遵照行事,例如允许用户完成发起该认证请求的事务。根据一个实施例,确认消息被传递至用户。基于上面的描述,有利的是,认证过程1000使敏感数据保持安全并且生成被构造为维护敏感数据的完整性的结果。例如,仅仅在认证引擎215内组装敏感数据。例如,登记认证数据在通过数据组装模块在认证引擎215内进行组装前是不可译解的,并且当前认证数据在通过传统的SSL技术和认证引擎215的私钥进行展开(unwrap)前是不可译解的。此夕卜,发送至卖方的认证结果不包括敏感数据,并且用户甚至无法知道是否他或她生成了有效的认证数据。尽管参照其优选和替代实施例公开了认证过程1000,但是本发明不限于此。相反,熟练技术人员将从这里的公开认识到认证过程1000的大量替代。例如,有利的是,卖方可由几乎任何请求应用(甚至是驻留在用户系统105内的应用)替代。例如,在对文档进行解锁之前,客户机应用(例如,Microsoft Word)可使用应用程序接口(API)或密码API (CAPI)请求认证。另选地,邮件服务器、网络、蜂窝电话、个人或移动计算装置、工作站等都可以形成能够通过认证过程1000进行填充的认证请求。实际上,在提供上述信任的认证过程1000后,请求应用或装置可以访问或使用大量的电子或计算机装置或系统。此外,在认证失败的情况下,认证过程1000可以采用大量的替代过程。认证失败可以保持用户重新输入他或她的当前认证数据的相同事务ID和请求。如上所述,使用相同的事务ID使认证引擎215的比较器可以监视并限制针对特定事务的认证尝试的数目,由此建立更加安全的密码系统100此外,有利的是,认证过程1000可用于开发一流的单登录方案(例如,对敏感数据仓库(vault)进行解锁)。例如,成功或肯定认证可以向认证的用户提供自动访问几乎无限数目的系统和应用的任何数目的口令的能力。例如,用户的认证可以向用户提供对与多个在线卖方关联的口令、登录、金融证明等、局域网、各种个人计算装置、互联网服务提供商、拍卖商、投资经纪商等的访问。通过采用敏感数据仓库,用户可以选择真正大的和随机的口令,这是因为他们不再需要通过关联来记住它们。而且,认证过程1000提供对它们的访问。例如,用户可以选择长度为20多位的随机字母数字串,而非与可记忆数据、名称等关联的字母数字串。根据一个实施例,有利的是,与给定用户关联的敏感数据仓库可以存储在储存器210的数据存储设施内,或者被分裂并存储在储存器系统700内。根据这个实施例,在肯定的用户认证后,信任引擎110将被请求的敏感数据(例如,适当的口令)提供给请求应用。根据另一个实施例,信任引擎110可以包括用于存储敏感数据仓库的单独系统。例如,信任引擎110可以包括孤立的软件引擎,用于执行数据仓库功能并且形象化地驻留在信任引擎110的上述前端安全系统的“后方”。根据这个实施例,在软件引擎从信任引擎110接收到指示肯定的用户认证的信号后,软件引擎提供被请求的敏感数据。
在另一个实施例中,数据仓库可由第三方系统实现。与软件引擎实施例类似,有利的是,在第三方系统从信任引擎110接收到指示肯定的用户认证的信号后,第三方系统可以提供被请求的敏感数据。根据另一个实施例,数据仓库可以在用户系统105上实现。在从信任引擎110接收到指示肯定的用户认证的信号后,用户侧软件引擎可以有利地提供上述数据。尽管参照替代实施例公开了上述数据仓库,但是熟练技术人员将从这里的公开认识到它的大量的另外实施方式。例如,特定数据仓库可以包括一些或所有的上述实施例中的方面。此外,任何的上述数据仓库可以在不同的时刻采用一个或多个认证请求。例如,任一数据仓库可以对于每一个或多个事务定期地要求认证,对于每一个或多个会话以及对一个或多个网页或网站的每次访问要求认证,以一个或多个其它指定间隔等要求认证。图11示出了根据本发明的实施例的各方面的签名过程1100的数据流。如图11所示,签名过程1100包括与在上文参照图10描述的认证过程1000类似的步骤。根据本发明的一个实施例,签名过程1100首先对用户进行认证,然后执行几个数字签名功能中的一个或多个(在下文进行更加详细的描述)。根据另一个实施例,有利的是,签名过程1100可以存储与之相关的数据,例如,消息或文档的哈希值等。有利的是,这个数据可用于审计或任何其它事件,例如,当参与方尝试抵赖事务时。如图11所示,在认证步骤中,用户和卖方可以有利地对消息(例如,合同)达成一致。在签名过程中,有利的是,签名过程1100确保由用户签名的合同与由卖方提供的合同相同。因此,根据一个实施例,在认证过程中,卖方和用户在发送至认证引擎215的数据中包括消息或合同的各自副本的哈希值。通过仅仅采用消息或合同的哈希值,信任引擎110可有利地存储明显减小的数据量,从而提供更高效且成本效益高的密码系统。此外,有利的是,存储的哈希值可与讨论的文档的哈希值进行比较,以确定讨论的文档是否与由任一方签名的文档匹配。确定文档是否和与事务相关的一个文档相同的能力提供了附加证据,其能够用于对抗由一方对事务抵赖的主张。在步骤1103,认证引擎215组装登记认证数据,并且将它与由用户提供的当前认证数据进行比较。当认证引擎215的比较器指示登记认证数据与当前认证数据匹配时,认证引擎215的比较器还将由卖方提供的消息的哈希值与由用户提供的消息的哈希值进行比较。因此,有利的是,认证引擎215确保用户同意的消息与卖方同意的消息相同。在步骤1105中,认证引擎215向密码引擎220发送数字签名请求。根据本发明的一个实施例,该请求包括消息或合同的哈希值。然而,熟练技术人员将从这里的公开认识至IJ,密码引擎220实际上可以对任何类型的数据(包括但不限于视频、音频、生物测定、图像或文本)进行加密以形成期望的数字签名。返回到步骤1105,数字签名请求优选包括通过传统的SSL技术传送的XML文档。在步骤1110中,认证引擎215向数据存储设施Dl到D4的每个发送请求,从而使得数据存储设施Dl到D4的每个发送它们各自的与签名方对应的一个或多个密码密钥的部分。根据另一个实施例,密码引擎220采用上文所述的互用性过程970的一些或所有的步骤,从而使得密码引擎220首先确定签名方要从储存器210或储存器系统700请求的一个或多个适当密钥,并且采取行动以提供适当的匹配密钥。根据另一个实施例,有利的是,认证引擎215或密码引擎220可以请求与签名方关联并存储在储存器210或储存器系统700中的一个或多个密钥。根据一个实施例,签名方包括用户和卖方之一或二者。在这种情况下,有利的是,认证引擎215请求与用户和/或卖方对应的密码密钥。根据另一个实施例,签名方包括信任引擎110。在这个实施例中,信任引擎110在证明认证过程1000正确地认证了用户、卖方或二者。因此,认证引擎215请求信任引擎110的密码密钥(例如,属于密码引擎220的密钥)以执行数字签名。根据另一个实施例,信任引擎110执行数字公证类功能。在这个实施例中,签名方包括连同信任引擎110的用户、卖方或二者。因此,信任引擎110提供用户和/或卖方的数字签名,然后用它自身的数字签名指示用户和/或卖方得到正确认证。在这个实施例中,有利的是,认证引擎215可以请求与用户、卖方或二者对应的密码密钥的组装。根据另一个实施例,有利的是,认证引擎215可以请求与信任引擎110对应的密码密钥的组装。根据另一个实施例,信任引擎110执行授权书类功能。例如,信任引擎110可以代表第三方对消息进行数字签名。在这种情况下,认证引擎215请求与第三方关联的密码密钥。根据这个实施例,有利的是,签名过程1100可以包括在允许授权书类功能之前对第三方进行认证。此外,认证过程1000可以包括对第三方约束(例如,规定何时以及在什么境况下可使用特定的第三方的签名的商业逻辑等)的检查。基于上面的描述,在步骤1110中,认证引擎从与签名方对应的数据存储设施Dl到D4请求密码密钥。在步骤1115中,数据存储设施Dl到D4将它们各自的与签名方对应的密码密钥的部分传输至密码引擎220。根据一个实施例,上述传输包括SSL技术。根据另一个实施例,有利的是,上述传输可用密码引擎220的公钥进行超级加密。在步骤1120中,密码引擎220组装签名方的上述密码密钥并且用其对消息进行加密,从而形成数字签名。在签名过程1100的步骤1125中,密码引擎220向认证引擎215发送该数字签名。在步骤1130中,认证引擎215将填充了的认证请求连同哈希处理的消息的副本以及数字签名发送至事务引擎205。在步骤1135中,事务引擎205将包括事务ID、认证是否成功的指示以及数字签名的收据传输至卖方。根据一个实施例,有利的是,上述传输可以包括信任引擎110的数字签名。例如,信任引擎110可以用它的私钥对该收据的哈希值进行加密,从而形成要附加到至卖方的传输的数字签名。根据一个实施例,事务引擎205还向用户发送确认消息。尽管参照其优选和替代实施例公开了签名过程1100,但是本发明不限于此。相反,熟练技术人员将从这里的公开认识到签名过程1100的大量替代。例如,可以用诸如电子邮件应用的用户应用替换卖方。例如,用户可能希望利用他或她的数字签名对特定电子邮件进行数字签名。在这种实施例中,有利的是,整个签名过程1100中的传输可以仅仅包括消息的哈希值的一个副本。此外,熟练技术人员将从这里的公开认识到,大量的客户机应用可以请求数字签名。例如,客户机应用可以包括字处理器、电子数据表、电子邮件、语音邮件、对限制系统区域的访问等。此外,熟练技术人员将从这里的公开认识到,有利的是,签名过程1100的步骤1105到1120可以采用图9B的互用性过程970的一些或所有的步骤,从而提供例如需要处理不同签名类型下的数字签名的不同密码系统之间的互用性。图12示出了根据本发明的实施例的各方面的加密/解密过程1200的数据流。如图12所示,通过使用认证过程1000对用户进行认证,开始解密过程1200。根据一个实施例,认证过程1000在认证请求中包括同步会话密钥。例如,在传统的PKI技术中,熟练技术人员明白,使用公钥和私钥的加密或解密的计算强度大并且可能要求大量的系统资源。然而,在对称密钥密码系统或消息的发送方和接收方共享用于对消息进行加密和解密的一个公同密钥的系统中,数学运算明显更简单并更快速。因此,在传统的PKI技术中,消息的发送方将产生同步会话密钥并且使用更简单更快速的对称密钥系统对消息进行加密。然后,发送方用接收方的公钥对会话密钥进行加密。加密的会话密钥将附加到同步加密的消息并且这两个数据都被发送至接收方。接收方使用他或她的私钥对会话密钥进行解密,然后使用会话密钥对消息进行解密。基于上面的描述,更简单更快速的对称密钥系统用于大部分的加密/解密处理。因此,在解密过程1200中,解密有利地假定已利用用户的公钥对同步密钥进行了加密。因此,如上所述,加密的会话密钥包括在认证请求中。返回到解密过程1200,在步骤1205中用户已经得到认证后,认证引擎215将加密的会话密钥转发至密码引擎220。在步骤1210中,认证引擎215向数据存储设施Dl到D4的每个转发请求用户的密码密钥数据的请求。在步骤1215中,每个数据存储设施Dl到D4将密码密钥的它们各自的部分传输至密码引擎220。根据一个实施例,用密码引擎220的公钥对上述传输进行加密。在解密过程1200的步骤1220中,密码引擎220组装密码密钥并且用其对会话密钥进行解密。在步骤1225中,密码引擎将会话密钥转发至认证引擎215。在步骤1227中,认证引擎215填充包括解密的会话密钥的认证请求,并且将填充了的认证请求发送至事务引擎205。在步骤1230中,事务引擎205将认证请求连同会话密钥转发至请求应用或卖方。然后,根据一个实施例,请求应用或卖方使用会话密钥对加密的消息进行解密。尽管参照其优选和替代实施例公开了解密过程1200,但是熟练技术人员将从这里的公开认识到解密过程1200的大量替代。例如,解密过程1200可以在同步密钥加密之前并且依赖于全公钥技术。在这种实施例中,请求应用可以将整个消息发送至密码引擎220,或者可以采用一些类型的压缩或可逆哈希法以将消息发送至密码引擎220。熟练技术人员从本文公开还将认识到上述通信可有利地包括以SSL技术打包的XML文档。加密/解密过程1200还提供文档或其它数据的加密。因此,在步骤1235中,请求应用或卖方可有利地向信任引擎110的事务引擎205发送对用户的公钥的请求。请求应用或卖方产生这个请求,因为请求应用或卖方例如使用用户的公钥对将用于对文档或消息进行加密的会话密钥进行加密。如在登记过程900中所述,事务引擎205例如将用户的数字证书的副本存储在海量存储器225中。因此,在加密过程1200的步骤1240中,事务引擎205从海量存储器225请求用户的数字证书。在步骤1245中,海量存储器225将与用户对应的数字证书发送至事务引擎205。在步骤1250中,事务引擎205将数字证书发送至请求应用或卖方。根据一个实施例,加密过程1200的加密部分不包括用户的认证。这是因为请求卖方仅需要用户的公钥,而不请求任何敏感数据。熟练技术人员将从这里的公开认识到,如果特定用户没有数字证书,信任引擎110可采用一些或全部的登记过程900以为该特定用户产生数字证书。然后,信任引擎110可启动加密/解密过程1200,并由此提供适当的数字证书。此外,熟练技术人员将从这里的公开认识到,加密/解密过程1200的步骤1220和1235到1250可有利地采用图9B的互用性过程的一些或所有的步骤,从而提供例如可能需要处理加密的不同密码系统之间的互用性。图13示出了根据本发明的另一个实施例的各方面的信任引擎系统1300的简化框图。如图13所示,信任引擎系统1300包括多个不同的信任引擎1305、1310、1315和1320。为了便于更加全面理解本发明,图13示出了具有事务引擎、储存器和认证引擎的每个信任引擎1305、1310、1315和1320。然而,熟练技术人员认识到,每个事务引擎可有利地包括参照图1到图8公开的部件和通信通道中的一些、组合或全部。例如,一个实施例可有利地包括具有一个或多个事务引擎、储存器以及密码服务器或它们的任何组合的信任引擎。根据本发明的一个实施例,信任引擎1305、1310、1315和1320的每个在地理上分离,从而例如信任引擎1305可以驻留在第一位置,信任引擎1310可以驻留在第二位置,信任引擎1315可以驻留在第三位置,信任引擎1320可以驻留在第四位置。有利的是,上述地理分离减小了系统响应时间同时提高整个信任引擎系统1300的安全性。例如,当用户登录到密码系统100时,用户可能离第一位置最近并且可能希望得到认证。如参照图10所述,为了得到认证,用户提供当前认证数据(例如,生物测定等等),并且当前认证数据被与该用户的登记认证数据进行比较。因此,根据一个例子,有利的是,用户向地理上最近的信任引擎1305提供当前认证数据。信任引擎1305的事务引擎1321然后将当前认证数据转发至也驻留在第一位置的认证引擎1322。根据另一个实施例,事务引擎1321将当前认证数据转发至信任引擎1310、1315或1320的认证引擎中的一个或多个。事务引擎1321还向例如信任引擎1305到1320的每个的储存器请求登记认证数据的组装。根据这个实施例,每个储存器将它的登记认证数据部分提供给信任引擎1305的认证引擎1322。认证引擎1322然后利用例如来自前两个储存器的加密的数据部分进行响应,并且将登记认证数据组装成译解的形式。认证引擎1322将登记认证数据与当前认证数据进行比较并且将认证结果返回到信任引擎1305的事务引擎1321。基于以上内容,信任引擎系统1300采用多个地理分离的信任引擎1305到1320中的最接近的一个执行认证过程。根据本发明的一个实施例,有利的是,可以在在用户系统105、卖方系统120或认证机构115中的一个或多个上执行的客户机侧Java小程序处执行到最接近的事务引擎的信息路由。根据一个替代实施例,可以采用更加精密的判断过程以从信任引擎1305到1320进行选择。例如,该判断可以基于给定信任引擎的可用性、操作性、连接速度、负载、性能、地理接近、或者它们的组合。这样,信任引擎系统1300降低它的响应时间,同时保持与地理上远离的数据存储设施(例如,参照图7描述的那些数据存储设施,其中,每个数据存储设施存储敏感数据的随机化部分)关联的安全性优点。例如,在例如信任引擎1315的储存器1325处的安全危害不一定危害信任引擎系统1300的敏感数据。这是因为储存器1325仅仅包含不可译解的随机化数据,在没有更多数据的情况下它们是完全无用的。根据另一个实施例,有利的是,信任引擎系统1300可以包括与认证引擎类似地布置的多个密码引擎。密码引擎可有利执行密码功能,例如,参照图1到图8公开的那些密码功能。根据另一个实施例,信任引擎系统1300可有利地用多个密码引擎替代多个认证引擎,从而执行诸如参照图1到图8公开的密码功能的密码功能。根据本发明的另一个实施例,信任引擎系统1300可以用具有在上文公开的认证引擎、密码引擎或它们二者的一些或所有的功能的引擎,来替代各多个认证引擎。
尽管参照其优选和替代实施例公开了信任引擎系统1300,但是熟练技术人员将认识到,信任引擎系统1300可以包括信任引擎1305到1320的部分。例如,信任引擎系统1300可以包括一个或多个事务引擎、一个或多个储存器、一个或多个认证引擎、一个或多个密码引擎、或者它们的组合。图14示出了根据本发明的另一个实施例的各方面的信任引擎系统1400的简化框图。如图14所示,信任引擎系统1400包括多个信任引擎1405、1410、1415和1420。根据一个实施例,信任引擎1405、1410、1415和1420的每个包括参照图1到图8公开的信任引擎110的一些或所有的部件。根据这个实施例,当用户系统105、卖方系统120或认证机构115的客户机侧Java小程序与信任引擎系统1400进行通信时,这些通信被发送至信任引擎1405到1420的每个的IP地址。另外,信任引擎1405、1410、1415和1420的每个的每个事务引擎的行为与参照图13公开的信任引擎1305的事务引擎1321的行为类似。例如,在认证过程中,信任引擎1405、1410、1415和1420的每个的每个事务引擎将当前认证数据发送至它们各自的认证引擎并且发送对存储在信任引擎1405到1420的每个的每个储存器中的随机化数据进行组装的请求。图14没有示出所有这些通信,因为这种图示将变得极度复杂。从认证过程继续,储存器的每个然后将它的随机化数据的部分发送至信任引擎1405到1420的每个的每个认证引擎。信任引擎的每个的每个认证引擎利用它的比较器确定当前认证数据是否与由信任引擎1405到1420的每个的储存器提供的登记认证数据匹配。根据这个实施例,由每个认证引擎进行的比较的结果然后被发送至其它三个信任引擎的冗余模块。例如,来自信任引擎1405的认证引擎的结果被发送至信任引擎1410、1415和1420的冗余模块。因此,信任引擎1405的冗余模块同样地从信任引擎1410、1415和1420接收认证引擎的结果。图15示出了图14的冗余模块的框图。该冗余模块包括比较器,该比较器被构造为从三个认证引擎接收认证结果并且将该结果发送至第四个信任引擎的事务引擎。该比较器对来自三个认证引擎的认证结果进行比较,并且如果这些结果中的两个一致,则比较器得出认证结果应该与两个一致认证引擎的认证结果匹配。这个结果然后被发送回与不与所述三个认证引擎关联的信任引擎对应的事务引擎。基于上面的描述,冗余模块从来自优选与该冗余模块的信任引擎在地理上远离的认证引擎接收的数据,确定认证结果。通过提供这种冗余功能,信任引擎系统1400确保对信任引擎1405到1420之一的认证引擎的危害不足以危害该特定信任引擎的冗余模块的认证结果。熟练技术人员将认识到,信任引擎系统1400的冗余模块功能还可以应用到信任引擎1405到1420的每个的密码引擎。然而,在图14中没有示出这种密码引擎通信以避免复杂性。此外,熟练技术人员将认识到,针对图15的比较器的大量的替代认证结果冲突解决算法适用于本发明。根据本发明的另一个实施例,有利的是,信任引擎系统1400在密码比较步骤内利用冗余模块。例如,有利的是,可以在特定事务期间由一方或多方提供的文档的哈希比较过程中实现参照图14和图15公开的一些或所有的上述冗余模块。尽管针对特定的优选和替代实施例描述了上述发明,但是基于这里的公开本领域普通技术人员将想到其它实施例。例如,信任引擎110可以发放短期证书,其中,私有密码密钥发布给用户达到预定时长。例如,当前证书标准包括可以设置为在预定时间量后过期的有效性字段。因此,信任引擎Iio可以向用户发布私钥,其中,该私钥例如在24小时内有效。根据这种实施例,有利的是,信任引擎110可以发放与特定用户关联的新的密码密钥对,然后发布该新的密码密钥对的私钥。然后,一旦发布了私有密码密钥,信任引擎110使这种私钥的任何内部有效使用立即过期,这是因为它不再能由信任引擎110保护。此外,熟练技术人员将认识到,密码系统100或信任引擎110可以包括识别任何类型的装置(例如但不限于膝上型电脑、蜂窝电话、网络、生物测定装置等)的能力。根据一个实施例,这种识别可来自在对特定服务的请求(例如,对导致访问或使用的认证的请求、对密码功能的请求等)中提供的数据。根据一个实施例,上述请求可以包括唯一装置标识符,例如,处理器ID。另选地,该请求可以包括特定可识别数据格式的数据。例如,移动和卫星电话常常不包括对全X509. v3重加密证书的处理能力,因此不请求它们。根据这个实施例,信任引擎110可以识别提供的数据格式的类型,并且仅仅以同样方式进行回应。在上述的系统的附加方面中,可以使用将在下文描述的各种技术提供上下文敏感认证。例如如图16所示的上下文敏感认证提供不仅评估当用户尝试认证自身时由用户发送的实际数据还评估围绕该数据的产生和传递的境况的可能性。这些技术还可以支持用户与信任引擎110之间或者卖方与信任引擎110之间的事务特定信任仲裁,这将在下面描述。如上所述,认证是证明用户是他说他是的那个人的过程。通常,认证要求向认证管理机构展示一些事实。本发明的信任引擎110代表用户必须向其认证自己的机构。用户必须通过以下方式向信任引擎110展示他就是他说他是的那个人知道仅该用户应该知道的事物(基于知识的认证),具有仅该用户应该具有的事物(基于令牌的认证),或者通过成为仅该用户应该是的事物(基于生物测定的认证)。基于知识的认证的例子包括但不限于口令、PIN码或者密码锁。基于令牌的认证的例子包括但不限于房屋钥匙、物理信用卡、驾照或者特定电话号码。基于生物测定的认证的例子包括但不限于指纹、笔迹分析、面部扫描、手扫描、耳扫描、虹膜扫描、血管模式、DNA、语音分析或者视网膜扫描。每种类型的认证具有特定的优点和缺点,并且均提供不同的安全等级。例如,与偷听某人的口令并且重复它相比,建立与他人的指纹匹配的假指纹一般更加困难。每种类型的认证还要求认证机构知道不同类型的数据从而使用该形式的认证来验证某人。本文所用的“认证”广义地是指验证某人的身份为他说他是的那个人的全部过程。“认证技术”是指基于特定知识、物理令牌、或者生物测定读数的特定类型的认证。“认证数据”是指发送至或以其它方式向认证机构进行展示以建立身份的信息。“登记数据”是指初始提交给认证机构以建立与认证数据进行比较的基线的数据。“认证实例”是指与根据认证技术进行认证的尝试关联的数据。参照以上图10描述了对用户进行认证的过程中涉及的内部协议和通信。在如图10的步骤1045所示的比较步骤内发生这个过程的进行上下文敏感认证的部分。这个步骤在认证引擎215内发生,并且涉及对从储存器210取回的登记数据410进行组装并且将由用户提供的认证数据与它进行比较。在图16中示出并且在下文描述这个过程的一个特定实施例。在图16的步骤1600中,认证引擎215接收由用户提供的当前认证数据和从储存器取回的登记数据。这两组数据可以包含与不同的认证技术有关的数据。在步骤1605中,认证引擎215将与每个个体认证实例关联的认证数据进行分离。这是必要的,从而将认证数据与用户的登记数据的适当子集进行比较(例如,指纹认证数据应该与指纹登记数据而非口令登记数据进行比较)。通常,对用户进行认证涉及一个或多个个体认证实例,这取决于用户可使用哪些认证技术。这些方法受到在用户的登记过程内由用户提供的登记数据的限制(如果用户当登记时没有提供视网膜扫描,则他将不能够使用视网膜扫描认证自己)以及受到用户当前可用的装置的限制(例如,如果用户在他的当前位置没有指纹读取器,则指纹认证是不实际的)。在一些情况下,单个认证实例足以对用户进行认证,然而,在某些境况下,可以使用多个认证实例的组合从而对于特定事务对用户进行更确信的认证。每个认证实例包括与特定认证技术(例如,指纹、口令、智能卡等)有关的数据以及针对该特定技术的围绕数据的捕捉和传递的境况。例如,尝试经由口令进行认证的特定实例不仅将产生与口令自身有关的数据,还将产生与该口令尝试有关的称为“元数据”的境况数据。这个境况数据包括诸如以下的信息特定认证实例发生的时间、从其传递认证信息的网络地址、以及本领域技术人员已知的关于认证数据的起源可以确定的任何其它信息(连接的类型、处理器序列号等)。在许多情况下,仅仅少量的境况元数据可用。例如,如果用户位于使用掩蔽起源计算机的地址的代理服务器或网络地址翻译或另一技术的网络上,则仅仅可以确定代理服务器或路由器的地址。类似地,在许多情况下,例如处理器序列号的信息由于使用的硬件或操作系统的限制(系统运营商禁用这些特征)或者用户的系统与信任引擎110之间的连接的其它限制而不可用。如图16所示,一旦在步骤1605中提取并分离了在认证数据内表示的各个认证实例,认证引擎215针对每个实例的指示用户是他宣称的那个人的可靠性进行评估。通常,基于几个因素确定单个认证实例的可靠性。可将它们分组为在步骤1610中评估的和与认证技术关联的可靠性有关的因素以及在步骤1815中评估的与提供的特定认证数据的可靠性有关的因素。第一组包括但不限于正使用的认证技术的固有可靠性以及与该方法一起使用的登记数据的可靠性。第二组包括但不限于登记数据与由认证实例提供的数据之间的匹配度以及与该认证实例关联的元数据。这些因素中的每一个可以独立于其它因素而变化。认证技术的固有可靠性基于冒名顶替者提供他人的正确数据的难度以及认证技术的整体误差率。对于基于口令和知识的认证方法,这种可靠性常常是相当低的,这是因为无法防止某人向另一个人泄露他们的口令以及该第二人使用该口令。即使是更加复杂的基于知识的系统仍可能仅具有中等可靠性,这是因为知识从一个人传递到另一人是相当容易的。基于令牌的认证(例如,具有正确智能卡或者使用特定终端执行认证)在独自使用时的可靠性同样低,这是因为不能够保证正当的人拥有正确令牌。然而,生物测定技术的固有可靠性更高,因为一般难以以方便的方式(甚至是有意地)向他人提供使用你的指纹的能力。由于破坏生物测定认证技术更加困难,所以生物测定方法的固有可靠性通常高于纯粹基于知识或令牌的认证技术。然而,即使是生物测定技术也会有一些产生误接受或误拒绝的情况。通过相同生物测定技术的不同实施方式的不同可靠性,可以反映出这些情况。例如,由一个公司提供的指纹匹配系统可以提供比由一个不同公司提供的指纹匹配系统更高的可靠性,因为一个公司使用了更高质量的光学部件或更好的扫描分辨率或者减少误接受或误拒绝的发生的一些其它改进。要注意,该可靠性可以通过不同方式进行表示。期望以可由启发法530和认证引擎215的算法用来计算每个认证的置信等级的一些度量来表示可靠性。表示这些可靠性的一个优选方式是百分比或分数。例如,可能向指纹被分配97%的固有可靠性,而可能仅向口令分配50%的固有可靠性。本领域技术人员将认识到,这些特定值仅仅是示例性的并且可以在特定实施方式之间变化。必须评估可靠性的第二因素是登记的可靠性。这是上文提及的“分级登记”过程的一部分。该可靠性因素反映在初始登记过程内提供的标识的可靠性。例如,如果个人最初以他们用身体向公证人或其它公共官员生成他们的身份的证据的方式进行登记并且此时记录并公证登记数据,则该数据的可靠性要强于经由网络在登记过程中提供并且仅通过数字签名或不真实依赖于该个人的其它信息进行担保的数据。具有不同可靠性等级的其它登记技术包括但不限于在信任引擎110运营商的物理办公室进行登记、在用户的雇佣地点进行登记、在邮局或护照办公室进行登记、通过附属或信任方向信任引擎110运营商进行登记、登记身份还没有被识别为真实个人的匿名或笔名登记、以及本领域知道的其它方式。这些因素反映信任引擎110与在登记过程期间提供的标识的源之间的信任。例如,如果在提供身份证明的初始过程中与雇主关联地执行登记,则可认为这个信息对于公司内的用途是非常可靠的,但是对于政府机构或竞争者而言信任程度较低。因此,由这些其它组织的每个操作的信任引擎可以为这个登记分配不同的可靠性等级。类似地,在网络上提交但是通过在先前向同一信任引擎110登记过程中提供的其它信任数据进行认证的附加数据可以被认为与原始登记数据一样可靠,即使后一数据是在开放网络上提交的。在这种境况下,随后的公证将有效地提高与原始登记数据关联的可靠性的等级。这样,例如,通过向某登记官员展示与登记的数据匹配的个人的身份,匿名或笔名登记然后可被提升至全登记。通常,上述的可靠性因素是在任何特定认证实例之前确定的值。这是因为它们基于登记和技术而非实际认证。在一个实施例中,基于这些因素产生可靠性的步骤包括查找针对这个特定认证技术的先前确定的值以及用户的登记数据。在本发明的有利实施例的另一个方面中,这些可靠性可以包括在登记数据自身内。这样,这些因素连同从储存器210发送的登记数据被自动传递给认证引擎215。尽管通常可以在任何个体认证实例之前确定这些因素,但是它们仍然对针对该用户使用该特定认证技术的每个认证实例具有影响。另外,尽管这些值可以随时间而变化(例如,如果用户以更可靠的方式重新登记),但是它们并不取决于认证数据自身。通过对比,与单个特定实例的数据关联的可靠性因素对于每个场合会变化。在步骤1815中,针对每个新的认证必须对下述的这些因素进行评估从而产生可靠性得分。认证数据的可靠性反映了在特定认证实例中由用户提供的数据与在认证登记过程内提供的数据之间的匹配。这是认证数据是否与用户所宣称的个人的登记数据匹配的基本提问。通常,当数据不匹配时,认为用户没有得到成功认证,并且认证失败。对此进行评估的方式可以根据使用的认证技术而改变。通过如图5所示的认证引擎215的比较器515功能执行这种数据的比较。
例如,通常以二元方式对口令的匹配进行评估。换言之,口令要么是完全匹配,要么是失败匹配。如果口令不是完全正确的,即使是部分匹配(接近于正确口令的口令),通常也是不可以接受的。因此,当对口令认证进行评估时,由比较器515返回的认证的可靠性通常要么是100% (正确)要么是0% (错误),而不存在中间值的可能性。通常,与口令的规则类似的规则应用于基于令牌的认证方法(例如,智能卡)。这是因为具有一具有相似标识符或者与正确智能卡类似的智能卡,仍然与具有任何其它不正确令牌一样是错误的。因此,令牌同样趋于二元认证用户要么具有正确令牌,要么没有。然而,某些类型的认证数据(例如,问卷和生物测定)通常不是二元认证者。例如,指纹可以以不同程度与基准指纹进行匹配。在一定程度上,这可能是由于在初始登记过程或者在随后的认证中捕捉的数据的质量的变化。(指纹可能被弄脏,或者人在特定手指上具有治疗伤疤或烧伤)。在其它情况下,由于信息自身有些可变并且基于模式匹配,所以数据不会那么完美地匹配。(由于背景噪声、或者记录语音的环境的声学或者由于人感冒,语音分析看起来接近但并非相当正确)。最终,在大量数据进行比较的情况下,就会有如下情况很多数据匹配良好,但是一些数据不匹配。(十个提问的问卷会得到针对个人提问的八个正确回答以及两个不正确回答)。针对这些理由中的任何理由,期望由比较器515向登记数据与特定认证实例的数据之间的匹配分配一个部分匹配值。这样,例如,可以将指纹说成是85%匹配,将声纹说成是65%匹配,将问卷说成是80%匹配。由比较器515生成的这种测量(匹配度)是表示认证是否正确的基本问题的因素。然而,如上所述,这仅仅是可用于确定给定的认证实例的可靠性的因素之一。还要注意,即使可以确定某部分程度的匹配,最终,希望基于部分匹配提供二元结果。在另一种操作模式下,还可以基于匹配度是否通过特定阈值的匹配水平,将部分匹配视为二元的,即,要么完美(100%),要么失败(0%)。这种过程可用于向系统提供简单的通过/失败等级的匹配,该系统否则以其它方式生成部分匹配。在评估给定的认证实例的可靠性时要考虑的另一个因素涉及提供针对这个特定实例的认证数据的境况。如上所述,这些境况是指与特定认证实例关联的元数据。这可以包括但不限于如下信息能够进行确定的认证者的网络地址、认证的时间、认证数据的传输模式(电话线、蜂窝电话、网络等)、以及认证者的系统的序号。这些因素可用于生成由用户通常请求的认证的类型的概况。然后,这个信息能够用于以至少两种方式评估可靠性。一种方式是考虑用户是否正在以与该用户的认证的正常概况一致的方式请求认证。如果用户通常在工作日(当她工作时)向一个网络地址进行认证请求并且在晚间或周末(当她在家时)向一个不同的网络地址进行认证请求,则在工作日从家庭地址发生的认证是较不可靠的,因为它在正常认证概况之外。类似地,如果用户通常使用指纹生物测定并且在夜间进行认证,则在白天仅仅使用口令发起的认证是较不可靠的。境况元数据可用于评估认证的实例的可靠性的另外方式是确定境况提供认证者是它宣称的个人有多么确实。例如,如果认证来自已知与用户关联的序号的系统,则这是用户是他们宣称的人的良好境况指示符。相反地,如果认证来自已知位于洛杉矶的网络地址而用户已知位于伦敦,则这是该认证基于其境况而较不可靠的指示。当用户与卖方系统或信任引擎110进行交互时,cookie或其它电子数据可以安置在用户使用的系统上。这个数据写入到用户的系统的存储器并且可以包含可由Web浏览器或用户系统上的其它软件读取的标识。如果在会话之间这个数据被允许驻留在用户系统上(“持久cookie”),则在特定用户的认证过程中,该数据可以与认证数据一起发送,作为这个系统的过去使用的进一步证据。实际上,给定实例的元数据(尤其是持久cookie)可以自身形成一种基于令牌的认证器。一旦如上所述在步骤1610和步骤1615中分别产生基于认证实例的技术和数据的适当的可靠性因素,在步骤1620中它们用于产生提供的认证实例的总可靠性。这样做的一种方式是以百分比简单表示每个可靠性,然后将它们一起相乘。例如,假定根据用户的过去认证概况从对于用户的家庭计算机完全已知的网络地址送入认证数据(100%),使用的技术是指纹识别(97%),初始指纹数据由用户的雇主通过信任引擎110进行登记(90%),认证数据与登记数据中的原始指纹模板之间的匹配非常好(99%)。这个认证实例的总可靠性于是可以被计算为这些可靠性的乘积(100% X 97% X 90% X 99%=86. 4% 可靠性)。这个计算的可靠性表示一个认证的实例的可靠性。还可以使用不同地对待不同可靠性因素的技术,例如,通过使用向每个可靠性因素分配不同权重的公式,来计算一个认证实例的总可靠性。另外,本领域技术人员将认识到,使用的实际值可以表示与百分比不同的值并且可以使用非算术系统。一个实施例可以包括由认证请求者用来设置每个因素的权重和用于建立认证实例的总可靠性的算法的模块。如步骤1620所示,认证引擎215可以使用以上技术及其变型来确定一个认证实例的可靠性。然而,在许多认证情形下,它对于要同时提供的多个认证实例是有用的。例如,当使用本发明的系统尝试对自身进行认证时,用户可以提供用户标识、指纹认证数据、智能卡和口令。在这种情况下,三个独立的认证实例被提供给信任引擎110以进行评估。进行到步骤1625,如果认证引擎215确定由用户提供的数据包括超过一个认证实例,则如步骤1630所示将依次选择每个实例并且如上所述在步骤1610、1615和1620中进行评估。要注意,许多所述的可靠性因素在这些实例中的一个与另一个之间不同。例如,这些技术的固有可靠性以及在认证数据与登记数据之间提供的匹配度很可能不同。另外,用户可能已经在不同时间在不同境况下针对这些技术的每一个提供了登记数据,针对这些实例的每一个也提供不同的登记可靠性。最终,即使这些实例中的每一个实例的数据被提交的境况相同,这些技术的使用也均可以不同地适应用户的概况。(例如,用户可以正常使用他们的口令和指纹,而不是他们的智能卡)。结果,这些认证实例的每一个的最终可靠性会彼此不同。然而,通过一起使用多个实例,认证的总置信等级将趋于增大。一旦认证引擎针对在认证数据中提供的所有的认证实例执行了步骤1610到1620,在步骤1635中使用每个实例的可靠性,评估总认证置信等级。将各个认证实例可靠性组合成认证置信等级的这个过程可以通过与生成的各个可靠性相关的各种方法进行模拟,并且还可以解决这些认证技术中的一些之间的特定交互。(例如,与一个口令甚至是例如基本语音分析的相当弱的生物测定相比,诸如口令的多个基于知识的系统可以生成较低的置信度)。认证引擎215可以将多个并发认证实例的可靠性进行组合以产生最终置信等级的一个方式是将每个实例的不可靠性相乘以达到总不可靠性。通常,不可靠性是可靠性的互补百分比。例如,84%可靠的技术是16%不可靠的。生成86%、75%和72%的可靠性的上述的三个认证实例(指纹、智能卡、口令)分别将具有对应的(100-86)%、(100-75)%和(100-72)%、或者14%、25%和28%的不可靠性。通过将这些不可靠性相乘,我们得到14%X25%X28%的累积不可靠性,即O. 98%的不可靠性,这对应于99. 02%的可靠性。在另一种操作模式中,可以在认证引擎215内应用附加因素和启发法530以解决各种认证技术的依存性。例如,如果某人未经授权地访问了特定家庭计算机,则他们很可能也可访问该地址的电话线。因此,基于发起电话号码以及认证系统的序号的认证不会使认证的总置信度增加多少。然而,基于知识的认证很大程度上独立于基于令牌的认证(即,如果某人盗取了你的蜂窝电话或钥匙,他们在没有你的PIN或口令的情况下不大可能知道你的PIN或口令)。另外,不同卖方或其它认证请求者可能希望对认证的不同方面进行不同的加权。这可以包括使用单独的加权因子或用于计算各个实例的可靠性的算法以及使用不同方式来评估具有多个实例的认证事件。例如,某些类型的事务的卖方(例如公司电子邮件系统)希望缺省地主要基于启发法和其它境况数据进行认证。因此,他们可以对与元数据和与围绕认证事件的境况关联的其它概况相关信息相关的因素施加高权重。通过与在工作时间内用户登录到正确机器相比不从用户要求更多,这种布置可用于减轻正常工作时间内用户的负担。然而,另一个卖方可能对来自特定技术(例如指纹匹配)的认证进行最重加权,这是由于这种技术最适于出于特定卖方的目的进行认证的策略判断。在一种操作模式下,在产生认证请求时由请求者定义这些不同的权重,并且这些不同的权重与认证请求一起发送至信任引擎110。在另一种操作模式下,在初始登记过程内针对认证请求者还可将这些选项设置为偏好并且存储在认证引擎内。一旦认证引擎215针对提供的认证数据生成了认证置信等级,在步骤1640中这个置信等级用于完成认证请求,并且这个信息从认证引擎215转发至事务引擎205,以包含在去往认证请求者的消息内。上述的过程仅仅是示例性的,本领域技术人员将认识到这些步骤不需要按照所示顺序执行,或者仅希望执行某些步骤,或者希望步骤的各种组合。另外,如果境况允许,某些步骤(例如,提供的每个认证实例的可靠性的评估)可以彼此并行地执行。在本发明的另一个方面中,提供了一种适应当由上述过程生成的认证置信等级无法满足要求认证的卖方或其它方的要求的信任等级时的情况的方法。在例如在提供的置信等级与希望的信任等级之间存在差距的境况下,信任引擎110的运营商能够向一方或双方提供提供替代数据或要求以弥合这个信任差距的机会。这里,这个过程将称作“信任仲裁”。信任仲裁可以发生在以上参照图10和图11描述的密码认证的框架内。如那里所示,卖方或其它方将请求与特定事务关联的特定用户的认证。在一种境况下,卖方简单地请求认证(要么肯定,要么否定),并且在从用户接收到适当数据后,信任引擎110将提供这种二元认证。在例如这些的境况下,基于在信任引擎110内设置的偏好,确定为了保护肯定认证所需的置信度。然而,卖方也可以请求特定的信任等级以完成特定事务。这个所需的等级可包括在认证请求内(例如,对这个用户认证达到98%置信度),或者可由信任引擎110基于与事务关联的其它因素确定(即,针对这个事务适当地对这个用户进行认证)。一个这种因素可以是事务的经济值。针对具有较大经济值的事务,可能需要更高的信任度。相似地,针对具有高风险度的事务,可能需要高的信任度。相反,针对低风险或者低值的事务,卖方或其它认证请求者可能要求较低的信任等级。信任仲裁的过程发生于在图10的步骤1050中信任引擎110接收认证数据的步骤和在图10的步骤1055中将认证结果返回到卖方的步骤之间。在这些步骤之间,如图17所示发生导致信任等级的评估和潜在信任仲裁的过程。在执行简单的二元认证的境况下,图17所示的过程缩减为如上面参照图10所述使事务引擎205直接将提供的认证数据与识别的用户的登记数据进行比较,将任何差别标记为否定认证。如图17所示,在步骤1050中接收数据后的第一个步骤是在步骤1710中针对这个特定事务由事务引擎205确定肯定认证所需的信任等级。这个步骤可通过几种不同方法之一执行。当进行认证请求时,认证请求者可以对信任引擎110指定所需的信任等级。认证请求者还可以预先设置偏好,这个偏好存储在可由事务引擎205访问的储存器210或其它存储器内。然后,每当这个认证请求者进行认证请求时,可以读取和使用这个偏好。该偏好还可以与特定用户进行关联,作为使得总是需要特定的信任等级以对那个用户进行认证的安全性措施,该用户偏好存储在可由事务引擎205访问的储存器210或其它存储介质中。所需等级还可以由事务引擎205或认证引擎215基于在认证请求中提供的信息(例如,要认证的事务的值和风险等级)而导出。在一种操作模式下,策略管理模块或当产生认证请求时使用的其它软件用于为事务的认证指定所需的信任度。这可以用于提供当基于在策略管理模块内指定的策略分配所需的信任等级时要遵守的一系列规则。一种有利的操作模式是将这种模块包括在卖方的Web服务器内,以针对由卖方的Web服务器发起的事务适当地确定所需的信任等级。这样,可以根据卖方的策略向来自用户的事务请求分配所需的信任等级,并且这种信息可以与认证请求一起转发至信任引擎110。这个所需的信任等级与卖方希望具有的、个人认证实际上是他将自己识别成的那个人的确定度相关。例如,如果事务是卖方希望合理的确定度的事务(由于货物是转手的),则卖方可以要求85%的信任等级。对于卖方仅对用户进行认证以允许他观看会员内容或在聊天室实践特权的情形,不利风险足够小从而卖方仅要求60%的信任等级。然而,为了参与上万美元的生产合同,卖方可以要求99%或更高的信任等级。这个所需的信任等级表示用户必须对自己进行认证以完成事务的度量。例如如果所需的信任等级是85%,则用户必须向信任引擎110提供足以使信任引擎110以85%置信度说用户是他们说他们是的那个人的认证。这是所需的信任等级与生成肯定认证(达到卖方的满意)或可能的信任仲裁的认证置信等级之间的平衡。如图17所示,在事务引擎205接收到所需的信任等级后,在步骤1720中将所需的信任等级与认证引擎215针对当前认证计算的认证置信等级(参照图16所讨论的)进行比较。在步骤1730中如果认证置信等级高于事务的所需的信任等级,则过程移至步骤1740,在步骤1740中,事务引擎205针对这个事务生成肯定认证。表示此意的消息然后将被插入到认证结果中并且由事务引擎205返回到卖方,如在步骤1055中所示(见图10)。然而,如果在步骤1730中认证置信等级没有满足所需的信任等级,则对于当前认证存在置信度差距,并且在步骤1750中进行信任仲裁。在下文参照图18更加完全地描述信任仲裁。下述的这个过程在信任引擎110的事务引擎205内发生。由于执行信任仲裁不需要认证或其它密码操作(除了事务引擎205与其它部件之间的SSL通信所需的那些以外),所以可以在认证引擎215之外执行该过程。然而,如下所述,认证数据或其它密码或认证事件的任何重新评估将要求事务引擎205向认证引擎215重新提交适当的数据。本领域技术人员将认识到,信任仲裁过程可以代替地构造为部分或全部地在认证引擎215自身内发生。如上所述,信任仲裁是信任引擎110对卖方与用户之间的协商进行调停以尝试适当地保证肯定认证的过程。如在步骤1805所示,事务引擎205首先确定当前情况是否适于信任仲裁。这可以基于认证的境况(例如,这个认证是否已经经过多个循环的仲裁)以及卖方或者用户的偏好进行确定,这将在下文进一步进行讨论。在不可以仲裁的这些境况下,该过程进行到步骤1810,在步骤1810中,事务引擎205产生否定认证,然后将它插入到认证结果,该认证结果在步骤1055中发送至卖方(见图10)。可有利用于防止认证不确定地待决的一个限制是设置从初始认证请求开始的超时时段。这样,在时限内没有得到肯定认证的任何事务被拒绝进一步仲裁并且得到否定认证。本领域技术人员将认识到,这种时限可以根据事务的境况以及用户和卖方的希望而变化。还可以对在提供成功认证时可进行的尝试的数目进行限制。可以通过如图5所示的尝试限制器535对这些限制进行处理。如果在步骤1805中没有禁止仲裁,则事务引擎205然后将与事务方之一或二者进行协商。如在步骤1820中所示,事务引擎205可以向用户发送消息以请求某形式的附加认证从而提高生成的认证置信等级。在最简单的形式中,这可以简单指示认证是不充分的。还可以发送生成一个或多个附加认证实例以提高认证的总置信等级的请求。如果在步骤1825中用户提供一些附加认证实例,则事务引擎205向事务的认证数据添加这些认证实例并且将它发送至认证引擎215,如在步骤1015所示(见图10),并且基于针对这个事务的预先存在的认证实例和新提供的认证实例重新评估该认证。一种附加类型的认证可以是来自信任引擎110的用于例如通过电话呼叫在信任引擎110运营商(或者信任的合作人)与用户之间进行某形式的人对人联系的请求。这个电话呼叫或其它非计算机认证能够用于提供与个人的私人联系以及执行某形式的基于问卷的认证。这还可以给出验证发起电话号码以及当呼入时潜在的用户语音解析的机会。即使不能够提供附加认证数据,与用户的电话号码关联的附加上下文仍可以提高认证上下文的可靠性。基于这个电话呼叫的任何修正的数据或境况被送入信任引擎110以用于对认证请求的考虑。此外,在步骤1820中,信任引擎110可以向用户提供购买保险的机会,从而有效地购买更加确信的认证。信任引擎110的运营商有时可能仅希望使得在认证的置信等级高于某阈值的情况下才开始可用这个选项。实际上,这个用户侧保险是当认证满足信任引擎110对于认证的正常所需信任等级但不满足这个事务的卖方的所需信任等级时信任引擎110对用户进行担保的方式。这样,即使用户仅仅具有生成针对信任引擎110足够的置信度的认证实例,他仍可以成功地认证为卖方要求的高等级。信任引擎110的这个功能使得信任引擎110可以对被认证为满足信任引擎110而非满足卖方的某人进行担保。这与在向文档添加公证人的签名以向以后读取该文档的某人指示签名出现在文档上的人实际是对它进行签名的人时由公证人执行的功能类似。公证人的签名证实用户签名的动作。以相同的方式,信任引擎提供执行事务的人是他们说他们是的人的指示。然而,因为信任引擎110人工推升用户提供的置信等级,所以对于信任引擎110运营商存在更大的风险,因为用户实际上没有满足卖方的所需的信任等级。保险的花费被设计为抵消误肯定认证对于信任引擎110 (其可有效地对用户的认证进行公证)的风险。用户向信任引擎110运营商付费以承担认证为比实际提供的还要高的置信等级的风险。由于这种保险系统允许某人从信任引擎110有效地购买更高的置信等级,所以卖方和用户都会希望防止在某些事务中使用用户侧保险。卖方可能希望将肯定认证限制到它们知道实际认证数据支持它们要求的置信度的情况,因此可能向信任引擎110指示用户侧保险不被允许。类似地,为了保护他的在线身份,用户可能希望防止在他的帐户上使用用户侧保险或者可能希望将它的使用限制到没有保险的认证置信等级高于一定限制的情形。这可用作防止某人偷听口令或盗取智能卡并使用它们假冒认证到低置信等级并且然后购买保险以生成非常高的(假)置信等级的安全措施。在确定是否允许用户侧保险时可以对这些因素进行评估。如果在步骤1840中用户购买了保险,则在步骤1845中基于购买的保险调整认证置信等级,并且在步骤1730中把认证置信等级与所需的信任等级再次进行比较(见图17)。该过程从步骤1730继续,并且可能导致步骤1740中的肯定认证(见图17)或者返回步骤1750中的信任仲裁过程从而进一步进行仲裁(如果允许的话),或者如果进一步仲裁被禁止则导致步骤1810中的否定认证。除了在步骤1820中向用户发送消息以外,在步骤1830中事务引擎205还可以向卖方发送指示未决认证当前低于所需信任等级的消息。该消息还可以提供关于如何前进到卖方的各种选项。这些选项之一是简单地向卖方通知当前认证置信等级是什么以及询问卖方是否希望维持他们的当前未满足的所需信任等级。这是有益的,因为在一些情况下,卖方可以具有用于对事务进行认证的独立手段或者可能已经使用缺省的一组要求,该组要求通常导致初始指定比手边的特定事务实际需要的更高的所需等级。例如,与卖方的所有输入购买订单事务预计满足98%信任等级是标准实践。然而,如果通过电话在卖方与长期顾客之间最近讨论了订单,并且紧接之后该事务得到认证,但是仅仅认证到93%置信等级,则卖方可能希望简单降低这个事务的接受阈值,因为电话呼叫有效地向卖方提供了附加认证。在某些境况下,卖方会愿意降低他们的所需信任等级,但是并不总是降低到当前认证置信等级。例如,以上例子中的卖方可能认为,在订单之前的电话呼叫可能值所需信任度下降4%,然而,这仍大于用户生成的93%的置信度。如果在步骤1835中卖方确实调整了他们的所需的信任等级,则在步骤1730中对由认证生成的认证置信等级与该所需的信任等级进行比较(见图17)。如果置信等级现在超过所需的信任等级,则在步骤1740中在事务引擎205中可产生肯定认证(见图17)。如果没有超过,则在允许的情况下可以如上所述尝试进一步仲裁。除了请求对所需的信任等级进行调整外,事务引擎205还可以向请求认证的卖方提供卖方侧保险。这个保险用于与以上针对用户侧保险描述的用途相同的用途。这里,然而,成本不对应于由信任引擎110在以上认证生成的实际认证置信等级时所承担的风险,保险的成本对应于卖方在认证中接受低信任等级时所承担的风险。不是仅仅降低他们的实际所需的信任等级,卖方可以选择购买保险以保护自己免受与用户认证中的低信任等级关联的附加风险。如上所述,在现有认证已经高于某阈值的条件下,卖方仅仅考虑购买这种保险来覆盖信任差距是有利的。得到这种卖方侧保险,允许卖方有如下选项在对自己无附加成本的情况下直接降低他的信任要求;自己承受误认证的风险(基于所需的低信任等级);或者针对认证置信等级与他的要求之间的信任差距购买保险,其中由信任引擎110运营商承担已经提供的低置信等级的风险。通过购买保险,卖方有效地保持他的高信任等级要求,因为误认证的风险被转移给信任引擎110运营商。如果在步骤1840中卖方购买了保险,则在步骤1730中对认证置信等级与所需的信任等级进行比较(见图17),并且该过程如上所述继续。要注意,用户和卖方均响应来自信任引擎110的消息也是可以的。本领域技术人员将认识到,有多种方式可以处理这些情形。处理多个响应的可能性的一种有利模式是简单地以先来先服务方式处理响应。例如,如果卖方以降低的所需信任等级进行响应并且用户之后还立即购买保险以提升他的认证等级,则首先基于来自卖方的降低的信任要求对认证进行重新评估。如果认证现在是肯定的,则用户的保险购买被忽略。在另一种有利的操作模式下,可能仅针对满足新的降低的卖方的信任要求所需的保险等级向用户收费(如果即使在降低了卖方信任要求的情况下仍然存在信任差距的话)。如果在步骤1850中在信任仲裁过程中在针对认证设置的时限内没有从任何一方接收到响应,则在步骤1805中对仲裁进行重新评估。这有效地再次开始仲裁过程。如果在步骤1805中时限终止或者其它境况防止进一步仲裁,则在步骤1810中由事务引擎205产生否定认证并且在步骤1055中返回到卖方(见图10)。否则,新消息可以发送至用户和卖方,并且该过程可以按期望被重复。要注意,对于某些类型的事务,例如,对不是事务的一部分的文档进行数字签名,并不一定有卖方或其它第三方,因此事务主要在用户与信任引擎110之间。在例如这些的境况下,信任引擎110将具有必须被满足以产生肯定认证的它自身的所需的信任等级。然而,在这些境况下,常常不希望信任引擎110向用户提供保险以使他可以提升他自己签名
的置信度。可以使用在上文中参照信任引擎110描述的各种通信模式,执行上述以及在图16到图18中所示的过程。例如,这些消息可以是基于web的并且使用信任引擎110与实时下载到在用户或卖方系统上运行的浏览器的Java小程序之间的SSL连接进行发送。在另一种操作模式下,便于进行这种仲裁和保险事务的某些专用的应用可以由用户和卖方使用。在另一种操作模式下,安全电子邮件操作可用于对上述的仲裁进行调停,由此实现延迟评估和认证的批处理。本领域技术人员将认识到,不同的通信模式可适用于卖方的认证要求和境况。下面参照图19的说明描述了整合上述本发明的各个方面的样本事务。这个例子示出了由信任引擎110进行调停的用户与卖方之间的整个过程。尽管以上详细描述的各个步骤和部件可用于执行下面的事务,但是所示的过程集中于信任引擎110、用户以及卖方之间的交互。在步骤1900中,当用户在在线观看网页时在卖方的网站上填写订单表格时,事务开始。用户希望将签写有他的数字签名的这个订单表格提交给卖方。为了这样做,在步骤1905中,用户向信任引擎110提交订单表格和他对签名的请求。用户还将提供将如上所述用于对他的身份进行认证的认证数据。在步骤1910中,如上所述由信任引擎110将认证数据与登记数据进行比较,并且如果生成了肯定认证,则用用户的私钥签名的订单表格的哈希值与订单表格自身一起被转发送卖方。在步骤1915中,卖方接收到签名的表格,然后在步骤1920中,卖方将产生发票或与要进行的购买有关的其它合同。在步骤1925中,这个合同以及对签名的请求被发送回用户。在步骤1930中,卖方还向信任引擎110发送针对这个合同事务的认证请求(包括将由双方签名的合同的哈希值)。为了允许由双方对合同进行数字签名,卖方还包括针对自身的认证数据从而使得能够在以后对合同上的卖方的签名进行验证(如果需要的话)。如上所述,信任引擎110然后对由卖方提供的认证数据进行验证以确认卖方的身份,并且如果在步骤1935中该数据生成肯定认证,则当从用户接收到数据时从步骤1955继续。如果卖方的认证数据没有与卖方的登记数据匹配达到期望程度,则将一消息返回给卖方以请求进一步认证。如上所述,为了使得卖方向信任引擎110成功地认证自身,如果需要的话在这里可以执行信任仲裁。当在步骤1940中用户接收到合同时,他检查合同,在步骤1945中如果合同可以接受则产生认证数据以对它进行签名,然后在步骤1950中,向信任引擎110发送合同的哈希值以及他的认证数据。在步骤1955中,信任引擎110验证该认证数据,并且如果认证良好,则如下所述继续处理合同。如以上参照图17和图18所述,可以适当地执行信任仲裁以弥合认证置信等级与事务的所需的认证等级之间存在的任何信任差距。在步骤1960中,信任引擎110用用户的私钥对合同的哈希值进行签名,并且将该签名的哈希值发送至卖方,代表自己对完整消息进行签名,即,包括利用信任引擎110的私钥510加密的完整消息(包括用户的签名)的哈希值。在步骤1965中,这个消息由卖方接收。该消息代表签名的合同(使用用户的私钥加密的合同的哈希值)以及来自信任引擎110的收据(包括使用信任引擎110的私钥加密的签名的合同的消息的哈希值)。在步骤1970中,信任引擎110利用卖方的私钥类似地准备合同的哈希值,并且将由信任引擎110签名的这个合同转发至用户。这样,在步骤1975中,用户还接收由卖方签名的合同的副本以及由信任引擎110签名的传递签名的合同的收据。除了上述以外,本发明的附加方面提供了 一种密码服务提供模块(SPM),该密码服务提供模块(SPM)可由客户机侧应用用作访问上述的由信任引擎110提供的功能的装置。密码SPM提供这种服务的一个有利方式是对第三方应用编程接口(API)与可经由网络或其它远程连接进行访问的信任引擎110之间的通信进行调停。在下文中参照图20描述样本密码SPM。例如,在典型系统上,程序员可使用多个API。每个API提供可由在系统上运行的应用2000进行的一组功能调用。提供适于密码功能、认证功能和其它安全功能的编程接口的API的例子包括由微软在它的Windows操作系统中提供的密码API (CAPI) 2010和由IBM、Intel和开放组的其它成员发起的公共数据安全架构(⑶SA)。在下文的讨论中,CAPI将用作示例性安全API。然而,还可以与CDSA或者本领域已知的其它安全API —起使用所述的密码SPM。当调用密码功能时,用户系统105或卖方系统120使用这个API。包括在这些功能中的可以是与执行各种密码操作(诸如用特定密钥对文档进行加密,对文档进行签名,请求数字证书,验证签名的文档上的签名)关联的请求以及本文所述或本领域技术人员知道的其它密码功能。通常,在CAPI 2010所处于的系统本地执行这些密码功能。这是因为一般调用的功能要求使用本地用户系统105的资源(例如,指纹读取器)或者使用在本地机器上执行的库进行编程的软件功能。通常由以上提及的提供执行密码功能使用的资源的一个或多个服务提供模块(SPM) 2015,2020执行对这些本地资源的访问。这些SPM可以包括执行加密或解密操作的软件库2015或者能够访问专用硬件2025 (例如,生物测定扫描装置)的驱动程序和应用2020。与CAPI 2010提供可由系统105的应用2000使用的功能的方式非常类似,SPM 2015,2020向CAPI提供对与系统上的可用服务关联的低级功能和资源的访问。根据本发明,可以提供一种密码SPM 2030,其能够访问由信任引擎110提供的密码功能并且使得应用2000通过CAPI 2010可获得这些功能。与CAPI 2010仅仅能够访问可通过SPM 2015和2020在本地获得的资源的实施例不同,这里所述的密码SPM 2030将能够向位于远处的可进行网络访问的信任引擎110提交对密码操作的请求以执行希望的操作。例如,如果应用2000需要密码操作,例如对文档进行签名,则应用2000对适当的CAPI 2010功能进行功能调用。CAPI 2010继而将执行这个功能,利用通过SPM 2015和2020以及密码SPM 2030使其可获得的资源。在数字签名功能的情况下,密码SPM 2030将产生将通过通信链路125发送至信任引擎110的适当请求。在密码SPM 2030与信任引擎110之间发生的操作是可以在任何其它系统与信任引擎110之间进行的相同操作。然而,通过CAPI 2010可以使得用户系统105有效地获得这些功能,从而使这些功能看起来在用户系统105自己的本地可获得。然而,与普通的SPM2015和2020不同,这些功能在远程信任引擎110上执行,并且响应于适当请求,结果经由通信链路125中继到密码SPM 2030。这个密码SPM 2030使用户系统105或卖方系统120可以获得以其它方式可能无法获得的大量操作。这些功能包括但不限于文档的加密和解密、数字证书的发放、文档的数字签名、数字签名的验证、以及对本领域技术人员显而易见的其它操作。在一个单独的实施例中,本发明包括对任何数据集执行本发明的数据保护方法的完整系统。这个实施例的计算机系统包括数据分裂模块,该数据分裂模块包括图8所示和本文所述的功能。在本发明的一个实施例中,在本文中有时称作安全数据解析器的数据分裂模块包括包含数据分裂、加密和解密、重构或重装功能的解析器程序或软件套装。这个实施例还可以包括一个数据存储设施或多个数据存储设施。数据分裂模块或安全数据解析器包括跨平台软件模块套装,该跨平台软件模块套装集成在电子基础设施内或者作为要求其数据元素的最大安全性的任何应用的附件。这个解析过程对任何类型的数据集,以及对任何和所有文件类型,或者在数据库中对该数据库中的任何数据行或列或单元进行运算。在一个实施例中,可以以模块分层方式设计本发明的解析过程,并且任何加密过程适用于本发明的过程。本发明的解析和分裂过程的模块层可以包括但不限于1)密码分裂,分散并安全存储在多个位置;2)加密,密码分裂,分散并安全存储在多个位置;3)加密,密码分裂,对每份加密,然后分散并安全存储在多个位置;以及4)加密,密码分裂,用与在第一步骤中使用的加密不同类型的加密对每份进行加密,然后分散并安全存储在多个位置。在一个实施例中,这个过程包括根据产生的随机数或密钥的内容对数据进行分裂,并且对把要保护的数据分裂成两个或更多部分或份的解析或分裂数据(在一个实施例中,优选分裂成四个或更多部分的解析和分裂数据)的加密中使用的密钥执行相同的密码分裂,对所有的部分进行加密,然后根据请求者对隐私和安全的需要,将这些部分分散并存储回数据库中或者将它们重新定位到固定或可移动的任何指定装置。或者,在另一个实施例中,在由分裂模块或安全数据解析器对数据集进行分裂之前可以进行加密。如在这个实施例中所述进行处理的原始数据被加密并打乱并且得到保护。实际上,如果希望的话,加密的元素可以分散到任何地方,包括但不限于单个服务器或数据存储装置、或者多个独立的数据存储设施或装置之间。在一个实施例中,加密密钥管理可以包括在软件套装内,或者在另一个实施例中,可以集成到现有的基础设施或任何其它期望位置。密码分裂(密码术分裂)将数据划分成N份。该划分可以基于任何大小的数据单元,包括一个比特、多个比特、字节、千字节、兆字节或更大单元以及预定或随机产生的数据单元大小的任何模式或组合。基于随机或者预定的一组值,这些单元还可以具有不同的大小。这意味着数据能够被看作是这些单元的序列。按照这种方式,例如通过使用一个或多个预定或随机产生的数据单元大小的模式、序列或组合,数据单元自身的大小可以使数据更加安全。这些单元然后(随机地或者根据一组预定值)被分布到N份中。该分布还可以涉及在各份中搅乱(shuffle)单元的顺序。本领域普通技术人员易于明白,可以根据多种多样的可能选择(包括但不限于固定大小、预定大小、或者预定或随机产生的数据单元大小的一个或多个组合、模式或序列)执行将数据单元分布到多份中。这种密码分裂过程或密码术分裂的一个例子将考虑数据大小为23个字节,数据单元大小选择为I个字节,并且选择的份数为4。每个字节将被分布到这4份之一中。假定随机分布,将获得密钥以建立23个随机数的序列(rl、r2,r3到r23),其中,每个随机数具有与这4份对应的I至4的值。数据的每个单元(在这个例子中,数据的23个独立字节)与对应于4份之一的23个随机数之一关联。通过将数据的第一字节安置到份号rl、将第二字节安置到份r2,将第三字节安置到份r3只至将数据的第23字节安置到份r23,可以将数据的各字节分布到这4份中。本领域普通技术人员易于理解,多种多样的其它可行步骤或者步骤的组合或序列(包括数据单元的大小)可用于本发明的密码术分裂过程,并且以上例子是用于对数据进行密码术分裂的一个过程的非限制性描述。为了重建原始数据,将执行反向操作。在本发明的密码术分裂过程的另一个实施例中,用于密码术分裂过程的选项是在各份中提供充足冗余从而使得仅仅需要这些份的子集就能够将数据重装或恢复成它的原始或可用形式。作为一个非限制性例子,可以按照“4取3”密码术分裂进行密码术分裂,从而使得将数据重装或恢复成它的原始或可用形式仅仅需要这4份中的3份。这还称作“N取M密码术分裂”,其中,N是总份数,M至少比N小I。本领域普通技术人员易于理解,在本发明的密码术分裂过程中建立这种冗余存在许多可能性。在本发明的密码术分裂过程的一个实施例中,数据的每个单元存储在两份(主要份和备份份)中。使用上述的“4取3”密码术分裂过程,可以丢失任何一份,并且由于仅仅需要全部4份中的3份,所以在没有丢失数据单元的情况下这仍足以重装或恢复原始数据。如本文所述,对应于这些份之一产生随机数。基于密钥,该随机数与数据单元关联并且存储在对应份中。在这个实施例中,一个密钥用于产生主要份和备份份随机数。如本文所述,对于本发明的密码术分裂过程,产生与数据单元的数目相等的从O到3的一组随机数(还称作主要份数字)。然后,产生与数据单元的数目相等的从I到3的另一组的随机数(还称作备份份数字)。然后,将数据的每个单元与主要份数字和备份份数字进行关联。或者,可以产生少于数据单元的数目的一组随机数并且重复该随机数组,但是这会降低敏感数据的安全性。主要份数字用于确定数据单元存储在哪个份中。备份份数字与主要份数字进行组合以建立O至3的第三份数字,并且这个数字用于确定数据单元存储在哪个份中。在这个例子中,用于确定第三份数字的式子是(主要份数字+备份份数字)MOD4=第三份数字在上述的主要份数字为O至3且备份份数字为I至3的实施例中,确保了第三份数字与主要份数字不同。这导致数据单元存储在两个不同份中。本领域普通技术人员易于理解,除了本文公开的实施例以外,还有执行冗余密码术分裂和非冗余密码术分裂的许多方式。例如,可以使用不同的算法搅乱每份中的数据单元。例如,当原始数据分裂成多个数据单元时,或者在将数据单元安置到各份中以后,或者份已满以后,可以执行该数据单元搅舌L。 可以对任何大小的 数据单元(包括但不限于一个比特、多个比特、字节、千字节、兆字节或更大)执行本文所述的各种密码术分裂过程和数据搅乱过程以及本发明的密码术分裂和数据搅乱方法的所有其它实施例。执行本文所述的密码术分裂过程的源代码的一个实施例的例子是
权利要求
1.一种用于对从使用第一分裂密钥通过信息分散算法设置的加密数据产生的一组数据份进行重建的方法,该方法包括 至少接收重建所述一组数据份所需的最小数目的数据份;以及在不解密所述最小数目的数据份的情况下从所述最小数目的数据份重建所述一组数据份。
2.根据权利要求1的方法,其中,响应于确定一个或多个所述数据份已被泄露而执行所述重建。
3.根据权利要求1的方法,还包括把至少一个重建的数据份存储在存储网络上。
4.根据权利要求3的方法,其中,存储网络包括私有云、公有云、混合云、可移动存储装置和海量存储装置中的一个。
5.根据权利要求1的方法,其中,重建包括 利用认证密钥对所述最小数目的数据份进行认证; 使用所述分裂密钥从认证后的最小数目的数据份重构所述加密数据; 通过使用所述分裂密钥把所述加密数据分裂而重新产生所述一组数据份。
6.一种用于对从使用第一加密密钥通过信息分散算法设置的加密数据产生的一组数据份重新加密钥的方法,该方法包括 至少接收重建所述一组数据份所需的最小数目的数据份; 把所述最小数目的数据份与第一认证密钥相关联; 在不解密所述最小数目的数据份的情况下从所述最小数目的数据份重建所述一组数据份;以及 通过将重建的一组数据份与第二加密密钥相关联而对重建的一组数据份重新加密钥。
7.根据权利要求6的方法,还包括 检索与所述最小数目的数据份关联的首标; 从检索到的首标提取密钥加密密钥; 利用密钥加密密钥对第二加密密钥进行加密;以及 把加密的第二认证密钥存储在重新加密钥后的数据份的首标内。
8.根据权利要求6的方法,还包括把重新加密钥后的数据份中的至少一个存储在存储网络上。
9.根据权利要求8的方法,其中,存储网络包括私有云、公有云、混合云、可移动存储装置和海量存储装置中的一个。
10.一种用于对从使用第一分裂密钥通过信息分散算法设置的加密数据产生的一组数据份重新加密钥的方法,该方法包括 至少接收重建所述一组数据份所需的最小数目的数据份; 在不解密所述最小数目的数据份的情况下从所述最小数目的数据份重建所述一组数据份;以及 通过将重建的一组数据份与第二分裂密钥相关联而对重建的一组数据份重新加密钥。
11.根据权利要求10的方法,还包括 检索与所述最小数目的数据份关联的首标; 从检索到的首标提取密钥加密密钥;利用密钥加密密钥对第二分裂密钥进行加密;以及 把加密的第二分裂密钥存储在重新加密钥后的数据份的首标内。
12.根据权利要求10的方法,还包括把重新加密钥后的数据份中的至少一个存储在存储网络上。
13.根据权利要求11的方法,其中,存储网络包括私有云、公有云、混合云、可移动存储装置和海量存储装置中的一个。
14.一种用于在存储网络的文件系统上把存根与一组数据份相关联的方法,该方法包括 从通过信息分散算法设置的加密数据产生所述一组数据份; 产生与所产生的数据份关联的一组存根,其中每个存根对应于一个相应的数据份,并且其中每个存根包括与相应数据份关联的信息;以及把该组存根存储在存储网络上的位置。
15.根据权利要求14的方法,其中,所述信息包括相应数据份的名称、相应数据份的创建日期、相应数据份的最后修改时间、指向相应数据份在文件系统内的位置的指针中的一个。
16.根据权利要求14的方法,其中,存储网络包括与私有云、公有云、混合云、可移动存储装置和海量存储装置中的一个关联的一个或多个存储装置。
17.根据权利要求14的方法,还包括 接收观看与产生的数据份关联的信息的命令; 从存储网络上的所述位置检索所述存根; 从所述存根提取所述信息以创建数据份的文件系统;以及 显示数据份的文件系统。
18.根据权利要求14的方法,其中存根被存储在产生的数据份的首标内,并且其中检索包括检索产生的数据份的首标。
19.根据权利要求18的方法,其中,少于所有首标的首标被检索。
20.根据权利要求14的方法,其中存根被存储在存根目录中,并且其中检索包括从存根目录检索存根。
21.根据权利要求14的方法,还包括 接收存储网络中用于存储存根的虚拟目录或物理目录的指示。
22.根据权利要求21的方法,其中,所述指示是从用户接收的。
23.一种用于安全数据处理的加速的协处理器加速装置,包括 存储器,用于存储数据; 耦接到存储器的主处理器;和 耦接到主处理器和存储器的协处理器,被配置为执行专门的安全解析功能,所述安全解析功能包括加密数据、分裂数据和解密数据中的至少一种。
24.根据权利要求23的装置,其中,分裂数据包括信息分散算法(IDA)的使用。
25.根据权利要求23的装置,还包括耦接到协处理器的现场可编程门阵列。
26.根据权利要求25的装置,其中,FPGA执行对解析的数据进行加密或者对加密的数据进行解密中的至少一个。
27.根据权利要求23的装置,其中,协处理器经由PCIe总线耦接到主处理器。
28.根据权利要求23的装置,其中,协处理器经由HT总线耦接到主处理器。
29.根据权利要求23的装置,其中,存储器包括用于主处理器的专门存储器。
30.根据权利要求23的装置,其中,存储器包括用于协处理器的专门存储器。
31.根据权利要求23的装置,其中,协处理器是独立磁盘冗余阵列(RAID)处理单元,其执行一个或多个RAID功能。
32.一种用于使用便携式装置保护数据的方法,该方法包括 至少部分地基于密钥从一组数据产生至少两个数据部分,其中所述至少两个数据部分和所述密钥足以重构该组数据;以及把所述密钥存储在便携式装置上。
33.根据权利要求32的方法,其中,便携式装置是可移动存储装置。
34.根据权利要求33的方法,其中,所述可移动存储装置经由通用串行总线(USB)接口耦接到端用户装置。
35.根据权利要求32的方法,还包括把至少一个产生的数据部分存储在便携式装置上。
36.根据权利要求32的方法,其中,所述密钥是加密密钥、分裂密钥和认证密钥中的一个。
37.根据权利要求32的方法,其中,所述至少两个数据部分是使用信息分散算法(IDA)和与IDA关联的分裂密钥产生的。
38.一种用于使用便携式装置保护数据的方法,该方法包括 至少部分地基于密钥从一组数据产生至少两个数据部分,其中所述至少两个数据部分和所述密钥足以重构该组数据;以及 把至少一个产生的数据部分存储在便携式装置上。
39.根据权利要求38的方法,其中,便携式装置是可移动存储装置。
40.根据权利要求39的方法,其中,所述可移动存储装置经由通用串行总线(USB)接口耦接到端用户装置。
41.根据权利要求38的方法,还包括把所述密钥存储在便携式存储装置上。
42.根据权利要求38的方法,其中,所述密钥是加密密钥、分裂密钥和认证密钥中的一个。
43.根据权利要求38的方法,其中,所述至少两个数据部分是使用信息分散算法(IDA)和与IDA关联的分裂密钥产生的。
44.一种用于保护要分裂并存储在存储网络上的文件的文件名的方法,该方法包括 使用认证算法处理所述文件的文件名以获得认证值;以及 通过在存储网络上的份位置搜索具有与所述文件的认证值匹配的认证值的数据份的文件名,检索与所述文件对应的数据份。
45.根据权利要求44的方法,还包括 使用信息分散算法产生与认证的文件名关联的一个或多个数据份;以及 把产生的数据份存储在存储网络中的一个或多个数据份位置。
46.根据权利要求44的方法,其中,存储网络包括私有云、公有云、混合云、可移动存储装置和海量存储装置中的一个。
47.根据权利要求44的方法,其中,所述认证算法是HMAC-SHA256算法。
48.根据权利要求44的方法,还包括在进行所述处理前把附加信息附于所述文件的文件名末尾。
49.根据权利要求48的方法,其中,所述附加信息包括与数据份位置关联的编号。
50.一种用于保护要分裂并存储在存储网络上的文件的文件名的方法,该方法包括 使用加密算法对所述文件的文件名进行加密; 使用信息分散算法产生与加密的文件名关联的一个或多个数据份; 把产生的数据份存储在存储网络中的一个或多个数据份位置;以及 通过解密产生的数据份之一的文件名,重新产生所述文件的文件名。
51.根据权利要求50的方法,其中,存储网络包括私有云、公有云、混合云、可移动存储装置和海量存储装置中的一个。
52.根据权利要求50的方法,其中,所述加密算法是AES算法。
53.根据权利要求50的方法,还包括在进行所述加密前把附加信息附于所述文件的文件名末尾。
54.根据权利要求53的方法,其中,所述附加信息包括与数据份位置关联的编号。
全文摘要
本发明的系统和方法提供了一种使数据可证地安全和可访问的方案,致力于比特级的数据安全性,从而消除了对多个周边硬件和软件技术的需要。数据安全性直接包括或者交织在比特级的数据中。本发明的系统和方法使得企业兴趣团体能够利用通常的企业基础设施。因为安全性已被交织到数据中,可以在不损害数据安全性和访问控制的情况下使用该通常的基础设施。在一些应用中,在被发送到多个位置(例如私有或公有云)之前,数据被进行认证、加密和解析或者被分裂成多个份。数据在传送到存储位置的同时被隐藏,并且没有正确的访问证明的用户无法访问。
文档编号H04L9/08GK103038750SQ201180024883
公开日2013年4月10日 申请日期2011年3月31日 优先权日2010年3月31日
发明者R·L·奥尔西尼, M·S·奥黑尔 申请人:安全第一公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1