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

文档序号:11138639阅读:300来源:国知局
对移动中数据进行保护的系统和方法与制造工艺

技术领域

本发明一般涉及用于通过将信任分布到多个认证机构中对通信进行保护的系统和方法。可以与在共同拥有的美国专利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年1月7提交的美国专利申请No.12/349897和2009年2月23提交的美国专利申请No.12/391025中描述的其它系统和方法结合地使用本文所述的系统和方法,上述所有的美国专利和专利申请的全部内容通过引用并入本文。



背景技术:

在当今社会中,个人和企业通过计算机系统进行越来越多的活动。这些计算机系统包括专有和非专有的计算机网络,常常存储、存档和发送所有类型的敏感信息。因此,日益需要确保通过这些系统进行存储和发送的数据不会被读取或以其它方式被泄露。

一种方案是使用认证机构的密钥来保护数据。认证机构可以由发放数字证书的受信任的第三方组织或公司运行,所述数字证书诸如为VeriSign、Baltimore、Entrust等。数字证书证明该证书的命名主体对公钥的所有权。这允许他人依靠通过与认证的公钥对应的私钥进行的签名或断言。可以通过数字证书协议(诸如PKCS10)进行对数字证书的请求。响应于该请求,认证机构将以许多不同的协议(诸如PKCS7)发放证书。可以基于发放的证书在装置之间交换消息。

如果认证机构受到危害,那么对于认证机构正在认证公钥和身份之间的联系的每个用户而言,系统的安全性丧失。例如,攻击者可以通过诱导认证机构发放假称代表一实体的证书来危害该认证机构。攻击者将具有与认证机构的证书关联的私钥。攻击者于是能够使用该证书向用户发送经数字签名的消息,并欺骗该用户使之相信该消息来自于信任实体。用户可以对经数字签名的消息进行相应,攻击者会使用私钥对其进行解密。因此,用户对于认证机构的信任会受到危害。



技术实现要素:

基于上述内容,需要提供一种安全代理服务,该安全代理服务包括通过在一组认证机构之中分布信任来保护通信的系统。

因此,本发明提供在一组认证机构之中分布信任的两种方案。这两种方案是同等安全的。在每种方案中,可以将安全数据解析器与任何合适的加密技术整合。应该理解,在一些实施例中,可以通过将安全数据解析器与全传输层安全(Transport Layer Security,“TLS”)协议,与安全套接字层(Secure Sockets Layer,SSL)协议,与SSL和全TLS协议整合,或者在不使用SSL和/或全TLS的情况下实现安全数据解析器,可以实现安全代理服务。另外,应该理解,在一些实施例中,可以结合利用认证机构来确保交换消息的保密性、完整性和真实性的任何合适协议来实现安全代理服务。

因此,本发明的一个方案提供了使用安全数据解析器在装置之间的连接的初始协商期间(例如密钥建立阶段)在一组认证机构之中分布信任的方法和系统。认证机构的唯一性可以在于,每个认证机构发放的证书具有不同的公钥和私钥对。这提供了以下保证:如果某些(但少于定额的)认证机构已被危害,仍能建立连接,并且可以在不破坏通信的保密性或完整性的情况下交换消息。

该方案的一个方面是提供用于计算共享加密密钥的方法和系统。该共享加密密钥的计算可以是装置间的安全通信的密钥建立阶段的一部分。可以产生秘密信息,可以从唯一的认证机构获得公钥。该秘密信息可被分散到任意数量的秘密信息份(share)中。每个秘密信息份可以基于与多个唯一的认证机构中的不同一个关联的证书的公钥进行加密。可选地,每个秘密信息份可以基于密钥包装(keywrap)进行加密。密钥包装可以基于工作组密钥。在一些实施例中,各份可被重新组合,并且可以基于重新组合的份来发送数据。

在一些实施例中,可以产生一组随机数。可以基于该组随机数和原始秘密信息计算第一共享加密密钥。可以基于该组随机数和重新组合的份计算第二共享加密密钥。可以基于第一和第二共享加密密钥发送数据。在一些实施例中,可以比较第一和第二共享加密密钥。可以基于该比较来确定是否发送数据,并且可以基于该确定发送数据。

本发明的另一个方案提供使用安全数据解析器来预处理数据包的方法和系统。预处理的数据然后可被分散到多个份中。可以使用由唯一的认证机构发放的证书在通信信道内建立一组隧道,在该建立期间形成的密钥可用于对每个隧道的数据进行加密,可以在各个隧道上发送数据的各个份。因此,在第二方案中,可以在通信信道自身的结构中在一组认证机构之中分布信任。

该方案的一个方面提供用于保护移动中数据的方法和系统。移动中数据可包括原始数据包。可以建立安全通信信道。可以基于在多个唯一认证机构之中分布的信任在该安全通信信道内建立任意数量的安全通信隧道。在一些实施例中,可以使用由多个唯一的认证机构中的不同一个发放的证书建立各个安全通信隧道。每个原始数据包可以准备基于在一组认证机构之中分布的信任和多因素秘密共享,在安全通信隧道上发送。在一些实施例中,基于多因素秘密共享,每个原始数据包可被分散到多个份中。可选地,该分散可基于N中取M密码术分裂。可以基于与安全通信隧道中的不同一个的建立关联的密钥来加密这些份。在一些实施例中,每个加密的份可以在用于对该份加密的安全通信隧道上发送。

在一些实施例中,每个安全通信隧道可以基于与多个唯一的认证机构中的不同一个关联的证书来建立。在一些实施例中,每个安全通信隧道可以与由多个唯一的认证机构之一发放的证书关联,其中安全通信隧道是在这些认证机构下建立的。例如,在多个唯一的认证机构之一的证书和安全通信隧道之间可以存在一一对应关系。在一些实施例中,这些关联可以是动态的。在一些实施例中,通过重新组合至少定额的份,可以恢复这些份。

在一些实施例中,每个加密的份可以在各自的安全通信隧道上被接收。可以基于与安全通信隧道的建立关联的密钥对每个份进行解密。可以基于例如多因素秘密共享来恢复原始数据包。

在一些实施例中,可以产生认证机构层级。认证机构层级可包括一组根认证机构、一组次要认证机构、或者这两者。该组认证机构可包括产生的认证机构层级中的该组根认证机构、该组次要认证机构、或者这两者。

在一些实施例中,N个安全通信隧道中的每个可以在不同的物理传输介质上建立。在一些实施例中,这些物理传输介质中的至少一个可能发生故障,但是仍可在不损失数据完整性的情况下恢复原始数据包。在一些实施例中,一部分的份被指定在故障的物理传输介质中的至少一个上传输,但是一些物理传输介质是可工作的。在这样的实施例中,可以在至少一个可工作的物理传输介质内建立另外的安全通信隧道。可以在该另外的安全通信隧道上传输指定在至少一个故障的物理传输介质上传输的那部分的份。

在一些实施例中,可以以任何合适的方式组合这两种方案。例如,可以使用第一方案的密钥建立技术建立第二方案中的任意数量的安全通信隧道。

附图说明

在下文中结合附图更加详细描述本发明,这些附图旨在例示而非限制本发明,在附图中:

图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-47、48A和48B是根据本发明的一个实施例的安全代理服务的例示性步骤和特征的处理流程图。

图48C是根据本发明的一个实施例的在通信信道的结构中在一组认证机构之中分布信任的安全代理服务的简化框图。

图49和50是根据本发明的一个实施例的在通信信道的结构中在一组认证机构之中分布信任的安全代理服务的例示性步骤和特征的处理流程图。

具体实施方式

本发明的一个方面是提供一种密码系统,在该密码系统中,一个或多个安全服务器或信任引擎存储密码密钥和用户认证数据。用户通过对信任引擎的网络访问,访问传统密码系统的功能,然而,信任引擎没有发布实际密钥和其它认证数据,因此这些密钥和数据仍是安全的。密钥和认证数据的这种服务器中心存储提供了用户无关的安全性、移植性、可用性和直率性。

因为用户能够确信或信任密码系统来执行用户和文档认证以及其它密码功能,所以多种多样的功能可以包括在该系统内。例如,通过例如对协议参与者进行认证,代表或针对参与者对该协议进行数字签名,并且存储由每个参与者数字签名的协议的记录,信任引擎提供商可以确保不会出现协议抵赖。此外,该密码系统可以监视协议并且例如基于价格、用户、卖方、地理位置、使用地点等来确定应用不同程度的认证。

为了便于完全理解本发明,具体实施方式的其余部分参照附图描述本发明,其中,相同元素始终由相同标号进行表示。

图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 AND SYSTEM AND METHOD OF USING THE IMAGE DEVICE”的美国专利申请No.09/558634、1999年11月5日提交的题目为“RELIEF OBJECT SENSOR ADAPTOR”的美国专利申请No.09/435011和2000年1月5日提交的题目为“PLANAR OPTICAL IMAGE SENSOR AND SYSTEM FOR GENERATING AN ELECTRONIC IMAGE OF A RELIEF OBJECT FOR FINGERPINT READING”的美国专利申请No.09/477943,上述所有的美国专利申请由当前受让人拥有并且通过引用并入本文。

此外,用户系统105可以通过传统的服务提供商(例如,拨号、数字用户线(DSL)、线缆调制解调器、光纤连接等)连接到通信链路125。根据另一个实施例,用户系统105通过网络连接性(例如,局域网或广域网)连接通信链路125。根据一个实施例,操作系统包括TCP/IP栈,该TCP/IP栈处理在通信链路125上传递的所有的出入消息通信。

尽管参照上述实施例公开了用户系统105,但是本发明不限于此。相反,熟练技术人员从这里的公开可以识别用户系统105的大量的替代实施例,包括能够发送或从另一个计算机系统接收信息的几乎任何计算装置。例如,用户系统105可以包括但不限于能够与通信链路125进行交互的计算机工作站、交互式电视、交互亭、个人移动计算装置(例如,数字助理、移动电话、膝上型电脑等)、个人联网设备(诸如家庭路由器、网络存储装置(“NAS”)、个人热点等)、或者无线通信装置、智能卡、嵌入式计算装置等。在这些替代系统中,操作系统很可能不同并且针对特定装置进行改动。然而,根据一个实施例,操作系统有利地继续提供与通信链路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)进行识别。通常,电子页面是组织文本、图形图像、音频、视频等的呈现的文档。

尽管在针对其优选实施例公开了通信链路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、URI、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的对应公钥进行了加密。

图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。然而,本领域普通技术人员容易理解,储存器系统可以仅仅具有一个数据存储设施。根据本发明的一个实施例,数据存储设施D1到D4中的每个可以有利地包括参照图4的储存器210公开的一些或全部部件。与储存器210类似,数据存储设施D1到D4优选通过传统SSL与事务引擎205、认证引擎215和密码引擎220进行通信。通信链路例如传送XML文档。来自事务引擎205的通信可有利地包括对数据的请求,其中,该请求被有利地广播至每个数据存储设施D1到D4的IP地址。另一方面,事务引擎205可以基于大量的标准(例如,响应时间、服务器负载、维护时间表等),向特定数据存储设施广播请求。

响应于来自事务引擎205的对数据的请求,储存器系统700有利地将存储的数据转发至认证引擎215和密码引擎220。相应的数据组装模块接收转发的数据并且将该数据组装成可用格式。另一方面,从认证引擎215和密码引擎220到数据存储设施D1到D4的通信可以包括要存储的敏感数据的传输。例如,根据一个实施例,认证引擎215和密码引擎220可有利地利用它们各自的数据分裂模块,将敏感数据划分成多个不可译解的部分,然后将敏感数据的一个或多个不可译解的部分发送至特定数据存储设施。

根据一个实施例,每个数据存储设施D1到D4包括分立且独立的存储系统(例如,目录服务器)。根据本发明的另一个实施例,储存器系统700包括多个在地理上分离的独立数据存储系统。通过将敏感数据分布到不同且独立的存储设施D1到D4(存储设施D1到D4中的一些或全部可有利地在地理上分离),储存器系统700提供冗余连同附加的安全措施。例如,根据一个实施例,为了对敏感数据进行译解和重新组装,仅需要来自多个数据存储设施D1到D4中的两个的数据。因此,四个数据存储设施D1到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的储存器D1到D4之一。根据另一个实施例,上述配对中的每个被随机分布至储存器D1到D4之一。例如,在第一数据分裂过程800期间,配对AC可以例如通过D2的IP地址的随机选择而发送至储存器D2。然后,在第二数据分裂过程800期间,配对AC可以例如通过D4的IP地址的随机选择而发送至储存器D4。此外,这些配对可以全部存储在一个储存器上,并且可以存储在所述储存器的分离的位置上。

基于上面的描述,有利的是,数据分裂过程800将敏感数据的各部分安置在四个数据存储设施D1到D4的每个中,从而使得没有单个数据存储设施D1到D4包括用于重建原始敏感数据S的充足的加密数据。如上所述,通过将数据随机化成个体不可用的加密部分,提高了安全性并且即使数据存储设施D1到D4之一受到危害仍可以保持数据的信任。

尽管参照其优选实施例公开了数据分裂过程800,但是本发明不限于此。相反,熟练技术人员将从这里的公开认识到数据分裂过程800的大量替代。例如,数据分裂过程可有利地将数据分裂成两个数,例如,随机数A和数B,并且通过两个数据存储设施随机分布A和B。此外,通过产生附加的随机数,数据分裂过程800可有利地在大量的数据存储设施之间分裂数据。数据可被分裂成任何希望的、选择的、预定的或者随机指定的大小单元,包括但不限于一个比特、多个比特、字节、千字节、兆字节或更大、或者大小的任何组合或序列。此外,改变从分裂过程得到的数据单元的大小,可以使数据更加难于恢复成可用形式,由此提高了敏感数据的安全性。本领域普通技术人员易于理解,分裂数据单元大小可以是多种多样的数据单元大小或大小的模式或者大小的组合。例如,数据单元大小可被选择或预定为都具有相同大小、不同大小的固定集合、大小的组合,或者随机产生大小。类似地,根据固定或预定的数据单元大小、数据单元大小的模式或组合、或者随机产生的每份的数据单元大小,数据单元可被分布成一份或多份。

如上所述,为了重建敏感数据S,需要对数据部分进行去随机化和重新组织。该过程可以有利地分别在认证引擎215和密码引擎220的数据组装模块525和620中执行。数据组装模块(例如,数据组装模块525)从数据存储设施D1到D4接收数据部分,并且将数据重新组装成可用形式。例如,根据数据分裂模块520采用图8的数据分裂过程800的一个实施例,数据组装模块525使用来自数据存储设施D1到D4中的至少两个的数据部分重建敏感数据S。例如,对AC、AD、BC和BD的配对被分布为任何两个提供A和B或者C和D之一。要注意,S=A XOR B或者S=C XOR D指示当数据组装模块接收到A和B或者C和D之一时,数据组装模块525可有利地重新组装敏感数据S。因此,当例如响应于信任引擎110的组装请求,数据组装模块525从数据存储设施D1到D4中的至少前两个接收到数据部分时,数据组装部分525可以组装敏感数据S。

基于以上数据分裂和组装过程,可用格式的敏感数据S仅仅存在于信任引擎110的有限区域内。例如,当敏感数据S包括登记认证数据时,可用的非随机化的登记认证数据仅在认证引擎215中可获得。同样地,当敏感数据S包括私有密码密钥数据时,可用的非随机化的私有密码密钥数据仅在密码引擎220中可获得。

尽管参照其优选实施例公开了数据分裂和组装过程,但是本发明不限于此。相反,熟练技术人员将从这里的公开认识到用于分裂和重新组装敏感数据S的大量替代。例如,公钥加密可用于进一步保护数据存储设施D1到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将随机数的每个部分转发至数据存储设施D1到D4之一。如上所述,有利的是,认证引擎215还可以对哪些部分传送到哪个储存器进行随机化。

在登记过程900中,用户常常还希望发放数字证书使得他或她可以从密码系统100之外的其它人接收加密的文档。如上所述,认证机构115通常根据几个传统标准中的一个或多个发放数字证书。通常,数字证书包括每人皆知的用户或系统的公钥。

不管在登记时或者在另一个时间用户是否请求了数字证书,该请求都通过信任引擎110传送到认证引擎215。根据一个实施例,该请求包括例如具有用户的正确名称的XML文档。根据步骤935,认证引擎215将该请求传送给密码引擎220以指示密码引擎220产生密码密钥或密钥对。

在被请求时,在步骤935,密码引擎220产生至少一个密码密钥。根据一个实施例,密码处理模块625产生密钥对,其中,一个密钥用作私钥,一个密钥用作公钥。密码引擎220存储私钥,并且根据一个实施例存储公钥的副本。在步骤945中,密码引擎220向事务引擎205发送对数字证书的请求。根据一个实施例,该请求有利地包括例如嵌入在XML文档内的诸如PKCS10的标准化请求。对数字证书的请求可有利地对应于一个或多个认证机构以及这些认证机构要求的一个或多个标准格式。

在步骤950中,事务引擎205将这个请求转发至认证机构115,在步骤955中,认证机构115返回数字证书。有利的是,返回数字证书可以是例如PKCS7的标准化格式或者是一个或多个认证机构115的专有格式。在步骤960中,数字证书由事务引擎205接收,副本被转发至用户并且副本由信任引擎110存储。信任引擎110存储证书的副本从而使得信任引擎110将不需要依赖于认证机构115的可用性。例如,当用户希望发送数字证书或者第三方请求用户的数字证书时,对数字证书的请求通常被发送至认证机构115。然而,如果认证机构115正在进行维护或者成为故障或安全危害的牺牲品,则无法获得数字证书。

在发放密码密钥后的任何时间,密码引擎220可有利地利用上述的数据分裂过程800从而使得密码密钥被分裂成独立不可译解的随机数。与认证数据类似,在步骤965中,密码引擎220将随机数传送给数据存储设施D1到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或Base 64)的升级或替换。证书类型还可以包括与一个或多个第三方密码应用或接口、一个或多个通信协议或者一个或多个证书标准或协议的兼容性。熟练技术人员将从这里的公开认识到,在证书类型中可存在其它差别,并且可以如本文公开地执行从或到这些差别的翻译。

一旦密码处理模块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接收该通信,建立审计索引的记录,并且产生对要从数据存储设施D1到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发送数字签名请求。根据本发明的一个实施例,该请求包括消息或合同的哈希值。然而,熟练技术人员将从这里的公开认识到,密码引擎220实际上可以对任何类型的数据(包括但不限于视频、音频、生物测定、图像或文本)进行加密以形成期望的数字签名。返回到步骤1105,数字签名请求优选包括通过传统的SSL技术传送的XML文档。

在步骤1110中,认证引擎215向数据存储设施D1到D4的每个发送请求,从而使得数据存储设施D1到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中,认证引擎从与签名方对应的数据存储设施D1到D4请求密码密钥。在步骤1115中,数据存储设施D1到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向数据存储设施D1到D4的每个转发请求用户的密码密钥数据的请求。在步骤1215中,每个数据存储设施D1到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可以发放短期证书,其中,私有密码密钥发布给用户达到预定时长。例如,当前证书标准包括可以设置为在预定时间量后过期的有效性字段。因此,信任引擎110可以向用户发布私钥,其中,该私钥例如在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%×97%×90%×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%×25%×28%的累积不可靠性,即0.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和开放组的其它成员发起的公共数据安全架构(CDSA)。在下文的讨论中,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自己的本地可获得。然而,与普通的SPM 2015和2020不同,这些功能在远程信任引擎110上执行,并且响应于适当请求,结果经由通信链路125中继到密码SPM 2030。

这个密码SPM 2030使用户系统105或卖方系统120可以获得以其它方式可能无法获得的大量操作。这些功能包括但不限于:文档的加密和解密、数字证书的发放、文档的数字签名、数字签名的验证、以及对本领域技术人员显而易见的其它操作。

在一个单独的实施例中,本发明包括对任何数据集执行本发明的数据保护方法的完整系统。这个实施例的计算机系统包括数据分裂模块,该数据分裂模块包括图8所示和本文所述的功能。在本发明的一个实施例中,在本文中有时称作安全数据解析器的数据分裂模块包括包含数据分裂、加密和解密、重构或重装功能的解析器程序或软件套装。这个实施例还可以包括一个数据存储设施或多个数据存储设施。数据分裂模块或安全数据解析器包括跨平台软件模块套装,该跨平台软件模块套装集成在电子基础设施内或者作为要求其数据元素的最大安全性的任何应用的附件。这个解析过程对任何类型的数据集,以及对任何和所有文件类型,或者在数据库中对该数据库中的任何数据行或列或单元进行运算。

在一个实施例中,可以以模块分层方式设计本发明的解析过程,并且任何加密过程适用于本发明的过程。本发明的解析和分裂过程的模块层可以包括但不限于:1)密码分裂,分散并安全存储在多个位置;2)加密,密码分裂,分散并安全存储在多个位置;3)加密,密码分裂,对每份加密,然后分散并安全存储在多个位置;以及4)加密,密码分裂,用与在第一步骤中使用的加密不同类型的加密对每份进行加密,然后分散并安全存储在多个位置。

在一个实施例中,这个过程包括根据产生的随机数或密钥的内容对数据进行分裂,并且对把要保护的数据分裂成两个或更多部分或份的解析或分裂数据(在一个实施例中,优选分裂成四个或更多部分的解析和分裂数据)的加密中使用的密钥执行相同的密码分裂,对所有的部分进行加密,然后根据请求者对隐私和安全的需要,将这些部分分散并存储回数据库中或者将它们重新定位到固定或可移动的任何指定装置。或者,在另一个实施例中,在由分裂模块或安全数据解析器对数据集进行分裂之前可以进行加密。如在这个实施例中所述进行处理的原始数据被加密并打乱并且得到保护。实际上,如果希望的话,加密的元素可以分散到任何地方,包括但不限于单个服务器或数据存储装置、或者多个独立的数据存储设施或装置之间。在一个实施例中,加密密钥管理可以包括在软件套装内,或者在另一个实施例中,可以集成到现有的基础设施或任何其它期望位置。

密码分裂(密码术分裂)将数据划分成N份。该划分可以基于任何大小的数据单元,包括一个比特、多个比特、字节、千字节、兆字节或更大单元以及预定或随机产生的数据单元大小的任何模式或组合。基于随机或者预定的一组值,这些单元还可以具有不同的大小。这意味着数据能够被看作是这些单元的序列。按照这种方式,例如通过使用一个或多个预定或随机产生的数据单元大小的模式、序列或组合,数据单元自身的大小可以使数据更加安全。这些单元然后(随机地或者根据一组预定值)被分布到N份中。该分布还可以涉及在各份中搅乱(shuffle)单元的顺序。本领域普通技术人员易于明白,可以根据多种多样的可能选择(包括但不限于固定大小、预定大小、或者预定或随机产生的数据单元大小的一个或多个组合、模式或序列)执行将数据单元分布到多份中。

在该密码术分裂分裂过程的一些实施例中,数据的大小可以是任何合适数量的字节,大小诸如为一个、两个、三个、五个、二十个、五十个、一百个、多于一百个、或N个字节。这种密码分裂过程或密码术分裂的一个特别例子将考虑数据大小为23个字节,数据单元大小选择为1个字节,并且选择的份数为4。每个字节将被分布到这4份之一中。假定随机分布,将获得密钥以建立23个随机数的序列(r1、r2、r3到r23),其中,每个随机数具有与这4份对应的1至4的值。数据的每个单元(在这个例子中,数据的23个独立字节)与对应于4份之一的23个随机数之一关联。通过将数据的第一字节安置到份号r1、将第二字节安置到份r2,将第三字节安置到份r3只至将数据的第23字节安置到份r23,可以将数据的各字节分布到这4份中。本领域普通技术人员易于理解,多种多样的其它可行步骤或者步骤的组合或序列(包括数据单元的大小)可用于本发明的密码术分裂过程,并且以上例子是用于对数据进行密码术分裂的一个过程的非限制性描述。为了重建原始数据,将执行反向操作。

在本发明的密码术分裂过程的另一个实施例中,用于密码术分裂过程的选项是在各份中提供充足冗余从而使得仅仅需要这些份的子集就能够将数据重装或恢复成它的原始或可用形式。作为一个非限制性例子,可以按照“4取3”密码术分裂进行密码术分裂,从而使得将数据重装或恢复成它的原始或可用形式仅仅需要这4份中的3份。这还称作“N取M密码术分裂”,其中,N是总份数,M至少比N小1。本领域普通技术人员易于理解,在本发明的密码术分裂过程中建立这种冗余存在许多可能性。

在本发明的密码术分裂过程的一个实施例中,数据的每个单元存储在两份(主要份和备份份)中。使用上述的“4取3”密码术分裂过程,可以丢失任何一份,并且由于仅仅需要全部4份中的3份,所以在没有丢失数据单元的情况下这仍足以重装或恢复原始数据。如本文所述,对应于这些份之一产生随机数。基于密钥,该随机数与数据单元关联并且存储在对应份中。在这个实施例中,一个密钥用于产生主要份和备份份随机数。如本文所述,对于本发明的密码术分裂过程,产生与数据单元的数目相等的从0到3的一组随机数(还称作主要份数字)。然后,产生与数据单元的数目相等的从1到3的另一组的随机数(还称作备份份数字)。然后,将数据的每个单元与主要份数字和备份份数字进行关联。或者,可以产生少于数据单元的数目的一组随机数并且重复该随机数组,但是这会降低敏感数据的安全性。主要份数字用于确定数据单元存储在哪个份中。备份份数字与主要份数字进行组合以建立0至3的第三份数字,并且这个数字用于确定数据单元存储在哪个份中。在这个例子中,用于确定第三份数字的式子是:

(主要份数字+备份份数字)MOD 4=第三份数字

在上述的主要份数字为0至3且备份份数字为1至3的实施例中,确保了第三份数字与主要份数字不同。这导致数据单元存储在两个不同份中。本领域普通技术人员易于理解,除了本文公开的实施例以外,还有执行冗余密码术分裂和非冗余密码术分裂的许多方式。例如,可以使用不同的算法搅乱每份中的数据单元。例如,当原始数据分裂成多个数据单元时,或者在将数据单元安置到各份中以后,或者份已满以后,可以执行该数据单元搅乱。

可以对任何大小的数据单元(包括但不限于一个比特、多个比特、字节、千字节、兆字节或更大)执行本文所述的各种密码术分裂过程和数据搅乱过程以及本发明的密码术分裂和数据搅乱方法的所有其它实施例。

执行本文所述的密码术分裂过程的源代码的一个实施例的例子是:

DATA[1:24]-具有要分裂的数据的字节数组

SHARES[0:3;1:24]-2维数组,每行表示各份之一

RANDOM[1:24]-0..3的范围内的数组随机数

S1=1;

S2=1;

S3=1;

S4=1;

执行本文所述的密码术分裂RAID过程的源代码的一个实施例的例子是:

产生两组数字,PrimaryShare是0到3,BackupShare是1到3。然后,按照与上述的密码术分裂相同的过程,将每个数据单元放入share[primaryshare[1]]以及share[(primaryshare[1]+backupshare[1])mod 4]中。这个方法可调整至任何大小N,其中,恢复数据仅仅需要N-1份。

加密的数据元素的获取、重组、重装或重构可以利用任何数目的认证技术,包括但不限于生物测定,例如,指纹识别、面部扫描、手扫描、虹膜扫描、视网膜扫描、耳扫描、血管模式识别或DNA分析。根据需要,本发明的数据分裂和/或解析器模块可以集成到多种多样的基础产品或应用中。

现有技术中已知的传统加密技术依赖于用于对数据进行加密的一个或多个密钥并且使得在无密钥的情况下不可用。然而,数据仍然是一个整体并且完整,并且易受攻击。在一个实施例中,通过对加密的文件执行密码解析并分裂成两个或更多个部分或份(在另一个实施例中,优选为4个或更多份),对每个数据份增加另一层加密,然后将这些份存储在不同物理和/或逻辑位置,本发明的安全数据解析器解决了这个问题。当通过使用可移动装置(例如,数据存储装置)或者通过在另一方的控制下对份进行安置从系统中物理地去除一个或多个数据份时,有效去除了对被保护数据的危害的任何可能性。

在图21中示出并在下文中描述本发明的安全数据解析器的一个实施例的例子以及如何利用它的例子。然而,本领域普通技术人员易于理解,除了下面的非限制性例子以外,还可以以多种多样的方式利用本发明的安全数据解析器。作为一种部署选项,在一个实施例中,可以通过外部会话密钥管理或者会话密钥的安全内部存储,实现安全数据解析器。当实现时,将产生解析器主密钥,它将用于保护应用以及加密目的。还应该注意,通过将解析器主密钥加入到得到的保护数据中,可以实现由工作组、企业或扩展受众内的个人共享被保护数据的灵活性。

如图21所示,本发明的这个实施例示出了由安全数据解析器对数据执行存储会话主密钥与解析的数据的过程的步骤:

1.产生会话主密钥并且使用RS1流密码对数据进行加密。

2.根据会话主密钥的模式将得到的加密的数据分离成四份或部分的解析数据。

3.在本发明的这个实施例中,会话主密钥将与保护数据份一起存储在数据储存器内。根据解析器主密钥的模式对会话主密钥进行分离并且将密钥数据附于加密的解析数据。

4.得到的四个数据份将包含加密的原始数据的部分以及会话主密钥的部分。针对这四个数据份的每一个产生流密码密钥。

5.对每份进行加密,然后将加密密钥存储在与加密的数据部分或份不同的位置:份1获得密钥4,份2获得密钥1,份3获得密钥2,份4获得密钥3。

为了恢复原始数据格式时,颠倒这些步骤。

本领域普通技术人员易于理解,根据需要,本文所述的方法的某些步骤可以以不同顺序执行或者重复多次。本领域技术人员还易于理解,可以以彼此不同的方式对这些数据部分进行处理。例如,可以仅仅对解析数据的一个部分执行多个解析步骤。可以通过任何希望的方式对解析数据的每个部分进行独特的保护,只要数据可以被重装置、重构、重形成、解密或恢复到它的原始或其它可用形式即可。

如图22所示和本文所述,本发明的另一个实施例包括由安全数据解析器对数据执行的将会话主密钥数据存储在一个或多个单独的密钥管理表中的过程的步骤:

1.产生会话主密钥并且使用RS1流密码对数据进行加密。

2.根据会话主密钥的模式将得到的加密的数据分离成四份或部分的解析数据。

3.在本发明的该方法的这个实施例中,会话主密钥将存储在数据储存器中的单独的密钥管理表内。为这个事务产生唯一事务ID。将事务ID和会话主密钥存储在单独的密钥管理表中。根据解析器主密钥的模式将事务ID进行分离并且将该数据附于加密的解析数据或分离的数据。

4.得到的四个数据份将包含加密的原始数据的部分和事务ID的部分。

5.针对这四个数据份的每一个产生流密码密钥。

6.对每份进行加密,然后将加密密钥存储在与加密的数据部分或份不同的位置:份1获得密钥4,份2获得密钥1,份3获得密钥2,份4获得密钥3。

为了恢复原始数据格式,需要颠倒这些步骤。

本领域普通技术人员易于理解,根据需要,本文所述的方法的某些步骤可以以不同顺序执行或者重复多次。本领域技术人员还易于理解,可以以彼此不同的方式对这些数据部分进行处理。例如,可以仅仅对解析数据的一个部分执行多个分离或解析步骤。可以通过任何希望的方式对解析数据的各个部分进行独特保护,只要数据可以被重装、重构、重形成、解密或恢复到它的原始或其它可用形式即可。

如图23所示,本发明的这个实施例示出了由安全数据解析器对数据执行的存储会话主密钥与解析数据的过程的步骤:

1.访问与认证的用户关联的解析器主密钥。

2.产生唯一会话主密钥。

3.从解析器主密钥与会话主密钥的异或函数导出中间密钥。

4.使用现有或新的加密算法以中间密钥为密钥对数据进行可选加密。

5.根据中间密钥的模式将得到的可选加密的数据分离成四份或部分的解析数据。

6.在该方法的这个实施例中,会话主密钥将与被保护数据份一起存储在数据储存器内。根据解析器主密钥的模式对会话主密钥进行分离并且将密钥数据附于可选加密的解析数据份。

7.得到的多个数据份将包含可选加密的原始数据的部分和会话主密钥的部分。

8.可选地,为四个数据份的每一个产生加密密钥。

9.可选地,用现有或新的加密算法对每个份进行加密,然后将加密密钥存储在与加密的数据部分或份不同的位置:例如,份1获得密钥4,份2获得密钥1,份3获得密钥2,份4获得密钥3。

为了恢复原始数据格式时,需要颠倒这些步骤。

本领域普通技术人员易于理解,根据需要,本文所述的方法的某些步骤可以以不同顺序执行或者重复多次。本领域技术人员还易于理解,可以以彼此不同方式对这些数据部分进行处理。例如,可以仅仅对解析数据的一个部分执行多个解析步骤。可以以任何希望的方式对解析数据的每个部分进行独特的保护,只要数据可以被重装、重构、重形成、解密或恢复到它的原始或其它可用形式即可。

如图24所示和文本所述,本发明的另一个实施例包括由安全数据解析器对数据执行的将会话主密钥数据存储在一个或多个单独的密钥管理表中的过程的步骤:

1.访问与认证的用户关联的解析器主密钥。

2.产生唯一会话主密钥。

3.从解析器主密钥与会话主密钥的异或函数导出中间密钥。

4.使用现有或新的加密算法以中间密钥为密钥对数据进行可选加密。

5.根据中间密钥的模式将得到的可选加密的数据分离成四份或部分的解析数据。

6.在本发明的该方法的这个实施例中,会话主密钥将存储在数据储存器内的单独的密钥管理表中。为这个事务产生唯一事务ID。将事务ID和会话主密钥存储在单独的密钥管理表中或者将会话主密钥和事务ID传回调用程序以用于外部管理。根据解析器主密钥的模式对事务ID进行分离并且将数据附于可选加密的解析数据或分离的数据。

7.得到的四个数据份将包含可选加密的原始数据的部分和事务ID的部分。

8.可选地,为这四个数据份的每个产生加密密钥。

9.可选地,对每份进行加密,然后将加密密钥存储在与加密的数据部分或份不同的位置。例如,份1获得密钥4,份2获得密钥1,份3获得密钥2,份4获得密钥3。

为了恢复原始数据格式,需要颠倒这些步骤。

本领域普通技术人员易于理解,根据需要,本文所述的方法的某些步骤可以以不同顺序执行或者重复多次。本领域技术人员还易于理解,可以以彼此不同方式对这些数据部分进行处理。例如,可以仅仅对解析数据的一个部分执行多个分离或解析步骤。可以以任何希望的方式对解析数据的每个部分进行独特的保护,只要数据可以被重装、重构、重形成、解密或恢复到它的原始或其它可用形式即可。

本领域技术人员易于理解,多种多样的加密方法适用于本发明的方法。一次一密乱码本(One Time Pad)算法常常被认为是最安全加密方法之一,并且适用于本发明的方法。使用一次一密乱码本算法要求产生与要保护的数据一样长的密钥。在诸如由于要保护的数据集的大小而导致产生和管理非常长的密钥的情况的某些境况下,不太希望使用这种方法。在一次一密乱码本(OTP)算法中,使用简单的异或函数XOR。对于相同长度的两个二进制流x和y,x XOR y是指x和y的逐比特异或。

在比特级,产生:

0 XOR 0=0

0 XOR 1=1

1 XOR 0=1

1 XOR 1=0

在本文中针对要分裂的n字节秘密s(或数据集),描述这个过程的例子。该过程将产生n字节随机值a,然后设置:

b=a XOR s。

要注意,可以通过下式导出“s”:

s=a XOR b。

值a和b称作份或部分并且安置在分立的储存器内。一旦秘密s分被裂成两个或更多份,以安全方式将它丢弃。

本发明的安全数据解析器可以利用这个函数,执行结合多个不同秘密密钥值K1、K2、K3、Kn、K5的多个XOR函数。在运算开始时,要保护的数据被传递给第一加密运算,安全数据=数据XOR秘密密钥5:

S=D XOR K5

为了将得到的加密数据安全地存储在例如四个份S1、S2、S3、Sn中,根据K5的值将数据解析并分裂成“n”个段或份。这个运算产生原始加密的数据的“n”个伪随机份。然后,可以用剩余的秘密密钥值对每个份执行接下来的XOR函数,例如:安全数据段1=加密的数据份1XOR秘密密钥1:

SD1=S1 XOR K1

SD2=S2 XOR K2

SD3=S3 XOR K3

SDn=Sn XOR Kn

在一个实施例中,可能不希望任何一个储存器包含对其所持有的信息进行解密的足够信息,从而对份进行解密所需的密钥被存储在不同的数据储存器中:

储存器1:SD1,Kn

储存器2:SD2,K1

储存器3:SD3,K2

储存器n:SDn,K3

此外,获取原始会话加密密钥K5所需的信息可以附于每个份。因此,在本文所述的密钥管理例子中,通过根据依赖于安装的解析器主密钥(TID1、TID2、TID3、TIDn)的内容而分裂成“n”份的事务ID来参考原始会话主密钥:

储存器1:SD1,Kn,TID1

储存器2:SD2,K1,TID2

储存器3:SD3,K2,TID3

储存器n:SDn,K3,TIDn

在本文所述的结合会话密钥例子中,根据依赖于安装的解析器主密钥(SK1、SK2、SK3、SKn)的内容,会话主密钥分裂成“n”份:

储存器1:SD1,Kn,SK1

储存器2:SD2,K1,SK2

储存器3:SD3,K2,SK3

储存器n:SDn,K3,SKn

根据这个例子,除非获得了所有四份,否则不能够对数据进行重装。即使捕获了所有四份,在无法访问会话主密钥和解析器主密钥的情况下也不可能重装或恢复原始信息。

这个例子描述了本发明的该方法的一个实施例,并且在另一个实施例中还描述了用于将份安置到储存器中从而能够对所有储存器中的份进行组合以形成秘密认证材料的算法。所需的计算非常简单和快速。然而,对于一次一密乱码本(OTP)算法,由于密钥大小与要存储的数据的大小相同,所以可能会出现例如要保护大的数据集的、不太希望使用这种算法的境况。因此,将需要存储并发送原始数据量的大约两倍,这在某些境况下是不希望的。

流密码RS1

流密码RS1分裂技术与本文所述的OTP分裂技术非常类似。替代n字节随机值,产生n'=min(n,16)字节随机值并且将其用作RS1流密码算法的密钥。RS1流密码算法的优点在于,从小得多的种子数产生伪随机密钥。RS1流密码加密的执行速度还被认为是本领域公知的三重DES加密的速度的近10倍,而不会危害安全性。RS1流密码算法在本领域是公知的,并且可用于产生用于XOR函数中的密钥。RS1流密码算法可与其它可买到的流密码算法(例如,RSA Security Inc的RC4TM流密码算法)互操作,并且适用于本发明的方法。

使用以上的密钥符号,K1到K5现在是n'字节随机值并且我们设置:

SD1=S1 XOR E(K1)

SD2=S2 XOR E(K2)

SD3=S3 XOR E(K3)

SDn=Sn XOR E(Kn)

其中,E(K1)到E(Kn)是以K1到Kn为密钥的RS1流密码算法的输出的前n'个字节。如本文所述,将这些份现在安置到数据储存器内。

在这个流密码RS1算法中,所需的必要计算几乎与OTP算法一样简单和快速。使用RS1流密码的这个例子的好处在于,对于每份,系统平均仅需要存储并发送比要保护的原始数据的大小多大约16字节。当原始数据的大小大于16字节时,由于RS1算法简单更短,所以RS1算法要比OTP算法更高效。本领域普通技术人员易于理解,多种多样的加密方法或算法适用于本发明,包括但不限于RS1、OTP、RC4TM、三重DES和AES。

与传统的加密方法相比,本发明的数据安全性方法和计算机系统提供了显著优点。一个优点是从将数据份移至可能位于不同的逻辑、物理或地理位置的一个或多个数据储存器或存储装置上的不同位置获得的安全性。例如,当对数据份进行物理分裂并且在不同人员的控制下时,危害数据的可能性大幅减小。

由本发明的方法和系统提供的另一个优点是用于对数据进行保护以提供保持敏感数据的安全性的综合过程的本发明的方法的步骤的组合。该数据利用安全密钥进行加密并且根据该安全密钥分裂成一份或多份(在一个实施例中,4份)。安全密钥利用参考指针被安全地存储,该参考指针根据安全密钥按四份保护。然后单独地对各数据份进行加密,并且将密钥与不同的加密的份安全地存储在一起。当进行组合时,根据本文公开的方法对数据进行保护的整个过程变成数据安全性的综合包。

根据本发明的方法进行保护的数据易于取回和恢复、重构、重装、解密或以其它方式返回到它的原始或其它适合形式以供使用。为了恢复原始数据,可利用下面的项:

1.数据集的所有份或部分。

2.用于保护数据的方法的处理流程的知识,以及对该处理流程进行再现的能力。

3.对会话主密钥的访问权。

4.对解析器主密钥的访问权。

因此,希望设计一种安全安装,其中,以上元素中的至少一个可以与系统的其余组件物理分离(例如,在不同系统管理员的控制下)。

通过使用解析器主密钥可以加强针对无良应用调用数据保护方法应用的保护。在本发明的这个实施例中,在采取任何动作之前,可以要求在安全数据解析器与应用之间进行互相认证握手。

系统的安全性要求不存在用于重建原始数据的“后门”方法。针对可能出现数据恢复问题的安装,可以对安全数据解析器进行增强以提供四个份和会话主密钥储存器的镜像。例如RAID(用于在几个盘上分散信息的廉价盘的冗余阵列)的硬件选项和例如复制的软件选项也能够帮助进行数据恢复计划。

密钥管理

在本发明的一个实施例中,数据保护方法使用三个密钥组用于进行加密操作。基于安装,每个密钥组可具有各自的密钥存储、取回、安全性和恢复选项。可使用的密钥包括但不限于:

解析器主密钥

这个密钥是与安全数据解析器的安装关联的个体密钥。它安装在已经部署了安全数据解析器的服务器上。有多种适于保护这个密钥的选项,包括但不限于智能卡、单独的硬件密钥库、标准密钥库、定制密钥库或者例如位于受保护的数据库表内。

会话主密钥

每次当对数据进行保护时可以产生会话主密钥。会话主密钥用于在解析和分裂操作之前对数据进行加密。它还可以并入作为对加密的数据进行解析的手段(如果会话主密钥没有集成到解析数据内)。可以通过各种方式(包括但不限于标准密钥库、定制密钥库、独立数据库表)或者例如在加密的份内对会话主密钥进行保护。

份加密密钥

针对建立的数据集的每个份或部分,可产生单独的份加密密钥以进一步对份进行加密。份加密密钥可以存储在与已加密的份不同的份内。

本领域普通技术人员易于理解,本发明的数据保护方法和计算机系统可广泛地应用于在任何设置或环境下的任何类型的数据。除了在互联网上或者在顾客与卖方之间执行的商业应用外,本发明的数据保护方法和计算机系统可高度应用于非商业或私有设置或环境。可以使用本文所述的方法和系统对希望针对任何未授权用户保持安全的任何数据集进行保护。例如,有利的是,通过利用本发明的方法和系统对数据进行保护,对公司或组织内的特定数据库的访问可以仅仅限于选择的用户。另一个例子是文档的产生、修改或访问,其中,希望限制访问或者防止未授权或意外访问或者在选择的个人、计算机或工作站之外的公开。本发明的数据保护的方法和系统可应用于任何非商业或商业环境或设置以进行任何设置的方式的这些和其它例子包括但不限于任何组织、政府机构或公司。

在本发明的另一个实施例中,数据保护方法使用三个密钥组进行加密操作。基于安装,每个密钥组可以具有单独的密钥库、取回、安全性和恢复选项。可使用的密钥包括但不限于:

1.解析器主密钥

这个密钥是与安全数据解析器的安装关联的独立密钥。它安装在已经部署了安全数据解析器的服务器上。存在各种适于保护这个密钥的选项,包括但不限于智能卡、单独硬件密钥库、标准密钥库、定制密钥库或者例如位于受保护的数据库表内。

2.会话主密钥

每次当对数据进行保护时可以产生会话主密钥。会话主密钥与解析器主密钥结合使用以导出中间密钥。可以以多种方式(包括但不限于标准密钥库、定制密钥库、独立数据库表)或者例如在加密的份内对会话主密钥进行保护。

3.中间密钥

每次当对数据进行保护时可以产生中间密钥。中间密钥用于在解析和分裂操作之前对数据进行加密。它还可以并入作为对加密的数据进行解析的手段。

4.份加密密钥

针对建立的数据集的每个份或部分,可产生单独的份加密密钥以进一步对份进行加密。份加密密钥可以存储在与进行加密的份不同的份中。

本领域普通技术人员易于理解,本发明的数据保护方法和计算机系统可广泛地应用于在任何设置或环境下的任何类型的数据。除了在互联网上或者在顾客与卖方之间执行的商业应用外,本发明的数据保护方法和计算机系统可高度应用于非商业或私有设置或环境。可以使用本文所述的方法和系统对希望针对未授权用户保持安全的任何数据集进行保护。例如,有利的是,通过利用本发明的方法和系统对数据进行保护,对公司或组织内的特定数据库的访问可以仅仅限于选择的用户。另一个例子是文档的产生、修改或访问,其中,希望限制访问或者防止未授权或意外访问或者在选择的个人、计算机或工作站之外的公开。本发明的数据保护的方法和系统可应用于任何非商业或商业环境或设置以进行任何设置的方式的这些合其它例子包括但不限于任何组织、政府机构或公司。

工作组、项目、个人PC/膝上型电脑或跨平台数据安全性

本发明的数据保护方法和计算机系统还用于由工作组、项目、个人PC/膝上型电脑和例如用于企业、办公室、政府机构或建立、处理或存储敏感数据的任何设置的任何其它平台,对数据进行保护。本发明提供已知由诸如美国政府的组织所寻求的用于在整个政府组织上或者在州或联邦级政府之间实施的对数据进行保护的方法和计算机系统。

本发明的数据保护方法和计算机系统提供不仅对普通文件进行解析和分裂还对任何类型的数据字段、集合和/或表进行解析和分裂的能力。此外,所有形式的数据(包括但不限于文本、视频、图像、生物测定和语音数据)能够在这个过程之下得到保护。本发明的保护数据的方法的可调整性、速度和数据吞吐量仅限于用户可以支配的硬件。

在本发明的一个实施例中,如下所述在工作组环境中利用数据保护方法。在一个实施例中,如图23所示和如下文所述,本发明的工作组级数据保护方法使用信任引擎的私钥管理功能来存储一组用户共享安全数据所需的关联私钥(解析器组主密钥)和用户/组关系。本发明的方法具有根据如何部署解析器主密钥为企业、工作组或个体用户保护数据的能力。

在一个实施例中,可以提供附加密钥管理和用户/组管理程序,从而用单点的支配和密钥管理实现宽范围工作组执行方式。密钥产生、管理和撤销由单个维护程序处理,随着用户数目的增加,这些都变得尤其重要。在另一个实施例中,还可以跨一个或几个不同的系统管理员设置密钥管理,这不允许任何一个人或组根据需要控制数据。这允许通过由组织定义的角色、责任、成员资格、权利等获得被保护数据的管理,并且对被保护数据的访问能够仅限于被许可或要求仅仅访问它们工作的部分的那些人,而诸如经理或执行官的其它人可以访问所有被保护数据。这个实施例使得能够在公司或组织内的不同组之间共享被保护数据,同时仅仅允许某些选择的个人(例如,具有授权和预定的角色和责任的那些人)观察整个数据。此外,本发明的方法和系统的这个实施例还允许例如在不同公司、或公司的不同部门或分支机构、或任何政府或组织等的任何不同组织部门、团体、机构、办公室等(其中要求一些共享但并非任一方被许可访问所有数据)之间共享数据。针对本发明的这种方法和系统的需要和利用的特别明显的例子是允许例如在政府区域、机构和办公室之间以及在大公司或任何其它组织的不同分支机构、部门或办公室之间进行共享但保持安全性。

如下是本发明的方法在较小范围进行应用的例子。解析器主密钥用作安全数据解析器的对于组织的串行化或打标记。当解析器主密钥的使用范围从整个企业缩小至较小工作组时,本文所述的数据保护方法用于在用户组内共享文件。

在图25所示和下文所述的例子中,定义了六个用户以及他们在组织内的头衔或角色。边条表示用户根据他们的角色而所属于的五个可能的组。箭头表示用户在一个或多个组内的成员资格。

当构造用于这个例子的安全数据解析器时,系统管理员通过维护程序从操作系统访问用户和组信息。这个维护程序基于用户在组中的成员资格产生并向用户分配解析器组主密钥。

在这个例子中,在高级职员组中有三个成员。对于这个组,动作如下:

1.访问高级职员组的解析器组主密钥(在不可获得的情况下,产生密钥);

2.产生将CEO与高级职员组进行关联的数字证书;

3.产生将CFO与高级职员组进行关联的数字证书;

4.产生将主管市场的副总裁与高级职员组进行关联的数字证书。

针对每个组以及每个组内的每个成员将执行相同的一组动作。当维护程序完成时,解析器组主密钥变成组的每个成员的共享证明。当通过维护程序从组中去除用户时可以自动完成分配的数字证书的撤销而不会影响该组的剩余成员。

一旦定义了共享证明,解析和分裂过程仍相同。当要对文件、文档或数据元素进行保护时,向用户提示当保护数据时要使用的目标组。得到的被保护数据仅仅可由目标组的其它成员访问。本发明的方法和系统的这个功能可以与任何其它计算机系统或软件平台一起使用,或者例如可以集成到现有的应用程序或者为文件安全性而独立使用。

本领域普通技术人员易于理解,加密算法的任何一个或者组合适用于本发明的方法和系统。例如,在一个实施例中,加密步骤可以被重复以生成多层加密方案。此外,不同的加密算法或者加密算法的组合可用于重复加密步骤从而使得不同的加密算法被应用于多层加密方案的不同层。这样,加密方案自身可以变成用于保护敏感数据免遭未授权使用或访问的本发明的方法的组成部分。

安全数据解析器可包括作为内部部件、外部部件或者这两者的错误检查部件。例如,在一个适当的方法中,当使用根据本发明的安全数据解析器建立数据的部分时,为了确保一个部分内数据的完整性,在这个部分内以预设间隔获取哈希值并且将它附于所述间隔的末端。该哈希值是数据的可预测且可再现的数值表示。如果数据内的任何比特变化,则哈希值将不同。扫描模块(作为安全数据解析器外部的独立部件或者作为内部部件)然后可以对由安全数据解析器产生的数据的部分进行扫描。将每个数据部分(或者根据某间隔或根据随机或伪随机采样而少于所有的数据部分)与所附的一个或多个哈希值进行比较并且可采取动作。这个动作可以包括:匹配和不匹配的值的报告、对不匹配的值的警告、或者调用某外部或内部程序以触发数据的恢复。例如,可以通过调用恢复模块基于根据本发明的不需要所有部分就可以产生原始数据的概念来执行数据的恢复。

可以使用附于所有数据部分或这些数据部分的子集中的任何地方的任何合适的完整性信息,执行任何其它合适的完整性检查。完整性信息可以包括能够用于确定数据部分的完整性的任何合适信息。完整性信息的例子可以包括:基于任何合适参数(例如基于各个数据部分)计算的哈希值、数字签名信息、消息认证码(MAC)信息、任何其它合适信息、或者它们的任何组合。

本发明的安全数据解析器可用于任何合适应用中。即,本文所述的安全数据解析器在不同领域的计算和技术中具有不同的应用。在下文中讨论几个这种领域。应该明白,本质上这些仅仅是例示并且任何其它合适应用可以利用安全数据解析器。还应该明白,所述的例子仅仅是例示性实施例,可以以任何合适方式对其进行修改以满足任何合适期望。例如,解析和分裂可以基于任何合适单元(例如,比特、字节、千字节、兆字节、它们的任何组合或者任何其它合适单元)。

本发明的安全数据解析器可用于实现安全物理令牌,由此,为了访问存储在另一个存储区内的附加数据,可能需要存储在物理令牌内的数据。在一个合适方案中,物理令牌(例如,紧凑USB闪存驱动器、软盘、光盘、智能卡、或者任何其它合适的物理令牌)可用于存储根据本发明的解析数据的至少两个部分中的一个。为了访问原始数据,需要对USB闪存驱动器进行访问。因此,保持解析数据的一个部分的个人计算机在能够访问原始数据之前将需要附接具有解析数据的另一部分的USB闪存驱动器。图26示出了这个应用。存储区2500包括解析数据的一部分2502。为了访问原始数据,需要使用任何合适通信接口2508(例如,USB、串口、并口、蓝牙、IR、IEEE 1394、以太网或者任何其它合适的通信接口)把具有解析数据的一部分2506的物理令牌2504连接到存储区2500。这在例如计算机上的敏感数据被独自留下并且遭受未授权访问尝试的情形下是有用的。通过去除物理令牌(例如,USB闪存驱动器),无法对敏感数据进行访问。应该明白,可以使用用于利用物理令牌的任何其它合适方法。

本发明的安全数据解析器可用于实现安全认证系统,由此,使用安全数据解析器对用户登记数据(例如,口令、私有加密密钥、指纹模板、生物测定数据或任何其它合适的用户登记数据)进行解析和分裂。可以对用户登记数据进行解析和分裂,由此,一个或多个部分存储在智能卡、政府公共访问卡、任何合适的物理存储装置(例如,磁盘或光盘、USB密钥驱动器等)上或者任何其它合适装置上。解析的用户登记数据的一个或多个其它部分可以存储在执行认证的系统内。这对认证过程提供了附加等级的安全性(例如,除了从生物测定源获得的生物测定认证信息以外,还必须经由适当的解析和分裂的数据部分获得用户登记数据)。

本发明的安全数据解析器可以集成到任何合适的现有系统中,从而可以在每个系统的各自环境内提供对它的功能的使用。图27示出了例示性系统2600的框图,系统2600可以包括用于实现任何合适应用的软件、硬件或二者。系统2600可以是安全数据解析器2602可以被作为集成部件而进行翻新的现有系统。或者,例如可以从任何合适系统2600的最早设计阶段,将安全数据解析器2602集成到该系统2600内。安全数据解析器2602可以集成在系统2600的任何合适等级中。例如,安全数据解析器2602可以在充分后端等级集成到系统2600中,从而使得安全数据解析器2602的存在对于系统2600的端用户可以是实质上透明的。根据本发明,安全数据解析器2602可用于在一个或多个存储装置2604之间对数据进行解析和分裂。在下文中讨论在内部集成了安全数据解析器的系统的一些例示性例子。

本发明的安全数据解析器可以集成到操作系统内核(例如,Linux、Unix、或者任何其它合适的商业或专用操作系统)。该集成可用于在装置等级保护数据,由此,例如,通常将存储在一个或多个装置内的数据被集成到操作系统内的安全数据解析器分离成一定数目的部分并且存储在所述一个或多个装置之间。当尝试访问原始数据时,同样集成到操作系统内的适当软件可以按照对于端用户透明的方式将解析的数据部分重组成原始数据。

本发明的安全数据解析器可以集成到存储系统的卷管理器或者任何其它合适部件,以跨任何或所有支持的平台保护本地和联网的数据存储。例如,通过集成安全数据解析器,存储系统可利用由安全数据解析器提供的冗余(即,用于实现不需要数据的所有的分离部分就可以重构原始数据的特征)以防止数据损失。不管是否使用冗余,安全数据解析器还使得写入存储装置的所有数据可以成为根据本发明的解析而产生的多个部分的形式。当尝试访问原始数据时,同样集成到卷管理器或存储系统内的其它合适部件的适当软件可以按照对于端用户透明的方式将解析的数据部分重组成原始数据。

在一个合适方案中,本发明的安全数据解析器可以集成到RAID控制器(作为硬件或者作为软件)。这使得可以将数据安全存储到多个驱动器上,同时在驱动器故障的情况下保持容错性。

例如为了保护敏感表信息,本发明的安全数据解析器可以集成到数据库。例如,在一个合适方案中,可以根据本发明对与数据库表的特定单元(例如,个体单元、一个或多个特定列、一个或多个特定行、它们的任何组合、或者整个数据库表)关联的数据进行解析和分离(例如,其中,不同的部分存储在位于一个或多个位置处的一个或多个存储装置上或者单个存储装置上)。可以通过传统的认证方法(例如,用户名和口令)来授权为了观看原始数据而重组这些部分的访问。

本发明的安全数据解析器可以集成到包括移动中数据(data in motion)(即,数据从一个位置到另一个位置的转移)的任何合适系统内。这些系统例如包括电子邮件、流式数据广播和无线(例如,WiFi)通信。关于电子邮件,在一个合适方案中,安全数据解析器可用于对外发消息(即,包含文本、二进制数据或二者(例如,附于电子邮件消息的文件))进行解析并且沿着不同路径发送解析数据的不同部分,由此建立多个数据流。如果这些数据流中的任何一个受到危害,则原始消息仍然安全,因为根据本发明,为了产生原始数据,该系统要求组合超过一个的部分。在另一个合适方案中,数据的不同部分可以沿着一个路径顺序地传送从而使得如果获得了一个部分,则这不足以产生原始数据。根据本发明,这些不同部分到达期望收件人的位置并且可以被组合以产生原始数据。

图28和图29是这种电子邮件系统的例示性框图。图28示出了发件人系统2700,它可以包括任何合适硬件,例如,计算机终端、个人计算机、手持装置(例如,PDA、黑莓)、蜂窝电话、计算机网络、任何其它合适硬件、或者它们的任何组合。发件人系统2700用于产生和/或存储消息2704,消息2704例如可以是电子邮件消息、二进制数据文件(例如,图形、语音、视频等)或二者。根据本发明由安全数据解析器2702对消息2704进行解析和分裂。得到的数据部分可以经由一个或多个分立的通信路径2706通过网络2708(例如,互联网、内联网、LAN、WiFi、蓝牙、任何其它合适有线或无线通信手段、或者它们的任何组合)传送至收件人系统2710。可以在时间上并行地或者另选地根据不同数据部分的通信之间的任何合适的时间延迟,传送这些数据部分。收件人系统2710可以是关于发件人系统2700如上所述的任何合适硬件。根据本发明,沿着通信路径2706运送的单独的数据部分在收件人系统2710处被重组以产生原始消息或数据。

图29示出了发件人系统2800,它可以包括任何合适硬件,例如,计算机终端、个人计算机、手持装置(例如,PDA)、蜂窝电话、计算机网络、任何其它合适硬件、或者它们的任何组合。发件人系统2800用于产生和/或存储消息2804,消息2804例如可以是电子邮件消息、二进制数据文件(例如,图形、语音、视频等等)或二者。根据本发明由安全数据解析器2802对消息2804进行解析和分裂。得到的数据部分可以经由单个通信路径2806通过网络2808(例如,互联网、内联网、LAN、WiFi、蓝牙、任何其它合适的有线或无线通信手段、或者它们的任何组合)传送至收件人系统2810。这些数据部分可以经由通信路径2806相对于彼此串行传送。收件人系统2810可以是在上文关于发件人系统2800描述的任何合适硬件。根据本发明,沿着通信路径2806运送的各个数据部分在收件人系统2810处被重组以产生原始消息或数据。

应该明白,图28和图29的布置仅仅是例示性的。可以使用任何其它合适布置。例如,在另一个合适方案中,图28和29的系统的特征可以进行组合,从而使用图28的多路径方案,并且其中,与在图29中通信路径2806一样,一个或多个通信路径2706用于运送超过一个的数据部分。

安全数据解析器可以集成在移动中数据系统的任何合适等级。例如,在电子邮件系统的情况下,安全数据解析器可以集成在用户接口等级(例如,集成到Outlook中),在这种情况下,当使用电子邮件时,用户可以对安全数据解析器特征的使用进行控制。或者,可以在后端部件(例如在交换服务器)中实现安全数据解析器,在这种情况下,根据本发明,不需要任何用户干涉,可以自动对消息进行解析、分裂并且沿着不同路径进行传送。

类似地,在数据(例如,音频、视频)的流式广播的情况下,输出数据可以被解析和分离成多个流,每个流包含解析数据的一部分。根据本发明,这多个流可以沿着一个或多个路径发送并且在收件人的位置进行重组。这种方案的好处之一是,避免了与对数据进行传统加密然后通过单个通信通道发送加密的数据相关联的相对较大的开销。本发明的安全数据解析器允许在多个并行流中发送移动中数据,从而提高了速度和效率。

应该明白,为了通过任何传输介质(例如包括有线、无线或物理)的任何类型的移动中数据的保护和容错,可以集成安全数据解析器。例如,IP语音(VoIP)应用可以利用本发明的安全数据解析器。可以使用本发明的安全数据解析器来保护往来于任何合适个人数字助理(PDA)装置(例如,黑莓和智能电话)的无线或有线数据传输。对等和基于集线器的无线网络的使用无线802.11协议的通信、卫星通信、点对点无线通信、互联网客户机/服务器通信或者任何其它合适通信可以包括根据本发明的安全数据解析器的移动中数据能力。计算机外设装置(例如,打印机、扫描仪、监视器、键盘、网络路由器、生物测定认证装置(例如,指纹扫描仪)、或者任何其它合适外设装置)之间、计算机与计算机外设装置之间、计算机外设装置与任何其它合适装置之间的数据通信或者它们的任何组合可以利用本发明的移动中数据特征。

本发明的移动中数据特征还可以应用于例如使用独立路线、媒介物、方法的安全份的物理传输、任何其它合适的物理传输或者它们的任何组合。例如,数据的物理传输可以发生于数字/磁带、软盘、光盘、物理令牌、USB驱动器、可移动硬盘、具有闪存的消费电子装置(例如苹果IPOD或其它MP3播放器)、闪存、用于传输数据的任何其它合适介质、或者它们的任何组合。

本发明的安全数据解析器向安全性提供了灾难恢复的能力。根据本发明,为了获取原始数据,不需要由安全数据解析器产生的所有部分的分离数据。也就是说,在存储的m个部分之中,n可以是这m个部分之中获取原始数据所需的最小数,其中,n<=m。例如,如果四个部分的每个存储在与其它三个部分不同的物理位置中,那么如果在这个例子中n=2,则这些位置中的两个可被危害从而数据被破坏或者不可访问,并且从其它两个位置中的部分仍可以获取原始数据。对于n或m,可以使用任何合适值。

此外,本发明的m取n特征可用于建立“双人规则”,由此为了避免委托单个个人或者任何其它实体对可能是敏感数据的事务进行全面访问,两个或更多不同实体(每个实体具有由本发明的安全数据解析器解析的分离数据的一部分)需要同意将它们的各部分放到一起以获取原始数据。

本发明的安全数据解析器可用于向一组实体提供组范围密钥,该组范围密钥使组成员可以访问由该特定组授权访问的特定信息。组密钥可以是例如为了获取寻找的信息而需要与在中心存储的另一个部分进行组合的、由根据本发明的安全数据解析器产生的数据部分之一。例如,这个特征允许在组内实现安全协作。例如,它可以应用于专有网络、虚拟专用网、内联网、或者任何其它合适网络。

安全数据解析器的这种用途的特定应用例如包括联合信息共享,在联合信息共享中,例如,对多国友好政府力量给予基于对每个对应国家授权的安全等级通过单个网络或双重网络(即,与涉及当前使用的相对较多人工处理的许多网络相比)传送在操作和其它方面敏感的数据的能力。这种能力还可应用于公司或其它组织,其中,需要由一个或多个特定个人(组织内或组织外)知道的信息可以经由单个网络传送,而不需要担心未授权个人观看该信息。

另一个特定应用包括用于政府系统的多级安全性层级。也就是说,本发明的安全数据解析器可以提供使用单个网络以不同等级的机密信息(例如,不机密、机密、秘密、绝密)操作政府系统的能力。如果需要,可使用更多网络(例如,对于绝密使用单独网络),但是本发明允许比对每个等级的机密使用独立网络的当前布置实质更少的布置。

应该明白,可以使用本发明的安全数据解析器的上述的应用的任何组合。例如,组密钥应用能够与移动中数据安全性应用一起使用(即,由此,通过网络传送的数据仅能够由对应组的成员访问,并且在这种情况下,当数据在移动时,根据本发明它在多个路径中进行分裂(或者以顺序得部分进行发送))。

本发明的安全数据解析器可以集成到任何中间件应用中,从而使得应用能够将数据安全存储到不同数据库产品或不同装置,而不需要对应用或数据库进行改动。中间件是使得两个独立和已经存在的程序可以进行通信的任何产品的一般术语。例如,在一个合适方案中,集成了安全数据解析器的中间件可用于使得针对特定数据库编写的程序与其它数据库进行通信,而不用定制编码。

本发明的安全数据解析器可以实现为具有例如本文所述的任何合适能力的任何组合。在本发明的一些实施例中,例如,安全数据解析器可以实现为仅仅具有某些能力,但是可以通过使用直接或间接与安全数据解析器对接的外部软件、硬件或二者而获得其它能力。

图30例如示出了作为安全数据解析器3000的安全数据解析器的例示性实施方式。安全数据解析器3000可以实现为具有非常少的内置能力。如所示,根据本发明,安全数据解析器3000可以包括使用模块3002将数据解析和分裂成多个部分(这里也称作份)的内置能力。安全数据解析器3000还可以包括使用模块3004执行冗余从而能够实现例如上述得m取n特征(即,不需要使用解析和分裂的所有的数据份就可以重建原始数据)的内置能力。根据本发明,安全数据解析器3000还可以包括使用模块3006将数据份安置到缓冲器内(这些数据份从这些缓冲器发送以传送至远程位置、进行存储等)的份分布能力。应该明白,任何其它合适能力可以内置到安全数据解析器3000中。

组装数据缓冲器3008可以是用于存储将由安全数据解析器3000进行解析和分裂的原始数据(尽管不一定是它的原始形式)的任何合适存储器。在分裂操作中,组装数据缓冲器3008向安全数据解析器3008提供输入。在恢复操作中,组装数据缓冲器3008可用于存储安全数据解析器3000的输出。

分裂份缓冲器3010可以是可用于存储从原始数据的解析和分裂获得的多个数据份的一个或多个存储器模块。在分裂操作中,分裂份缓冲器3010保持安全数据解析器的输出。在恢复操作中,分裂份缓冲器保持对安全数据解析器3000的输入。

应该明白,对于安全数据分裂器3000,可以内置能力的任何其它合适布置。可以内置任何附加特征,并且可以去除所例示的任何特征,使得所例示的任何特征更加健壮、较不健壮,或者以任何合适方式对所例示的任何特征进行修改。缓冲器3008和3010同样仅仅是例示性的并且可以以任何合适方法进行修改、去除或者添加。

以软件、硬件或二者实现的任何合适模块可以由安全数据解析器3000调用或者对安全数据解析器3000进行调用。如果需要,即使是内置到安全数据解析器3000中的能力也可以由一个或多个外部模块进行替换。如所示,一些外部模块包括随机数产生器3012、密码反馈密钥产生器3014、哈希算法3016、任何一个或多个类型的加密3018和密钥管理3020。应该明白,这些仅仅是例示性外部模块。除了所示这些外部模块以外或者替代所示这些外部模块,还可以使用任何其它合适模块。

密码反馈密钥产生器3014可以在安全数据解析器3000的外部,为每个安全数据解析器操作产生唯一密钥或者随机数(例如使用随机数产生器3012),该唯一密钥或者随机数用作用于将原始会话密钥大小(例如,128、256、512或1024比特的值)扩展至等于要解析和分裂的数据的长度的值的操作的种子值。任何合适算法可用于密码反馈密钥产生,例如包括AES密码反馈密钥产生算法。

为了便于将安全数据解析器3000及其外部模块(即,安全数据解析器层3026)集成到应用层3024(例如,电子邮件应用、数据库应用等)中,可以使用可利用例如API函数调用的包装层。可以使用便于将安全数据解析器层3026集成到应用层3024中的任何其它合适布置。

图31例示性示出了当在应用层3024中发出写命令(例如,写入存储装置)、插入命令(例如,插入数据库字段中)或者发送命令(例如,经由网络)时可以如何使用图30的布置。在步骤3100中,识别要保护的数据并且调用安全数据解析器。该调用传递到包装器层3022,在步骤3102中,包装器层3022将在步骤3100中识别的输入数据流式传输到组装数据缓冲器3008。另外,在步骤3102中,任何合适的份信息、文件名、任何其它合适信息、或者它们的任何组合可以被存储(例如,作为包装器层3022中的信息3106)。根据本发明,安全数据处理器3000然后对它从组装数据缓冲器3008作为输入获取的数据进行解析和分裂。它将数据份输出到分裂份缓冲器3010。在步骤3104中,包装器层3022从存储的信息3106获得任何合适份信息(即,在步骤3102中由包装器层3022存储的份信息)和份位置(例如,来自于一个或多个配置文件)。包装器层3022然后适当地对输出份(从分裂份缓冲器3010获得)执行写操作(例如,写入一个或多个存储装置,在网络上传送,等等)。

图32例示性示出了当执行读(例如,从存储装置)、选择(例如,从数据库字段)、或者接收(例如,从网络)时可以如何使用图30的布置。在步骤3200中,识别要恢复的数据并且从应用层3024调用安全数据解析器3000。在步骤3202中,从包装器层3022获得任何合适份信息并且确定份位置。包装器层3022将在步骤3200中识别的数据的部分加载到分裂份缓冲器3010中。然后,安全数据解析器3000根据本发明对这些份进行处理(例如,如果仅可获得四份中的三份,则可以使用安全数据解析器3000的冗余能力,从而仅使用这三份就能够恢复原始数据)。然后,恢复的数据存储在组装数据缓冲器3008中。在步骤3204中,应用层3022将存储在组装数据缓冲器3008中的数据转换成它的原始数据格式(如果需要)并且将原始格式的原始数据提供给应用层3024。

应该明白,图31所示的原始数据的解析和分裂以及图32所示的将数据部分恢复为原始数据仅仅是例示性的。除了所示的这些以外或者替代所示的这些,还可以使用任何其它合适的过程、部件或二者。

图33是根据本发明的一个实施例的用于将原始数据解析和分裂成两个或更多数据部分的例示性处理流程的框图。如所示,期望进行解析和分裂的原始数据是明文3306(即,单词“SUMMIT”用作例子)。应该明白,可以根据本发明对任何其它类型的数据进行解析和分裂。产生会话密钥3300。如果会话密钥3300的长度与原始数据3306的长度不兼容,则可以产生密码反馈会话密钥3304。

在一个合适方案中,在进行解析、分裂或在二者之前,可以对原始数据3306进行加密。例如,如图33所示,可将原始数据3306与任何合适值(例如,与密码反馈会话密钥3304或者与任何其它合适值)进行异或。应该明白,除了所示的XOR技术以外或者替代所示的XOR技术,还可以使用任何其它合适的加密技术。还应该明白,尽管针对逐字节的操作示出图33,但是该操作可以以比特级或任何其它合适等级进行。还应该明白,如果希望,不需要对原始数据3306进行任何加密。

然后,对得到的加密的数据(或者原始数据(在没有进行加密的情况下))进行哈希处理以确定如何在输出桶(例如,在所示例子中是四个)之间将加密(或者原始)数据分裂。在所示例子中,基于字节进行哈希处理并且哈希处理是密码反馈会话密钥3304的函数。应该明白,这仅仅是例示性的。如果希望,可以在比特级执行哈希处理。哈希处理可以是除密码反馈会话密钥3304以外的任何其它合适值的函数。在另一个合适方案中,不需要使用哈希处理。而是可以采用用于对数据进行分裂的任何其它合适技术。

图34是根据本发明的一个实施例的用于从原始数据3306的两个或更多的解析和分裂部分恢复原始数据3306的例示性处理流程的框图。该处理包括基于密码反馈会话密钥3304对这些部分进行反向哈希处理(即,与图33的过程反向)从而恢复加密的原始数据(或者原始数据,如果在解析和分裂之前没有进行加密的话)。然后可使用加密密钥来恢复原始数据(即,在所示的例子中,通过将密码反馈会话密钥3304与加密的数据进行XOR处理,使用密码反馈会话密钥3304对XOR加密进行解密)。这恢复了原始数据3306。

图35示出了在图33和图34的例子中如何实现比特分裂。哈希处理可用于确定分裂每个数据字节的比特值(例如,基于密码反馈会话密钥、基于任何其它合适值)。应该明白,这仅仅是在比特级实施分裂的一个例示性方法。可使用其它合适技术。

应该明白,可以针对任何合适哈希算法形成本文所述的哈希功能。这些算法例如包括MD5和SHA-1。可以在不同时间由本发明的不同部件使用不同的哈希算法。

在根据以上例示性过程或者通过任何其它过程或算法确定了分裂点后,确定向哪些数据部分附加左段和右段的每一个。任何合适算法可用于执行这个确定。例如,在一个合适方案中,可建立所有可能分布(例如,按照针对左段和针对右段的目的地的配对的形式)的表,由此,可以通过对可被产生并扩展至原始数据的大小的会话密钥、密码反馈会话密钥或任何其它合适的随机或伪随机值中的对应数据使用任何合适哈希函数,来确定针对左段和右段的每个的目的地份值。例如,可以产生随机或伪随机值中的对应字节的哈希函数。该哈希函数的输出用于确定从所有目的地组合的表中选择哪个目的地的配对(即,针对左段的一个目的地和针对右段的一个目的地)。基于这个结果,分裂数据单元的各段被附加到由作为哈希函数的结果而选择的表值所指示的对应的两份。

根据本发明可以将冗余信息附加到数据部分从而不需要使用所有的数据部分就能够恢复原始数据。例如,如果希望四个部分中的两个部分就足以恢复数据,则份中的附加数据可以例如以轮循(round-robin)方式相应地附加到每份(例如,当原始数据的大小是4MB时,份1获得它自身的份以及份2和份3的份;份2获得它自身的份以及份3和份4的份;份3获得它自身的份以及份4和份1的份;份4获得它自身的份以及份1和份2的份)。根据本发明,可以使用任何这种合适的冗余。

应该明白,根据本发明,任何其它合适的解析和分裂方案可用于从原始数据集产生多个数据部分。例如,可以逐比特地随机或伪随机处理解析和分裂。可以使用随机或伪随机值(例如,会话密钥、密码反馈会话密钥等),由此,针对原始数据中的每个比特,关于随机或伪随机值中的对应数据的哈希函数的结果可以指示向哪个份附加对应比特。在一个合适方案中,随机或伪随机值可以被产生为或者扩展至原始数据的大小的8倍,从而可以关于原始数据的每个比特,对随机或伪随机值的对应字节执行哈希函数。根据本发明,可以使用逐比特级解析并分裂数据的任何其它合适算法。还应该明白,根据本发明,冗余数据例如可以以上文刚描述的方式附加到数据份。

在一个合适方案中,解析和分裂不需要是随机或伪随机的。而且,可以使用用于解析和分裂数据的任何合适确定性算法。例如,可以采用将原始数据分解成多个顺序份,作为一种解析和分裂算法。另一个例子是逐比特地解析并分裂原始数据,按照轮循方式顺序地向数据份附加每个对应比特。还应该明白,根据本发明,冗余数据可以例如以上述方式附加到数据份。

在本发明的一个实施例中,在安全数据解析器产生原始数据的多个部分后,为了恢复原始数据,某一个或更多的产生的部分可以是强制性的。例如,如果这些部分之一用作认证份(例如,保存在物理令牌装置上)并且如果使用安全数据解析器的容错特征(即,恢复原始数据不需要所有的数据部分),则即使安全数据解析器可访问足够数目的原始数据的部分来恢复原始数据,在它恢复原始数据之前仍需要存储在物理令牌装置上的认证份。应该明白,例如基于应用、数据类型、用户、任何其它合适因素、或者它们的任何组合,可要求任何数目和类型的特定份。

在一个合适方案中,安全数据解析器或者安全数据解析器的某外部部件可以对原始数据的一个或多个部分进行加密。为了恢复原始数据,需要提供并解密加密的部分。可用不同的加密密钥对不同的加密部分进行加密。例如,这个特征可用于实现更安全的“双人规则”,由此,第一用户将需要具有使用第一加密进行加密的特定份,第二用户将需要具有使用第二加密密钥进行加密的特定份。为了访问原始数据,这两个用户将需要具有他们各自的加密密钥并且提供他们各自的原始数据的部分。在一个合适方案中,可用公钥对一个或多个数据部分(可能是恢复原始数据所需的强制性份)进行加密。然后可用私钥对该份进行解密从而用于恢复成原始数据。

可使用利用强制性份的任何这种合适范例,其中,恢复原始数据不需要所有份。

在本发明的一个合适实施例中,可以随机或伪随机地处理,将数据分布到有限数目的数据份中,从而基于统计观点,任何特定数据份接收特定数据单元的概率与剩余份中的任何一个将接收该数据单元的概率相等。结果,每个数据份将具有近似相等的数据比特量。

根据本发明的另一个实施例,有限数目的数据份中的每个不需要具有从原始数据的解析和分裂接收数据单元的相等概率。而且,某一份或多份可具有比其余份要高或低的概率。结果,某些份与其它份相比,比特大小可以更大或更小。例如,在两份的情况下,一份可具有接收数据单元的1%概率,而第二份具有99%概率。由此,应该明白,一旦数据单元被安全数据解析器分布到两份之中,第一份应该具有约1%的数据,第二份应该具有99%的数据。根据本发明,可使用任何合适概率。

应该明白,安全数据解析器可以被设计为根据精确(或者近似精确)的百分比向份分布数据。例如,安全数据解析器可以被设计为将数据的80%分布给第一份,将剩余20%的数据分布给第二份。

根据本发明的另一个实施例,安全数据解析器可以产生多个数据份,这些数据份中的一个或多个具有预定大小。例如,安全数据解析器可以将原始数据分裂成多个数据部分,其中,这些部分之一是精确的256比特。在一个合适方案中,如果不可以产生具有需要大小的数据部分,则安全数据解析器可以填塞该部分以使其为正确大小。可使用任何合适大小。

在一个合适方案中,数据部分的大小可以是加密密钥、分裂密钥、任何其它合适密钥、或者任何其它合适数据元素的大小。

如上所述,在解析和分裂数据的过程中,安全数据解析器可以使用密钥。为了清楚和简洁,在本文中这些密钥将被称作“分裂密钥”。例如,先前介绍的会话主密钥是一种分裂密钥。另外,如上所述,可以在由安全数据解析器产生的数据份内对分裂密钥进行保护。用于保护分裂密钥的任何合适算法可用于在数据份之间对它们进行保护。例如,Shamir算法可用于保护分裂密钥,由此,产生可用于重建分裂密钥的信息并且将其附加到数据份。根据本发明可以使用任何其它这样的合适算法。

类似地,可以根据任何合适算法(例如,Shamir算法)在一个或多个数据份内对任何合适的加密密钥进行保护。例如,可使用Shamir算法或者任何其它合适算法保护用于在解析和分裂之前对数据集进行加密的加密密钥、用于在解析和分裂后对数据部分进行加密的加密密钥或者这二者。

根据本发明的一个实施例,可使用诸如全包变换的全都或全不变换(All or Nothing Transform,AoNT),通过对分裂密钥、加密密钥、任何其它合适数据元素或者它们的任何组合进行变换,进一步保护数据。例如,用于在根据本发明的解析和分裂之前对数据集进行加密的加密密钥可通过AoNT算法进行变换。然后,变换的加密密钥可以根据例如Shamir算法或者任何其它合适算法分布到各数据份之中。为了重建加密密钥,必须恢复加密的数据集(例如,如果根据本发明使用冗余,则不需要使用所有数据份),从而访问关于根据本领域技术人员公知的AoNT的变换的必要信息。当获取了原始加密密钥时,它可用于对加密的数据集进行解密以获取原始数据集。应该明白,本发明的容错特征可以与AoNT特征进行结合使用。也就是说,冗余数据可以包括在数据部分中,从而恢复加密的数据集不需要所有的数据部分。

应该明白,除了与在解析和分裂之前的数据集对应的各个加密密钥的加密和AoNT以外或者代替地,AoNT可应用于用于在解析和分裂后对数据部分进行加密的加密密钥。同样地,AoNT可应用于分裂密钥。

在本发明的一个实施例中,例如可使用工作组密钥对根据本发明使用的加密密钥、分裂密钥或二者进行进一步加密,从而向保护的数据集提供额外等级的安全性。

在本发明的一个实施例中,可以提供一个审计模块,每当调用安全数据解析器对数据进行分裂时,该审计模块进行跟踪。

图36示出了使用根据本发明的安全数据解析器的部件的可能选项3600。在图36中,在下面概要说明选项的每个组合并且用适当的步骤编号进行标记。安全数据解析器实质上可以是模块式的,从而可以在图36所示的每个功能块内使用任何已知算法。例如,其它密钥分裂(例如,秘密共享)算法(例如,Blakely算法)可用于替代Shamir,或者AES加密可由其它已知加密算法(例如,三重DES)替代。图36的例子中所示的标签仅仅描绘用于本发明的一个实施例中的算法的一个可能组合。应该明白,可使用任何合适算法或者算法组合来替代所标记的算法。

1)3610、3612、3614、3615、3616、3617、3618、3619

在步骤3610中使用先前加密的数据,该数据最终可以分裂成预定数目的份。如果分裂算法要求密钥,则在步骤3612中可使用密码术安全伪随机数产生器来产生分裂加密密钥。可选地,在步骤3614中可以使用全都或全不变换(AoNT)将分裂加密密钥变换成变换分裂密钥,然后在步骤3615中分裂加密密钥成为分裂成具有容错性的预定数目的份的密钥。在步骤3616中,该数据然后可分裂成预定数目的份。可以在步骤3617中使用容错方案,从而不需要全部的份就可以重新产生数据。一旦建立了份,在步骤3618中认证/完整性信息可以嵌入到这些份中。可选地,在步骤3619中可对每份进行后置加密。

2)3111、3612、3614、3615、3616、3617、3618、3619

在一些实施例中,可使用由用户或外部系统提供的加密密钥对输入数据进行加密。在步骤3611中提供外部密钥。例如,该密钥可以从外部密钥库提供。如果分裂算法要求密钥,则在步骤3612中可使用密码术安全伪随机数产生器产生分裂加密密钥。可选地,在步骤3614中可以使用全都或全不变换(AoNT)将分裂密钥变换成变换分裂加密密钥,然后在步骤3615中分裂密钥成为分裂成具有容错性的预定数目的份的密钥。在步骤3616中,该数据然后分裂成预定数目的份。可以在步骤3617中使用容错方案,从而不需要全部的份就可以重新产生数据。一旦建立了份,在步骤3618中认证/完整性信息可以嵌入到这些份中。可选地,在步骤3619中可对每份进行后置加密。

3)3612、3613、3614、3615、3612、3614、3615、3616、3617、3618、3619

在一些实施例中,在步骤3612中可以使用密码术安全伪随机数产生器产生加密密钥以对数据进行变换。在步骤3613中可以使用产生的加密密钥对数据进行加密。可选地,在步骤3614中可使用全都或全不变换(AoNT)将加密密钥变换成变换加密密钥。然后,在步骤3615中,变换加密密钥和/或产生的加密密钥可以被分裂到具有容错性的预定数目的份中。如果分裂算法要求密钥,则在步骤3612中使用密码术安全伪随机数产生器产生分裂加密密钥。可选地,在步骤3614中可以使用全都或全不变换(AoNT)将分裂密钥变换成变换分裂加密密钥,然后在步骤3615中分裂密钥成为分裂成具有容错性的预定数目的份的密钥。在步骤3616中,该数据然后可分裂成预定数目的份。可以在步骤3617中使用容错方案,从而不需要全部的份就可以重新产生数据。一旦建立了份,在步骤3618中认证/完整性信息可以嵌入到这些份中。可选地,在步骤3619中可对每份进行后置加密。

4)3612、3614、3615、3616、3617、3618、3619

在一些实施例中,数据可以被分裂成预定数目的份。如果分裂算法要求密钥,则在步骤3612中使用密码术安全伪随机数产生器产生分裂加密密钥。可选地,在步骤3614中可以使用全都或全不变换(AoNT)将分裂密钥变换成变换分裂密钥,然后在步骤3615中分裂密钥成为分裂成具有容错性的预定数目的份的密钥。在步骤3616中,该数据然后可分裂成预定数目的份。可以在步骤3617中使用容错方案,从而不需要全部的份就可以重新产生数据。一旦建立了份,在步骤3618中认证/完整性信息可以嵌入到这些份中。可选地,在步骤3619中可对每份进行后置加密。

尽管以上四个选项组合优选用于本发明的一些实施例,但是在其它实施例中任何其它合适的特征、步骤或选项的组合可与安全数据解析器一起使用。

安全数据解析器通过使物理分离容易,可以提供灵活的数据保护。可以首先对数据进行加密,然后基于“n取m”容错性将数据分裂成多个份。这使得当不能够获取全部数目的份时仍能够重新产生原始信息。例如,一些份在传输过程中可能丢失或损坏。如下文更加详细的描述,基于附于各份的完整性信息和容错性,可以重建丢失或损坏的份。

为了建立这些份,可选地,安全数据解析器利用多个密钥。这些密钥可以包括下面密钥中的一个或多个:

前置加密密钥:当选择各份的前置加密时,外部密钥可以传递至安全数据解析器。这个密钥可以被产生并且存储在外部的密钥库中(或者其它位置)并且可用于可选地在数据分裂之前对数据进行加密。

分裂加密密钥:这个密钥可以在内部产生并且由安全数据解析器用于在分裂之前对数据进行加密。然后,可以使用密钥分裂算法将这个密钥安全地存储在各份内。

分裂会话密钥:这个密钥不用于加密算法,而且当选择了随机分裂时,它可用作数据划分算法的密钥。当使用随机分裂时,可在内部产生分裂会话密钥并且由安全数据解析器用其将数据划分成多个份。可以使用密钥分裂算法将这个密钥安全地存储在各份内。

后置加密密钥:当选择了各份的后置加密时,外部密钥可以传递至安全数据解析器并且用于对各个份进行后置加密。这个密钥可以产生并且存储在外部的密钥库中或者其它合适位置。

在一些实施例中,当以这种方式使用安全数据解析器保护数据时,只有存在所有所需的份和外部加密密钥才可以重装信息。

图37示出了在一些实施例中使用本发明的安全数据解析器的例示性总览过程3700。如上所述,安全数据解析器3706的两个非常合适的功能可以包括加密3702和备份3704。这样,在一些实施例中,安全数据解析器3706可以与RAID或备份系统或硬件或软件密码引擎集成在一起。

与安全数据解析器3706关联的主密钥过程可以包括前置加密过程3708、加密/变换过程3710、密钥保护过程3712、解析/分布过程3714、容错过程3716、份认证过程3716和后置加密过程3720中的一个或多个。如图36所详示,这些过程可以按照几个合适顺序或组合执行。使用的过程的组合和顺序可以取决于特定应用或使用、希望的安全等级、希望可选的前置加密、后置加密还是二者、希望的冗余、基础或集成系统的能力或性能、或者任何其它合适因素或因素的组合。

例示性过程3700的输出可以是两个或更多的份。如上所述,在一些实施例中,数据可以随机地(或伪随机地)分布到这些份中的每一个。在其它实施例中,可使用确定性算法(或者随机、伪随机和确定性算法的某合适组合)。

除了信息资产的个别保护外,有时候需要在不同用户组或者关注团体之间共享信息。于是需要在用户组内控制对各份的访问或者在仅仅允许组成员对份进行重装的那些用户之间共享证明。为此,在本发明的一些实施例中,可将工作组密钥部署给组成员。由于工作组密钥受到危害可潜在允许组外的人访问信息,所以工作组密钥应该被保护并保持保密。在下文讨论用于工作组密钥部署和保护的一些系统和方法。

通过对存储在各份内的密钥信息进行加密,工作组密钥概念允许对信息资产的加强保护。一旦执行了这个操作,即使发现了所有所需的份和外部密钥,攻击方无法访问工作组密钥的话也没有希望重建信息。

图38示出了在份内存储密钥和数据成分的例示性框图3800。在图3800的例子中,省去了可选的前置加密和后置加密步骤,但是在其它实施例中可以包括这些步骤。

分裂数据的简化过程包括在加密阶段3802使用加密密钥3804对数据进行加密。根据本发明,加密密钥3804的部分然后可以被分裂并存储在各份3810中。分裂加密密钥3806的部分也可存储在各份3810中。使用分裂加密密钥,数据3808于是被分裂并存储在各份3810中。

为了恢复数据,根据本发明可以获取并恢复分裂加密密钥3806。然后,可以反转分裂操作以恢复密文。还可以获得并且恢复加密密钥3804,然后使用该加密密钥对密文进行解密。

当利用工作组密钥时,可以稍微改变以上过程以用工作组密钥保护加密密钥。于是,在将加密密钥存储在份中之前,加密密钥可以通过工作组密钥进行加密。在图39的例示性框图3900中示出了修改的步骤。

使用工作组密钥分裂数据的简化过程包括在阶段3902中首先使用加密密钥对数据进行加密。然后,在阶段3904中可以用工作组密钥对加密密钥进行加密。然后,用工作组密钥加密的加密密钥可以被分裂成多个部分并且存储在各份3912内。分裂密钥3908也可以被分裂并存储在各份3912中。最后,使用分裂密钥3908将数据3910的部分分裂并存储在各份3912中。

为了恢复数据,根据本发明可以获取并恢复分裂密钥。然后,根据本发明可以反转分裂操作以恢复密文。可以获取并恢复加密密钥(使用工作组密钥对其进行了加密)。然后,可以使用工作组密钥对加密密钥进行解密。最后,可使用加密密钥对密文进行解密。

有多种用于部署并保护工作组密钥的安全方法。选择哪个方法用于特定应用取决于多个因素。这些因素可以包括所需的安全等级、成本、便利性、以及工作组中用户的数目。下面提供了在一些实施例中使用的一些常用技术。

基于硬件的密钥存储

基于硬件的方案通常为密码系统内的加密/解密密钥的安全性提供最强保证。基于硬件的存储方案的例子包括将密钥存储在便携式装置(例如,智能卡/加密狗)中的防篡改密钥令牌装置或者非便携式密钥存储外设。这些装置被设计为防止由未授权方对密钥材料进行容易的复制。密钥可由信任的机构产生并且分布给用户,或者在硬件内产生。此外,许多密钥存储系统提供多因素认证,其中,密钥的使用要求访问物理对象(令牌)以及密码短语(passphrase)或生物测定二者。

基于软件的密钥存储

尽管对于高安全性部署或应用会期望专用的基于硬件的存储,但是可以选择其它部署将密钥直接存储在本地硬件(例如,盘、RAM或诸如USB驱动器的非易失性RAM存储器)上。针对内部攻击或者在攻击方能够直接访问加密机的情况下,这提供较低等级的保护。

为了保护盘上的密钥,基于软件的密钥管理常常通过在从其它认证度量(包括口令和密码短语、其它密钥的存在(例如,来自基于硬件的方案)、生物测定、或者上述度量的任何合适组合)导出的密钥之下以加密的形式存储密钥来对密钥进行保护。由这些技术提供的安全性的等级可以在从由一些操作系统(例如,MS Windows和Linux)提供的相对较弱密钥保护机制到使用多因素认证实现的更健壮方案的范围内。

有利的是,本发明的安全数据解析器可用于多个应用和技术中。例如,电子邮件系统、RAID系统、视频广播系统、数据库系统、磁带备份系统、或者任何其它合适系统可以具有以任何合适等级集成的安全数据解析器。如上所述,应该明白,还可以集成安全数据解析器以用于通过任何传输介质(例如包括有线、无线或者物理传输介质)的任何类型的移动中数据的保护和容错。作为一个例子,IP语音(VoIP)应用可以利用本发明的安全数据解析器解决与在VoIP内通常存在的回声和延迟有关的问题。通过使用容错可以消除对漏掉包进行网络再试的需要,即使在丢失预定数目的份的情况下这仍可以保证包传送。数据包(例如,网络包)还可以以最小延迟和缓冲“即时地(on-the-fly)”被高效地分裂和恢复,从而获得针对各种类型的移动中数据的综合方案。安全数据解析器可作用于网络数据包、网络语音包、文件系统数据块、或者任何其它合适的信息单元。除了与VoIP应用集成在一起以外,安全数据解析器可以与文件共享应用(例如,对等文件共享应用)、视频广播应用、电子投票或民意调查应用(可以实现例如Sensus协议的电子投票协议和盲签名)、电子邮件应用、或者要求或希望安全通信的任何其它网络应用集成在一起。

在一些实施例中,本发明的安全数据解析器在两个不同阶段(即,首标产生阶段和数据划分阶段)可以提供对移动中网络数据的支持。在图40A和40B中分别示出了简化的首标产生过程4000和简化的数据划分过程4010。可以对网络包、文件系统块、或者任何其它合适信息执行这些过程中的一个或二者。

在一些实施例中,在网络包流开始时可以执行一次首标产生过程4000。在步骤4002中,可以产生随机(或伪随机)分裂加密密钥K。然后,在AES密钥包装步骤4004中,(例如,使用上述的工作组密钥)可选地对分裂加密密钥K进行加密。尽管在一些实施例中可以使用AES密钥包装,但是在其它实施例中可以使用任何合适的密钥加密或者密钥包装算法。AES密钥包装步骤4004可以对整个分裂加密密钥K进行操作,或者该分裂加密密钥可以被解析成几个块(例如,64比特块)。如果需要,AES密钥包装步骤4004然后可以对分裂加密密钥的块进行操作。

在步骤4006中,秘密共享算法(例如,Shamir)可用于将分裂加密密钥K分裂成多个密钥份。然后,每个密钥份可以嵌入到输出份之一中(例如,份首标中)。最后,份完整性块和(可选的)后置认证标记(例如,MAC)可以附于每份的首标块。每个首标块可以被设计为适合安置在单个数据包内。

在首标产生完成后(例如,使用简化的首标产生过程4000),安全数据解析器可使用简化的数据分裂过程4010进入数据划分阶段。在步骤4012中,使用分裂加密密钥K对流中的每个输入数据包或数据块进行加密。在步骤4014中,可以对从步骤4012获得的密文计算份完整性信息(例如,哈希值H)。例如,可以计算出SHA-256哈希值。然后,在步骤4016中,可以使用根据本发明以上描述的数据分裂算法之一将数据包或数据块划分成两个或更多数据份。在一些实施例中,数据包或数据块可以被分裂为使得每个数据份包含加密的数据包或数据块的基本随机的分布。然后,完整性信息(例如,哈希值H)可以附于每个数据份。在一些实施例中,还可以计算可选的后置认证标记(例如,MAC)并且将其附于每个数据份。

每个数据份可以包括允许数据块或数据包的正确重建所需的元数据。这个信息可以包括在份首标内。元数据可以包括诸如密码密钥份、密钥身份、份现时、签名/MAC值和完整性块的信息。为了使带宽效率最大化,元数据可以以紧凑二进制格式存储。

例如,在一些实施例中,份首标包括明文首标块,该明文首标块没有加密并且可以包括例如Shamir密钥份、每会话现时、每份现时、密钥标识符(例如,工作组密钥标识符和后置认证密钥标识符)的元素。份首标还可以包括通过分裂加密密钥进行加密的加密的首标块。完整性首标块也可以包括在该首标内,完整性首标块可以包括对任何数目的先前块(例如,先前两块)的完整性检查。任何其它合适值或信息也可以包括在份首标内。

如图41的例示性份格式4100所示,首标块4102可与两个或更多的输出块4104关联。例如首标块4102的每个首标块可被设计为适合安置在单个网络数据包内。在一些实施例中,在首标块4102从第一位置发送至第二位置后,输出块然后可以被发送。或者,首标块4102和输出块4104可以同时并行地发送。可以经由一个或更多的类似或不类似的通信路径进行该发送。

每个输出块可以包括数据部分4106和完整性/真实性部分4108。如上所述,可以使用包括加密的预先划分的数据的份完整性信息(例如,SHA-256哈希值)的份完整性部分,对每个数据份进行保护。为了在恢复时验证输出块的完整性,安全数据解析器可以比较每份的份完整性块并且然后颠倒分裂算法。然后,可以针对份哈希值验证恢复的数据的哈希值。

如上所述,在本发明的一些实施例中,安全数据解析器可以与磁带备份系统结合使用。例如,根据本发明,各个带子可用作节点(即,部分/份)。可以使用任何其它合适的布置。例如,由两个或更多磁带组成的磁带库或子系统可被看作单个节点。

根据本发明,冗余也可以与磁带一起使用。例如,如果数据集分配在四个磁带(即,部分/份)之中,则为了恢复原始数据需要这四个磁带中的两个。应该明白,根据本发明的冗余特征,恢复原始数据可能需要任何合适数目的节点(即,少于全部数目的节点)。这实质上增大了当一个或多个磁带过期时恢复的可能性。

还可以用SHA-256、HMAC哈希值、任何其它合适值、或者它们的任何组合对每个磁带进行数字保护从而确保不会被篡改。如果磁带上的任何数据或者哈希值变化,则该磁带将不会是用于恢复的候选并且剩余磁带中的任何最小所需数目的磁带将用于恢复数据。

在传统的磁带备份系统中,当用户请求将数据写入磁带或者从磁带读取数据时,磁带管理系统(TMS)呈现与物理磁带安装对应的数目。这个磁带安装指向将安装数据的物理驱动器。由人磁带操作员或者磁带机器人在磁带仓中装载磁带。

在本发明之下,物理磁带安装可被认为是指向多个物理磁带的逻辑安装点。由于并行性,这不仅增大了数据容量还提高了性能。

为了提高性能,磁带节点可以是或者可以包括用于存储磁带映像的盘的RAID阵列。由于总是可以在受保护的RAID中获得数据,所以这可以实现高速恢复。

在任何上述实施例中,可以使用确定性的、概率性、或者既确定性又概率性的数据分布技术,将要保护的数据分布到多个份中。为了防止攻击方开始对任何密码块进行密码攻击,密码块中的比特可以被确定性地分布到份。例如,可以使用BitSegment(比特段)例程执行分布,或者可以对BlockSegment(块段)例程进行修改以允许将块的部分分布到多个份。这个策略可以防御累积了少于“M”份的攻击方。

在一些实施例中,可以使用密钥式信息分散(例如,通过使用密钥式信息分散算法或“IDA”),采用密钥式秘密共享例程。密钥式IDA的密钥还可以由一个或多个外部工作组密钥、一个或多个共享密钥、或者工作组密钥和共享密钥的任何组合进行保护。这样,可以采用多因素秘密共享方案。在一些实施例中,为了重建数据,至少需要“M”份外加工作组密钥(和/或共享密钥)。IDA(或者IDA的密钥)还可以被带入加密过程。例如,变换可以被带入明文(例如,在加密之前的前置处理层期间)并且还可以在对明文进行加密之前进一步对明文进行保护。

例如,在一些实施例中,密钥式信息分散用于将数据集中的数据的唯一部分分布到两个或更多份中。密钥式信息分散可以使用会话密钥首先加密数据集,然后将数据集的加密的数据的唯一部分分布到两个或更多的加密数据集份,或者既对数据集加密又将数据集的加密的数据的唯一部分分布到两个或更多加密数据集份。例如,为了分布数据集或加密数据集的唯一部分,可以使用秘密共享(或者上述方法,例如BitSegment或BlockSegment(块段))。会话密钥然后可以可选地进行变换(例如,使用全包变换或AoNT)并且例如使用秘密共享(或者密钥式信息分散和会话密钥)进行共享。

在一些实施例中,在密钥的唯一部分被分布或分配到两个或更多会话密钥份之前,可以使用共享密钥(例如,工作组密钥)对会话密钥进行加密。然后,通过将至少一个加密数据集份与至少一个会话密钥份进行组合可以形成两个或更多用户份。在形成用户份时,在一些实施例中,所述至少一个会话密钥份可以交织到加密的数据集份中。在其它实施例中,所述至少一个会话密钥份可以在至少部分基于共享的工作组密钥的位置插入到加密数据集份中。例如,密钥式信息分散可用于将每个会话密钥份分布到唯一加密数据集份以形成用户份。在至少部分基于共享工作组的位置将会话密钥份交织或插入到加密数据集份可以提高面对密码攻击的安全性。在其它实施例中,一个或更多会话密钥份可以附于加密数据集份的开始或末端以形成用户份。然后,用户份的集合可以单独地存储在至少一个数据储存器上。该数据储存器或多个数据储存器可以位于同一物理位置(例如,位于同一磁或磁带存储装置上)或者在地理上分离(例如,位于不同地理位置处的物理分离的服务器上)。为了重建原始数据集,需要一组授权的用户份和共享的工作组密钥。

即使在面对密钥获取启示器(oracle)时,密钥式信息分散仍是安全的。例如,取块密码E和针对E的密钥获取启示器,该针对E的密钥获取启示器取对块密码的输入/输出对的列表(X1,Y1)、……、(XC,YC)并且返回与输入/输出例子一致的密钥K(例如,对于所有i,Yi=EK(Xi))。如果没有一致的密钥,则该启示器可以返回特异值⊥。这个启示器可以模拟可从输入/输出例子的列表恢复密钥的密码分析攻击。

在存在密钥获取启示器的情况下,标准的基于块密码的方案可能会失败。例如,在存在密钥获取启示器的情况下,CBC加密或者CBC MAC可能变得完全不安全。

如果ΠIDA是IDA方案并且ΠEnc是由某块密码E的操作模式给出的加密方案,则如果在对手具有密钥获取启示器的模式下这两种方案与按照HK1或HK2的任意完美秘密共享方案(PSS)进行组合时达到健壮计算秘密共享(RCSS)目标,则(ΠIDA,ΠEnc)提供了面对密钥获取攻击的安全性。

如果存在IDA方案ΠIDA和加密方案ΠEnc以使得这对方案提供面对密钥获取攻击的安全性,则实现这对方案的一个方法是具有“聪明(clever)”IDA和“愚笨(dumb)”加密方案。实现这对方案的另一个方法是具有“愚笨”IDA和“聪明”加密方案。

为了示出聪明IDA和愚笨加密方案的使用,在一些实施例中,加密方案可以是CBC并且IDA可以具有“弱私密”性质。弱私密性质例如是指:如果对IDA的输入是块的随机序列M=M1…M1并且对手从未授权的集合获得份,则存在某块索引i使得对手无法计算Mi。通过首先向M应用信息理论AoNT(例如,Stinson的AoNT)然后应用例如BlockSegment的简单IDA或者如Rabin方案(例如,Reed-Solomon编码)的比特高效IDA,可以建立弱私密IDA。

为了示出愚笨IDA和聪明加密方案的使用,在一些实施例中,可以使用以双重加密替代单加密的CBC模式。现在,即使在复制的情况下仍可以使用任何IDA。由于对手将被拒绝任何单加密的输入/输出例子,所以对于对手来讲具有针对块密码的密钥获取启示器是无用的。

尽管聪明IDA具有价值,但是在一些环境下它也是无关紧要的,这意味着提供面对密钥获取攻击的安全性所需的“聪明”本可被“推送”到别处。例如,在一些实施例中,不管IDA如何聪明,以及不管在HK1/HK2环境下用IDA尝试达到什么目标,聪明可被从IDA推出并且推进加密方案,从而留下固定且愚笨的IDA。

基于以上内容,在一些实施例中,可以使用“普遍健全”的聪明IDAΠIDA。例如,提供IDA从而使得对于所有的加密方案ΠEnc,对(ΠIDA,ΠEnc)普遍地提供面对密钥获取攻击的安全性。

在一些实施例中,提供一种加密方案,该加密方案在面对密钥获取启示器时是RCSS安全的。该方案可以与HK1/HK2、与任何IDA集成以达到面对密钥获取的安全性。使用新方案可能特别有用,例如,使对称加密方案对于密钥获取攻击更加安全。

如上所述,经典秘密共享概念通常不是密钥式的。因此,将秘密分解成多份,或者按照既不要求经销商也不要求重建秘密的一方持有任何类型的对称或非对称密钥的方式从这些份重建秘密。然而,可选地,本文所述的安全数据解析器可以是密钥式的。经销商可提供对称密钥,如果这个对称密钥用于数据共享,则进行数据恢复需要这个对称密钥。安全数据解析器可以使用该对称密钥把要保护的消息的唯一部分分散或分布到两个或更多份。

共享的密钥可以实现多因素或两因素秘密共享(2FSS)。于是,对手需要排除两个基本不同类型的安全性以破坏安全性机制。例如,为了侵犯秘密共享目标,对手:(1)需要获得一组授权的玩家的份;(2)需要获得应该不能获得的秘密密钥(或者破坏通过该密钥进行密钥式控制的加密机制)。

在一些实施例中,一组新的附加要求添加到RCSS目标。这些附加要求可以包括“第二因素”,即密钥拥有。可以加入这些附加要求而不减少原始的一组要求。一组要求可以涉及如果对手知道秘密密钥但没有获得足够份也不能够破坏方案(例如,经典或第一因素要求),而另一组要求可以涉及如果对手具有秘密密钥但设法获得所有的份也不能够破坏方案(例如,新的或第二因素要求)。

在一些实施例中,存在两个第二因素要求:私密要求和真实性要求。在私密要求中,涉及一个博弈,其中,由环境选择秘密密钥K和比特b。对手现在在秘密共享方案的域中提供一对等长消息M10和M11。环境计算M1b的份以获得份的矢量S1=(S1[1]、…、S1[n]),并且它将份S1(所有它们)给予对手。使用相同密钥K和隐藏的比特b,对手现在可以选择另一对消息(M20,M21)并且任何事情如上进行。对手的工作是输出他相信为b的比特b'。对手私密优势是1小于b=b'的概率的两倍。该博弈获得如下概念:即使获知所有份,如果缺少秘密密钥,对手仍不能够获知关于共享秘密的任何事。

在真实性要求中,可以涉及一个博弈,其中,环境选择私密密钥K并且在接下来对Share和Recover的调用中使用它。在一些实施例中,Share和Recover可以修改它们的语法以反映这个密钥的存在。然后,对手对它在秘密共享方案的域中选择的任何消息M1、...、Mq进行Share请求。响应于每个Share请求,它获得份S1、…、Sq的对应n矢量。对手的目的是伪造新的明文;如果它输出份S'的矢量使得当送给Recover算法时产生不在{M1、…、Mq}中的东西则它获胜。这是“明文完整性”概念。

有两种实现多因素秘密共享的方案。第一种方案是通用方案,在以黑盒方式使用基本(R)CSS方案的意义上通用。认证的加密方案用于对要进行CSS共享的消息进行加密,然后例如可以使用秘密共享算法(例如,Blakely或Shamir)对得到的密文进行分配。

潜在更加高效的方案是允许共享密钥是工作组密钥。也就是说,(1)可以使用共享密钥对(R)CSS方案的随机产生的会话密钥进行加密,(2)应用于消息(例如,文件)的加密方案可由认证的加密方案替代。这个方案会使性能仅蒙受最小的下降。

尽管在上文描述了安全数据解析器的一些应用,但是应该清楚地明白,本发明可以与任何网络应用进行集成以提高安全性、容错性、匿名、或者上述的任何合适组合。

在本发明的一些实施例中,安全数据解析器可以实现在安全代理服务中以保护移动中数据。如上所述,安全数据解析器是为应用提供传统加密/认证服务以及通过(物理上、时间上或者通过某种其它形式的信任)分离被保护数据实现的另外的安全性的密码库。安全数据解析器是针对如下应用设计的:危害系统的对手通过获得密码密钥、对传输介质的物理访问或者获得通常将击败安全性的任何知识的威胁是真实的。安全代理服务提供保护免受这些威胁的另一层安全性,并且优选地是灵活的从而能够被实现在广泛的系统(例如企业服务器、个人计算机、任何其它合适系统或它们的任何组合)上。以下参照图42-50描述安全代理服务。

使用安全代理服务来保护两个装置之间的移动中数据。特别地,安全代理服务在第一装置上运行并通过网络为应用提供启用安全数据解析器的通信。这些装置可以是在密码系统100(图1)中包括的任何合适装置对。例如,安全代理服务可以建立在用户系统105和卖方系统120(诸如个人计算机和web服务器)之间。在另一例子中,安全代理服务可以建立在分离的用户系统105(诸如个人计算机和NAS、个人计算机和家庭路由器、NAS和家庭路由器、或用户系统105的任何合适组合)之间。使用安全代理服务的装置之间的通信类似于连接到web或电子邮件服务器的客户机的通信。

在一些实施例中,诸如用户系统105的客户机和诸如卖方系统120的服务器可以使用安全代理服务建立安全通信。在建立安全代理服务时,用户系统105和卖方系统120可以针对安全代理服务而翻新到合适配置。在这种实施例中,当客户机连接到服务器时,在两个安全代理服务之间建立连接。在服务器上,安全代理服务被配置为将它接收的数据转发给服务器应用。服务器应用然后可以处理请求并通过在本地实现的安全代理服务进行响应。

在一些实施例中,安全代理服务基于在任意数量的认证机构(诸如认证机构115(图1))之中分布的信任保护在网络上传输的数据的保密性、完整性和真实性。在这种实施例中,只要定额的认证机构被信任,就可保护数据的保密性、完整性和真实性。如果认证机构的信任受到危害,无法确保互相认证,交换的消息的保密性、完整性和真实性被破坏。安全代理服务是启用安全数据解析器的方案,其使得对单个认证机构的信任被分布到任意数量的认证机构上(例如,两个、三个、五个、十个、二十个、五十个、一百个、或多于一百个认证机构)。该分布的信任使安全代理服务上的信息交换在该组认证机构之中存在单点故障的情况下仍能保持安全。

在一些实施例中,使用SSL和/或全TLS协议的调整来实现安全代理服务。这些协议适于调整作为安全代理服务的一部分,因为它们至少部分地依赖于对认证机构的信任来互相认证通信中的双方。

现在描述在全TLS中使用认证机构的概览。为了在两个装置之间建立启用全TLS的连接,这两个装置对使用的密码算法组达成一致,并交换和互相认证彼此的公钥。每个装置的公钥通过该公钥的认证机构的签名的有效性进行认证。通过这两个装置都信任认证机构的事实建立这两个装置真正与彼此通信的信任,在不危害认证机构的情况下无法伪造认证机构对装置的证书的签名。

认证机构为自身创建公钥和私钥的对(PubCA,PriCA)。另外,认证机构为公钥创建自签名的证书:

CertCA=PubCA,SigPri-CA(PubCA) (1)

两个装置接收认证机构的根据式(1)的证书CertCA,私钥(PriDev1,PriDev2)和认证机构签名的证书:

CertDev1=PubDev1,SigPri-CA(PubDev1) (2)

CertDev2=PubDev2,SigPri-CA(PubDev2) (3)

当通信开始时,装置交换它们各自的式(2)和(3)中的证书,并使用认证机构的公钥来验证这些证书的真伪。例如,第一装置可以通过运行验证函数Verify(CertDev2,PubCA)来执行验证,第二装置可以通过运行验证函数Verify(CertDev1,PubCA)来执行验证。如果两个装置都对交换的公钥的认证机构签名满意,则第一装置使用第二装置的公钥向第二装置发送对称加密密钥材料。第一装置通过执行数字签名挑战来证实知道与其证书对应的私钥。一旦第一装置证实了知道与其证书对应的私钥,则第一装置和第二装置可以安全地交换消息。

如果第一装置或第二装置被危害,它们各自的私钥也可能被泄露,从那时起受到危害的装置可能被假扮。如果认证机构被危害,可以产生认证机构知道对应私钥的有效证书,并且装置中的任一个可能被假扮。然而,如果没有危害装置或认证机构,则装置能够互相确保它们正在与正确实体对话。

在一些实施例中,不是全部信任都委派给单个认证机构。通过单个认证机构不断地创建、分布和验证证书可能是不实际的。相反,可以以认证机构层级4200的形式建立信任链,如图42所示。认证机构层级4200可以建立树形的信任链。在树的顶部是根认证机构4210,其对根证书4210的所有后代(例如子和孙)授权。认证机构层级4200的每个等级的信任由根认证机构4210的信任确保。

在认证机构层级4200中,根认证机构4210可以为子认证机构4220签署证书。虽然在图42中仅示出了一个根认证机构CA-0,但是可以理解在某些实施例中,认证机构层级可以包括任何数量的根认证机构。子认证机构4220可以为孙认证机构4230签署证书。例如,如图42所示,根认证机构CA-0为其子CA-1和CA-2签署证书,CA-1和CA-2继而为他们的孩子CA-1.1、CA-1.2、CA-2.1和CA-2.2签署证书。虽然在图42中仅示出了三级认证机构,但是应该理解在某些实施例中,可以有更多或更少的认证机构等级。为了确保签名不可抵赖,所有实体可以产生它们自己的证书。

在密码系统中,第一装置可以从子认证机构4220之一接收其证书,并且与第一装置通信的第二装置可以从孙认证机构4230之一接收其证书。可以通过获得发放认证机构(例如,对于第一装置为CA-1或CA-2,对于第二装置为CA-1.1、CA-1.2、CA-2.1或CA-2.2)的证书并验证第一装置或第二装置的证书的签名(例如,验证式(2)或(3)中示出的证书),来执行每个装置的证书的证实。如果发放认证机构的信任无法建立,则执行验证的装置可以获得所讨论的发放认证机构的父亲的证书并执行相似的验证以确保认证机构是有效的。该过程可由两个装置持续进行直到达到两个装置都信任的根认证机构4210。在一些实施例中,通信中的每个装置可以与多于一个的根认证机构4210关联。在这种实施例中,具有来自这些认证机构中的任一个的有效证书的装置可以通信。

根据与TLS一起使用认证机构的以上描述,应该理解安全性最终在于单个根认证机构的信任,或者在更小的程度上在于通信中的装置充分信任的认证机构层级内的后代认证机构之一。在一些实施例中,如果层级中的任何认证机构被危害,该受危害认证机构的所有后代也被危害。如果该受危害节点是根,则层级中的每个认证机构可能被危害。

在一些实施例中,安全代理服务可使用利用TLS的安全数据解析器,用对定额的认证机构的信任来分布对单个认证机构的信任。该定额可以是定额的根认证机构4210或单个根认证机构的树内的定额的次要认证机构。例如,该定额可以是由CA-1、CA-1.1和CA-1.2(它们是根认证机构CA-0的树内的次要认证机构)组成的集合中三个认证机构中的两个。

在一些实施例中,可以通过任何合适的图算法来遍历认证机构层级4200。可以执行该遍历以获得认证机构的列表或者与唯一的或具有不同公钥和私钥对的认证机构关联的证书的列表。在一些实施例中,认证机构层级4200的遍历会得到作为根认证机构的认证机构或认证机构的证书。在一些实施例中,认证机构层级4200的遍历会得到作为一个或多个根认证机构的树内的次要认证机构的认证机构或认证机构的证书。

图44至50详细示出实现安全代理服务的两种方案。这两种方案是同等安全的。在一些实施例中,可以将安全数据解析器与全TLS整合。另外,在每种方案中,信任被分布在一组认证机构(例如参照图42中的认证机构层级4200讨论的定额的认证机构)之中。在一些实施例中,通过将安全数据解析器与SSL,与SSL和TLS整合,或者在不使用SSL和/或TLS的情况下实现安全数据解析器,可以实现安全代理服务。在一些实施例中,可以结合可以在图30的安全数据解析器层3026提供数据的安全加密的任何一种或多种类型的加密3018来实现安全代理服务。另外,在一些实施例中,可以结合利用认证机构来确保交换消息的保密性、完整性和真实性的任何合适协议来实现安全代理服务。

在参照图44至46描述的实施例中,可以使用安全数据解析器在装置之间的连接的初始协商期间(例如,密钥建立阶段)在任意数量的认证机构中分布信任。这提供了以下保证:如果某些(但少于定额的)认证机构已被危害,仍可建立连接,并且可以在不破坏通信的保密性、完整性和真实性的情况下交换消息。在参照图47至50描述的实施例中,使用安全数据解析器对数据进行预处理然后将数据分散到多个份中。可以使用由多个唯一认证机构发放的证书在通信信道内建立一组安全通信隧道,这些认证机构可被用于针对每个隧道对数据进行加密,并且可在每个隧道上发送各个数据份。因此,在第二方案中,可以在通信信道自身的结构中在一组认证机构之中分布信任。

为了示出如何在安全代理服务的一些实施例中将安全数据解析器与TLS整合,参照图43描述全TLS的密钥建立阶段的概览。图43示出了用于两个装置(第一装置4310和第二装置4320)之间的通信的TLS的密钥建立阶段的简化例示性处理流程4300。第一装置4310和第二装置4320可以是在通信链路(例如如图1所示的通信链路125)上通信的用户系统105和/或卖方系统120的任意组合。该密钥建立阶段可包括握手和互相认证。在步骤4312,第一装置4310产生随机数RDev1并将该随机数连同其(例如在式(2)中计算的)证书CertDev1发送到第二装置4320。

在步骤4322,第二装置4320产生它自己的随机数RDev2并将该随机数连同其(在式(3)中计算的)证书CertDev2发送。在步骤4314,客户机产生秘密信息SDev1,使用任何合适类型的加密在第二装置的公钥下对其进行加密,并将其发送到第二装置。在步骤4324,第二装置4320对秘密信息SDev1进行解密,并基于伪随机函数G和已交换的随机值和秘密值(即,RDev1、RDev2和SDev1)来计算共享加密密钥K。类似地,在步骤4316,第二装置4310基于伪随机函数G和已交换的随机值和秘密值(即,RDev1、RDev2和SDev1)来计算共享加密密钥K。在步骤4330,第一装置4310和第二装置4320交换利用它们独立计算的共享加密密钥加密的消息。如果计算的共享加密密钥匹配,则第一装置4310和第二装置4320可以交换确保为保密和真实的消息。如将参照图44至46进行讨论的,在一些实施例中,安全数据解析器服务可以修改和/或增加处理流程4300的步骤以将安全数据解析器与TLS整合。

图44示出了根据本发明的一个实施例的可以通过任何合适的增、删或改以任何合适组合使用的安全代理服务的简化例示性处理流程4400。在处理流程4400中,在装置之间的连接的初始协商阶段,在一组认证机构中分布信任。在一些实施例中,可以执行处理流程4400,作为两个装置之间的信息的安全交换的密钥建立阶段的一部分。该密钥建立阶段可以是与安全数据解析器3706(如图37所示)关联的一个或多个过程的一部分,或者可以是独立的过程。例如,步骤4410、4420、4430、4440、4450和4460可以是如图37所示的与安全数据解析器3706关联的前置加密过程3708、加密/变换过程3710、密钥保护过程3712或解析/分布过程3714中的一个或多个的一部分,或者可以是独立的过程。

处理流程4400在步骤4410开始。在步骤4410,想要与第二装置安全交换信息的第一装置可以产生秘密信息。该秘密信息可以是由随机数产生器产生的任意数量的合适随机数(例如,一个、两个、五个、二十个、一百个、或多于一百个随机数)。例如,秘密信息可以是由安全数据解析器3026的随机数产生器3012产生的随机数,如图30所示。处理流程4400进行到步骤4420。

在步骤4420,第一装置可以将在步骤4410产生的秘密信息分散到多个份中。在一些实施例中,可以使用密码术分裂过程(诸如“N中取M密码术分裂”)将秘密信息分散到多个份中。该“N中取M密码术分裂”可以使用本发明的安全数据解析器实现。例如,可以使用参照图21至图24讨论的数据分裂技术中的任一种实现密码术分裂。在这种实施例中,可以通过重新组合至少定额的份从至少所述多个份的子集恢复分散的份。另外,在一些实施例中,秘密信息的分裂事实上可以通过对参照图33、图35和图36概述的安全数据解析器的任意次数的使用而发生。例如,安全数据解析器可以在步骤3610接收未加密的秘密信息。如果将要用需要密钥的算法来分裂该秘密信息,则在步骤3612产生分裂加密密钥。在步骤3616,秘密信息可以被分裂到多个份中(例如,根据参照图33、图35和图36描述的任一技术)。在步骤3617可以使用一种容错方案对分裂加密密钥进行加密并允许从少于总数的份中重新产生秘密信息。另外,在步骤3617,可以向秘密信息的多个份添加用于重构这些份的信息。在一些实施例中,该信息可被嵌入到份首标中。此外,一旦创建了份,在步骤3618,认证/完整性信息可被嵌入到秘密信息的份的首标中。每个份可以使用将参照步骤4430描述的不同的认证机构的公钥进行后置加密。

另外,在一些实施例中,例如根据如图40A所示的简化首标产生过程4000会发生秘密信息到多个份的分散。例如,在步骤4002,可以产生秘密信息。然后,在步骤4004,秘密信息可以被可选地加密(例如使用参照图39描述的工作组密钥)。在步骤4006,可以使用“N中取M密码术分裂”将秘密信息分裂为秘密信息的多个份。与秘密信息的分裂关联的信息然后可被嵌入到份首标中。最后,可将份完整性块和后置认证标记(例如,MAC)附加到每个份的首标块。每个首标块可以被设计为适配于单个数据包内。

在一些实施例中,在步骤4420产生的秘密信息的份可以使用多因素秘密共享方案产生。该多因素秘密共享方案例如可以是在图41之后讨论的密钥式信息分散算法。例如,可以使用确定性、概率性、或者既确定性又概率性的数据分布技术,在将要保护的数据分布到多个份中的情况下分布秘密信息的份。一旦秘密信息被分散到多个份中,处理流程4400可以进行到步骤4430。

在步骤4430,从分裂在步骤4420计算的秘密信息得到的份由第一装置基于多个唯一认证机构的公钥进行加密。例如,如果存储在秘密信息的3个份,则第一份可以在第一认证机构的公钥下加密,第二份可以在第二认证机构的公钥下加密,并且第三份可以在第三认证机构的公钥下加密。每个认证机构的唯一性在于每个认证机构发放的证书具有不同的公钥和私钥的对。在一些实施例中,唯一认证机构可以是根认证机构。在其它实施例中,唯一认证机构可以是单个根认证机构的树内的次要认证机构,如参照图42中的认证机构层级4200所述。

如上面参照步骤4420所述,在一些实施例中,与秘密信息的分散相关的信息可被嵌入到份首标中。例如,如果秘密信息在步骤4420被分裂成4份,则可以产生4个首标,每个首标包括与密钥信息的分散份关联的信息。

在一些实施例中,可以通过一个或多个外部工作组密钥、一个或多个共享密钥或者工作组密钥和共享密钥的任意组合来保护各个份。一旦秘密信息的份被加密,第一装置可以向第二装置发送加密的份。处理流程4400然后进行到步骤4440。

在步骤4440,第二装置可以尝试恢复加密的秘密信息。该恢复过程可以取决于秘密信息的份如何在步骤4420中被分散以及在步骤4430中被加密。例如,秘密信息可能在步骤4420使用“N中取M密码术分裂”被分散到多个份并且使用工作组密钥加密,然后这些份可能在步骤4430基于不同的认证机构的公钥被加密。该恢复过程可以首先使用所述不同的认证机构的公钥对这些份进行解密,然后基于工作组密钥对这些份进行解密,然后使用安全数据解析器的恢复功能基于“N中取M密码术分裂”将秘密信息的分散份重构为原始秘密信息。

如果该恢复过程成功,则计算的秘密信息可以与原始秘密信息匹配。该匹配可以通过每个装置独立计算共享加密密钥而在装置之间互相确认。例如,第一装置可以基于原始秘密信息计算共享加密密钥,而第二装置基于恢复的秘密信息计算共享加密密钥。在一些实施例中,如果第二装置恢复原始秘密信息并随后计算有效的共享加密密钥,则处理流程进行到步骤4450,并且交换消息。在一些实施例中,可以基于由第一装置和第二装置计算的共享加密密钥安全地交换这些消息。在一些实施例中,如果第二装置没有恢复原始秘密信息,则处理流程4400进行到步骤4460,并且不交换消息。例如,消息可能因为第一装置的共享加密密钥与第二装置的共享加密密钥不匹配而无法被交换。

图45示出了根据本发明的一个实施例的可以通过任何合适的增、删或改以任何合适组合使用的在两个装置之间建立安全代理服务的简化例示性处理流程4500。在处理流程4500中,在装置之间的连接的初始协商期间,在一组认证机构中分布信任。在一些实施例中,可以执行处理流程4500作为两个装置之间的安全信息交换的密钥建立阶段的一部分。该密钥建立阶段包括处理流程4500中的每个步骤,与处理流程4400的步骤如何与安全数据解析器关联相似,例如可以是与安全数据解析器关联的一个或多个过程的一部分。

处理流程4500在步骤4510开始。在步骤4510,装置交换随机数和与公钥关联的证书,每个公钥由唯一的安全机构发放。在一些实施例中,这些装置例如可以是参照图43中的处理流程4300描述的第一装置4310和第二装置4320。每个装置可以使用安全数据解析器3026的随机数产生器3012(如图30所示)产生交换的随机数。可以从如图42所示的认证机构层级4200的遍历产生交换的证书。例如,任何合适的图算法可以遍历认证层级4200以计算根认证机构的证书的列表或者认证层级4200内的单个根认证机构的树内的次要认证机构的证书的列表。在一些实施例中,可以基于由第一和第二装置达成一致的加密参数来确定交换的证书。这些参数可以与由第一和第二装置达成一致的秘密信息的份的分散的实现关联。例如,如果在步骤4520使用的分散技术将秘密信息分散成5份,则交换的证书可包括来自第一装置的唯一认证机构的5个证书,以及来自第二装置的唯一认证机构的5个证书。

在一些实施例中,可以针对第一装置或第二装置的每个唯一证书获得唯一公钥。在一些实施例中,加密参数可以由安全代理服务的用户(诸如想要使用安全代理服务与金融机构的服务器连接的个人计算机的用户)设置。在一些实施例中,加密参数可由安全代理服务的管理员(诸如想要向其客户提供启用安全代理服务的连接金融机构的服务器的管理员)设置。另外,在一些实施例中,交换的证书的列表可以基于针对参照图9描述的装置之一的用户执行的登记过程900。处理流程4500然后进行到步骤4515。

在步骤4515,第一装置产生秘密信息。该秘密信息例如可以根据参照图44的处理流程4400描述的步骤4410来产生。处理流程4500然后进行到步骤4520。在步骤4520,第一装置使用任何合适的分散技术将在步骤4515产生的秘密信息分散成多个份。例如,第一装置可以使用例如根据参照图44的处理流程4400描述的步骤4420的本发明的安全数据解析器,执行秘密信息的“N中取M密码术分裂”。在一些实施例中,根据分散技术得到的秘密信息的份可以通过重新组合至少定额的所述份从至少所述份的子集恢复。另外,在一些实施例中,可以使用密钥式IDA将密钥式秘密共享例程应用于秘密信息的份。密钥式IDA的密钥可以通过一个或多个外部工作组密钥、一个或多个共享密钥或共享密钥和工作组密钥的任意组合进行保护。处理流程4500然后进行到步骤4525。

在步骤4525,第一装置基于由不同的认证机构发放的公钥对每份秘密信息进行加密。所述公钥可以是从在步骤4510从第一装置发送到第二装置的证书获得的公钥。在一些实施例中,可以包括步骤4525作为步骤4520的一部分。例如,可将参照步骤4520描述的密钥式秘密共享例程应用于秘密信息的各个份,其中密钥式IDA的密钥是与从第一装置发送到第二装置的证书的列表关联的公钥。在另一例子中,与证书的列表关联的公钥可被用作分裂密钥,以如参照图36的选项3600所述对秘密信息的份进行加密。处理4500然后进行到步骤4530,或者可以可选地进行到步骤4527。

在可选步骤4527,第一装置可以对在步骤4525应用于秘密信息的份的密钥执行密钥包装。在一些实施例中,密钥包装可以是任何合适的密钥加密或密钥包装算法。密钥包装可以作用于在步骤4520产生的分散秘密信息的所有份。或者,分散的份可被另外分散成几个块,并且密钥包装可作用于这些块。处理流程4500然后进行到步骤4530。

在步骤4530,第一装置将加密的秘密信息的份发送到第二装置。该发送可以发生在任何合适的通信信道上,诸如参照图1的通信链路105描述的通信信道。处理流程4500中的第一装置然后进行到步骤4545,同时第二装置进行到步骤4535。

在步骤4535,第二装置可以尝试对从第一装置接收的加密的份进行解密。该解密过程可以基于秘密信息的份如何在步骤4520和步骤4525被加密。例如,在步骤4520,可以从产生秘密信息的多个份的分散技术产生秘密信息的多个份,所述秘密信息可以通过重新组合至少定额的所述份从至少所述份的子集恢复。在步骤4525,每个分散的份可能已使用由与第二装置的证书对应的不同的认证机构获得的公钥进行了加密。在步骤4527,可以使用基于工作组密钥的密钥包装对所述份进行额外加密。基于该加密,在步骤4535,第二装置可以首先基于由唯一认证机构发放的公钥对加密的秘密信息的份进行解密,然后基于在步骤4527应用的密钥包装的工作组密钥对秘密信息的份进行解密。应该理解,除了该特定的例子,在步骤4535可以执行任何合适数量和类型的解密步骤。处理流程4500然后进行到步骤4540。

在步骤4540,第二装置可以尝试基于在步骤4535计算的解密的份恢复原始秘密信息。该恢复过程可以基于在步骤4515产生的秘密信息如何在步骤4520中被分散。例如,在步骤4520,可以使用根据参照图33、图35和图36描述的任一技术的安全数据解析器的分散功能来产生秘密信息的多个份。基于该分散,在步骤4540,第二装置可以使用根据参照图34描述的任一技术的安全数据解析器的恢复功能从分裂恢复原始秘密信息。处理流程4500然后进行到步骤4545。

在步骤4545,第一和第二装置可以基于交换的随机数以及计算的或原始的秘密信息独立地计算共享加密密钥。例如,第一装置可以使用其自己的随机数、第二装置的随机数和在步骤4515产生的秘密信息执行几个数字签名,其证书的列表中的每个证书有一个数字签名。这些数字签名然后可被用作计算第一装置的共享加密密钥的密钥产生函数的输入。第二装置可以执行类似的数字签名以计算其自己的共享加密密钥,但是使用解密的秘密信息而不是原始秘密信息。处理4500然后进行到步骤4550。

在一些实施例中,在步骤4550,第一装置和第二装置确定它们是否对于在步骤4545独立计算的共享加密密钥达成一致。在一些实施例中,可由交换用该共享加密密钥编码的消息的第一和第二装置确定该一致。例如,第一装置可向第二装置发送用共享加密密钥加密的消息。如果第二装置能够将该加密的消息解密并例如用适当的确认进行应答,则第一装置可以确定它可以与第二装置安全地交换消息。否则,第一装置会确定它无法与第二装置安全地交换消息,并且不交换另外的消息。应该理解在第二装置处可进行类似的确定。在一些实施例中,第一和第二装置可以通过交换加密密钥而不是任何消息来确定它们独立计算的共享加密密钥匹配。如果第一和第二装置对共享加密密钥没有达成一致,则处理4500进行到步骤4555。如果第一和第二装置对共享加密密钥达成一致,则处理4500进行到步骤4560。在步骤4555,第一和第二装置不交换消息。在步骤4560,第一和第二装置交换消息。在步骤4555和4560的每个之后,处理流程4500可以结束。

图46示出根据本发明的一个实施例的可以通过任何合适的增、删或改以任何合适组合使用的在客户机4610和服务器4620之间建立安全代理服务的简化例示性处理流程4600。在处理流程4600中,在客户机4610和服务器4620之间的连接的初始协商期间,在一组认证机构中分布信任。在一些实施例中,可以执行处理流程4600作为客户机4610和服务器4620之间的安全交换的密钥建立阶段的一部分。该密钥建立阶段包括处理流程4600中的任意步骤,例如根据如何将处理流程4400的步骤与安全数据解析器进行关联,可以是与安全数据解析器关联的一个或多个过程的一部分。另外,处理流程4600可以是参照图45讨论的处理流程4500的例子。

处理流程4600在步骤4612开始。在步骤4612,客户机4610向服务器4620发送产生的随机数RC和其证书Cert-CA1C、Cert-CA2C和Cert-CA3C的列表。客户机4610和服务器4620分别可以是如参照图1的用户系统105和卖方系统120所述的任何合适客户机装置和服务器装置。RC可以由客户机4610根据例如在图45中的处理流程4500的步骤4510中第一装置如何产生随机数来产生。这些证书中的每个可以与由不同的认证机构发放的公钥关联,这与参照图45中的处理流程4500的步骤4510讨论的证书的列表相似。处理流程4600然后进行到步骤4622。

在步骤4622,服务器4620向客户机4610发送其自己产生的随机数RS和其证书Cert-CA1S、Cert-CA2S和Cert-CA3S的列表。RS可以由服务器4620根据在图45中的处理流程4500的步骤4510中第二装置产生的随机数来产生。这些证书中的每个可以与由唯一的认证机构发放的公钥关联,这与参照图45中的处理流程4500的步骤4510讨论的多个唯一认证机构的多个公钥相似。处理流程4600然后进行到步骤4614。

在步骤4614,客户机4610产生秘密信息。该秘密信息可以根据例如图45中的处理流程4500的步骤4515来产生。此外,在步骤4614,客户机4610将秘密信息SC分散成份S1C、S2C和S3C。该分散可以根据例如参照图45中的处理流程4500的步骤4520讨论的秘密信息的分散来执行。此外,在步骤4614,客户机4610使用服务器的公钥中的不同一个对秘密信息的各个份进行加密。例如,如果“Enc”表示安全数据解析器执行的加密函数,并且Pub1S、Pub2S和Pub3S分别表示与服务器的证书Cert-CA1S、Cert-CA2S和Cert-CA3S对应的公钥,则客户机可以使用Pub1S通过执行Enc(Pub1S,S1C)对S1C进行编码,可以使用Pub2S通过执行Enc(Pub2S,S2C)对S2C进行编码,并且可以使用Pub3S通过执行Enc(Pub3S,S3C)对S3C进行编码。可以从参照图45中的处理流程4500的步骤4525和4527描述的加密方法的任意组合中选择该加密函数。一旦秘密信息被产生、分散并加密,加密的份被发送到服务器4620。处理流程4600然后进行到步骤4624。

在步骤4624,服务器4620可以使用参照图45中的处理流程4500的步骤4525和4540描述的任何合适解密和恢复技术将秘密信息的多个份S1C、S2C和S3C解密并恢复为原始秘密信息。服务器4620然后可以使用恢复的秘密信息使用密钥产生函数G来产生共享加密密钥K。密钥产生函数G可以取随机数RC和RS以及恢复的秘密信息作为输入。在步骤4616,客户机4610可以使用密钥产生函数G类似地产生它自己的共享加密密钥K。然而,客户机4610执行的密钥产生函数可以使用由客户机4610产生的原始秘密信息,而不是服务器4620产生的恢复的秘密信息。处理4600然后进行到步骤4630。

在步骤4630,在客户机4610和服务器4620之间使用它们各自的共享加密密钥K来交换消息。在一些实施例中,与参照图45的处理流程4500的步骤4550描述的过程相似,客户机4610和服务器4620可以确定它们的共享加密密钥是否匹配。如果确定客户机4610和服务器4620各自的共享加密密钥不匹配,则不会交换消息或者可以在客户机4610和服务器4620之间停止交换消息。否则,与在密钥建立阶段之后的正常TLS或SSL通信相似,可以继续进行消息的交换。

在一些实施例中,安全代理服务可以驻留在在客户机4610上运行的客户机应用上。客户机应用可以基于服务器的IP地址或URL和端口号来维护启用了安全代理服务器的服务器(诸如服务器4620)的列表。在一些实施例中,客户机应用可以与服务器可寻址的地址关联。当客户机请求针对启用了安全代理服务的服务器的连接时,客户机应用可以利用在处理流程4400、4500和4600中描述的方案建立与指定的服务器代理服务的连接。另外,安全代理服务可以驻留在在服务4620上运行的服务器应用上。该服务器应用可以接受来自客户机应用的连接,并基于端口转发规则将它接收的数据转发给正确安全代理配置的端口。这些端口转发规则可以是预先确定的或者可由客户机应用和服务器应用互相达成一致。

通过处理流程4400、4500和4600描述的密钥建立阶段提供了如下保障:如果一些(但是少于定额的)认证机构已被危害,仍能在两个装置之间安全地建立连接。即,即使受危害的认证机构能访问在装置之间交换的信息,它们也不会有足够的信息来破坏通信的保密性或完整性。例如,如果有秘密信息的3个份,每份用不同的认证机构的公钥进行加密(如处理流程4600中所示),则认证机构之一可能被危害并且可在两个装置之间安全地建立连接。确保了安全性,因为即使受危害的认证机构能访问在两个装置之间传递的消息,与该受危害认证机构关联的攻击者也不会知道其它两个认证机构的公钥和私钥对,因此将至多能够恢复秘密信息的多个份中的一份。此外,因为秘密信息的多个份被分散为使得它们能够通过重新组合至少定额的份而用所述多个份的至少一个子集来进行恢复,所以在受危害认证机构之后的攻击者将无法仅使用一个恢复的份来构建原始秘密信息。因此,在受危害认证机构之后的攻击者将无法恢复秘密信息,并且将无法计算用于对第一装置和第二装置之间的消息进行加密的共享加密密钥。

在两个装置(希望在它们之间建立安全通信手段)之间发生的各种实施例中描述了处理流程4400、4500和4600。然而,在一些实施例中,处理流程4400可以发生在多于两个的装置之间。例如,可以使用处理流程4400建立个人计算机和一组web服务器之间的安全通信手段。该组中的每个web服务器可以在与第一装置的通信的密钥建立阶段使用不同的一组唯一认证机构。

图47和图48A及48B示出根据本发明的一个实施例的可以通过任何合适的增、删或改以任何合适组合使用的在装置之间建立安全代理服务的简化例示性处理流程4700、4800和4850。在处理流程4700、4800和4850中,在用于在装置之间交换消息的通信信道的结构中,在一组认证机构之间分布信任。在一些实施例中,可以在装置之间的安全信息交换的密钥建立阶段之后但在装置交换小心之前执行处理流程4700。处理流程4700、4800和4850可以是与如图37所示的安全数据解析器3706关联的一个或多个过程的一部分,或者可以是独立的过程。例如,步骤4710、4720、4730、4740、4750和4760可以是与如图37所示的安全数据解析器3706关联的后置加密过程3720的一部分,或者可以是独立的过程。

处理流程4700在步骤4710开始。在步骤4710,在装置之间建立通信信道。可以使用参照图1至图14描述的任何合适的信任引擎110来建立该通信信道。在一些实施例中,可以使用任何合适加密技术保护该通信信道以保护任何合适通信中的移动中数据。例如,可以使用常规的SSL、1/2SSL、全SLL、TLS、全TLS、RS1、OTP、RC4TM、三重DES、AES、IPSec、公钥加密、对称密钥加密、分裂密钥加密、多因素加密、或加密技术的任何合适组合来建立该通信信道。在一些实施例中,该通信信道可能不安全。例如,建立的通信信道可能通过明文承载数据。在一些实施例中,这些加密技术可以使用从认证机构发放的密钥。该认证机构可被称为“外部级认证机构”,因为它可以独立于用于保护参照下面的步骤4730描述的安全通信隧道的任何认证机构来保护第一通信信道。

另外,通信信道可以承载与电子邮件、流式数据广播和WiFi通信关联的数据。在一些实施例中,建立的通信信道可以利用任何数量的服务器或客户机侧技术,诸如CGI脚本、ASP或任何合适的web服务器技术。在一些实施例中,可以跨几种物理传输介质或物理路径建立通信信道。例如,可以在互联网、内联网、LAN、WiFi、蓝牙、WiMax中的一个或多个或任何合适的硬连线或无线通信装置或它们的任何组合上建立通信信道。每种物理传输介质可在在特定物理介质上交换消息的装置之间具有不同的网络拓扑结构。处理4700然后进行到步骤4720。

在步骤4720,可以基于在一组认证机构之间分布的信任在第一通信信道内建立任意数量的安全通信隧道。这些认证机构可被称为“内部级认证机构”,因为它们独立于任何外部级认证机构保护安全通信隧道内的通信。在一些实施例中,可以使用参照步骤4710描述的任何加密技术的任何合适密钥建立阶段来建立这些通信隧道。在一些实施例中,使用与第一通信信道所用加密技术不同的加密技术来建立安全通信隧道。例如,可以是使用AES建立通信信道,而使用全TLS建立安全通信隧道。在这个例子中,使用与参照图43的处理流程4300描述的密钥建立过程相似的密钥建立过程来建立各安全通信隧道。在一些实施例中,使用与第一通信信道相同的加密技术来建立安全通信隧道。例如,可以使用全TLS建立通信信道和各安全通信隧道。

在一些实施例中,可以使用相同的加密技术来建立多个安全通信隧道,例如,可以使用全TLS建立每个通信信道。在其它实施例中,可以使用不同的加密技术建立多个安全通信隧道,例如,可以使用全TLS建立一些加密隧道,而使用AES建立其它隧道。在一些实施例中,可以跨几种物理介质或物理路径建立安全通信隧道。例如,可以在互联网、内联网、LAN、WiFi、蓝牙、WiMax中的一个或多个或任何合适的硬连线或无线通信装置或它们的任何组合上建立安全通信隧道。每种物理传输介质可在在特定物理介质上交换消息的装置之间具有不同的网络拓扑结构。

不管使用哪些加密技术建立安全通信隧道,在步骤4720基于在多个认证机构中分布的信任建立隧道。在一些实施例中,可以通过基于唯一认证机构建立各个安全通信隧道来实现该分布的信任。在一些实施例中,每个安全通信隧道可以使用多个唯一认证机构中的发放了证书的一个认证机构来建立。在这种实施例中,在每个信道的使用由与该信道关联的唯一认证机构发放的证书的建立期间可以传送对称加密密钥材料。在这种实施例中,对称密钥加密材料可以是例如以上参照在全TLS中使用认证机构而讨论的对称加密密钥材料。每个认证机构可以是唯一的,因为每个认证机构发放的证书具有不同的公钥和私钥对。在一些实施例中,唯一认证机构可以是根认证机构。在其它实施例中,唯一认证机构可以是单个根认证机构的树内的次要认证机构,如参照图42中的认证机构层级4200所述。可以在每个安全通信隧道的密钥建立期间使用不同认证机构的唯一的公钥和私钥对。例如,如果安全通信隧道基于TLS,则可以使用多个唯一认证机构之一的证书,如参照图43的处理流程4300所述建立每个隧道。处理4700然后进行到步骤4730。

在步骤4730,基于该组认证机构和多因素秘密共享,准备用于在安全通信隧道上传输的数据包。在一些实施例中,该准备可以包括使用在一个不同的通信隧道的建立期间形成的密钥对数据包进行加密。在一些实施例中,该密钥可以是使用对称加密密钥材料产生的对称密钥,对称加密密钥材料在每个信道使用与该信道关联的唯一认证机构的证书进行建立期间被传送。另外,该准备可包括基于多因素秘密共享将每个数据包分散到多个份中,然后使用用于在步骤4720建立安全通信隧道的唯一认证机构的证书,对得到的份进行加密。该分散过程可以使用如参照图5和图6的数据分裂模块520或610所述并且参照图8和图20至24详述的任何合适的数据分裂或密码术分裂来实现。

另外,在一些实施例中,可以实质上通过任意次数地使用参照图33、图35和图36概述的安全数据解析器将数据包分散到多个份中。例如,安全数据解析器可以接收未加密的数据包。如果这些包将要用需要密钥的算法分裂,则产生分裂加密密钥。在一些实施例中,可以在根据参照图33、图35和图36描述的任何技术的步骤中将数据包分裂到多个份中。在一些实施例中,可以使用容错方案对分裂加密密钥进行加密,并允许从少于总数的份中重新产生这些数据包。例如,可以使用任何合适的数据分散技术将数据包分散到多个份中,以使得通过重新组合至少定额的份从至少所述多个份的子集能恢复所述多个份。另外,可以向数据包的份添加用于重构数据包的信息。此外,一旦创建了份,可将认证/完整性信息嵌入到数据包的份中。每个份可以使用用于在步骤4720建立安全通信隧道的唯一认证机构的公钥而被后置加密。

另外,在一些实施例中,数据包的分散可以在两个阶段发生:首标产生阶段和数据划分阶段。这些阶段可以是例如如图40A所示的简化首标产生过程4000和如图40B所示的简化数据划分过程4010。可以对数据包执行这些过程中的一个或两个。在一些实施例中,可以基于用于建立第一通信信道的加密技术对数据包进行前置加密。前置加密后的数据包然后可以经历过程4000和/或4010,如下所述。

如图40A的步骤4002所示,可以产生分裂密钥。然后可在步骤4004对未加密或前置加密的数据包进行可选的加密(例如,使用参照图39描述的工作组密钥)。在步骤4006,可以使用“N中取M密码术分裂”使用分裂密钥将数据包分裂成秘密信息的多个份。数据包的每个份然后可被嵌入到份首标中。最后,可将份完整性块和后置认证标记(例如,MAC)附加到每个份的首标块。每个首标块可被设计为适合放于单个加密数据包内。可以使用在步骤4720在一个不同的通信隧道的建立期间形成的密钥对每个首标块进行后置加密。

在一些实施例中,在产生包括秘密信息的份的首标后,安全数据解析器可以进入数据划分阶段。该数据划分阶段例如可以是如图40B所示的简化数据分裂过程4010。例如,在步骤4012,可以使用一个或多个密钥(诸如共享密钥或工作组密钥)对每个到来的未加密或前置加密的数据包进行加密。在一些实施例中,被加密的数据可包括在简化首标产生过程4000期间计算的包含数据包的份的首标。在步骤4014,可以对从步骤4012得到的密文计算份完整性信息(例如,哈希值H)。例如,可以对在步骤4012用一个或多个密钥加密的数据计算SHA-256哈希值。在步骤4106,然后可使用以上根据本发明描述的数据分裂算法之一将数据包划分为两个或更多个份。在一些实施例中,可以将数据包或数据块分裂,从而使每个数据份包含加密的数据包或数据块的基本上随机的分布。然后可将完整性信息(例如,哈希值H)附加到每个数据份。在一些实施例中,还可计算可选的后置认证标记(例如,MAC)并将其附加到每个数据份。另外,每个数据份可包括如参照图40B所述的元数据。该元数据可包括关于数据包的信息以及用于产生数据包的多个份的工作组密钥。可以使用在步骤4720用于建立安全通信隧道的唯一认证机构的公钥对每个数据包的份进行后置加密。

在一些实施例中,可将数据包的多个份与加密密钥或数据分裂密钥的多个份关联,这与如图38和39中的例示性框图3800和3900所示的如何将密钥分量和数据分量存储在多个份内相似。例如,可以与如何将加密密钥3804的多个部分分裂并存储在多个份3810内相似地存储数据包的多个份。当利用工作组密钥时,如例示性框图3900所示,可以在存储在多个份内之前用工作组密钥对数据的多个份进行加密。

不管如何将数据包分散到多个份中,可以使用在步骤4720在一个不同的通信隧道的建立期间形成的密钥对每个份进行后置加密。例如,在一些实施例中,在步骤4720可能建立了三个安全通信隧道,每个具有一个唯一认证机构。然后可以使用在一个不同的通信隧道的建立期间形成的密钥对在步骤4730产生的每个份进行加密。在一些实施例中,这些密钥可以是使用对称加密密钥材料产生的对称密钥,所述对称加密密钥材料是使用三个唯一认证机构在每个信道的建立期间传送的。处理4700然后进行到步骤4740。

在步骤4740,准备的数据包被发送到它们的目的地。该发送可以发生在任何合适的通信信道(诸如参照图1中的通信链路105描述的通信信道)上。在一些实施例中,包的目的地可以是启用了安全数据代理的服务器中的一个或多个。在客户机装置上运行的客户机应用可以基于服务器的IP地址或URL和端口号维护启用了安全代理服务器的服务器的列表。在一些实施例中,客户机应用可以与服务器可寻址的地址关联。当客户机请求针对启用了安全代理服务的服务器的连接时,客户机应用利用在步骤4710和4720中描述的方案建立与指定服务器代理服务的连接。一旦准备的数据被发送到其目的地,处理4700然后进行到步骤4750。

在步骤4750,发送的数据包被接收。在一些实施例中,发送的数据包可被位于在启用了安全数据代理的服务器上运行的服务器应用上的安全代理服务接收。该服务器应用可以接受来自客户机应用的连接,并基于端口转发规则将它接收的数据转发到正确的安全代理配置端口。这些端口转发规则可以预先确定或者由客户机应用和服务器应用互相达成一致。处理4700然后进行到步骤4760。

在步骤4760,基于该组认证机构和多因素秘密共享,恢复数据包。在一些实施例中,该恢复可以是步骤4730中用于对数据包进行解析和加密的准备过程的镜像过程。例如,在步骤4730,可能已使用与在步骤4720的安全通信隧道的建立关联的密钥对数据包进行了加密。另外,可能已使用根据参照图33、图35和图36描述的任一技术的安全数据解析器的分散技术来产生未加密或前置加密的数据包的多个份。在一些实施例中,可以基于用于建立第一通信信道的加密技术对数据包的多个份进行加密。

因此,可以首先基于与步骤4720的安全通信隧道的建立关联的密钥对数据包的多个份进行解密。然后可使用根据参照图34描述的任一技术的安全数据解析器的恢复功能将解密的份恢复。在一些实施例中,可以基于用于建立第一通信信道的加密技术对恢复的份进行解密。在一些实施例中,解密的数据份可被嵌入在份首标中。在这种实施例中,可从解密的份首标中提取数据份,并使用安全数据解析器的恢复功能进行恢复。处理流程4700然后结束。在一些实施例中,为了在安全通信隧道上发送数据,可以根据需要重复步骤4730、4740、4750和4760。

可以在第一装置(诸如请求使用安全代理服务与第二装置(诸如web服务器)进行通信的个人计算机上运行的客户机侧应用)上执行参照图48A(处理流程4800)描述的安全代理服务的实施例。处理流程4800在步骤4810开始。在步骤4810,可以建立第一安全通信信道。可以使用利用如参照图47的处理流程4700中的步骤4710所述的任何合适加密技术的密钥的密钥建立过程来建立该安全通信信道。在一些实施例中,从称为“外部级认证机构”的认证机构发放这些密钥。另外,该通信信道可以携载与任何合适应用关联的数据,如参照图47的处理流程4700中的步骤4710所述。此外,可以跨几种物理传输介质建立该通信信道,如参照图47的处理流程4700中的步骤4710所述。处理4800然后进行到步骤4815。

在步骤4815,可以在第一通信信道内建立任意数量的安全通信隧道(例如1个、2个、3个、5个、10个、50个、100个、或多于100个安全通信隧道)。可以使用从唯一认证机构获得的证书建立每个安全通信信道,每个隧道可与各自的唯一认证机构关联。在一些实施例中,可以在每个信道的使用由与该信道关联的唯一认证机构发放的证书的建立期间传送对称加密密钥材料。在这种实施例中,对称密钥加密材料可以是例如以上参照在全TLS中使用认证机构所述的对称加密密钥材料。与图47的处理流程4700相似,用于建立安全通信隧道的唯一认证机构可被称为“内部级认证机构”。可以使用利用如参照图47的处理流程4700的步骤4720所述的在一种或多种物理传输介质上的任何合适加密技术的密钥建立过程来建立每个安全通信隧道。此外,与图47的处理流程4700的步骤4720相似,每个认证机构可以是唯一的,因为每个认证机构发放的证书具有不同的公钥和私钥对。在一些实施例中,每个安全通信隧道可与各自的唯一认证机构关联,在该隧道上发送的所有数据基于在通信隧道的建立期间形成的密钥进行加密。在一些实施例中,可以由客户机应用、服务器应用或这两者的安全数据解析器以任何合适数据结构跟踪该关联。处理4800然后进行到步骤4820。

在步骤4820,可以使用多因素秘密共享将到来的数据包用密码术分裂成任何数量的份。在一些实施例中,到来的数据包可被分裂成与在步骤4815建立的安全通信隧道的数量相同的数量的份。可以根据例如参照图47的处理流程4700的步骤4730讨论的任何合适分散技术实现到来的数据包的密码术分裂。处理4800然后进行到步骤4825。

在步骤4825,使用在一个不同的安全通信隧道的建立期间形成的密钥对每个份进行加密。在一些实施例中,该密钥可以是使用对称加密密钥材料产生的对称加密密钥,该对称加密密钥材料是在每个信道使用与该信道关联的唯一认证机构的证书进行建立期间传送的。在一些实施例中,该对称加密密钥材料可以是例如参照以上在全TLS中使用认证机构所描述的对称加密密钥材料。但是,应该理解,在安全通信隧道的建立期间形成的密钥可以是除了对称加密密钥之外的任何合适的加密密钥、秘密信息或任何其它信息。例如,在安全通信隧道的建立期间形成的密钥可以是非对称加密密钥。在一些实施例中,在步骤4820产生的每个份被预处理并用一个或多个比特进行标记,该一个或多个比特识别与通信隧道的建立关联的哪个密钥应被用于对每个份进行加密。处理4800然后进行到步骤4830。

在步骤4830,每个加密的份在与唯一认证机构关联的隧道上被发送,其中在该唯一认证机构下建立了该隧道。例如如果存在分别基于三个唯一认证机构中的不同一个建立的三个安全通信隧道,则每个到来的未加密或前置加密数据包将使用多因素秘密共享被用密码术分裂成三份,并使用使用三个唯一认证机构中的不同一个在三个安全通信隧道的建立期间形成的三个密钥中的不同一个进行加密。因此,三个加密的份中的每一个将在与唯一认证机构关联的隧道(在该唯一认证机构下建立了该隧道)上被发送。在一些实施例中,该发送可以基于保持认证机构和隧道之间的关联的数据结构。

在一些实施例中,认证机构和安全通信隧道之间的关联可以在数据传输的整个持续期间保持不变。在其它实施例中,认证机构和安全通信隧道之间的关联可以是动态的。在这种实施例中,可以在任何合适的时间点,诸如在整个数据包的传输之后,搅乱该关联。例如,可以通过处理流程4800处理第一数据包,其中在步骤4820数据包被密码术分裂成三份。第一数据包的第一份可以使用在使用第一认证机构建立第一安全通信隧道期间形成的第一密钥进行加密并且在第一通信隧道上发送。第一数据包的第二份可以使用在使用第二认证机构建立第二安全通信隧道期间形成的第二密钥进行加密并且在第二通信隧道上发送。最后,第一数据包的第三份可以使用在使用第三认证机构建立第三安全通信隧道期间形成的第三密钥进行加密并且在第三通信隧道上发送。

在一些实施例中,在第一数据包的三个份被传送后,认证机构和通信信道之间的关联可被搅乱,以使得第一份可以使用第三密钥进行加密并且在第三隧道上发送,第二份可以使用第一密钥进行加密并且在第一隧道上发送,第三认证机构可以使用第二密钥进行加密并且在第二隧道上发送。在这种实施例中,这些关联可被存储在通信中的装置可访问的任何合适的储存器(诸如图2的储存器210)中。

可以在在第二装置(诸如web服务器)上运行的客户机侧安全代理服务器应用上执行参照图48B(处理流程4850)描述的安全代理服务的实施例,该第二装置与诸如运行客户机侧安全代理服务应用的个人计算机的第一装置交换信息。处理流程4850在步骤4835开始。在步骤4835,在各个通信隧道上均接收到加密的数据份。服务器应用可接受来自客户机应用的连接,并基于端口转发规则将它接收的数据转发给正确的安全代理配置端口。这些数据份可以是分别在图48A的处理流程4800的步骤4820、4825和4830中进行了密码术分裂、加密和发送的同样的份。处理流程4850然后进行到步骤4840。

在步骤4840,每个份基于与接收该份的各个安全通信隧道的建立关联的密钥进行解密。在一些实施例中,该过程可以是参照图48的处理流程4800的步骤4825描述的过程的镜像过程。处理流程4850然后进行到步骤4845。

在步骤4845,解密的数据包份被恢复为原始数据包。在一些实施例中,该恢复可以是在图48的处理流程4800的步骤4820使用的分散技术的镜像过程。在一些实施例中,基于用于建立第一通信信道的数据分散和/或加密技术对恢复的份进行解密。处理流程4800然后结束。在一些实施例中,为了在安全通信隧道上传输数据,处理流程4800和4850的步骤可以根据需要被重复。

参照处理流程4700、4800和4850描述的通信协议提供了如下保证:如果某些外部级或内部级认证机构已被危害,在装置之间仍将安全地交换数据。即,即使受危害的认证机构能访问基于与该认证机构关联的密钥而交换的信息,与该受危害认证机构关联的攻击者也不会有足够的信息来破坏通信的保密性或完整性。例如,如果外部级认证机构被危害但内部级认证机构保持其完整性,则攻击者将能够观察每个安全通信隧道内的数据流。然而,攻击者不会有在每个安全通信隧道内使用的加密的知识,包括用于在各个安全通信隧道上保护数据的各个唯一认证机构的证书的知识。

在另一例子中,如果内部级认证机构中的一个或多个被危害但外部级认证机构保持完好,则攻击者可能能够恢复数据包的密码术分裂部分,但是将不能对密码术分裂部分进行解密,因为攻击者不会知道外部级认证机构使用的加密。此外,如果通过安全通信隧道发送的数据包被密码术分裂为使得它们能够通过重新组合至少定额的份而从至少所述份的子集恢复,则安全数据解析器的用户可以具有额外的保护,即,如果一些但是少于定额的与安全通信隧道关联的证书被泄露,攻击者将不能恢复密码术分裂的数据包。

图48C是根据本发明的一个实施例的可以通过任何合适的增、删或改以任何合适组合使用的在通信信道的结构中在一组认证机构之中分布信任的安全代理服务4870的简化框图。安全代理服务4870可以位于如参照图1-8所述的任何合适的信任引擎110或信任引擎110内的模块上。安全代理服务被示出为包括使用全TLS建立的第一通信信道4880和子信道(即,安全通信隧道)4872、4874、4876。然而,应该理解,可以利用任何合适的加密技术或者无加密地建立和使用这些通信信道,如参照图47中的处理流程4700的步骤4710和4720所述,或者如参照图48A的处理流程4800的步骤4810和4815所述。另外,尽管安全代理服务4870被示出为使用三个子信道,但是可以使用任何合适数量的子信道在安全代理服务4870上安全地传送信息。

安全代理服务4870可包括接收的数据包4877。在一些实施例中,数据包4877可以是要由安全代理服务4870处理的未加密的数据包。数据包4877可以从任何合适的源接收,诸如参照图2的信任引擎210描述的储存器210。在其它实施例中,数据包4877可以根据用于建立通信信道4880的加密技术被前置加密。例如,如在安全代理服务4870中所示,使用全TLS建立通信信道4880。可以根据图43的处理流程4300建立该全TLS通信信道。

安全代理服务4870还可包括密码术包分裂模块4878。在一些实施例中,密码术包分裂模块4878可包括用于执行和/或计算参照图47的处理流程4700的步骤4730所述或者参照图48A的处理流程4800的步骤4820和4825所述的任何加密和数据分散技术的任何电路和/或指令。在一些实施例中,密码术包分裂模块4878可以驻留于请求与服务器通信的客户机装置或客户机侧应用上。在其它实施例中,密码术包分裂模块4878可以驻留于或运行于适于运行图37的例示性概要过程3700的安全数据解析器3706的任何装置上。

安全代理服务4870还可包括通信信道4880。可以使用任何合适的加密技术或者无加密地在一种或多种物理介质上建立通信信道4880,如参照图47的处理流程4700的步骤4710的第一通信信道所述或者参照图48A的处理流程4800的步骤4810的第一安全通信信道所述。可以基于通信信道4880建立子信道4872、4874和4876。根据例如参照图47的处理流程4700的步骤4720所述或者参照图48A的处理流程4800的步骤4815所述的安全通信隧道,基于唯一认证机构的证书在一种或多种物理介质上建立这些子信道。这样,每个子信道可以与一个唯一认证机构关联。

例如,如安全代理服务4870中所示,TLS子信道4872与认证机构CA1关联,TLS子信道4874与认证机构CA2关联,TLS子信道4876与认证机构CA3关联。在一些实施例中,子信道和其对应认证机构之间的关联可以保持恒定。在其它实施例中,如参照图48A的处理流程4800的步骤4830所述,子信道和其对应认证机构之间的关联可以改变。可以在任何合适通信链路(诸如参照图1的密码系统100描述的通信链路125)上建立通信信道4880和子信道4872、4873和4876。

在一些实施例中,密码术包分裂模块4878可在子信道4872、4874和4876上发送数据包4877的分散份。该发送可以根据例如图47的处理流程4700的步骤4740或者根据例如图48A的处理流程4800的步骤4830而发生。在一些实施例中,密码术包分裂模块4878可以在子信道4872、4874和4876的每个上发送分裂份之一。在其它实施例中,密码术包分裂模块4878可在子信道4872、4874和4876中的一个或多个上发送多于一个的分裂份。这种实施例在子信道4872、4874和4876之一由于支持子信道之一的物理介质的故障而不能使用时是有用的。

在一些实施例中,子信道4872、4874和4876可分别包括数据加密模块4871、4873和4875。数据加密模块4871、4873和4875可分别与一个唯一认证机构关联(该唯一认证机构与子信道之一关联)。在一些实施例中,数据加密模块将数据加密应用于在子信道上传递的数据包的每个份。例如,如参照代理服务4870所示,加密模块4871与认证机构CA1关联(认证机构CA1与TLS子信道4872关联),并且基于在信道4872的建立期间形成的密钥使用全TLS对在子信道4872上传递的数据包的每个份进行加密。信道4872的建立可能已使用从认证机构CA1获得的证书。加密模块4873与认证机构CA2关联(认证机构CA2与TLS子信道4874关联),并且基于在信道4874的建立期间形成的密钥使用全TLS对在子信道4874上传递的数据包的每个份进行加密。信道4874的该建立可能已使用从认证机构CA2获得的证书。最后,加密模块4875与认证机构CA3关联(认证机构CA3与TLS子信道4876关联),并且基于在信道4876的建立期间形成的密钥使用全TLS对在子信道4876上传递的数据包的每个份进行加密。信道4876的该建立可能已使用从认证机构CA3获得的证书。在一些实施例中,加密模块4872可驻留或运行于适于运行图37的例示性过程3700的安全数据解析器3706的任何装置上。

安全代理服务4870还可包括包恢复模块4879。包恢复模块可以从子信道4872、4874和4876接收数据包的份,如参照图47的处理流程4700的步骤4750所述或者参照图48B的处理流程4850的步骤4835所述。在一些实施例中,包恢复模块4879可包括用于执行和/或计算如参照图47的处理流程4700的步骤4760所述或者参照图48B的处理流程4850所述的步骤4840和4845所述的产生恢复的数据包4882的任何解密技术或包恢复技术的任何电路和/或指令。在一些实施例中,恢复包模块4879可以驻留于从客户机装置或客户机侧应用接收请求的服务器装置或服务侧应用上。在其它实施例中,包恢复模块4879可驻留或运行于适于运行图37的例示性概要过程3700的安全数据解析器3700的任何装置上。

图49是根据本发明的一个实施例的可以通过任何合适的增、删或改以任何合适组合使用的在通信信道的结构中在一组认证机构之中分布信任的客户机4910和服务器4920之间的安全代理服务4900的例示性步骤和特征的处理流程图。例如,如将在下面描述的,作为密钥建立阶段4570的一部分,可在第一认证机构CA1、第二认证机构CA2和第三认证机构CA3中分布信任。在一些实施例中,可在客户机4910和服务器4920之间的安全信息交换的密钥建立阶段期间和之后但在客户机4910和服务器4920交换消息之前执行安全代理服务4900。安全代理服务器4900可以是与安全代理服务器关联的一个或多个过程的一部分,这与如何将处理流程4700、4800和4850的步骤与安全数据解析器关联相似。另外,安全代理服务4900可以是图47、48A和48B的处理流程4700、4800和4850的例子,或者可以是安全代理服务4870的操作的例子。

安全代理服务4900在步骤4930开始。在步骤4930,如参照图47的处理流程4700的步骤4710和4720的第一通信信道和安全通信隧道以及参照图48A的处理流程4800的步骤4810和4820的第一安全通信信道和安全通信隧道所述,客户机4910建立第一通信信道(未示出)和安全通信隧道。安全代理服务4900然后进行到步骤4912。

在步骤4912,客户机4910可以产生安全数据解析器首标H1、H2和H3,并把它们发送到服务器4920。首标H1、H2和H3可包含与由客户机4910和服务器4920达成一致的数据分散技术相关的信息。例如,在一些实施例中,客户机4910和服务器4920可达成一致:对于每个交换消息使用“N中取M密码术分裂”。可以基于与在步骤4930建立安全通信隧道关联的密钥对首标H1、H2和H3进行加密。在一些实施例中,可包括该加密和首标产生作为参照图47的处理流程4700的步骤4730所述或参照图48A的处理流程4800的步骤4820和4825所述的任何加密和数据分散技术的一部分。另外,在一些实施例中,该首标产生过程可以由密码术包分裂模块4878执行,如参照图48C的安全代理服务4870所述。客户机4910然后可将首标H1、H2和H3发送到服务器4920。该发送可根据例如图47的处理流程4700的步骤4740或者根据例如图48A的处理流程4800的步骤4830而发生。另外,如参照图48C中的安全代理服务4870所述,密码术包分裂模块4878可在子信道4872、4874和4876上发送数据包4877的首标H1、H2和H3。安全代理服务4900然后进行到步骤4922。

在步骤4922,服务器4920可接收首标H1、H2和H3,如参照图47的处理流程4700的步骤4750所述或参照图48B的处理流程4850的步骤4835所述。客户机4910然后可将数据D分散到份D1、D2和D3中。可以基于与步骤4930的安全通信隧道的建立关联的密钥对份D1、D2和D3进行加密。在一些实施例中,可以包括该分散过程作为如参照图47的处理流程4700的步骤4730所述或参照图48A的处理流程4800的步骤4820和4825所述的任何加密和数据分散技术的一部分。安全代理服务4900将加密和解析的数据份发送到客户机4910。该发送可根据例如图47的处理流程4700的步骤4740或者根据例如图48A的处理流程4800的步骤4830而发生。安全代理服务4900可以进行到步骤4914。

在步骤4914,客户机4910可接收份D1、D2和D3,如参照图47的处理流程4700的步骤4750所述或参照图48B的处理流程4850的步骤4835所述。在一些实施例中,包恢复模块可从子信道接收数据包的份,如参照图48C中的安全代理服务4870的包恢复模块4879所述。客户机4910然后可解密并恢复份D1、D2和D3。可以根据如参照图47的处理流程4700的步骤4760所述或参照图48B的处理流程4850所述的步骤4840和4845所述的任何合适解密和恢复技术,对份进行解密和恢复。在一些实施例中,可由包恢复模块(诸如图48C中的安全代理服务4870的包恢复模块4879)对份D1、D2和D3进行解密和恢复。客户机4910可重复步骤4912和4914中的任意步骤需要的次数并且服务器4920可重复步骤4922需要的次数,以在客户机4910和服务器4920之间发送数据。安全代理服务4900然后结束。

图50是根据本发明的一个实施例的可以通过任何合适的增、删或改以任何合适组合使用的在通信信道的结构中在一组认证机构之中分布信任的客户机5010和服务器5020之间的安全代理服务5000的简化框图。安全代理服务5000可以是例如参照处理流程4700、4800或4850所述的安全代理服务,以及参照图47-49所述的安全代理服务4870或4900。安全代理服务5000可被实现为使得安全通信隧道5030、5040和5050中的每一个与一个外部级认证机构(图50中未示出)关联,如参照图47的处理流程4700的步骤4710和图48A的处理流程4800的步骤4810所述。另外,安全代理服务5000可被实现为使得安全通信隧道5030、5040和5050中的每一个与一个不同的内部级认证机构(诸如第一认证机构CA1、第二认证机构CA2、第三认证机构CA3)关联,并且在不同的物理传输介质上建立安全通信隧道5030、5040和5050中的每一个。这些不同的物理介质可以是如参照图47的处理流程4700的步骤4710或参照图48A的处理流程4800的步骤4810所述的任何合适物理传输介质。例如,如图50所示,可以分别在WiFi、以太网和蜂窝通信信道上建立安全通信隧道5030、5040和5050。

在安全代理服务5000的正常操作期间,客户机5010可以在第一安全通信隧道5030上发送第一数据份5012,在第二安全通信隧道5040上发送第二数据份5014,在第三安全通信隧道5050上发送第三数据份5016。数据份5012、5014和5016可以是客户机5010使用参照图47的处理流程4700的步骤4730所述或参照图48A的处理流程4800的步骤4820和4825所述的任何合适数据分散和加密技术计算的数据份。尽管安全代理服务5000被例示为把数据分裂成3个数据份,但应该理解,安全代理服务5000可将数据分散成任何合适数量的份并在任何合适数量的安全通信隧道上将它们分别发送。

在一些实施例中,物理介质之一可能经历网络故障。该网路故障可能由于物理介质的结构失灵而引起。例如,如安全代理服务5000中所示,用于建立第三安全通信隧道5050的蜂窝通信信道可能经历由于蜂窝塔损坏导致的网络故障。

在一些实施例中,安全代理服务5000不会响应于网络故障(在图50中未示出)而改变在安全通信隧道5030、5040和5050上的数据包的发送。换言之,客户机5010会继续在第一安全通信隧道5030上发送第一数据份5012,并继续在第二安全通信隧道5040上发送第二数据份5014。在安全代理服务5000的一些实施例中,包括第一数据份5012和第二数据份5014的数据包可被继续交换而不损失数据完整性。例如,如果安全代理服务5000处理的数据包使用秘密共享算法(例如Shamir秘密共享算法)被分裂为使得仅需定额的数据份5012、5014和5016来恢复每个发送的数据包,则在客户机5010和服务器5020之间交换的包之间的数据完整性可能并未损失。

在一些实施例中,安全代理服务5000可改变在安全通信隧道上的数据包的发送。例如,第一数据份5012可继续在基于wifi的安全通信隧道5030上发送,而第二数据份5014和第三数据份5014可在基于以太网的安全通信隧道5040上发送。在这种实施例中,安全通信隧道中的一个或多个可能需要使用附加的密钥建立过程被分裂到一个或多个安全通信隧道中。可以根据例如参照图47的处理流程4700的步骤4720或图48的处理流程4800的步骤4820所述的任何密钥建立阶段来实现该分裂。在这些附加的密钥建立阶段之后,可根据安全代理服务5000的新配置继续进行数据包的数据份。

在一些实施例中,安全代理服务5000的该新配置可改变如何基于与安全通信隧道的建立或安全通信隧道的分裂部分关联的密钥对分裂的数据份进行加密。例如,第一数据份5012可以基于与基于wifi的第一安全通信隧道5030的建立关联的密钥进行加密,然后在该隧道上发送。第二数据份5014可以基于与基于以太网的第二安全通信隧道5040的第一分裂部分5042的建立关联的密钥进行加密,然后在第一分裂部分5042上发送,第三数据份5016可以基于与基于以太网的安全通信隧道5040的第二分裂部分5044的建立关联的密钥进行加密,然后在第二分裂部分5044上发送。在一些实施例中,可以使用从认证机构CA1获得的证书建立第一安全通信隧道5030,可以使用从认证机构CA2获得的证书建立基于以太网的第二安全通信隧道5040的第一分裂部分5042,可以使用从认证机构CA3获得的证书建立基于以太网的安全通信隧道5040的第二分裂部分5044。在一些实施例中,当建立了安全通信隧道的通信信道发生故障或被恢复时,安全代理服务5000可以自适应地执行这些附加的密钥建立过程。在如图50所示的安全代理服务5000的实施例中,安全代理服务5000可被称为“通信介质冗余”。

在如图50所示的安全代理服务5000的实施例中,可以不损失数据保密性、完整性和真实性地在客户机5010和服务器5020之间交换数据。即,即使受危害的认证机构能访问基于该认证机构交换的信息,与该认证机构关联的攻击者也不会具有足够的信息来破坏通信的保密性或完整性。例如,如果安全代理服务5000的外部级认证机构被危害但内部级认证机构的完整性得以保留,则攻击者能够观察基于WiFi的通信信道和基于以太网的通信信道的两个部分上的数据流,但是不会知道用于在每个安全通信隧道上保护数据的加密。

在另一例子中,如果内部级认证机构中的一个或多个被危害但外部级认证机构保持完好,则攻击者可能能够恢复数据包的一些密码术分裂部分,但是将不能对数据包自身进行解密,因为攻击者不会知道外部级认证机构使用的加密。此外,如果通过安全通信隧道发送的数据包被密码术分裂为使得它们能够通过重新组合至少定额的份而从至少所述多个份的子集恢复,则安全数据解析器的用户可以具有额外的保护,即,如果一些但是少于定额的与安全通信隧道关联的证书被泄露,攻击者仍将不能恢复密码术分裂的数据包。

此外,鉴于本文的公开,熟练技术人员将容易想到其它的组合、添加、替代和修改。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1