安全文件共享方法与系统的制作方法

文档序号:7989147阅读:286来源:国知局
安全文件共享方法与系统的制作方法
【专利摘要】本公开涉及安全文件共享方法与系统。提供了用于安全共享数据的系统与方法。处理器形成利用对称密钥加密的数据集的两个或更多个份并使加密数据集的份彼此独立地存储在至少一个远程存储位置,其中数据集与第一用户设备关联。通过分别利用与第一用户设备和第二用户设备关联的第一和第二不对称密钥对的第一不对称密钥加密指示对称密钥的数据,处理器生成第一和第二加密密钥,并且使加密的密钥存储在至少一个存储位置。为了恢复数据集,需要预定数量的两个或更多个加密数据集份及第一和第二不对称密钥对的至少一个第二不对称密钥。
【专利说明】安全文件共享方法与系统
[0001]对相关申请的交叉引用
[0002]本申请要求2011年3月7日提交的美国临时申请号61/450,110的优先权,该申请的内容在此全部引入作为参考。

【发明内容】

[0003]本文所述的是用于安全共享数据和访问安全共享的数据的系统与方法。在有些方面,提供了安全共享数据的方法,该方法的步骤由编程的计算机系统实现。形成一个加密数据集的两个或更多个份(share)。加密的数据集代表与第一用户设备关联并且利用对称密钥加密的数据集。每个加密数据集份都包括来自该加密数据集的一部分数据,而且使得这(该)两个或更多个加密数据集份彼此独立地存储在至少一个存储位置。这至少一个存储位置可以包括云计算存储位置。第一加密的密钥是通过利用与第一用户设备关联的第一不对称密钥对的第一不对称密钥加密指示对称密钥的数据生成的。第二加密的密钥是通过利用与第二用户设备关联的第二不对称密钥对的第一不对称密钥加密指示对称密钥的数据生成的。在有些实现中,该方法包括在生成第二加密的密钥之前从注册服务器访问第二不对称密钥对的第一不对称密钥。使第一和第二加密的密钥存储在至少一个存储位置,该位置远离第一和第二用户设备。为了恢复数据集,需要预定数量的两个或更多个加密数据集份及第一不对称密钥对的第二不对称密钥和第二不对称密钥对的第二不对称密钥中的至少一个。
[0004]在有些实现中,指示对称密钥的数据是对称密钥。在有些实现中,指示对称密钥的数据是利用工作组密钥加密的对称密钥。在有些此类实现中,恢复数据集需要该工作组密钥。第二用户设备可以与能够访问该工作组密钥的工作组关联。
[0005]在有些实现中,该方法包括形成第一和第二加密的密钥的两个或更多个份,每个加密密钥份都包括来自第一和第二加密的密钥的一部分数据。在有些此类实现中,使得第一和第二加密的密钥存储在至少一个存储位置包括使得两个或更多个加密密钥份彼此独立地存储在至少一个存储位置。为了恢复第一和第二加密的密钥,需要预定数量的两个或更多个加密密钥份。
[0006]在有些实现中,该方法包括,为与对应多个用户设备关联的对应多个不对称密钥对的多个第一不对称密钥中的每一个,通过利用第一不对称密钥加密指示对称密钥的数据生成多个加密的密钥。使得这多个加密的密钥存储在至少一个存储位置(这可以包括在两个或更多个加密数据集份中每一份的头部中传输多个加密的密钥)。为了恢复数据集,需要预定数量的两个或更多个加密数据集份及第一不对称密钥对的第二不对称密钥、第二不对称密钥对的第二不对称密钥和多个不对称密钥对的多个第二加密密钥中的至少一个。
[0007]在有些方面,提供了用于访问安全共享数据集的方法,该方法的步骤由编程的计算机系统实现。访问存储在至少一个存储位置的第一加密的密钥。该第一加密的密钥包括指示利用与第一用户设备关联的第一不对称密钥对的第一不对称密钥加密的对称密钥的数据。在有些实现中,在访问第一加密的密钥之前,第一不对称密钥对的第一不对称密钥提供给注册服务器。所述至少一个存储位置远离第一用户设备并且远离与第一用户设备不同的第二用户设备。所述至少一个存储位置还存储第二加密的密钥,该第二加密的密钥包括指示利用与第二用户设备关联的第二不对称密钥对的第一不对称密钥加密的对称密钥的数据。指示对称密钥的数据是通过利用第一不对称密钥对的第二不对称密钥解密第一加密的密钥来恢复的。访问存储在所述至少一个存储位置的(由第二用户设备利用对称密钥加密的)预定数量的两个或更多个加密数据集份。然后,利用预定数量的加密数据集恢复数据集。
[0008]在有些方面,提供了用于安全共享数据的方法,该方法的步骤由编程的计算机系统实现。形成加密数据集的两个或更多个份,该加密的数据集代表与第一用户设备关联并且利用对称密钥加密的数据集。每个加密数据集份都包括来自加密的数据集的一部分数据。对于包括第一用户设备在内的多个用户设备中的每一个,加密的密钥是通过利用与该用户设备关联的不对称密钥对的第一不对称密钥加密指示对称密钥的数据生成的。对于两个或更多个加密数据集份中的每一份,多个加密的密钥在加密数据集份的头部中分配,而且使得两个或更多个加密数据集份与头部存储在至少一个存储位置。为了恢复数据集,需要预定数量的两个或更多个加密数据集份及多个不对称密钥对中至少一个的第二不对称密钥。
[0009]还提供了配置成执行本文所述方法的系统与计算机可读介质。
【专利附图】

【附图说明】
[0010]以下联系附图更具体地描述本发明,附图是要说明而不是限定本发明,而且其中:
[0011]图1根据本发明一种实施例的各方面说明了密码系统的框图;
[0012]图2根据本发明一种实施例的各方面说明了图1信任引擎的框图;
[0013]图3根据本发明一种实施例的各方面说明了图2事务引擎的框图;
[0014]图4根据本发明一种实施例的各方面说明了图2存储库的框图;
[0015]图5根据本发明一种实施例的各方面说明了图2认证引擎的框图;
[0016]图6根据本发明一种实施例的各方面说明了图2密码引擎的框图;
[0017]图7根据本发明另一种实施例的各方面说明了存储库系统的框图;
[0018]图8根据本发明一种实施例的各方面说明了数据分割过程的流程图;
[0019]图9的面板A根据本发明一种实施例的各方面说明了注册过程的数据流;
[0020]图9的面板B根据本发明一种实施例的各方面说明了互操作性过程的流程图;
[0021]图10根据本发明一种实施例的各方面说明了认证过程的数据流;
[0022]图11根据本发明一种实施例的各方面说明了签署过程的数据流;
[0023]图12根据本发明另一种实施例的各方面说明了数据流和加密/解密过程;
[0024]图13根据本发明另一种实施例的各方面说明了信任引擎系统的简化框图;
[0025]图14根据本发明另一种实施例的各方面说明了信任引擎系统的简化框图;
[0026]图15根据本发明一种实施例的各方面说明了图14冗余性模块的框图;
[0027]图16根据本发明的一方面说明了用于评估认证的过程;
[0028]图17根据本发明图16中所示的一方面说明了用于给认证分配一个值的过程;[0029]图18说明了在图17所示本发明的一方面中用于执行信任仲裁的过程;及
[0030]图19根据本发明一种实施例的各方面说明了用户与卖方之间的样本事务,其中最初基于网络的联系导致双方签署的销售合同。
[0031]图20说明了具有密码服务提供者模块的样本用户系统,其中密码服务提供者模块向用户系统提供安全功能。
[0032]图21说明了用于解析、分割和/或分离数据的过程,加密主密钥与数据一起加密和储存。
[0033]图22说明了用于解析、分割和/或分离数据的过程,加密和存储加密主密钥与数据分开。
[0034]图23说明了用于解析、分割和/或分离数据的中间密钥过程,加密主密钥与数据一起加密和储存。
[0035]图24说明了用于解析、分割和/或分离数据的中间密钥过程,加密和存储加密主密钥与数据分开。
[0036]图25说明了由小型工作组利用本发明的密码方法和系统。
[0037]图26是根据本发明的一种实施例、采用安全数据解析器的说明性物理标记安全系统的框图。
[0038]图27是根据本发明的一种实施例、其中安全数据解析器集成到一个系统中的说明性布置的框图。
[0039]图28是根据本发明一种实施例的说明性运动数据(data in motion)系统的框图。
[0040]图29是根据本发明一种实施例的另一种说明性运动数据系统的框图。
[0041]图30-32是根据本发明一种实施例、具有集成的安全数据解析器的说明性系统的框图。
[0042]图33是根据本发明一种实施例、用于解析和分割数据的说明性过程的过程流程图。
[0043]图34是根据本发明一种实施例、用于将数据部分恢复成原始数据的说明性过程的过程流程图。
[0044]图35是根据本发明一种实施例、用于在位级分割数据的说明性过程的过程流程图。
[0045]图36是根据本发明一种实施例的说明性步骤与特征的过程流程图。
[0046]图37是根据本发明一种实施例的示例性步骤与特征的过程流程图。
[0047]图38是根据本发明一种实施例、在份内储存密钥和数据成分的简化框图。
[0048]图39是根据本发明一种实施例、使用工作组密钥在份内储存密钥和数据成分的简化框图。
[0049]图40A和40B是根据本发明一种实施例、用于对运动数据进行头部生成和数据分割的简化和说明性过程流程图。
[0050]图41是根据本发明一种实施例的说明性份格式的简化框图。
[0051]图42A-E是根据本发明一种实施例、绘出说明性安全共享系统的操作的框图。
[0052]图43说明了根据本发明一种实施例的一种实现,其中用户设备的密码共享客户端配置成执行组合的共享操作,以便与多个用户安全地共享一个数据集。[0053]图44是根据本发明一种实施例、用于安全地共享数据的一种方法的说明性步骤的流程图。
[0054]图45是根据本发明一种实施例、在执行图44步骤4410的过程中处理器可以执行的说明性子步骤的流程图。
[0055]图46是根据本发明一种实施例、用于访问安全共享的数据集的一种方法的说明性步骤的流程图。
[0056]图47是根据本发明一种实施例、用于安全地共享数据的一种方法的说明性步骤的流程图。
具体实施例
[0057]本文描述的系统和方法可以与2005年10月25日提交的共同拥有的美国专利号7,391,865和共同拥有的美国专利申请号11/258,839、2006年11月20日提交的11/602,667、2007 年 11 月 7 日提交的 11/983,355、2007 年 12 月 5 日提交的 11/999,575、2008年4月18日提交的12/148,365,2008年9月12日提交的12/209,703,2009年1月7日提交的12/349,897、2009年2月23日提交的12/391,028、2010年5月19日提交的12/783,276、2010年11月24日提交的12/953,877、及2011年1月27日提交的美国临时专利申请号61/436,991、2009年11月25日提交的61/264,464、2010年3月31日提交的61/319,658、2010 年 4 月 1 日提交的 61/320,242、2010 年 5 月 28 日提交的 61/349,560、2010年8月12日提交的61/373,187及2010年9月20日提交的61/384,583中描述的其它系统和方法相结合使用。以上提到的早先提交的每个申请的公开内容都在此全部引入作为参考。
[0058]本发明的一方面是提供一种密码系统,在该系统中,一个或多个安全服务器,或者说信任引擎,存储密码密钥和用户认证数据。用户通过对信任引擎的网络访问来访问传统密码系统的功能,但是,信任引擎不释放真实的密钥和其它认证数据,因此密钥和数据保持安全。密钥和认证数据的这种服务器集中储存提供了独立于用户的安全性、便携性、可用性和简单明了性。
[0059]因为用户可以确信,或者说信任,密码系统执行用户和文档认证及其它密码功能,所以可以将多种功能结合到系统中。例如,信任引擎提供商能够通过例如,认证协议参与方、为了参与方的利益或为了参与方而数字签署协定、并且存储由每个参与方数字签署的协议的记录,来确保防止否认协议。此外,密码系统可以监视协议并基于例如价格、用户、卖方、地理位置、使用地点等来确定应用程度变化的认证。
[0060]为了便于对本发明的透彻理解,余下的具体描述参考附图来描述本发明,其中相同的元素自始至终由相同的标号来标注。
[0061]图1说明了根据本发明一种实施例的各方面的密码系统100的框图。如图1所示,密码系统100包括通过通信链路125通信的用户系统105、信任引擎110、证书机构115和卖方系统120。
[0062]根据本发明的一种实施例,用户系统105包括传统的通用计算机,具有一个或多个微处理器,例如像基于英特尔的处理器。而且,用户系统105包括适当的操作系统,例如像能够包括图形或窗口的操作系统,例如Windows、Unix、Linux等。如图1所示,用户系统105可以包括生物测定设备107。生物测定设备107可以有利地捕捉用户的生物测定并将捕捉到的生物测定传送给信任引擎110。根据本发明的一种实施例,生物测定设备可以有利地包括具有类似于在以下专利申请中公开的那些属性和特征的设备:1997年9月5日提交的标题为"RELIEF OBJECT IMAGE GENERATOR (浮雕对象图像产生器)"的美国专利申请号 08/926,277、2000 年 4 月 26 日提交的标题为"IMAGING DEVICE FOR A RELIEF OBJECTAND SYSTEM AND METHOD OF USING THE IMAGE DEVICE (用于浮雕对象的成像设备和使用这种成像设备的系统和方法)"的美国专利申请号09/558,634、1999年11月5日提交的标题为"RELIEF OBJECT SENSOR ADAPTOR (浮雕对象传感器转接器)"的美国专利申请号09/435,011 和2000年1月 5 日提交的标题为"PLANAR OPTICAL IMAGE SENSOR AND SYSTEMFOR GENERATING AN ELECTRONIC IMAGE OF A RELIEF OBJECT FOR FINGERPRINT READING(平面光学成像传感器和用于产生用于指纹读取的浮雕对象的电子图像的系统)"的美国专利申请号09/477,943,所有这些申请都由本申请的受让人拥有,而且其全部内容都在此引入作为参考。
[0063]此外,用户系统105可以通过例如像拨号、数字用户线路(DSL)、线缆调制解调器、光纤连接等传统的服务提供商连接到通信链路125。根据另一种实施例,用户系统105通过例如像局域或广域网的网络连接而连接通信链路125。根据一种实施例,操作系统包括TCP/IP堆栈,TCP/IP堆栈对通过通信链路125传递的所有进入和外出的消息流量进行操纵。
[0064]尽管参考上述实施例公开了用户系统105,但是本发明不是要这样受到限制。相反,本领域技术人员将由本文的公开内容意识到,用户系统105的大量可选实施例几乎包括能够从另一个计算机系统发送或接收信息的任何计算设备。例如,用户系统105可以包括、但不限于:计算机工作站,交互式电视,交互式公共电话亭,例如数字助理、移动电话、膝上型电脑等的个人移动计算设备,能够与通信链路125交互的例如家庭路由器、网络储存设备("NAS")、个人热点等,或无线通信设备、智能卡、嵌入式计算设备等的个人联网设备。在这种可选系统中,操作系统将可能是不同的并且为特殊设备而改变。然而,根据一种实施例,操作系统有利地连续提供与通信链路125建立通信所需的适当通信协议。
[0065]图1说明性了信任引擎110。根据一种实施例,信任引擎110包含用于访问和存储敏感信息的一个或多个安全服务器,敏感信息可以是任何类型或形式的数据,例如,但不限于:文本、音频、视频、用户认证数据以及公共和私人的密码密钥。根据一种实施例,认证数据包括被设计成唯一识别密码系统100的用户的数据。例如,认证数据可以包括用户识别号、一个或多个生物测定和由信任引擎110或用户生成的一系列问题与回答,但是在用户最初注册时回答过。上述问题可以包括例如出生地、地址、结婚纪念日等人口数据,例如妈妈的娘家姓、喜爱的冰激凌等个人数据,或者被设计成唯一识别用户的其它数据。信任引擎110把与当前事务相关的用户的认证数据与例如像在注册期间更早时候提供的认证数据进行比较。信任引擎110可以有利地要求用户在每次事务时产生认证数据,或者,信任引擎110可以有利地允许用户定期产生认证数据,例如在一串事务开始的时候者或登录到特定的卖方网站上时。
[0066]根据用户产生生物测定数据的实施例,用户向生物测定设备107提供一种物理特性,例如,但不限于:面部扫描、手扫描、耳朵扫描、虹膜扫描、视网膜扫描、血管图案、DNA、指纹、笔迹或语音。生物测定设备有利地产生物理特性的电子图案或生物测定。电子图案通过用户系统105被传送给信任引擎110,用于注册或认证目的。
[0067]一旦用户产生了适当的认证数据并且信任引擎110确定了认证数据(当前认证数据)与注册时提供的认证数据(注册认证数据)之间的肯定匹配,信任引擎110就向用户提供完整的密码功能。例如,得到正确认证的用户可以有利地采用信任引擎110来执行哈希、数字签署、加密和解密(经常合在一起仅被称为加密)、产生或分发数字证书等。但是,密码功能中使用的私人密码密钥在信任引擎110之外将不可用,由此确保密码密钥的完整性。
[0068]根据一种实施例,信任引擎110生成并存储密码密钥。根据另一种实施例,至少有一个密码密钥与每个用户关联。而且,当密码密钥包括公共密钥技术时,与用户关联的每个私人密钥都在信任引擎110内产生、并且不从信任引擎110释放。因此,只要用户有权访问信任引擎110,用户就可以使用他或她的私人或公共密钥执行密码功能。这种远程访问有利地允许用户通过事实上任何互联网连接,例如蜂窝和卫星电话、公共电话亭、膝上型电脑、旅馆房间等,保持完全的移动和访问密码功能。
[0069]根据另一种实施例,信任引擎110利用为信任引擎110生成的密钥对执行密码功能。根据这种实施例,信任引擎110首先认证用户,并且在用户具有与注册认证数据匹配的正确产生的认证数据之后,信任引擎110为了被认证用户的利益而使用它自己的密码密钥对来执行密码功能。
[0070]本领域技术人员将从本文公开的内容认识到,密码密钥可以有利地包括对称密钥、公共密钥和私人密钥中的一些或全部。另外,本领域技术人员还将从本文公开的内容认识到,可以利用可以从商业技术获得的大量算法,例如像RSA、ELGAMAL等,实现上述密钥。
[0071]图1还说明性了证书机构115。根据一种实施例,证书机构115可以有利地包括颁发例如像VeriSign、Baltimore、Entrust等数字证书的被信任的第三方组织或公司。信任引擎110可以有利地通过例如PKCS10的一种或多种传统数字证书协议把对数字证书的请求传输到证书机构115。作为响应,证书机构115将按照例如PKCS7的多种不同协议中的一种或多种协议颁发数字证书。根据本发明的一种实施例,信任引擎110从几个或全部的著名证书机构115请求数字证书,使得证书机构115有权访问对应于任何请求方的证书标准的数字证书。
[0072]根据另一种实施例,信任引擎110在内部执行证书颁发。在这种实施例中,信任引擎110可以访问证书系统以便生成证书和/或可以在它们被请求时,例如在生成密钥时,或者可以按照请求时请求的证书标准在内部生成证书。下面将更具体地公开信任引擎110。
[0073]图1还说明了卖方系统120。根据一种实施例,卖方系统120有利地包括网络服务器。典型的网络服务器通常使用例如超文本标记语言(HTML)或可扩展标记语言(XML)的几种互联网标记语言或文档格式标准之一经互联网提供内容。网络服务器接受来自像Netscape和Internet Explorer的浏览器的请求,然后返回适当的电子文档。许多服务器或客户端技术都能够用于使网络服务器的能力增大到超过它的能力,以交付标准电子文档。例如,这些技术包括公共网关接口(CGI)脚本、加密套接字协议层(SSL)安全性和动态服务器主页(ASP)。卖方系统120可以有利地提供与商业、个人、教育、或其它事务有关的电子内容。
[0074]尽管参考上述实施例公开了卖方系统120,但是本发明不是要由此受到限制。相反,本领域技术人员将从本文公开的内容认识到,卖方系统120可以有利地包括参考用户系统105描述的任何设备或者其组合。
[0075]图1还说明了连接用户系统105、信任引擎110、证书机构115和卖方系统120的通信链路125。根据一种实施例,通信链路125优选地包括互联网。如贯穿本公开内容所使用的,互联网是计算机的全球网络。本领域普通技术人员众所周知的互联网的结构包括网络主干线,具有从网络主干线开始的网络分支。这些分支又具有从它们开始的网络分支,以此类推。路由器在网络级之间移动信息包,从一个网络到另一个网络,直到包到达其目的地的邻居。目的地网络的主机从该目的地引导信息包到达适当的终端,或节点。在一种有利的实施例中,互联网路由集线器包括使用本领域中众所周知的传输控制协议/因特网协议(TCP/IP)的域名系统(DNS)服务器。路由集线器经高速通信链路连接到一个或多个其它路由集线器。
[0076]互联网的一个流行部分是万维网。万维网包含不同的计算机,这些计算机存储能够显示图形和文本信息的文档。在万维网上提供信息的计算机通常被称为“网站”。网站是通过具有相关联的电子页面的互联网地址来定义的。电子页面可以通过统一资源定位符(URL)来识别。通常,电子页面是对文本、图形化图像、音频、视频等的呈现进行组织的文档。
[0077]尽管通信链路125是就其优选实施例公开的,但是本领域普通技术人员将从本文公开的内容认识到,通信链路125可以包括广泛的交互式通信链路。例如,通信链路125可以包括交互式电视网络、电话网络、无线数据传输系统、双向电缆系统、定制的私人或公共计算机网络、交互式公共电话网络、自动出纳机网络、直接链路、卫星或蜂窝网络等。
[0078]图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技术。
[0079]根据一种实施例,事务引擎205包含数据路由设备,例如从Netscape、Microsoft、Apache等可买到的传统网络服务器。例如,网络服务器可以有利地接收从通信链路125进入的数据。根据本发明的一种实施例,进入的数据被寻址到用于信任引擎110的前端安全系统。例如,前端安全系统可以有利地包括防火墙、搜索已知攻击剖面的入侵检测系统和/或病毒扫描器。清理完前端安全系统后,数据被事务引擎205接收并且路由到存储库210、认证引擎215、密码引擎220和海量储存器225中的一个。此外,事务引擎205监视从认证引擎215和密码引擎220进入的数据,并且通过通信链路125将数据路由至特定的系统。例如,事务引擎205可以有利地将数据路由到用户系统105、证书机构115或卖方系统120。
[0080]根据一种实施例,使用传统的HTTP路由技术路由数据,传统的HTTP路由技术例如采用URL或者统一资源标识符(URI)。URI类似于URL,但是,URI通常指出例如可执行文件、脚本等的文件或动作的源。因此,根据一种实施例,用户系统105、证书机构115、卖方系统120及信任引擎210的组件有利地在通信URL或URI内包括用于让事务引擎205贯穿密码系统正确地路由数据的足够数据。
[0081]尽管参考其优选实施例公开了数据路由,但是本领域技术人员将认识到大量可能的数据路由方案或策略。例如,XML或其它数据包可以有利地被拆包并通过它们的格式、内容等被认出,使得事务引擎205可以通过信任引擎110正确地路由数据。而且,本领域技术人员将认识到数据路由可以有利地适于符合特定网络系统的数据传送协议,例如当通信链路125包含本地网络时。
[0082]根据本发明的还有另一种实施例,事务引擎205包括传统的SSL加密技术,使得上述系统可以在特定通信期间利用事务引擎205认证它们自己,反之亦然。如贯穿本公开内容将使用的,术语“1/2 SSL”指的是服务器被SSL认证而客户不必被SSL认证的通信,而术语“完全SSL”指的是客户和服务器都被SSL认证的通信。在当前公开内容使用术语“SSL”时,通信可以包括1/2或完全SSL。
[0083]随着事务引擎205将数据路由到密码系统100的不同组件,事务引擎205可以有利地产生检查跟踪(audit trail)。根据一种实施例,检查跟踪包括通过事务引擎205贯穿密码系统100路由的数据的至少类型和格式的记录。这种检查数据可以有利地存储在海量储存器225中。
[0084]图2还说明了存储库210。根据一种实施例,存储库210包含一个或多个数据储存设施,例如目录服务器、数据库服务器等。如图2所示,存储库210存储密码密钥和注册认证数据。密码密钥可以有利地对应于信任引擎110或对应于密码系统100的用户,例如用户或卖方。注册认证数据可以有利地包括被设计成唯一识别用户的数据,例如用户ID、密码、对问题的回答、生物测定数据等。在用户注册时或另一个可选的稍后时间可以有利地获得这种注册认证数据。例如,信任引擎110可以包括对注册认证数据的定期或其它更新或重新发布。
[0085]根据一种实施例,来自事务引擎205及来往于认证引擎215和密码引擎220的通信包括例如传统SSL技术的安全通信。此外,如上所述,来往于存储库210的通信数据可以使用URL、UR1、HTTP或XML文档来传送,把数据请求和格式有利地嵌入到上述任何文档中。
[0086]如上所述,存储库210可以有利地包括多个安全数据储存设施。在这样一种实施例中,安全数据储存设施可以配置成使得对一个个别的数据储存设施的安全性的损害将不会损害存储在其中的密码密钥或认证数据。例如,根据这种实施例,密码密钥和认证数据都经过数学运算,以便对存储在每个数据储存设施中的数据进行统计学上和充分地随机化。根据一种实施例,各别数据存储设施的数据的随机化使数据不可破译。因此,个别数据存储设施的损害只产生随机的不可破译的数而且不损害作为一个整体的任何密码密钥或认证数据的安全性。
[0087]图2还说明了包括认证引擎215的信任引擎110。根据一种实施例,认证引擎215包括配置成对来自事务引擎205的数据和来自存储库210的数据进行比较的数据比较器。例如,在认证期间,用户把当前的认证数据供应给信任引擎110,使得事务引擎205接收当前的认证数据。如上所述,事务引擎205优选地在URL或URI中认出数据请求,并将认证数据路由到认证引擎215。而且,在请求后,存储库210将对应于用户的注册认证数据转发到认证引擎215。因此,认证引擎215既有当前的认证数据又有注册认证数据,用于比较。[0088]根据一种实施例,到认证引擎的通信包括例如SSL技术的安全通信。此外,可以使用公钥技术在例如超级加密的信任引擎110组件内提供安全性。例如,根据一种实施例,用户利用认证引擎215的公钥加密当前的认证数据。此外,存储库210也利用认证引擎215的公钥加密注册认证数据。以这种方式,只有认证引擎的私钥可以被用于对传输进行解密。
[0089]如图2所示,信任引擎110还包括密码引擎220。根据一种实施例,密码引擎包括密码处理模块,该密码处理模块配置成有利地提供例如公共密钥基础设施(PKI)功能的传统密码功能。例如,密码引擎220可以有利地发布用于密码系统100的用户的公钥和私钥。以这种方式,密码密钥在密码引擎220处生成并转发到存储库210,使得至少私有密码密钥在信任引擎110之外是不可用的。根据另一种实施例,密码引擎220随机化并分割至少私有密码密钥数据,由此只存储随机化后的被分割数据。与注册认证数据的分割类似,分割过程确保被存储的密钥在密码引擎220之外不可用。根据另一种实施例,密码引擎的功能能够与认证引擎215组合并且由认证引擎215执行。
[0090]根据一种实施例,来往于密码引擎的通信包括例如SSL技术的安全通信。此外,可以有利地采用XML文档来传送数据和/或进行密码功能请求。
[0091]图2还说明了具有海量储存器225的信任引擎110。如上所述,事务引擎205保存对应于检查跟踪的数据并将这种数据存储在海量储存器225中。类似地,根据本发明的一种实施例,存储库210保存对应于检查跟踪的数据并将这种数据存储在海量储存器设备225中。存储库检查跟踪数据类似于事务引擎205的检查跟踪数据,因为检查跟踪数据包括对存储库210所接收请求的记录和对其的响应。此外,海量储存器225可以用于存储数字证书,数字证书中含有用户的公钥。
[0092]尽管参考其优选和可选实施例公开了信任引擎110,但是本发明不是要由此受到限制。相反,本领域技术人员将从本文公开的内容认识到,对信任引擎110存在众多的备选方法。例如,信任引擎110可以有利地只执行认证,或者可选地,只执行密码功能的一部分或全部,例如数据加密和解密。根据此类实施例,可以有利地去除认证引擎215和密码引擎220之一,由此产生对信任引擎110更简洁的设计。此外,密码引擎220还可以与证书机构通信,使得证书机构体现在信任引擎110中。根据还有另一种实施例,信任引擎110可以有利地执行认证及一个或多个密码功能,例如数字签署。
[0093]图3说明了根据本发明一种实施例各方面的图2事务引擎205的框图。根据这种实施例,事务引擎205包括具有处理线程和监听线程的操作系统305。操作系统305可以有利地类似于在传统高容量服务器中找到的那些服务器,例如从Apache可以买到的网络服务器。监听线程监视来自通信链路125、认证引擎215和密码引擎220之一的进入通信,以便发现进入的数据流。处理线程认出进入的数据流的特定数据结构,例如上述数据结构,由此将进入的数据路由到通信链路125、存储库210、认证引擎215、密码引擎220或海量储存器225之一。如图3所示,进入和外出的数据可以有利地通过例如SSL技术得到保护。
[0094]图4说明了根据本发明一种实施例各方面的图2存储库210的框图。根据这种实施例,存储库210包括一个或多个轻量级目录访问协议(LDAP)服务器。LDAP目录服务器可以从例如Netscape、ISO及其它众多厂商买到。图4还显示目录服务器优选地存储对应于密码密钥的数据405和对应于注册认证数据的数据410。根据一种实施例,存储库210包括对唯一用户ID索引认证数据和密码密钥数据的单个逻辑存储器结构。这单个逻辑存储器结构优选包括用于确保在其中存储的数据的高度信任或安全性的机制。例如,存储库210的物理位置可以有利地包括众多传统的安全措施,诸如受限的员工访问、现代监视系统等。除了物理安全之外或者代替物理安全,计算机系统或服务器可以有利地包括软件解决方案来保护被存储的数据。例如,存储库210可以有利地产生并存储对应于所采取动作的检查跟踪的数据415。此外,进入和外出的通信可以有利地用与传统SSL技术耦合的公钥加密进行加密。
[0095]根据另一种实施例,存储库210可以包括不同的且物理分离的数据储存设施,如参考图7进一步公开的那样。
[0096]图5说明了根据本发明一种实施例各方面的图2认证引擎215的框图。类似于图3的事务引擎205,认证引擎215包括操作系统505,操作系统505具有例如可以从Apache买到的网络服务器的传统网络服务器的更改版本的监听和处理线程。如图5所示,认证引擎215包括对至少一个私钥510的访问。私钥510可以有利地用于例如解密来自事务引擎205或存储库210的数据,该数据是用认证引擎215的相应公钥加密的。
[0097]图5还说明了包括比较器515、数据分割模块520和数据组装模块525的认证引擎215。根据本发明的优选实施例,比较器515包括能够比较与上述生物测定认证数据有关的可能复杂的模式的技术。该技术可以包括硬件、软件或者组合的解决方案,用于例如那些代表指纹模式或语音模式的模式比较。此外,根据一种实施例,认证引擎215的比较器515可以有利地比较传统的文档哈希,以便给出比较结果。根据本发明的一种实施例,比较器515包括将试探法530对比较的应用。试探法530可以有利地解决与认证尝试密切相关的情形,例如时刻、IP地址或子网掩码、购买简档、电子邮件地址、处理器序列号或ID等。
[0098]而且,生物测定数据比较的本质可能导致由于当前的生物测定认证数据与注册数据的匹配产生的不同程度的置信度。例如,不像可能只返回肯定或否定匹配的传统密码,指纹可以被确定为部分匹配,例如90%匹配、75%匹配、或10%匹配,而非简单地正确或错误。例如声纹(voice print)分析或面部识别的其它生物测定标识符可以共享这个概率认证而非绝对认证的属性。
[0099]当用这种概率认证工作时或者在认证被视为不够绝对可靠的其它情况下,期望应用试探法530来确定所提供的认证中的置信级别是否高到足以认证正在进行的事务。
[0100]有时候情况将是所发布的事务是相对低价值的事务,在这种情况下,被认证为较低的置信级别是可以接受的。这可以包括具有与其相关的低美元价值的事务(例如10美元的购买)或者具有低风险的事务(例如只许可成员的网站)。
[0101]反之,对于认证其他事务,在允许事务进行之前在认证中要求高置信度可能是期望的。这种事务可以包括大美元价值的事务(例如签署数百万美元的供应契约)或者如果错误认证发生将具有高风险的事务(例如远程登录到政府计算机上)。
[0102]如下面要描述的那样,与置信级别和事务值相结合的试探法530的使用可以用于允许比较器提供动态背景敏感的认证系统。
[0103]根据本发明的另一种实施例,比较器515可以有利地跟踪用于特定事务的认证尝试。例如,当事务失败时,信任引擎110可以请求用户重新输入他或她的当前认证数据。认证引擎215的比较器515可以有利地采用尝试限制器535来限制认证尝试的次数,由此禁止模仿用户的认证数据的粗暴(brute-force)尝试。根据一种实施例,尝试限制器535包括监视事务的软件模块,用于重复认证尝试和例如对于给定的事务将认证尝试限制到三次。因此,尝试限制器535将把模仿个人的认证数据的自动尝试限制到例如简单的三次“猜测”。三次失败之后,尝试限制器535可以有利地拒绝额外的认证尝试。这种拒绝可以有利地通过例如比较器515返回否定结果而不管当前所传输的认证数据是什么来实现。另一方面,事务引擎205可以有利地阻挡从属于三次尝试之前已经失败的事务的任何额外的认证尝试。
[0104]认证引擎215还包括数据分割模块520和数据组装模块525。数据分割模块520有利地包括软件、硬件或组合模块,该模块具有对不同数据进行数学运算从而基本上使数据随机化并把数据分割成几部分的能力。根据一种实施例,原始数据不能从个别的部分重建。数据组装模块525有利地包括软件、硬件或组合模块,该模块配置成对之前基本上随机化了的部分进行数学运算,使得其组合提供原始被破译的数据。根据一种实施例,认证引擎215采用数据分割模块520来随机化注册认证数据并将其分割成几部分,并采用数据组装模块525将这几部分重组成可用的注册认证数据。
[0105]图6说明了根据本发明一种实施例各方面的图2信任引擎200的密码引擎220的框图。类似于图3的事务引擎205,密码引擎220包括操作系统605,操作系统605至少具有例如可以从Apache买到的网络服务器的传统网络服务器的更改版本的监听和处理线程。如图6所示,密码引擎220包括功能类似于图5那些模块的数据分割模块610和数据组装模块620。但是,与之前的注册认证数据相反,根据一种实施例,数据分割模块610和数据组装模块620处理密码密钥数据。尽管这样,本领域技术人员将从本文公开的内容认识到,数据分割模块610和数据组装模块620可以与认证引擎215的那些模块组合。
[0106]密码引擎220还包括配置成执行众多密码功能的一个、一些或全部的密码处理模块625。根据一种实施例,密码处理模块625可以包括软件模块或程序、硬件或者两者都包括。根据另一种实施例,密码处理模块625可以执行数据比较、数据解析、数据分割、数据分离、数据哈希、数据加密或解密、数字签名验证或产生、数字证书产生、储存或请求、密码密钥产生等。而且,本领域技术人员将从本文公开的内容认识到,密码处理模块625可以有利地包含公共密钥基础设施,例如完美隐私(PGP)、基于RSA的公共密钥系统或众多可选的密钥管理系统。此外,密码处理模块625可以执行公共密钥加密、对称密钥加密或者两者都执行。除了上述之外,密码处理模块625还可以包括一个或多个计算机程序或模块、硬件或者两者都包括,以便实现无缝、透明的互操作性功能。
[0107]本领域技术人员还将从本文公开的内容认识到,密码功能可以包括通常与密码密钥管理系统有关的众多或各种功能。
[0108]图7说明了根据本发明一种实施例各方面的存储库系统700的简化框图。如图7所示,存储库系统700有利地包括多个数据储存设施,例如数据储存设施Dl、D2、D3和D4。但是,本领域普通技术人员很容易理解,存储库系统可以只有一个数据储存设施。根据本发明的一种实施例,数据储存设施D1至D4中的每一个可以有利地包括参考图4的存储库210公开的一些或全部元素。类似于存储库210,数据储存设施D1至D4优选通过传统SSL与事务引擎205、认证引擎215和密码引擎220通信。通信链路传送例如XML文档。来自事务引擎205的通信可以有利地包括对数据的请求,其中该请求被有利地向每个数据储存设施D1至D4的IP地址广播。另一方面,事务引擎205可以基于例如响应时间、服务器负载、维护计划等众多标准而向特定的数据储存设施广播请求。
[0109]响应来自事务引擎205的对数据的请求,存储库系统700将存储的数据有利地转发到认证引擎215和密码引擎220。各自的数据组装模块接收转发的数据并将数据组装成有用的格式。另一方面,从认证引擎215和密码引擎220到数据储存设施D1至D4的通信可以包括对要存储的敏感数据的传输。例如,根据一种实施例,认证引擎215和密码引擎220可以有利地采用它们各自的数据分割模块将敏感数据划分成不可破译的部分,然后将敏感数据的一个或多个不可破译部分传输给特定的数据储存设施。
[0110]根据一种实施例,每个数据储存设施,D1至D4,都包括例如目录服务器的单独且独立的储存系统。根据本发明的另一种实施例,存储库系统700包括多个地理上分离的独立数据储存系统。通过将敏感数据分配到不同且独立的储存设施D1至D4中,存储库系统700提供冗余性和额外的安全措施,其中储存设施D1至D4中的一些或全部可以有利地在地理上分离。例如,根据一种实施例,只有来自多个数据储存设施D1至D4中的两个的数据需要被破译并且重组敏感数据。因此,多达四个数据储存设施D1至D4中的两个可以由于维护、系统故障、电力故障等不起作用,但不影响信任引擎110的功能。此外,根据一种实施例,因为每个数据储存设施中存储的数据是随机化且不可破译的,所以任何单独的数据储存设施的损害都不一定损害到敏感数据。而且,在具有地理分离的数据储存设施的实施例中,多个地理上远离的设施的损害变得更加困难。事实上,为了颠覆必须的多个独立的地理上远程的数据储存设施,即使调皮捣蛋的员工也将得到极大的挑战。
[0111]尽管参考存储库系统700的优选和可选的实施例公开了存储库系统700,但是本发明不是要由此受到限制。相反,本领域技术人员将从本文公开的内容认识到用于存储库系统700的众多可选方案。例如,存储库系统700可以包括一个、两个或更多数据储存设施。此外,敏感数据可以进行数学运算,使得重组和破译敏感数据需要来自两个或更多数据储存设施的几部分。
[0112]如上所述,认证引擎215和密码引擎220每个都分别包括数据分割模块520和610,用于分割任何类型或形式的敏感数据,例如像文本、音频、视频、认证数据和密码密钥数据。图8说明了根据本发明一种实施例各方面通过数据分割模块执行的数据分割过程800的流程图。如图8所示,当敏感数据"S"被认证引擎215或密码引擎220的数据分割模块接收时,数据分割过程800在步骤805开始。优选地,在步骤810中,数据分割模块接着产生基本上随机的数、值、或位的串或组,"A"。例如,可以用本领域普通技术人员可用的众多不同的传统技术来产生随机数A,以便产生适于在密码应用程序中使用的高品质随机数。此外,根据一种实施例,随机数A包括可以是任何适当长度的位长度,例如比敏感数据S的位长度更短、更长或与其相等。
[0113]此外,在步骤820中,数据分割过程800产生另一个统计上随机的数"C"。根据优选实施例,统计上随机的数A和C的产生可以有利地并行进行。数据分割模块随后将数A和C与敏感数据S组合,使得产生新数"B"和"D"。例如,数B可以包含A异或(X0R)S的二进制组合并且数D可以包含C XOR S的二进制组合。X0R功能或者说"异或"功能,是本领域普通技术人员熟知的。上述组合优选地分别发生在步骤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。此外,配对可以全部存储在一个存储库上,并且可以存储在所述存储库上的单独的位置中。
[0114]基于以上所述,数据分割过程800将敏感数据的几部分有利地放在四个数据储存设施D1至D4的每个当中,使得没有单个的数据储存设施D1至D4包括用于重建原始敏感数据S的足够多的被加密数据。如上所述,这种将数据随机化成个别的不能使用的被加密部分增加了安全性,并且即使数据储存设施D1至D4中的一个被损害也能提供对数据保持?目任。
[0115]尽管参考其优选实施例公开了数据分割过程800,但是本发明不是要由此受到限制。相反,本领域技术人员将从本文公开的内容认识到对于数据分割过程800的众多可选项。例如,数据分割过程可以将数据有利地分成两个数,例如,随机数Α和数Β,以及,通过两个数据储存设施随机分配A和B。而且,数据分割过程800可以通过产生附加的随机数在众多数据储存设施当中有利地分割数据。数据可以被分割成任何期望的、选择的、预定的或者随机分配的大小的单元,包括但不限于一位、多位、多字节、千字节、兆字节或者更大,或大小的任何组合或序列。此外,由分割过程引起的对数据单元大小的改变可能使数据更难以恢复成可用的形式,由此增加了敏感数据的安全性。本领域普通技术人员很容易理解,分割后的数据单元大小可以是多种多样的数据单元大小或大小的模式或大小的组合。例如,数据单元大小可以被选择或预定为全都是相同的大小、固定设置的不同大小、大小的组合或者随机产生的大小。类似地,根据固定或预定的数据单元大小、数据单元大小的模式或组合或者随机产生的数据单元大 小或每份的大小,数据单元可以分配到一份或多份中。
[0116]如上所述,为了重建敏感数据S,数据部分需要被去随机化并重组。这个过程可以有利地分别发生在认证引擎215和密码引擎220的数据组装模块525和620中。数据组装模块,例如数据组装模块525,接收来自数据储存设施D1至D4的数据部分,并且将数据重组成可以使用的形式。例如,根据图8数据分割过程800所采用的数据分割模块520的一种实施例,数据组装模块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中至少前两个接收到数据部分时,它可以组装敏感数据S。
[0117]基于上述数据分割和组装过程,敏感数据S只在信任引擎110的有限区域中以可用格式存在。例如,当敏感数据S包括注册认证数据时,可用的、非随机化的注册认证数据只在认证引擎215中可用。同样,当敏感数据S包括私有密码密钥数据时,可用的、非随机化的私有密码密钥数据只在密码引擎220中可用。
[0118]尽管参考其优选实施例公开了数据分割和组装过程,但是本发明不是要由此受到限制。相反,本领域技术人员将从本文公开的内容认识到用于分割和重组敏感数据S的众多可选方案。例如,公钥加密可以用于在数据储存设施D1至D4进一步保护数据。此外,本领域普通技术人员很容易理解,本文描述的数据分割模块也是本发明的单独且不同的实施例,这些实施例可以结合到任何现有的计算机系统、软件套件、数据库、或者其组合,或者像本文公开和描述的信任引擎、认证引擎和事务引擎的本发明其它实施例当中,或者与它们组合或者成为它们的一部分。
[0119]图9A说明了根据本发明一种实施例各方面的注册过程900的数据流。如图9A所示,注册过程900在用户期望用密码系统100的信任引擎110注册时在步骤905处开始。根据这种实施例,用户系统105有利地包括客户端小程序,例如如基于Java的,该小程序询问用户以输入像人口数据和注册认证数据的注册数据。根据一种实施例,注册认证数据包括用户ID、密码(多个密码)、生物测定(多个生物测定)等。根据一种实施例,在询问过程期间,客户端小程序优选与信任引擎110通信以确保选定的用户ID是唯一的。当用户ID不唯一时,信任引擎110可以有利地建议一个唯一的用户ID。客户端小程序收集注册数据并且例如通过XML文档将注册数据传输到信任引擎110,而且尤其是传输到事务引擎205。根据一种实施例,传输是利用认证引擎215的公钥编码的。
[0120]根据一种实施例,用户在注册过程900的步骤905期间执行单次注册。例如,用户将他自己或她自己注册为一个特定的人,例如Joe User。当Joe User期望注册为Mega公司的CEO,Joe User时,根据这种实施例,Joe User第二次注册,接收第二个唯一的用户ID并且信任引擎110不使两个身份相关。根据本发明的另一种实施例,注册过程900为单个用户ID提供多个用户身份。因此,在上述例子中,信任引擎110将有利地使Joe User的两个身份相关。如本领域技术人员从本文公开的内容将认识到的那样,一个用户可以具有许多身份,例如,户主Joe User,慈善基金会成员Joe User等。即使用户可以具有多个身份,但是,根据这种实施例,信任引擎110也优选地只存储一个注册数据集。而且,用户可以按照他们的需要有利地增加、编辑/更新或删除身份。
[0121]尽管参考其优选实施例公开了注册过程900,但是本发明不是要由此受到限制。相反,本领域技术人员将从本文公开的内容认识到用于收集注册数据并且尤其是注册认证数据的众多可选方案。例如,小程序可以是基于公共对象模式(COM)的小程序等。
[0122]另一方面,注册过程可以包括分级注册。例如,在最低级注册,用户可以通过通信链路125注册而不产生关于他或她的身份的文档资料(documentation)。根据升级的注册,用户使用例如数字公证员的被信任的第三方来注册。例如,而且用户可以向被信任的第三方现出真身,提供像出生证、驾照、军人ID等证件,并且被信任的第三方在注册提交过程中可以有利地包括例如他们的数字签名。被信任的第三方可以包括真正的公证员、例如邮局或机动车辆部门的政府机构、注册为员工的大公司里的人力资源人员等。本领域技术人员将从本文公开的内容认识到,注册的众多变化级别可以在注册过程900期间发生。
[0123]在步骤915接收到注册认证数据之后,事务引擎205使用传统的完全SSL (FULLSSL)技术将注册认证数据转发到认证引擎215。在步骤920,认证引擎215使用认证引擎215的私钥解密注册认证数据。此外,认证引擎215采用数据分割模块对注册认证数据进行数学运算,从而将数据分割成至少两个独立的不可破译的随机化的数。如上所述,至少两个数可以包含统计上随机的数和二进制异或的数。在步骤925,认证引擎215将随机化的数的每一部分都转发到数据储存设施D1至D4之一。如上所述,认证引擎215还可以有利地随机决定哪几部分传送给哪几个存储库。
[0124]在注册过程900期间,用户还将常常期望具有发布的数字证书,从而使他或她可以从密码系统100之外的其它来源接收加密的文档。如上所述,证书机构115通常根据几种传统标准中的一种或多种发布数字证书。总的来说,数字证书包括每个人都知道的用户或系统的公钥。
[0125]不管用户是在注册时还是在另一个时间请求数字证书,该请求都通过信任引擎110传送到认证引擎215。根据一种实施例,请求包括具有例如用户的真名的XML文档。根据步骤935,认证引擎215将请求传送到密码引擎220,命令密码引擎220产生密码密钥或密钥对。
[0126]在步骤935请求后,密码引擎220生成至少一个密码密钥。根据一种实施例,密码处理模块625生成密钥对,其中一个密钥被用作私钥,而另一个被用作公钥。密码引擎220存储私钥并且,根据一种实施例,还存储公钥的副本。在步骤945,密码引擎220将对数字证书的请求传输到事务引擎205。根据一种实施例,该请求有利地包括标准化的请求,例如嵌在像XML文档中的PKCS10。对数字证书的请求可以有利地对应于一个或多个证书机构和证书机构要求的一种或多种标准格式。
[0127]在步骤950中,事务引擎205将这个请求转发到证书机构115,证书机构115在步骤955中返回数字证书。返回的数字证书可以有利地具有例如PKCS7的标准化格式,或者具有一个或多个证书机构115的专有格式。在步骤960中,数字证书被事务引擎205接收,并且其一个副本被转发到用户并且一个副本用信任引擎110进行存储。信任引擎110存储证书的副本,从而使信任引擎110将不需要依赖证书机构115的可用性。例如,当用户期望发送数字证书或者第三方请求用户的数字证书时,对数字证书的请求一般发送到证书机构115。但是,如果证书机构115正在进行维护或已经是故障或安全性损害的受害者,则数字证书可能不可用。
[0128]在发布密码密钥之后的任何时间,密码引擎220都可以有利地采用上述的数据分割过程800,使得密码密钥被分割成独立的不可破译的随机化的数。类似于认证数据,在步骤965,密码引擎220把随机化的数传送到数据储存设施D1至D4。
[0129]本领域技术人员将从本文公开的内容认识到,用户可以在注册之后的任何时间请求数字证书。而且,系统之间的通信可以有利地包括FULL SSL或公钥加密技术。而且,注册过程可以从包括信任引擎110内部或外部的一个或多个专门的证书机构在内的多个证书机构发布多个数字证书。
[0130]如在步骤935至960中所公开的,本发明的一种实施例包括对最终存储在信任引擎110上的证书的请求。因为,根据一种实施例,密码处理模块625发布由信任引擎110使用的密钥,每个证书对应一个私钥。因此,信任引擎110可以有利地提供互操作性,监视用户拥有或者与用户相关联的证书。例如,当密码引擎220接收到对密码功能的请求时,密码处理模块625可以调查发出请求的用户所拥有的证书以确定该用户是否拥有与所请求的属性匹配的私钥。当这种证书存在时,密码处理模块625可以使用该证书或者与其相关联的公共或私有密钥来执行所请求的功能。当这种证书不存在时,密码处理模块625可以有利地且透明地执行许多动作以尝试补救适当密钥的缺乏。例如,图9B说明了互操作性过程970的流程图,根据本发明一种实施例的各方面,互操作性过程970公开了上述步骤,以确保密码处理模块625使用适当的密钥执行密码功能。
[0131]如图9B所示,互操作性过程970开始于步骤972,在步骤972中密码处理模块925确定期望证书的类型。根据本发明的一种实施例,证书类型可以有利地在对密码功能的请求或者由请求者提供的其它数据中规定。根据另一种实施例,证书类型可以由请求的数据格式确定。例如,密码处理模块925可以有利地认识到该请求对应于特定的类型。
[0132]根据一种实施例,证书类型可以包括例如RSA、ELGAMAL等一种或多种算法标准。此外,证书类型可以包括例如对称密钥、公钥、诸如256位密钥的强加密密钥、较不安全密钥等一种或多种密钥类型。而且,证书类型可以包括一种或多种上述算法标准或密钥、一种或多种消息或数据格式、例如Base 32或Base 64的一种或多种数据封装或编码体系的升级或替换。证书类型还可以包括与一种或多种第三方密码应用程序或接口、一种或多种通信协议或者一种或多种证书标准或协议的兼容性。本领域技术人员将从本文公开的内容认识到,在证书类型中可以存在其它差别,并且可以如本文所公开的那样实现对这些差别的翻译和由这些差别翻译。
[0133]一旦密码处理模块625确定了证书类型,互操作性过程970就可以前进到步骤974,并且确定用户是否拥有与步骤974中确定的类型匹配的证书。例如,当用户拥有匹配的证书时,信任引擎110有权访问匹配的证书,通过例如其之前的储存,密码处理模块625知道匹配的私钥也存储在信任引擎110内。例如,匹配的私钥可以存储在存储库210或存储库系统700内。密码处理模块625可以有利地请求从例如存储库210组装匹配的私钥,然后,在步骤976中,使用匹配的私钥执行密码动作或功能。例如,如上所述,密码处理模块625可以有利地执行哈希、哈希比较、数据加密或解密、数字签名验证或产生等。
[0134]当用户不拥有匹配的证书时,互操作性过程970前进到步骤978,在步骤978中密码处理模块625确定用户是否拥有被交叉证明的证书。根据一种实施例,当第一证书机构确定信任来自第二证书机构的证书时,证书机构之间的交叉证明发生。换言之,第一证书机构确定来自第二证书机构的证书满足一定的质量标准,因此可以被"认证为"为等价于第一证书机构自己的证书。在证书机构发布例如具有信任级别的证书时,交叉证明变得更加复杂。例如,第一证书机构通常基于注册过程中的可靠度,可以为特定的证书提供三个信任级别,而第二证书机构可以提供七个信任级别。交叉证明可以有利地跟踪来自第二证书机构的哪几个级别和哪几个证书可以用来自第一证书机构的哪几个级别和哪几个证书代替。当在两个证书机构之间官方和公开地进行上述交叉证明时,相互之间证书和级别的映射经常被称为“链接(chaining)”。
[0135]根据本发明的另一种实施例,密码处理模块625可以有利地在由证书机构商定的那些交叉证明之外开发交叉证明。例如,密码处理模块625可以访问第一证书机构的认证惯例声明(CPS)或者其它公布的政策声明,并且使用例如特定信任级别要求的认证标记来使第一证书机构的证书与另一个证书机构的证书匹配。
[0136]在步骤978中,当密码处理模块625确定用户拥有被交叉证明的证书时,互操作性过程970前进到步骤976,并使用被交叉证明的公钥、私钥或者这两者来执行密码动作或功能。可选地,当密码处理模块625确定用户不拥有被交叉证明的证书时,互操作性过程970前进到步骤980,在步骤980中密码处理模块625选择发布被请求的证书类型或者去它们那里交叉证明的证书的证书机构。在步骤982,密码处理模块625确定前面讨论的用户注册认证数据是否满足选定证书机构的认证要求。例如,如果用户通过例如回答人口统计问题和其它问题通过网络进行注册,则所提供的认证数据可以建立比提供生物测定数据并在例如公证员的第三方前露脸的用户更低级别的信任。根据一种实施例,上述认证要求可以有利地在被选证书机构的CPS中提供。
[0137]当用户已经给信任引擎110提供了满足选定证书机构的要求的注册认证数据时,互操作性过程970前进到步骤984,在步骤984中密码处理模块625获得来自选定证书机构的证书。根据一种实施例,密码处理模块625通过注册过程900后面的步骤945至960获得证书。例如,密码处理模块625可以有利地采用来自密码引擎220中早就可用的一个或多个密钥对中的一个或多个公钥来请求来自证书机构的证书。根据另一种实施例,密码处理模块625可以有利地产生一个或多个新密钥对并使用与其对应的公钥来请求来自证书机构的证书。
[0138]根据另一种实施例,信任引擎110可以有利地包括能够发布一种或多种证书类型的一个或多个证书发布模块。根据这种实施例,证书发布模块可以提供上述证书。当密码处理模块625获得证书时,互操作性过程970前进到步骤976,并使用对应于所获得的证书的公钥、私钥或者这两者来执行密码动作或功能。
[0139]在步骤982中,当用户尚未给信任引擎110提供满足选定证书机构的要求的注册认证数据时,密码处理模块625在步骤986中确定是否存在具有不同认证要求的其它证书机构。例如,密码处理模块625可以寻找具有较低认证要求的证书机构,但是仍然发布其选定的证书或者其交叉证明。
[0140]当具有较低要求的上述证书机构存在时,互操作性过程970前进到步骤980并选择那个证书机构。可选地,当不存在这种证书机构时,在步骤988中,信任引擎110可以请求来自用户的附加的认证标记。例如,信任引擎110可以请求包含例如生物测定数据的新注册认证数据。而且,信任引擎110可以请求用户在被信任的第三方前露脸并提供适当的认证证件,例如在公证员前出示驾照、社会保障卡、银行卡、出生证、军人ID等。当信任引擎110接收到更新后的认证数据时,互操作性过程970前进到步骤984并且获得上述选定的证书。
[0141]通过上述互操作性过程970,密码处理模块625在不同密码系统之间有利地提供无缝、透明的翻译和转换。本领域技术人员将从本文公开的内容认识到上述可互操作的系统的众多优点和实现。例如,互操作性过程970的上述步骤986可以有利地包括以下进一步具体讨论的信任仲裁的各个方面,在信任仲裁中证书机构可以特殊情形下接收较低级别的交叉证明。另外,互操作性过程970可以包括在例如采用证书撤销列表(CRL)的标准证书撤销、在线证书状态协议(0CSP)等的采用之间确保互操作性。
[0142]图10说明了根据本发明一种实施例各方面的认证过程1000的数据流。根据一种实施例,认证过程1000包括收集来自用户的当前认证数据并将其与用户的注册认证数据进行比较。例如,认证过程1000开始于步骤1005,在步骤1005中用户期望与例如卖方执行事务。这种事务可以包括例如选择购买选项、请求访问卖方系统120的受限区域或设备等。在步骤1010,卖方向用户提供事务ID和认证请求。事务ID可以有利地包括192位的量,具有与128位随机量联系在一起的32位时间戳,或者与32位卖方规定常数联系在一起的“随机数(nonce)”。这种事务ID唯一识别该事务,使得模仿者事务会被信任引擎110拒绝。
[0143]认证请求可以有利地包括对于特定事务需要什么级别的认证。例如,卖方可以规定所发布的事务所需的特定置信级别。如果不能对这个置信级别做出认证,如下面将讨论的那样,那么,如果没有通过用户升高置信级别的进一步认证或者关于卖方与服务器之间的认证方面的改变,事务就将不发生。这些问题在下面更加完整地讨论。
[0144]根据一种实施例,事务ID和认证请求可以通过卖方端小程序或其它软件程序有利地生成。此外,事务ID和认证数据的传输可以包括使用像1/2 SSL,或者换句话说是卖方端被认证的SSL,的传统SSL技术加密的一个或多个XML文档。
[0145]在用户系统105接收到事务ID和认证请求后,用户系统105从用户收集当前认证数据,这可能包括当前的生物测定信息。在步骤1015,用户系统105用认证引擎215的公钥对至少当前的认证数据"B"和事务ID进行加密,并将该数据传送到信任引擎110。该传输优选地包括用至少传统的1/2 SSL技术加密的XML文档。在步骤1020中,事务引擎205接收传输,优选地认识到URL或URI中的数据格式或请求,并将该传输转发到认证引擎215。
[0146]在步骤1015和1020期间,卖方系统120在步骤1025使用优选的FULL SSL技术将事务ID和认证请求转发到信任引擎110。虽然卖方识别还可以通过事务ID的非随机部分传送,但是这种通信也可以包括卖方ID。在步骤1030和1035,事务引擎205接收通信,在检查跟踪中产生记录,并且生成对要从数据储存设施D1至D4组装的用户注册认证数据的请求。在步骤1040,存储库系统700将对应于用户的注册认证数据的多个部分传送到认证引擎215。在步骤1045,认证引擎215使用它的私钥对传输进行解密并且比较注册认证数据与用户提供的当前认证数据。
[0147]步骤1045的比较可以有利地应用启发式背景敏感认证,如之前所提到的,并且在下面更具体地进行讨论。例如,如果接收到的生物测定信息不能理想地匹配,则较低的信任匹配产生。在特定的实施例中,认证的置信级别要权衡事务的本质和用户及卖方两者的期望。这也在下面更具体地讨论。
[0148]在步骤1050,认证引擎215用步骤1045的比较结果填写认证请求。根据本发明的一种实施例,用认证过程1000的是/否或真/假结果填写认证请求。在步骤1055中,填好的认证请求返回到卖方,便于卖方照办,例如,允许用户完成启动了该认证请求的事务。根据一种实施例,确认消息被传递到用户。
[0149]基于以上所述,认证过程1000有利地保持敏感数据安全并产生配置成维持敏感数据的完整性的结果。例如,敏感数据仅在认证引擎215内部被组装。例如,注册认证数据在它被数据组装模块在认证引擎215内组装之前是不可破译的,而且当前认证数据在它被传统的SSL技术和认证引擎215的私钥解开之前是不可破译的。而且,传输给卖方的认证结果不包括敏感数据,并且用户可能甚至不知道他或她是否产生了有效的认证数据。
[0150]尽管参考其优选和可选实施例公开了认证过程1000,但是本发明不是要由此受到限制。相反,本领域技术人员将从本文公开的内容认识到用于认证过程1000的众多可选方案。例如,卖方可以有利地被几乎任何发出请求的应用程序,甚至是驻留在用户系统105内的应用程序,代替。例如,像Microsoft Word的客户应用程序可以使用应用程序接口(API)或密码API (CAPI)在解锁文档之前请求认证。可选地,邮件服务器、网络、蜂窝电话、个人或移动计算设备、工作站等都可以做出可以通过认证过程1000填写的认证请求。事实上,在提供上述可信的认证过程1000后,发出请求的应用程序或设备可以提供对众多电子或计算机设备或系统的访问或使用。
[0151]而且,认证过程1000可以在认证失败的情况下采用众多可选的过程。例如,认证失败可以维持同一个事务ID并请求用户重新输入他或她的当前认证数据。如上所述,使用同一个事务ID允许认证引擎215的比较器监视并限制对特定事务的认证尝试的次数,由此产生更安全的密码系统100。
[0152]另外,可以有利地采用认证过程1000开发简洁的单一签署(sign-on)解决方案,例如解锁敏感数据仓库(vau 11)。例如,成功或肯定的认证可以向通过认证的用户提供自动访问用于几乎无限量系统或应用程序的任何次数的密码的能力。例如,对用户的认证可以向用户提供对与多个在线卖方、局域网、不同的个人计算设备、互联网服务提供商、拍卖提供商、投资经纪人等相关的密码、登录、财经证件等的访问。通过采用敏感数据仓库,用户可以选择真正大而随机的密码,因为他们不再需要通过联想记住它们。相反,认证过程1000提供对它们的访问。例如,用户可以选择长度超过二十位数的随机字母数字字符串,而不是与难忘的数据、姓名等相关的什么东西。
[0153]根据一种实施例,与给定用户相关联的敏感数据仓库可以有利地存储在存储库210的数据储存设施中,或者被分割并存储在存储库系统700中。根据这种实施例,在肯定的用户认证之后,信任引擎110将例如用于适当的密码的被请求的敏感数据供应给发出请求的应用程序。根据另一种实施例,信任引擎110可以包括用于存储敏感数据仓库的单独的系统。例如,信任引擎110可以包括独立的软件引擎,该软件引擎实施数据仓库功能并且形象地驻留在信任引擎110的上述前端安全系统“后面”。根据这种实施例,软件引擎在其从信任引擎110接收到指出肯定的用户认证的信号之后供应被请求的敏感信号。
[0154]在还有另一种实施例中,可以由第三方系统实现数据仓库。类似于软件引擎实施例,第三方系统可以在其从信任引擎110接收到指出肯定的用户认证的信号之后有利地供应被请求的敏感数据。根据还有另一种实施例,可以在用户系统105上实现数据仓库。用户端软件引擎可以在接收到来自信任引擎110的指出肯定的用户认证的信号之后供给上述数据。
[0155]虽然参考其可选实施例公开了上述数据仓库,但是本领域技术人员将从本文公开的内容认识到其众多的其他实现。例如,一种特定的数据仓库可以包括来自上述实施例的一些或全部的多个方面。另外,任何上述数据仓库都可以在不同时间采用一个或多个认证请求。例如,任何数据仓库都可以在每隔一个或多个事务时、定期地、每隔一个或多个会话时、每次访问一个或多个网页或网站时、以一个或多个其它规定的时间间隔等,要求认证。
[0156]图11说明了根据本发明一种实施例各方面的签署过程1100的数据流。如图11所示,签署过程1100包括类似于之前参考图10描述的认证过程1000的那些步骤。根据本发明的一种实施例,签署过程1100首先认证用户,然后执行将如下更具体讨论的几种数字签名功能之中的一个或多个。根据另一种实施例,签署过程1100可以有利地存储与其有关的数据,例如消息或文档的哈希等。这个数据可以有利地用在检查或任何其它事件中,例如当参与方尝试拒绝接受事务时。
[0157]如图11所示,在认证步骤期间,用户和卖方可以有利地商定例如合同的消息。在签署期间,签署过程1100有利地确保由用户签署的合同与卖方提供的合同完全相同。因此,根据一种实施例,在认证期间,在传输到认证引擎215的数据中,卖方和用户包括他们各自的消息或合同副本的哈希。通过只采用消息或合同的哈希,信任引擎110可以有利地存储显著减少的数据量,提供一种更加有效和低成本高效益的密码系统。此外,所存储的哈希可以有利地与考虑中的文档的哈希进行比较,以确定考虑中的文档是否与任何一方签署的文档匹配。确定该文档是否与和事务有关的文档完全相同的能力提供了能够用于反对一方对事务拒绝的要求的额外证据。
[0158]在步骤1103,认证引擎215组装注册认证数据并将其与用户提供的当前认证数据进行比较。当认证引擎215的比较器指出注册认证数据与当前认证数据匹配时,认证引擎215的比较器还把卖方提供的消息的哈希与用户提供的消息的哈希进行比较。因此,认证引擎215有利地确保用户同意的消息与卖方同意的消息完全相同。
[0159]在步骤1105中,认证引擎215将数字签名请求传输到密码引擎220。根据本发明的一种实施例,该请求包括消息或合同的哈希。但是,本领域技术人员将从本文公开的内容认识到,密码引擎220事实上可以加密任何类型的数据,包括但不限于视频、音频、生物测定、图像或文本,以形成所需的数字签名。返回到步骤1105,数字签名请求优选地包含通过传统SSL技术传送的XML文档。
[0160]在步骤1110,认证引擎215将请求传输到每个数据储存设施D1至D4,使得每个数据储存设施D1至D4都传输对应于签署方的一个或多个密码密钥中他们各自的部分。根据另一种实施例,密码引擎220采用之前讨论过的互操作性过程970的一些或全部步骤,使得密码引擎220首先确定要为签署方从存储库210或存储库系统700请求的一个或多个适当密钥,并且采取动作来提供适当的匹配密钥。根据还有另一种实施例,认证引擎215或密码引擎220可以有利地请求与签署方相关并且存储在存储库210或存储库系统700中的一个或多个密钥。
[0161]根据一种实施例,签署方包括用户和卖方之一或两者都包括。在这种情况下,认证引擎215有利地请求对应于用户和/或卖方的密码密钥。根据另一种实施例,签署方包括信任引擎110。在这种实施例中,信任引擎110证实认证过程1000正确地认证了用户、卖方或者这两者。因此,认证引擎215请求信任引擎110的密码密钥,例如像属于密码引擎220的密钥,以执行数字签名。根据另一种实施例,信任引擎110执行类似数字公证员的功能。在这种实施例中,签署方包括用户、卖方或者两者都包括,以及信任引擎110。因此,信任引擎110提供用户和/或卖方的数字签名,然后用它自己的数字签名指出用户和/或卖方得到了正确认证。在这种实施例中,认证引擎215可以有利地请求对应于用户、卖方或者这两者的密码密钥的组装。根据另一种实施例,认证引擎215可以有利地请求对应于信任引擎110的密码密钥的组装。
[0162]根据另一种实施例,信任引擎110执行类似代理人职能的功能。例如,信任引擎110可以代表第三方的利益数字签署消息。在这种情况下,认证引擎215请求与该第三方相关的密码密钥。根据这种实施例,在允许类似代理人职能的功能之前,签署过程1100可以有利地包括第三方的认证。此外,认证过程1000可以包括对第三方约束的检查,例如指出何时和在什么情形下可以使用特定的第三方签名的商业逻辑等。
[0163]基于以上所述,在步骤1110中,认证引擎从对应于签署方的数据储存设施D1至D4请求密码密钥。在步骤1115中,数据储存设施D1至D4将对应于签署方的密码密钥中它们各自的部分传输到密码引擎220。根据一种实施例,上述传输包括SSL技术。根据另一种实施例,上述传输可以有利地用密码引擎220的公钥进行超级加密。
[0164]在步骤1120中,密码引擎220组装签署方的上述密码密钥,并且用其加密消息,由此形成一个或多个数字签名。在签署过程1100的步骤1125中,密码引擎220将这一个或多个数字签名传输给认证引擎215。在步骤1130中,认证引擎215将填好的认证请求连同被哈希的消息和一个或多个数字签名的副本一起传输到事务引擎205。在步骤1135中,事务引擎205将包括事务ID、认证是否成功的指示和一个或多个数字签名的收据传输到卖方。根据一种实施例,上述传输可以有利地包括信任引擎110的数字签名。例如,信任引擎110可以用它的私钥加密收据的哈希,由此形成要附到给卖方的传输的数字签名。
[0165]根据一种实施例,事务引擎205还将确认消息传输到用户。尽管参考其优选和可选实施例公开了签署过程1100,但是本发明不是要由此受到限制。相反,本领域技术人员将从本文公开的内容认识到用于签署过程1100的众多可选方案。例如,卖方可以被例如电子邮件应用程序的用户应用程序代替。例如,用户可能希望用他或她的数字签名数字签署特定的电子邮件。在这样一种实施例中,贯穿签署过程1100的传输可以有利地只包括消息的哈希的一个副本。此外,本领域技术人员将从本文公开的内容认识到,众多的客户应用程序都可以请求数字签名。例如,客户应用程序可以包含文字处理器、电子制表软件、电子邮件、语音邮件、对受限系统区域的访问等。
[0166]此外,本领域技术人员将从本文公开的内容认识到,签署过程1100的步骤1105至1120可以有利地采用图9B的互操作性过程970的一些或全部步骤,由此在可能例如需要处理具有不同签名类型的数字签名的不同密码系统之间提供互操作性。
[0167]图12说明了根据本发明一种实施例各方面的加密/解密过程1200的数据流。如图12所示,解密过程1200开始于使用认证过程1000认证用户。根据一种实施例,认证过程1000在认证请求中包括同步的会话密钥。例如,在传统的PKI技术中,本领域技术人员理解,使用公共和私有密钥加密或解密数据是数学密集的并且可能需要可观的系统资源。但是,在对称密钥密码系统中,或者在消息的发送者与接收者共享用于加密和解密消息的单个公钥的系统中,数学运算明显地更简单更快。因此,在传统的PKI技术中,消息的发送者将产生同步会话密钥,并使用更简单更快的对称密钥系统加密消息。然后,发送者将用接收者的公钥加密会话密钥。加密后的会话密钥将附到同步加密的消息,并且两个数据都发送到接收者。接收者使用他或她的私钥解密会话密钥,然后使用会话密钥来解密消息。基于以上所述,更简单更快的对称密钥系统被用于大多数的加密/解密处理。因此,在解密过程1200中,解密有利地假设同步密钥已经利用用户的公钥加密了。因此,如上所述,加密后的会话密钥包括在认证请求中。
[0168]返回解密过程1200,在用户已经在步骤1205中得到认证之后,认证引擎215将加密的会话密钥转发到密码引擎220。在步骤1210中,认证引擎215将请求转发到每个数据储存设施D1至D4,请求用户的密码密钥数据。在步骤1215中,每个数据储存设施D1至D4都将密码密钥中它们各自的部分传输到密码引擎220。根据一种实施例,上述传输是用密码引擎220的公钥加密的。
[0169]在解密过程1200的步骤1220中,密码引擎220组装密码密钥并用其解密会话密钥。在步骤1225中,密码引擎将会话密钥转发到认证引擎215。在步骤1227中,认证引擎215填写包括解密后的会话密钥的认证请求,并将填好的认证请求传输到事务引擎205。在步骤1230中,事务引擎205将认证请求连同会话密钥一起转发到发出请求的应用程序或卖方。然后,根据一种实施例,发出请求的应用程序或卖方使用该会话密钥解密加密的消息。
[0170]尽管参考其优选和可选实施例公开了解密过程1200,但是本领域技术人员将从本文公开的内容认识到用于解密过程1200的众多可选方案。例如,解密过程1200可以走在同步密钥加密之前并且依赖完全公钥技术。在这样一种实施例中,发出请求的应用程序可以将全部消息传输到密码引擎220,或者可以采用某些类型的压缩或可逆哈希,以便将消息传输到密码引擎220。本领域技术人员还将从本文公开的内容认识到,上述通信可以有利地包括用SSL技术包装的(wrapped) XML文档。
[0171]加密/解密过程1200还提供对文档或其它数据的加密。因此,在步骤1235中,发出请求的应用程序或卖方可以有利地将对用户公钥的请求传输到信任引擎110的事务引擎205。发出请求的应用程序或卖方做出这个请求是因为,例如,发出请求的应用程序或卖方使用用户的公钥来加密用于加密文档或消息的会话密钥。如在注册过程900中所提到的,事务引擎205将用户的数字证书的副本存储在例如海量储存器225中。因此,在加密过程1200的步骤1240中,事务引擎205从海量储存器225请求用户的数字证书。在步骤1245中,海量储存器225将对应于用户的数字证书传输到事务引擎205。在步骤1250中,事务引擎205将数字证书传输到发出请求的应用程序或卖方。根据一种实施例,加密过程1200的加密部分不包括用户的认证。这是因为发出的请求卖方只需要用户的公钥而且不请求任何敏感数据。
[0172]本领域技术人员将从本文公开的内容认识到,如果特定用户不具有数字证书,则信任引擎110可以采用注册过程900的一部分或全部来为该特定用户生成数字证书。然后,信任引擎110可以启动加密/解密过程1200并由此提供适当的数字证书。此外,本领域技术人员将从本文公开的内容认识到,加密/解密过程1200的步骤1220和1235至1250可以有利地采用图9B的互操作性过程的一些或全部步骤,由此提供可能例如需要处理加密的不同密码系统之间的互操作性。
[0173]图13说明了根据本发明还有另一种实施例各方面的信任引擎系统1300的简化框图。如图13所示,信任引擎系统1300分别包括多个不同的信任引擎1305、1310、1315和1320。为了便于更加完全地理解本发明,图13将每个信任引擎1305、1310、1315和1320说明为具有事务引擎、存储库和认证引擎。但是,本领域技术人员将认识到,每个事务引擎都可以有利地包括参考图1-8公开的元素和通信信道的一些、组合或者全部。例如,一种实施例可以有利地包括具有一个或多个事务引擎、存储库和密码服务器或其任何组合的信任引擎。
[0174]根据本发明的一种实施例,每个信任引擎1305、1310、1315和1320都是地理上分离的,使得例如信任引擎1305可以驻留在第一位置中,信任引擎1310可以驻留在第二位置中,信任引擎1315可以驻留在第三位置中,而信任引擎1320可以驻留在第四位置中。上述地理分离有利地减少了系统响应时间,同时增加了整个信任引擎系统1300的安全性。
[0175]例如,当用户登录到密码系统100上时,用户可能离第一位置最近并且可能期望被认证。如参考图10所描述的,为了被认证,用户提供例如生物测定等的当前认证数据,并且该当前认证数据被与用户的注册认证数据比较。因此,根据一个例子,用户有利地将当前认证数据提供给地理上最近的信任引擎1305。然后,信任引擎1305的事务引擎1321将当前认证数据转发到同样驻留在该第一位置的认证引擎1322。根据另一种实施例,事务引擎1321将当前认证数据转发到信任引擎1310、1315或1320的一个或多个认证引擎。
[0176]事务引擎1321还请求组装来自例如每个信任引擎1305至1320的存储库的注册认证数据。根据这种实施例,每个存储库都将注册认证数据中它的那部分提供给信任引擎1305的认证引擎1322。然后,认证引擎1322采用来自例如前两个存储库的被加密数据部分来作出响应,并将注册认证数据组装成被破译的形式。认证引擎1322将注册认证数据与当前认证数据进行比较并且将认证结果返回到信任引擎1305的事务引擎1321。
[0177]基于以上所述,信任引擎系统1300采用多个地理上分离的信任引擎1305至1320中最近的一个来执行认证过程。根据本发明的一种实施例,将信息路由到最近的事务引擎可以有利地在客户端小程序执行,该客户端小程序在用户系统105、卖方系统120或证书机构115中的一个或多个上执行。根据一种可选实施例,可以采用更加精密的决策过程从信任引擎1305至1320进行选择。例如,决策可以基于给定信任引擎的可用性、操作性、连接速度、负载、性能、地理接近度或者其组合。
[0178]以这种方式,信任引擎系统1300使其响应时间更低,同时维持与地理上远程的数据储存设施相关的安全优点,例如参考图7讨论过的那些,在图7中每个数据存储设施都存储敏感数据被随机化的部分。例如,在例如信任引擎1315的存储库1325的安全损害不一定损害信任引擎系统1300的敏感数据。这是因为存储库1325只包含不可破译的被随机化的数据,如果没有更多的话,这种数据是完全没用的。
[0179]根据另一种实施例,信任引擎系统1300可以有利地包括布置成类似于认证引擎的多个密码引擎。密码引擎可以有利地执行密码功能,例如参考图1-8所公开的那些。根据还有另一种实施例,信任引擎系统1300可以有利地用多个密码引擎代替多个认证引擎,由此执行例如参考图1-8所公开的那些的密码功能。根据本发明还有另一种实施例,信任引擎系统1300可以用具有上述公开的认证引擎、密码引擎或者这两者的功能的一些或全部的引擎代替多个认证引擎中的每一个。
[0180]尽管参考其优选和可选实施例公开了信任引擎系统1300,但是本领域技术人员将认识到,信任引擎系统1300可以包括信任引擎1305至1320的部分。例如,信任引擎系统1300可以包括一个或多个事务引擎,一个或多个存储库,一个或多个认证引擎或者一个或多个密码引擎或者其组合。
[0181]图14说明了根据本发明还有另一种实施例各方面的信任引擎系统1400的简化框图。如图14所示,信任引擎系统1400包括多个信任引擎1405、1410、1415和1420。根据一种实施例,每个信任引擎1405、1410、1415和1420都包括参考图1_8所公开的信任引擎110的一些或全部元素。根据这种实施例,当用户系统105、卖方系统120或证书机构115的客户端小程序与信任引擎系统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的认证引擎的结果。
[0182]图15说明了图14的冗余模块的框图。该冗余模块包括比较器,比较器被配置成从三个认证引擎接收认证结果并将该结果传输到四个信任引擎的事务引擎。比较器比较来自三个认证引擎的认证结果,并且如果两个结果一致,比较器就断定认证结果应该与两个一致的认证引擎的认证结果匹配。然后,这个结果传输回到对应于与这三个认证引擎无关的信任引擎的事务引擎。
[0183]基于以上所述,冗余模块由从认证引擎接收到的数据确定认证结果,该认证引擎优选在地理上远离该冗余模块的信任引擎。通过提供这种冗余功能,信任引擎系统1400确保信任引擎1405至1420之一的认证引擎的损害不足以损害该特定信任引擎的冗余模块的认证结果。本领域技术人员将认识到,信任引擎系统1400的冗余模块功能还可以应用到每个信任引擎1405至1420的密码引擎。但是,这种密码引擎通信未在图14中示出,以免复杂。而且,本领域技术人员将认识到,对于图15的比较器的众多可选认证结果冲突消解算法都适于在本发明中使用。
[0184]根据本发明的还有另一种实施例,信任引擎系统1400在密码比较步骤期间可以有利地采用冗余模块。例如,可以在由一方或多方在特定事务阶段提供的文档的哈希比较期间有利地实现参考图14和15公开的上述冗余模块的一部分或全部。
[0185]尽管已经就某些优选和可选实施例描述了上述发明,但是由本文公开的内容,其他实施例对本领域普通技术人员也将是显而易见的。例如,信任引擎110可以发布短期证书,在该短期证书中私有的密码密钥被释放给用户预定的时间段。例如,当前证书标准包括有效性域,该有效性域可以被设置成在预定量时间之后过期。因此,信任引擎110可以将私有密钥释放给用户,该私有密钥将是例如24小时有效。根据这样一种实施例,信任引擎110可以有利地发布与特定用户相关联的新密码密钥对,然后释放该新密码密钥对的私钥。随后,一旦私有密码密钥被释放,信任引擎110就立即终止这种私有密钥的任何内部有效使用,因为它不再能够被信任引擎110保护。
[0186]此外,本领域技术人员将认识到,密码系统100或信任引擎110可以包括认出任何类型设备的能力,例如但不限于膝上型电脑、手机电话、网络、生物测定设备等。根据一种实施例,这种认出可以来自在对特定服务的请求中提供的数据,例如对导致访问或使用的认证的请求、对密码功能的请求等。根据一种实施例,上述请求可以包括例如像处理器ID的唯一设备标识符。可选地,请求可以包括具有特定可认出的数据格式的数据。例如,移动电话和卫星电话经常不包括对完全X509.v3重加密证书的处理职能,因此不能请求它们。根据这种实施例,信任引擎110可以认出所给出的数据格式的类型,并且只用这个类型响应。
[0187]在上述系统的其它方面中,可以使用将如下所述的各种技术来提供背景敏感的认证。如图16所示,背景敏感的认证提供不仅评估当尝试认证用户自己时由用户发送的实际数据而且评估围绕该数据的产生和交付的情形的可能性。这种技术还可以支持用户与信任引擎110之间或卖方与信任引擎110之间的事务专用信任仲裁,如下面将要描述的。
[0188]如以上所讨论的,认证是证明一个用户就是他说的那个人的过程。总的来说,认证需要向证书机构证明一些事实。本发明的信任引擎110代表用户必须向它认证他自己的机构。用户必须通过以下任意一个来向信任引擎110展示他就是他说的那个人:知道只有该用户应该知道的一些事情(基于知识的认证)、具有只有该用户应该具有的一些东西(基于标记的认证)、或者通过是只有用户应该是的一些东西(基于生物测定的认证)。
[0189]基于知识的认证的例子包括但不限于密码、PIN号或锁定组合。基于标记的认证的例子包括但不限于房屋钥匙、物理信用卡、司机的驾照或特定的电话号码。基于生物测定的认证的例子包括但不限于指纹、笔迹分析、面部扫描、手扫描、耳朵扫描、虹膜扫描、血管扫描、DNA、语音分析或视网膜扫描。
[0190]每种类型的认证都具有特定的优点和缺点,并且每种都提供不同的安全级别。例如,产生与某个其他人匹配的错误指纹比偶然听到某人的密码并重复它通常更难。每种类型的认证还要求不同类型的数据被证书机构知道,以便使用那种形式的认证来验证某人。
[0191]如在此所使用的,“认证”将广泛地指为验证某人的身份就是他说的那个人的全过程。“认证技术”将指基于特定的一块知识、物理标记或生物测定读数的特定认证类型。“认证数据”指发送到或者以别的方式证明给证书机构以便确立身份的信息。“注册数据”将指最初提交给证书机构以便建立用于与认证数据进行比较的基线的数据。“认证实例”将指与尝试通过认证技术进行认证有关的数据。
[0192]上面参考图10描述了在认证用户的过程中涉及到的内部协议和通信。该过程中背景敏感认证发生的那部分在如图10的步骤1045所示的比较步骤内发生。这个步骤发生在认证引擎215内并且涉及组装从存储库210取回(检索,retrieve)到的注册数据410并把用户提供的认证数据与它进行比较。这个过程的一种特定实施例在图16中示出并且在下面进行描述。
[0193]在图16的步骤1600中,认证引擎215接收用户提供的当前认证数据和从存储库210取回到的注册数据。这两个数据集都可以包含与各自的认证技术有关的数据。认证引擎215在步骤1605中分离与每个个别认证实例相关的认证数据。这是必要的,以便使得认证数据可以与用于用户的注册数据的适当子集进行比较(例如,指纹认证数据应该与指纹注册数据而不是密码注册数据进行比较)。
[0194]总的来说,依赖于哪种认证技术对用户可用,认证一个用户涉及一个或多个个别的认证实例。这些方法受限于用户在他的注册过程期间提供的注册数据(如果用户在注册时不提供视网膜扫描,他将不能使用视网膜扫描认证他自己),以及当前对用户可用的手段(例如,如果用户在他的当前位置不具有指纹阅读器,指纹认证将是不实际的)。在一些情况下,单个认证实例可能足以认证用户;但是,在某些情形下,为了特定事务更肯定地认证用户,可以使用多个认证实例的组合。
[0195]每个认证实例都由与特定认证技术(例如指纹、密码、智能卡等)有关的数据和围绕用于该特定技术的数据的捕获和交付的情形组成。例如,尝试经密码进行认证的特定实例将不仅产生与密码本身有关的数据,而且产生与密码尝试有关的、被称为“元数据”的旁证数据(circumstantial data)。这种旁证数据包括例如下列信息:特定认证实例发生的时间,认证信息从哪里被交付的网络地址,以及本领域技术人员已知的可以关于认证数据的来源进行确定的任何其它信息(连接类型,处理器序列号等)。
[0196]在许多情况下,只有少量的旁证元数据将是可用的。例如,如果用户位于使用代理或网络地址翻译或屏蔽原计算机的地址的其它技术的网络上,则只有代理或路由器的地址可以被确定。同样,在许多情况下,例如处理器序列号的信息将不可用,因为要么是所使用的硬件或操作系统的限制、系统的操作者禁止这种特征,要么是用户的系统与信任引擎110之间连接的其它限制。
[0197]如图16所示,一旦在步骤1605中在认证数据内提供的各个认证实例被提取和分离,认证引擎215就对每个实例的可靠性进行评估,指出该用户就是他所宣称的那个人。通常将基于几个因素确定单个认证实例的可靠性。这些因素可以被分组为:与认证技术相关的可靠性的因素,这些因素在步骤1610中被评估,和与所提供的特定认证数据的可靠性有关的因素,这些因素在步骤1815中被评估。第一组包括但不限于所使用的认证技术的固有可靠性及该方法所使用的注册数据的可靠性。第二组包括但不限于注册数据与认证实例提供的数据之间的匹配度及与该认证实例相关联的元数据。这些因素中的每一个都可以独立于其它因素而变化。
[0198]认证技术的固有可靠性是基于对于一个骗子而言提供其他人的正确数据有多难以及认证技术的总体误差率。对于基于密码和知识的认证方法,这个可靠性常常相当低,因为不能避免有人将他们的密码暴露给另一个人而且这第二个人使用该密码。即使基于更复杂知识的系统也可能只有中等程度的可靠性,因为知识可以很容易地从一个人传送给另一个人。例如具有正确的智能卡或使用特定终端来执行认证的基于标记的认证,在由它自己使用时同样具有低可靠性,因为不能保证正确的人拥有正确的标记。
[0199]但是,生物测定技术是更加固有可靠的,因为它一般难以给某人提供以便利方式、甚至是故意地使用你的指纹的能力。因为破坏生物测定认证技术更困难,所以生物测定方法的固有可靠性一般高于纯粹基于知识或标记物的认证技术。但是,即使生物测定技术也可能具有一些产生错误接受或错误拒绝的场合。这些事件可以通过用于同一种生物测定技术的不同实现的不同可靠性反映出来。例如,一个公司提供的指纹匹配系统可以比另一个公司提供的指纹匹配系统提供更高的可靠性,因为这个公司使用更高质量的光学设备或更好的扫描分辨率或减少错误接受或错误拒绝发生的一些其它改进。
[0200]应当指出,这种可靠性可以用不同方式来表达。期望将可靠性表达成某种量度,这种量度能够被试探法530和认证引擎215的算法用来计算每个认证的置信度。表达这些可靠性的一种优选模式是作为百分比或分数。例如,指纹可以被分配97%的固有可靠性,而密码可以只被分配为50%的固有可靠性。本领域技术人员将认识到,这些特定的值仅仅是示例性的并且可以在具体实现之间变化。
[0201]必须对其可靠性进行评估的第二个因素是注册的可靠性。这是上面提到的“分级注册”的一部分。这个可靠性因素反映出在最初的注册过程期间所提供的认证的可靠性。例如,如果个人最初以他们给公证员或其他公职人员物理产生他们的身份的证据的方式注册,并且注册数据当时被记录和公正,那么该数据将比在注册期间通过网络提供的和仅仅由并非真正绑定个人的数字签名或其它信息担保的数据更加可靠。
[0202]可靠性级别变化的其它注册技术包括但不限于:在信任引擎110操作者的实体办公室注册;在用户的就业场所注册;在邮局或护照办公室注册;通过信任引擎110操作者的下属方或信任方注册;所注册的身份尚未利用特定真人识别的匿名或笔名注册以及本领域已知的这种其它手段。
[0203]这些因素反映出信任引擎110与注册过程期间提供的识别来源之间的信任。例如,如果在提供身份证据的最初过程期间与雇主相关地执行注册,这个信息就可以被视为对于公司内部目的是极其可靠的,但是对于政府机构、或竞争对手而言可能是较低的信任度。因此,由这些其它组织中每一个操作的信任引擎可以将不同的可靠性级别分配给这个注册。
[0204]类似地,通过网络提交但是通过之前用同一个信任引擎110注册期间提供的其它被信任数据认证的附加数据可以被视为与原始注册数据一样可靠,即使后者的数据是通过开放式网络提交的。在这种情况下,后续的公正将有效增加与原始注册数据相关的可靠性级别。以这种方式,例如,通过给一些注册官方展示与注册数据匹配的个人身份,于是匿名或笔名注册可以被升至完全注册。
[0205]以上讨论的可靠性因素通常是可以在任何特定认证实例之前被确定的值。这是因为它们是基于注册和技术,而不是实际的认证。在一种实施例中,基于这些因素产生可靠性的步骤涉及为这种特定的认证技术和用户的注册数据查找之前被确定的值。在本发明一种有利实施例的另一方面中,这种可靠性可以被注册数据本身包括。以这种方式,这些因素连同由存储库210发送的注册数据一起自动交付给认证引擎215。
[0206]尽管这些因素通常可以在任何个人认证实例之前被确定,但是它们对使用用于那个用户认证的那种特定技术的每个认证实例都有影响。此外,尽管这些值可能随时间改变(例如,如果用户以更加可靠的方式重新注册),但是它们不依赖认证数据本身。与此相反,与单个具体实例的数据相关的可靠性因素可以针对每种场合而变。必须为每个新认证而对这些因素进行评估,以便在步骤1815中产生可靠性分数,如以下所讨论的。
[0207]认证数据的可靠性反映出用户在特定认证实例中提供的数据与在认证注册期间提供的数据之间的匹配。对于用户宣称他就是的那个个人而言,认证数据与注册数据是否匹配是最基本的问题。通常,当数据不匹配时,用户被视为未被成功认证,并且认证失败。对此进行评估的方式可以依赖所使用的认证技术而变。这种数据的比较是由如图5所示的认证引擎215的比较器515的功能来执行的。
[0208]例如,一般以二进制方式评估密码的匹配。换言之,密码要么完美匹配,要么不匹配。接受即使是部分匹配的密码通常也是不期望的,其中部分匹配的密码如果不是完全正确的话就是接近于正确的密码。因此,当对密码认证进行评估时,由比较器515返回的认证的可靠性通常要么是100% (正确)要么是0% (错误),没有中间值的可能性。
[0209]与用于密码的规则类似的规则通常应用到基于标记的认证方法,例如智能卡。这是因为有一张具有类似标识符或类似于正确智能卡的智能卡仍然与具有任何其它不正确标记是一样错误的。因此,标记也倾向于是二进制认证器:用户要么有正确的标记,要么没有。
[0210]但是,例如问卷和生物测定的某些类型的认证数据一般不是二进制认证器。例如,指纹可以与参考指纹有变化程度的匹配。在某种程度上,这可能是由于在最初注册期间或在后续认证中所捕捉到的数据在质量方面的变化。(指纹可能被弄脏或者一个人在特定的手指上可能有仍在康复中的伤疤或烧伤)。在其他实例中,数据可能不太完美地匹配,因为信息本身也会有些可变并且是基于模式匹配。(语音分析可看起来接近但不是完全正确,因为记录语音时的背景噪声或环境声响,或者因为这个人感冒了)。最后,在大量数据被比较的情况下,情况可能只不过是大部分数据匹配良好,但是一些数据匹配不良好。(十个问题的问卷可能导致对人员问题的八个正确回答,以及两个错误回答)。对于这些原因中的任何原因,注册数据与用于特定认证实例的数据之间的匹配可能期望由比较器515分配一个部分匹配值。以这种方式,例如,指纹可能被说成是85%匹配,声纹是65%匹配,而问卷是80%匹配。
[0211]由比较器515产生的这个测量(匹配度)是代表认证是正确还是错误的基本问题的因素。但是,如以上所讨论的,这只是可以在确定给定认证实例的可靠性中使用的因素之一。还应当注意,即使可以确定最终匹配到某部分程度,但基于部分匹配提供二进制结果可能还是期望的。在一种可选的操作模式中,还有可能基于匹配度是否超过特定的匹配阀值水平而将部分匹配作为二进制来看待,即,要么完美匹配(100%),要么不匹配(0%)。这种过程可以用于为将以别的方式产生部分匹配的系统提供简单的匹配通过/失败级别。
[0212]在评估给定认证实例的可靠性中要考虑的另一个因素涉及提供用于这个特殊实例的认证数据所处的情形。如以上所讨论的,该情形指与特定认证实例相关联的元数据。这可以包括但不限于例如这种信息:认证者的网络地址;能够被确定到的程度;认证的时间,认证数据传输的模式(电话线、蜂窝、网络等);及认证者的系统的序列号。
[0213]这些因素可以用于产生通常被用户请求的认证类型的简档。然后,该信息可以用于以至少两种方式访问可靠性。一种方式是考虑用户是否正在以一种方式请求认证,这种方式与通过该用户认证的标准简档一致。如果用户通常在工作日期间(当她在工作时)从一个网络地址而在晚上或周末期间(当她在家时)从一个不同的网络地址做出认证请求,则在工作日期间从家庭地址发生的认证是不太可靠的,因为它在正常的认证简档之外。类似地,如果用户通常使用指纹生物并且在晚上认证,则日间只使用密码发起的认证是不太可靠的。
[0214]旁证元数据可以用于评估认证实例的可靠性的另一种方式是确定环境提供了多少该认证者就是他宣称的那个个人的进一步证据。例如,如果认证来自具有已知与该用户相关的序列号的系统,那么这是用户就是他宣称的那个人的良好旁证指示器。反之,如果认证来自已知是洛杉矶的网络地址而用户已知是住在伦敦,则基于其环境,这是该认证不太可靠的指示。
[0215]当用户与卖方系统或者与信任引擎110交互时,还有可能Cookie或其它电子数据放在用户使用的系统上。这种数据写到用户系统的储存器并且可以包含可以被用户系统上的网络浏览器或其它软件读取的识别。如果在会话之间允许这种数据驻留在用户系统上(“持久的Cookie”),则在特定的用户认证期间它可以与认证数据一起发送,作为过去使用过这个系统的进一步证据。事实上,给定实例的元数据,尤其是持久的Cookie,可以形成一种基于标记的认证器本身。
[0216]一旦如上所述分别在步骤1610和1615中基于认证实例的技术和数据产生了适当的可靠性因素,它们就被用于为在步骤1620中提供的认证实例产生总体可靠性。完成这个任务的一种手段是将每个可靠性简单地表达为百分比然后使它们相乘。
[0217]例如,假设认证数据是从完全根据用户过去的认证简档(100%)已知是用户的家庭计算机的网络地址发送来的,并且所使用的技术是指纹识别(97%),并且最初的指纹数据是通过具有认证引擎110的用户的雇主摆出的(roistered) (90%),而且认证数据与注册数据中最初的指纹模板之间的匹配非常好(99%)。于是,这种认证实例的总体可靠性可以被计算为这些可靠性的乘积:100%*97%*90%*99%-86.4%可靠性。
[0218]这个计算出的可靠性代表一个单个认证实例的可靠性。还可以使用一些技术计算单个认证实例的总体可靠性,这些技术例如通过使用一些公式对不同的可靠性因素进行不同处置,在这些公式中将不同的权重分配给每个可靠性因素。此外,本领域技术人员将认识至IJ,所使用的实际值可以代表除百分比之外的其它值并且可以使用非算术系统。一种实施例可以包括被由认证请求者用于为每个因素设置权重的模块和在建立认证实例的总体可靠性中使用的算法。
[0219]认证引擎215可以使用上述技术及其变体来确定单个认证实例的可靠性,如步骤1620所指出的那样。但是,在同时要提供多个认证实例的许多认证情形中它可能是有用的。例如,当尝试使用本发明的系统认证他自己时,用户可以提供用户识别、指纹认证数据、智能卡和密码。在这种情况下,三个独立的认证实例提供给信任引擎110,用于评估。前进到步骤1625,如果认证引擎215确定用户提供的数据包括多于一个认证实例,则每个实例又像步骤1630所示的那样被选择,并且像以上在步骤1610、1615和1620中所描述的那样进行评估。
[0220]应当注意,所讨论的许多可靠性因素都可以在这些实例中的一个与另一个之间发生变化。例如,这些技术的固有可靠性,以及认证数据与注册数据之间提供的匹配度,都有可能不同。此外,用户可能在不同的时间和不同的情形下已经为这些技术中的每一个都提供了注册数据,还为这些实例中的每一个提供了不同的注册可靠性。最后,即使被提交的用于每个这些实例的数据所处的情形相同,这些技术的使用也可以每个都不同地适合用户的简档,因此可以被分配不同的旁证可靠性。(例如,用户通常可能使用他们的密码和指纹,而不是他们的智能卡。)
[0221]因此,用于这些认证实例中每一个的最终可靠性可以各不相同。但是,通过一起使用多个实例,认证的总体置信级别将趋于增大。
[0222]一旦认证引擎已经为认证数据中提供的所有认证实例执行了步骤1610至1620,就在步骤1635中使用每个实例的可靠性来评估总体认证置信级别。将各认证实例可靠性结合到认证置信级别中的这个过程可以通过与所产生的各可靠性有关的各种方法进行模拟,并且还可以解决这些认证技术中的一些之间的特定交互。(例如,多个基于知识的系统,例如密码,可以产生比单个密码和甚至是例如基本语音分析的相当弱的生物测定更少的信任。)
[0223]其中认证引擎215可以结合多个并发认证实例的可靠性来产生最终置信级别的一种手段是使每个实例的不可靠性相乘,以获得总体不可靠性。不可靠性一般是可靠性的互补百分数。例如,84%可靠的技术就是16%不可靠的。产生可靠性86%、75%和72%的上述三个认证实例(指纹、智能卡、密码)具有分别为(100-86)%、(100-75)%和(100—72)%,或14%、25%和28%,的对应不可靠性。通过使这些不可靠性相乘,我们得到14%*25%*28%-0.98%不可靠性的累计不可靠性,这对应于99.02%的可靠性。
[0224]在另一种操作模式中,可以在认证引擎215内应用别的因素和试探法530,来说明不同认证技术的互相依赖性。例如,如果某人尚未被认证有权访问特定的家庭计算机,他们还可能有权访问该地址的电话线。因此,基于源电话号码以及基于认证系统的序列号的认证不会在认证过程中给总信任增加太多。但是,基于知识的认证在很大程度上不依赖于基于标记的认证(即,如果某人偷了你的蜂窝电话或密码,则他们不会比没做此事更有可能知道你的PIN或密码)。
[0225]此外,不同卖方或其他认证请求者可能希望给认证的不同方面施以不同的权重。这可以包括使用单独的权重因素或在计算各实例的可靠性过程中使用的算法,以及使用不同手段评估具有多个实例的认证事件。
[0226]例如,对于某种类型事务的卖方,例如社团电子邮件系统,可能期望主要基于试探法和默认的其它旁证数据进行认证。因此,他们可以将高的权重施加给与元数据和其它简档有关的因素,其中其它简档涉及与围绕认证事件的情形相关的信息。通过不比用户在工作日期间登录到正确的机器上对用户要求更多,这种安排可以用于在正常操作时间期间减轻用户的负担。但是,另一个卖方可能给来自特定技术的认证施加更重的权重,例如指纹匹配,这是因为这种技术最适于用于该特定卖方目的的认证的方针决策。
[0227]这种变化的权重可以由认证请求者在产生认证请求的过程中定义并且在一种操作模式中利用认证请求发送给信任引擎110。这种选项在用于认证请求者的最初注册过程期间与可以被设置为偏好并在另一种操作模式中存储在认证引擎内。
[0228]一旦认证引擎215为所提供的认证数据产生了认证置信级别,这个认证级别就在步骤1640中用于完成认证请求,并且这个信息从认证引擎215转发到事务引擎205,以便包括在给认证请求者的消息中。
[0229]上述过程只是示例性的,而且本领域技术人员将认识到,这些步骤不需要按照所示的顺序执行或者只期望执行某些步骤,或者可能期望这些步骤的各种组合。此外,如果情形允许的话,某些步骤,例如对所提供的每个认证实例的可靠性的评估,可以彼此并行地执行。
[0230]在本发明的另一方面中,提供了一种当上述过程产生的认证置信级别不满足要求认证的卖方或其他方要求的信任级别时适应这种条件的方法。在例如所提供的置信级别与期望的信任级别之间存在差距的情形下,信任引擎110的操作者要给一方或两方提供机会来提供替代数据或要求,以关闭这种信任差距。在本文中这个过程将被称为“信任仲裁”。
[0231]信任仲裁可以在如上参考图10和11所描述的密码认证框架内发生。如其中所示,卖方或其他方将请求与特定事务相关的特定用户的认证。在一种情形下,卖方简单地请求认证,要么肯定要么否定,并且在接收到来自用户的适当数据后,信任引擎110将提供这种二进制认证。在例如这些的情形下,为了保证肯定的认证,所需的置信度是基于信任引擎110内设置的偏好确定的。
[0232]但是,为了完成特定的事务,卖方还可能请求特定的信任级别。这个所需级别可以被包括在认证请求内(例如,认证该用户98%可信)或者可以由信任引擎110基于与事务相关的其它因素确定(即,将该用户认证为对于该事务是适当的)。一个这种因素可能是事务的经济价值。对于具有更大经济价值的事务,可能要求更高的信任度。同样,对于具有高度风险的事务可以要求高信任度。反之,对于低风险或低价值的事务,可以要求卖方或其他认证请求者较低的信任级别。[0233]信任仲裁过程发生在信任引擎110在图10的步骤1050中接收认证数据与在图10的步骤1055中将认证结果返回给卖方的步骤之间。在这些步骤之间,导致对信任级别和可能的信任仲裁进行评估过程发生,如图17所示。在执行简单的二进制认证的情形下,图17所示的过程缩小成使事务引擎205将所提供的认证数据与用于被识别用户的注册数据直接进行比较,如上面参考图10所讨论的,从而将任何差别都标志为否定的认证。
[0234]如图17所示,在步骤1050中接收到数据后的第一步是让事务引擎205确定对用于步骤1710中的这个特定事务的肯定认证要求的信任级别。这个步骤可以通过几种不同方法之一执行。在做出认证请求时,可以由认证请求者给信任引擎110规定要求的信任级另O。认证请求者还可以事先设置偏好,该偏好存储在可通过事务引擎205访问的存储库210或其它储存器内。然后这个偏好被读取并在每次由这个认证请求者做出认证请求时使用。偏好还可以作为一种安全措施与特定用户相关,使得为了认证该用户总是要求特定的信任级别,其中用户偏好存储在可通过事务引擎205访问的存储库210或其它储存器中。还可以由事务引擎205或认证引擎215基于在认证请求中提供的信息,例如待认证事务的价值和风险级别,导出要求的级别。
[0235]在一种操作模式中,产生认证请求时所使用的策略管理模块或其它软件用于规定事务认证要求的信任度。当基于策略管理模块内规定的策略分配要求的信任度时,这可以用于提供一系列要遵守的规则。一种有利的操作模式是让这样一种模块与卖方的网络服务器合并,以便适当地确定用于以卖方的网络服务器启动的事务所要求的信任级别。以这种方式,来自用户的事务请求可以依据卖方的策略被分配一个要求的信任级别,并且这种信息可以连同认证请求一起转发到信任引擎110。
[0236]这个被要求的信任级别与卖方想要使认证的个人事实上就是他将他自己识别成的那个人的确信度相关。例如,如果因为货物转手而使得事务是卖方想要中等确信度的那种事务,则卖方可能需要85%的信任级别。对于卖方只是认证用户以便允许他只查看成员的内容或练习聊天室的权利的状况,负面风险可能小到足以使卖方只要求60%的信任级另O。但是,为了进入价值为好几万美元的产品合同,卖方可能需要99%或更高的信任级别。
[0237]这个被要求的信任级别代表用户必须认证他自己以便完成该事务的量度。例如,如果要求的信任级别为85%,则用户必须给信任引擎110提供认证,该认证足以使信任引擎110以85%的信心说出该用户是他们说他们是的那个人。在这个被要求的信任级别与产生肯定认证(为了卖方满意)或信任仲裁的可能性的认证置信级别之间存在一种平衡。
[0238]如图17所示,事务引擎205接收到被要求的信任级别后,它在步骤1720中对被要求的信任级别与认证引擎215为当前认证计算的认证置信级别进行比较(如参考图16所讨论的)。如果在步骤1730中认证置信级别高于对事务要求的信任级别,则过程移到步骤1740,在步骤1740中由事务引擎205产生用于该事务的肯定认证。然后,为此目的的消息将被插到认证结果中并通过事务引擎205返回给卖方,如步骤1055所示(参见图10)。
[0239]但是,在步骤1730中如果认证置信级别不满足所要求的信任级别,则当前的认证存在置信差距,并且在步骤1750中进行信任仲裁。下面参考图18更完整地描述信任仲裁。如下所述的这个过程发生在信任引擎110的事务引擎205内。因为(除了在事务引擎205与其它组件之间的SSL通信要求的那些之外)不需要认证或其它密码操作来执行信任仲裁,所以可以在认证引擎215外执行该过程。但是,如以下将讨论的,认证数据或其它密码或认证事件的任何重新评估都将要求事务引擎205将适当的数据重新提交给认证引擎215。本领域技术人员将认识到,信任仲裁过程能够可选地被构建成部分或全部地在认证引擎215自身当中发生。
[0240]如上所述,信任仲裁是一种在适当的时候尝试保护肯定认证中信任引擎110在卖方和用户之间对协商进行调解的过程。如步骤1805所示,事务引擎205首先确定当前的状况是否适于信任仲裁。这可以基于认证的情形,例如,该认证是否已经通过多轮仲裁,以及基于卖方或用户的偏好,进行确定,如以下将进一步讨论的。
[0241]在仲裁不可行这种情形下,过程前进到步骤1810,在步骤1810中事务引擎205产生否定认证并且随后将它插到在步骤1055(参见图10)中发送给卖方的认证结果中。可以有利地用于防止认证无限期等待的一个限制是从最初的认证请求开始设置超时时间段。以这种方式,在该时限内未被肯定认证的任何事务都被拒绝进一步仲裁并被否定认证。本领域技术人员将认识到,这种时限可以依据事务的情形以及用户和卖方的期望而变化。还可以对提供成功的认证时做出尝试的次数进行限制。这种限制可以由尝试限制器535操纵,如图5所示。
[0242]如果在步骤1805中未禁止仲裁,事务引擎205接着将参与到与事务方之一或二者的协商中。事务引擎205可以向用户发送请求某些形式的附加认证的消息,以便提高如步骤1820所示产生的认证置信级别。以最简单的形式,这可以简单地指出认证是不充分的。还可以发送产生一个或多个附加认证实例的请求,以提高认证的总体置信级别。
[0243]如果用户在步骤1825中提供一些附加的认证实例,则事务引擎205将这些认证实例添加到用于事务的认证数据中并将它转发到认证引擎215,如步骤1015所示(参见图10),并且基于为这个事务预存的认证实例和新提供的认证实例两者重新评估认证。
[0244]附加类型的认证可以是来自信任引擎110的一个请求,用于例如通过电话呼叫在信任引擎110操作者(或被信任的伙伴)与用户之间进行某种形式的人与人的接触。这种电话呼叫或其它非计算机认证可以用于提供与个人的私人接触,并且还用于进行基于认证的某种形式的问卷。当用户呼入时,这还可以给出验证来源电话号码和对用户的可能的语音分析的机会。即使不能提供附加的认证数据,与用户的电话号码相关的附加背景也可以提高认证背景的可靠性。基于这种电话号码的任何已修改的数据或情形都被馈送至信任引擎110中,以便在考虑认证请求时使用。
[0245]此外,在步骤1820中,信任引擎110可以向用户提供购买保险的机会,从而有效地购买更多的可信认证。有时候,如果认证的置信级别高于起初的某个阀值,信任引擎110的操作者可能只想让这种选项可用。实际上,这种用户端的保险是一种在认证满足信任引擎110对认证的正常要求的信任级别但不满足卖方对这个事务要求的信任级别时信任引擎110为用户做担保的方式。以这种方式,即使用户只具有产生对信任引擎110而言足够的信心的认证实例,他也仍旧可以成功地认证到如卖方可能要求的非常高的级别。
[0246]信任引擎110的这个功能使信任引擎110能够担保被认证为信任引擎110满意但是卖方不满意的某个人。这类似于公证员在给文档添加他的签名以便向以后阅读该文档的某人指出其签名出现在文档上的人员事实上就是签署文档的人员的过程中执行的功能。公证员的签名证明了被用户签署的行为。按照同样的方式,信任引擎提供正在进行事务的人员就是他们说他们就是的那个人的指示。[0247]但是,因为信任引擎110人为地提高用户提供的置信级别,所以对于信任引擎110操作者而言存在较大的风险,因为用户事实上不满足卖方要求的信任级别。将保险的成本设计成对信任引擎110(其可以是对用户的认证进行有效公正的信任引擎110)弥补错误的肯定认证的风险。用户向信任引擎110操作者付费,承担认证到比已经实际提供的置信级别更高的级别的风险。
[0248]因为这种保险系统允许某人从信任引擎110有效地购买更高的置信率,所以卖方和用户可能都希望在某些事务中防止用户端保险的使用。卖方可能希望将肯定认证限制到他们知道实际的认证数据支持他们要求的置信度这种情形,因此可以向信任引擎110指出不允许用户端保险。类似地,为了保护他的在线身份,用户可能希望避免在他的账户上使用用户端保险,或者可能希望将其使用限制到无保险的认证置信级别高于某个限制的情形。这可以被用作一种安全措施,以防某人偶然听到密码或偷了智能卡并使用它们错误地认证到低置信级别,然后购买保险来产生非常高的(错误)置信级别。在确定用户端保险是否被允许的过程中可以评估这些因素。
[0249]如果用户在步骤1840中购买了保险,就在步骤1845中基于购买的保险调整认证置信级别,并且在步骤1730(参见图17)中对认证置信级别与要求的信任级别再次进行比较。过程从那里继续,并且可以在步骤1740(参见图17)中导致肯定认证,或者回到步骤1750中的信任仲裁过程中以便进一步仲裁(如果允许),或者如果进一步的仲裁被禁止的话就是步骤1810中的否定认证。
[0250]除了在步骤1820中将消息发送给用户之外,事务引擎205还可以在步骤1830中将消息发送给卖方,所述消息指出未决的认证当前处于要求的信任级别之下。该消息还可以提供关于怎样去往卖方的不同选项。这些选项之一是简单地告知卖方当前的认证置信级别是什么并且询问卖方是否希望维持他们当前尚不满足要求的信任级别。这可能是有利的,因为,在某些情况下,卖方可能具有对于认证事务而言独立的手段或者可能曾经使用了缺省设置的要求,该默认设置的要求一般会导致最初规定比对手头特定事务实际上需要的级别更高要求的级别。
[0251]例如,期望所有进入的与卖方的订购单事务都满足98%信任级别可以是标准惯例。但是,如果一个订单最近通过电话在卖方与长期消费者之间被讨论过,并且事务在其后被立即认证,但是只有93%置信级别,则卖方可能希望简单地降低用于该事务的认可阀值,因为电话呼叫给卖方有效地提供了附加认证。在某些情况下,卖方可能愿意降低他们要求的信任级别,并非总是当前的认证置信级别。例如,上述示例中的卖方可以认为订购之前的电话呼叫可以获得在所需信任度方面4%的较少;但是,这仍旧比用户产生的93%的信心大。
[0252]如果卖方在步骤1835中不调整他们要求的信任级别,就在步骤1730 (参见图17)中对认证产生的认证置信级别与要求的信任级别进行比较。如果现在置信级别超过了要求的信任级别,就可以在步骤1740(参见图17)中在事务引擎205中产生肯定认证。如果没有,就可以如上所述尝试进一步的仲裁,如果这种仲裁被允许的话。
[0253]除了请求调整要求的信任级别之外,事务引擎205还可以给请求认证的卖方提供卖方端保险。这种保险充当与上述用于用户端的保险类似的目的。但是,在这里,保险的成本对应于卖方在认证中接受较低信任级别的过程中承担的风险的成本,而不是对应于信任引擎110在高于所产生的实际认证置信级别的认证中所承担风险的成本。[0254]卖方具有购买保险的选项以保护它自己避免与用户认证过程中的较低信任级别相关的附加风险,而不是只降低他们实际要求的信任级别。如上所述,对于只考虑购买这种保险以克服在现有认证已经超过某阀值的条件下的信任差距的卖方而言,这可能是有利的。
[0255]这种卖方端保险的可用性允许卖方有下列选项:在对他自己无附加成本时将他的信任要求直接降低,承担错误认证他自己的风险(基于要求的较低信任级别);或者,购买用于认证置信级别与他的要求之间的信任差距的保险,由信任引擎110操作者承担已经提供的较低置信级别的风险。通过购买保险,卖方有效保持他的高信任级别要求;因为错误认证的风险被转移给信任引擎110操作者了。
[0256]如果卖方在步骤1840中购买了保险,就在步骤1730 (参见图17)中对认证置信级别与要求的信任级别进行比较,并且过程如上所述继续。
[0257]应当注意,还有可能用户和卖方双方都响应于来自信任引擎110的消息。本领域技术人员将认识到,存在能够操纵这种状况的多种方式。操纵可能的多个响应的一种有利模式是简单地按照先来先服务的方式处置响应。例如,如果卖方以降低要求的信任级别响应,并且用户也紧随其后购买了保险来升高他的认证级别,那么,基于来自卖方的被降低的信任要求首先重新评估认证。如果现在认证是肯定的,则用户的保险购买被忽略。在另一种有利的操作模式中,用户可以只对满足卖方新的、被降低的信任要求所要求的保险级别进行充值(如果即使卖方信任要求已降低但仍然有信任差距)。
[0258]如果在为认证设置的时间限制内在步骤1850的信任仲裁过程期间没有接收到来自任一方的响应,就在步骤1805中对仲裁进行重新评估。这会有效地再次开始仲裁过程。如果在步骤1805中时限是决定性的或者其它情形阻止进一步的仲裁,就在步骤1810中由事务引擎205产生否定认证并且在步骤1055(参见图10)中返回给卖方。如果不是,新消息就可以发送到用户和卖方,并且过程可以按需重复。
[0259]应当注意,对于某些类型的事务,例如,不属于事务一部分的数字签署文档,可能不必有一个卖方或其他第三方;因此事务首先是在用户与信任引擎110之间。在例如这些的情形下,信任引擎110将具有它自己要求的信任级别,为了产生肯定的认证,该信任级别必须被满足。但是,在这种情形下,将经常不期望信任引擎110给用户提供保险以便于他升高对他自己拥有的签名的信任。
[0260]可以使用如上参考信任引擎110所述的各种通信模式执行以上所述并在图16-18中示出的过程。例如,消息可以是基于网络的并使用信任引擎Iio与小程序之间的SSL连接发送,其中该小程序被实时下载到运行在用户或卖方系统上的浏览器中。在一种可选的操作模式中,某些专用的应用程序可以被推动这种仲裁和保险事务的用户和卖方使用。在另一种可选的操作模式中,安全电子邮件操作可以用于调解上述仲裁,由此允许认证的延期评估和成批处理。本领域技术人员将认识到,可以使用适于卖方的情形和认证要求的不同通信模式。
[0261]以下参考图19的描写描述了融入如上所述本发明各方面的样本事务。这个例子说明了由信任引擎110调解的用户与卖方之间的整个过程。尽管如上具体描述过的各个步骤和组件可以用于执行下面的事务,但是所说明的过程集中在信任引擎110、用户与卖方之间的交互。[0262]在步骤1900中当用户正在在线查看网页、在卖方的网站上填写订货单时,事务开始。用户希望将用他的数字签名签署的这个订货单提交给卖方。为此,用户利用他在步骤1905中向信任引擎110对签名的请求来提交订货单。用户还将提供将被如上所述用于认证他的身份的认证数据。
[0263]在步骤1910中,如以上所讨论的,由信任引擎110将认证数据与注册数据进行比较,并且,如果产生肯定的认证,就把用用户的私钥签署的订货单的哈希连同订货单自身一起转发到卖方。
[0264]卖方在步骤1915中接收到被签署的订货单,然后卖方将在步骤1920中产生与待做出的购买有关的发票或其它合同。在步骤1925中,这个带有对签名的请求的合同被发回到用户。在步骤1930中,卖方还将对这个合同事务的认证请求发送给信任引擎110,包括将由双方签署的合同的哈希。为了允许双方数字签署合同,卖方还包括用于自身的认证数据,使得卖方对合同的签名能够在以后需要时被验证。
[0265]如以上所讨论的,信任引擎110接着验证卖方提供的认证数据以确认卖方的身份,并且,如果在步骤1935中数据产生了肯定的认证,就在接收到来自用户的数据时以步骤1955继续。如果卖方的认证数据不能与卖方的注册数据匹配到期望的程度,则一个消息被返回到卖方,请求进一步认证。为了卖方向信任引擎110成功地认证它自己,如果需要,可以在这里执行信任仲裁,如上所述。
[0266]在步骤1940中,当用户接收到合同时,他重新查看它,如果它在步骤1945中是可接受的,就产生认证数据来签署它,然后在步骤1950中将合同的哈希及他的认证数据发送给信任引擎110。在步骤1955中,信任引擎110验证认证数据,并且,如果认证良好,就前去处理合同,如下所述。如以上参考图17和18所讨论的,在适当的时候可以执行信任仲裁,以关闭存在于认证置信级别与事务所要求的认证级别之间的任何信任差距。
[0267]信任引擎110用用户的私钥签署合同的哈希,并且在步骤1960中将这个签署的哈希发送给卖方,代表它自己的利益签署完整的消息,即,包括用信任引擎Iio的私钥510加密的完整消息的哈希(包括用户的签名)。在步骤1965中,这个消息被卖方接收。该消息代表被签署的合同(使用用户的私钥加密的合同的哈希)和来自信任引擎110的发票(消息的哈希包括使用信任引擎110的私钥加密的被签署的合同)。
[0268]在步骤1970中,信任引擎110类似地用卖方的私钥准备合同的哈希,并将这个转发到用户,由信任引擎110签署合同。以这种方式,用户也接收由卖方签署的合同的副本以及由信任引擎Iio签署的发票,以便在步骤1975中交付签署的合同。
[0269]除了以上所述之外,本发明的另一方面提供一种密码服务提供商模块(SPM),该模块可以让客户端应用程序用作一种访问由上述信任引擎110提供的功能的手段。对于密码SPM而言,提供这种服务的一种有利方式是调解第三方应用编程接口(API)与信任引擎110之间的通信,其中经网络或其它远程连接可访问信任引擎110。下面参考图20描述样本密码 SPM。
[0270]例如,在一种典型的系统上,许多API可以让编程者获得。每个API都提供一组可以由运行在系统上的应用程序2000进行的函数调用。提供适于密码功能、认证功能和其他安全功能的编程接口的API的例子包括Microsoft用它的Windows操作系统提供的密码API (CAPI) 2010,及由IBM、Intel和Open Group的其它成员发起的通用数据安全架构(CDSA)。在下面的讨论中,CAPI将被用作示例性安全性API。但是,所描述的密码SPM能够用于CDSA或现有技术中已知的其它安全性API。
[0271]当为了密码功能而进行呼叫时,这个API被用户系统105或卖方系统120使用。包括在这些功能当中的可以是与执行各种密码操作相关的请求,这些密码操作例如:用特定的密钥加密文档、签署文档、请求数字证书、对签署的文档上的签名进行验证,及在此所描述的或者本领域技术人员已知的此类其它密码功能。
[0272]这种密码功能通常在CAPI 2010所位于的系统上被本地执行。这是因为通常被调用的函数要求使用例如指纹阅读器的本地用户系统105的资源,或者使用在本地机器上执行的库编程的软件函数。对这些本地资源的访问通常是由以上提到的一个或多个服务提供商模块(SPM)2015、2020提供的,这些模块提供执行密码功能所用的资源。这种SPM可以包括用于执行加密或解密操作的软件库2015,或者能够访问例如生物测定扫描设备的专用硬件2025的驱动器和应用程序2020。在CAPI 2010提供可被系统105的应用程序2000使用的函数的许多方式中,SPM 2015,2020向CAPI提供对较低级别函数和与系统上可用的服务相关的资源的访问。
[0273]根据本发明,有可能提供一种能够访问由信任引擎110提供的密码功能并且使这些功能通过CAPI 2010提供给应用程序2000的密码SPM 2030。与CAPI 2010仅能访问通过SPM 2015、2020本地提供的资源的实施例不同,本文所述的密码SPM 2030将能够把对密码操作的请求提交给远程定位的、网络可访问的信任引擎110,以便执行期望的操作。
[0274]例如,如果应用程序2000具有对例如签署文档的密码操作的需要,应用程序2000就对适当的CAPI 2010函数进行函数调用。CAPI 2010随后将执行这个函数,使用通过SPM2015、2020和密码SPM2030提供给它的资源。在数字签名功能的情况下,密码SPM 2030将产生适当的请求,该请求将通过通信链路125发送到信任引擎110。
[0275]在密码SPM 2030和信任引擎110之间发生的操作是相同的操作,该操作在任何其它系统与信任引擎110之间都是可能的。但是,这些功能是通过CAPI 2010有效地提供给用户系统105的,使得它们看起来就像是在用户系统105上自身本地可用的。但是,与普通的SPM 2015,2020不同,该功能是响应跨信链路125的适当的请求而在远程信任引擎110上执行的并且结果被中继到密码SPM 2030。
[0276]这个密码SPM 2030进行用户系统105和卖方系统120可用的许多操作,在其它情形下,这些操作可能不可用。这些功能包括但不限于:文档的加密和解密;数字证书的发布;文档的数字签署;数字签名的验证;及对本领域技术人员而言将显而易见的此类其它操作。
[0277]在一种独立的实施例中,本发明包含用于对任何数据集执行本发明的数据保护方法的一个完整系统。该实施例的计算机系统包括数据分割模块,该数据分割模块包括图8所示并且在本文进行了描述的功能。在本发明的一种实施例中,在本文中有时被称为安全数据解析器的数据分割模块包括解析器程序或软件套件,它包括数据分割、加密和解密、重构或重组功能。这种实施例还可以进一步包括一个数据储存设施或多个数据储存设施。数据分割模块,或者说安全数据解析器,包括跨平台软件模块套件,该套件集成在电子基础设施内,或者作为插件集成到要求其数据元素最终安全的任何应用程序中。这个解析过程对任何类型的数据集并且对任何和所有的文件类型、或者在数据库中对该数据库中的任何行、列或单元数据进行操作。
[0278]在一种实施例中,本发明的解析过程可以模块式层叠方式设计,并且任何加密过程都适于在本发明的过程中使用。本发明的解析和分割过程的模块式层叠可以包括但不限于:1)密码分割、分散并安全地存储在多个位置中;2)加密、密码分割、分散并安全地存储在多个位置中;3)加密、密码分割、对每份加密、然后分散并安全地存储在多个位置中;及4)加密、密码分割、用不同于在第一步中使用的加密类型对每份加密,然后分散并安全地存储在多个位置中。
[0279]在一种实施例中,该过程包阔根据所产生随机数或密钥的内容分割数据,并对在分割数据的加密过程中使用的密钥执行相同的密码分割,所述数据是要被保护成解析和分割后的数据的两个或更多个部分,或者说份,而且,在一种实施例中,优选被保护成解析和分割后的数据的四个或更多部分,对所有部分进行加密,然后将这些部分散开并存回数据库中,或者依赖请求者对隐私和安全的需要将它们重新定位到任何固定或移动的指定设备中。可选地,在另一种实施例中,加密可以在通过分割模块或安全数据解析器分割数据集之前发生。如在这种实施例中所描述的那样,被处理的原始数据被加密并混乱(obfuscate),从而得到保护。如果期望的话,被加密元素的分散几乎可以在任何地方,包括但不限于单个服务器或数据储存设备,或在独立的数据储存设施或设备之间。在一种实施例中,加密密钥管理可以包括在软件套件内,或者,在另一种实施例中,可以集成在现有基础设施或任何其它期望的位置中。
[0280]密码分割(cryptosplit)将数据分成N份。这种分块可以针对任何大小的数据单元,包括各个位、多位、多字节、千字节、兆字节、或更大的单元,以及不管是预定还是随机产生的数据单元大小的任何模式或组合。基于随机或预订的值集,单元还可以具有不同大小。这意味着数据可以被视为一系列这些单元。以这种方式,数据单元自身的大小可以例如通过使用一个或多个预订或随机产生的模式、序列或数据单元大小的组合使数据更安全。然后这些单元被分配成N份(随机地或通过预订的值集)。这种分配还涉及份内单元次序的洗牌。对本领域普通技术人员来说很显然的是,可以根据多种可能的选择,包括但不限于固定大小、预定大小或一个或多个组合、预订或随机产生的数据单元大小的模式或序列,来执行将数据单元分配成多份。
[0281]在这个密码分割过程的一些实施例中,数据的大小可以是任何合适的字节数,例如一、两、三、五、二十、五十、一百、多于一百或者N字节大小。这种密码分割过程或者说cryptosplit的一个特定例子将是考虑数据是23字节大小,数据单元大小选择成一个字节,并且份数选择成4。每个字节都将被分配到4份当中的一份。假设一种随机分配,将获得密钥来产生一系列23个随机数(rl,r2,r3至r23),每个数都具有对应于四份的I和4之间的值。每个数据单元(在这个例子中是数据的各字节)都与对应于四份之一的23个随机数之一相关。通过将数据的第一字节放入份rl中,字节2放入份r2中,字节三放入份r3中,直至数据的第23字节放入份r23中,将发生把数据的字节分配到四份中。对本领域普通技术人员来说很显然,很多种其它可能的步骤或一系列步骤的组合,包括数据单元的大小,都可以在本发明的密码分割过程中使用,并且上述例子是对密码分割数据的一个过程的非限制性描述。为了重建原始数据,将执行倒过来的操作。
[0282]在本发明的密码分割过程的另一种实施例中,对密码分割过程的一个选项是在多份中提供足够的冗余,使得只需要多份的一个子集就可以将数据重组或恢复成其原始或可用的形式。作为一个非限制性例子,密码分割可以作为“4分之3”密码分割来进行,使得只有4份中的三份必须用来将数据重组或恢复到其原始或可用的形式。这也被称为“N分之M密码分割”,其中N是总份数,而M至少比N小一。对本领域普通技术人员来说很显然,在本发明的密码分割过程中存在用于产生这种冗余性的许多可能性。
[0283]在本发明的密码分割过程的一种实施例中,每个数据单元被存储在两份,主要份和备份份,当中。使用上述“4分之3”密码分割过程,任何一份都可以丢失,而这足以在没有丢失的数据单元的的情况下重组或恢复原始数据,因为只要求总共四份当中的三份。如本文所描述的,生成对应于多份之一的随机数。随机数与数据单元相关,并基于密钥存储在对应的份中。在这种实施例中,使用一个密钥来产生主要和备份份随机数。如本文中对本发明的密码分割过程所描述的,生成等于数据单元数量的、从O到3的一个随机数集(也被称为主要份数)。然后,生成等于数据单元数量的、从I到3的另一个随机数集(也被称为备份份数)。然后,使每个数据单元都与一个主要份数和一个备份份数关联。可选地,可以生成少于数据单元数量的一个随机数集,并且可以重复该随机数集,但是这可能降低敏感数据的安全性。主要份数用于确定数据单元被存储到哪份中。备份份数与主要份数结合,产生O和3之间的第三份数,并且这个数字用于确定数据单元被存储到哪份中。在这个例子中,用于确定第三份数的方程为:
[0284](主要份数+备份份数)M0D4=第三份数
[0285]在主要份数在O和3之间并且备份份数在I和3之间的上述实施例中,要确保第三份数不同于主要份数。这导致数据单元被存储在两个不同的份中。对本领域普通技术人员来说很显然,除了本文公开的实施例之外,还存在执行冗余密码分割和非冗余密码分割的许多方式。例如,每份中的数据单元都可以利用不同的算法洗牌。当原始数据被分割成多个数据单元时,或者在数据单元被放入份中之后,或者在份满了之后,可以执行这种数据单元洗牌。
[0286]可以对任何大小的数据单元,包括但不限于:小到一个个别位、多位、多字节、兆字节或更大,执行本文描述的各种密码分割过程和数据洗牌过程,及本发明的密码分割和数据洗牌方法的所有其它实施例。
[0287]将执行本文所述密码分割过程的源代码的一种实施例的例子是:
[0288]DATA丨1:24| -待分割数据的字节数组
SHARKS|0:3;丨:24丨-2维数组,每行代表多份之一
RANDOM[l:24I 一蕙围为0..3的数Λ随机数
Si = ι;

mmm % ?
hJJM JL,
C ? 一 1 ,

?| ?ΜΜΜΙ _

JL,
S4 = I;
For J = I to 24 do
Begin
[0289]
【权利要求】
1.一种用于安全共享数据的方法,该方法的步骤由编程的计算机系统实现,包括:形成加密数据集的两个或更多个份,该加密数据集代表与第一用户设备相关联并且利用对称密钥加密的数据集,而且每个加密数据集份都包括来自该加密数据集的一部分数据;使两个或更多个加密数据集份彼此独立地存储在至少一个存储位置;通过利用第一不对称密钥对的第一不对称密钥加密指示对称密钥的数据来生成第一加密的密钥,该第一不对称密钥对与第一用户设备相关联;通过利用第二不对称密钥对的第一不对称密钥加密指示对称密钥的数据来生成第二加密的密钥,该第二不对称密钥对与第二用户设备相关联;及使第一加密的密钥和第二加密的密钥存储在至少一个存储位置,其中所述至少一个存储位置远离第一用户设备和第二用户设备,而且其中需要预定数量的所述两个或更多个加密数据集份及第一不对称密钥对的第二不对称密钥和第二不对称密钥对的第二不对称密钥中的至少一个来恢复数据集。
2.如权利要求1所述的方法,其中指示对称密钥的数据是对称密钥。
3.如权利要求1所述的方法,其中指示对称密钥的数据是利用工作组密钥加密的对称密钥,而且其中需要该工作组密钥来恢复数据集。
4.如权利要求3所述的 方法,其中第二用户设备与可以访问所述工作组密钥的一个工作组相关联。
5.如权利要求1所述的方法,还包括:形成第一加密的密钥和第二加密的密钥的两个或更多个份,每个加密密钥份都包括来自第一加密的密钥和第二加密的密钥的一部分数据,其中使第一加密的密钥和第二加密的密钥存储在至少一个存储位置包括使两个或更多个加密密钥份彼此独立地存储在所述至少一个存储位置,而且其中需要预定数量的所述两个或更多个加密密钥份来恢复第一加密的密钥和第二加密的密钥。
6.如权利要求1所述的方法,其中所述至少一个存储位置包括云计算存储位置。
7.如权利要求1所述的方法,还包括:在生成第二加密的密钥之前,从注册服务器访问第二不对称密钥对的第一不对称密钥。
8.如权利要求1所述的方法,还包括:为与对应多个用户设备相关联的对应多个不对称密钥对的多个第一不对称密钥中的每一个,通过利用第一不对称密钥加密指示对称密钥的数据生成多个加密的密钥;及使所述多个加密的密钥存储在至少一个存储位置,其中需要预定数量的所述两个或更多个加密数据集份及第一不对称密钥对的第二不对称密钥、第二不对称密钥对的第二不对称密钥和多个不对称密钥对的多个第二加密密钥中的至少一个来恢复数据集。
9.如权利要求8所述的方法,其中使多个加密的密钥存储在至少一个存储位置包括在所述两个或更多个加密数据集份中每一份的头部中传输所述多个加密的密钥。
10.一种用于访问安全共享数据集的方法,该方法的步骤是由编程的计算机系统实现的,包括:访问存储在至少一个存储位置的第一加密的密钥,其中该第一加密的密钥包括指示利用与第一用户设备相关联的第一不对称密钥对的第一不对称密钥加密的对称密钥的数据,其中所述至少一个存储位置远离第一用户设备并且远离与第一用户设备不同的第二用户设备,而且其中所述至少一个存储位置还存储包括指示利用与第二用户设备相关联的第二不对称密钥对的第一不对称密钥加密的对称密钥的数据的第二加密的密钥;利用第一不对称密钥对的第二不对称密钥解密第一加密的密钥来恢复指示对称密钥的数据;访问存储在所述至少一个存储位置的预定数量的两个或更多个加密数据集份,该加密数据集份是由第二用户设备利用对称密钥加密的;及利用预定数量的加密数据集份和指示对称密钥的数据来恢复数据集。
11.如权利要求10所述的方法,其中指示对称密钥的数据是对称密钥。
12.如权利要求10所述的方法,其中指示对称密钥的数据是利用工作组密钥加密的对称密钥,而且其中该工作组密钥用于恢复数据集。
13.如权利要求12所述的方法,其中第一用户设备与可以访问所述工作组密钥的一个工作组相关联。
14.如权利要求10所述的方法,其中所述至少一个存储位置包括云计算存储位置。
15.如权利要求10所述的方法,还包括: 在访问第一加密的密钥之前,把第一不对称密钥对的第一不对称密钥提供给注册服务器。
16.一种用于安全共享数据的方法,该方法的步骤是由编程的计算机系统实现的,包括:形成加密数据集的两个或更多个份,该加密数据集代表与第一用户设备相关联并且利用对称密钥加密的数据集,而且每个加密数据集份都包括来自该加密数据集的一部分数据;对于包括第一用户设备的多个用户设备中的每一个,通过利用与该用户设备相关联的不对称密钥对的第一不对称密钥加密指示对称密钥的数据生成加密的密钥;对于两个或更多个加密数据集份中的每一份,在加密数据集份的头部中分配多个加密的密钥;及使所述两个或更多个加密数据集份和头部存储在至少一个存储位置,其中,需要预定数量的所述两个或更多个加密数据集份及多个不对称密钥对中至少一个的第二不对称密钥来恢复数据集。
17.如权利要求16所述的方法,其中指示对称密钥的数据是对称密钥。
18.如权利要求61所述的方法,其中指示对称密钥的数据是利用工作组密钥加密的对称密钥,而且其中需要该工作组密钥来恢复数据集。
19.如权利要求18所述的方法,其中所述多个用户设备每个都与可以访问所述工作组密钥的一个工作组相关联。
20.如权利要求16所述的方法,其中所述至少一个存储位置包括云计算存储位置。
21.如权利要求16所述的方法,还包括:在生成所述多个加密的密钥之前,从注册服务器访问多个第一不对称密钥中的至少一些。
22.一种用于安全共享数据的计算机系统,包括:至少一个处理器;及存储计算机可执行指令的非临时性计算机可读介质,当所述指令被所述至少一个处理器执行时,使计算机系统执行以下步骤:形成加密数据集的两个或更多个份,该加密数据集代表与第一用户设备相关联并且利用对称密钥加密的数据集,而且每个加密数据集份都包括来自该加密数据集的一部分数据;使所述两个或更多个加密数据集份彼此独立地存储在至少一个存储位置;通过利用第一不对称密钥对的第一不对称密钥加密指示对称密钥的数据来生成第一加密的密钥,该第一不对称密钥对与第一用户设备相关联;通过利用第二不对称密钥对的第一不对称密钥加密指示对称密钥的数据来生成第二加密的密钥,该第二不对称密钥对与第二用户设备相关联;及使第一加密的密钥和第二加密的密钥存储在至少一个存储位置,其中所述至少一个存储位置远离第一和第二用户设备,而且其中需要预定数量的所述两个或更多个加密数据集份及第一不对称密钥对的第二不对称密钥和第二不对称密钥对的第二不对称密钥中的至少一个来恢复数据集。
23.如权利要求22所述的系统,其中指示对称密钥的数据是对称密钥。
24.如权利要求22所述的系统,其中指示对称密钥的数据是利用工作组密钥加密的对称密钥,而且其中需要该工作组密钥来恢复数据集。
25.如权利要求24所述的系统,其中第二用户设备与可以访问所述工作组密钥的一个工作组相关联。
26.如权利要求22所述的系统,其中由计算机系统执行的方法还包括:形成第一加密的密钥和第二加密的密钥的两个或更多个份,每个加密密钥份都包括来自第一加密的密钥和第二加密的密钥的一部分数据,其中使第一加密的密钥和第二加密的密钥存储在至少一个存储位置包括使两个或更多个加密密钥份彼此独立地存储在所述至少一个存储位置,而且其中需要预定数量的所述两个或更多个加密密钥份来恢复第一加密的密钥和第二加密的密钥。
27.如权利要求22所述的系统,其中所述至少一个存储位置包括云计算存储位置。
28.如权利要求22所述的系统,其中由计算机系统执行的方法还包括:在生成第二加密的密钥之前,从注册服务器访问第二不对称密钥对的第一不对称密钥。
29.如权利要求22所述的系统,其中由计算机系统执行的方法还包括:为与对应多个用户设备相关联的对应多个不对称密钥对的多个第一不对称密钥中的每一个,通过利用第一不对称密钥加密指示对称密钥的数据生成多个加密的密钥;及使所述多个加密的密钥存储在至少一个存储位置,其中需要预定数量的所述两个或更多个加密数据集份及第一不对称密钥对的第二不对称密钥、第二不对称密钥对的第二不对称密钥和多个不对称密钥对的多个第二不对称密钥中的至少一个来恢复数据集。
30.如权利要求29所述的系统,其中使多个加密的密钥存储在至少一个存储位置包括在所述两个或更多个加密数据集份中每一份的头部中传输所述多个加密的密钥。
31.一种用于访问安全共享数据集的计算机系统,包括:至少一个处理器;及存储计算机可执行指令的非临时性计算机可读介质,当所述指令被所述至少一个处理器执行时,使计算机系统执行以下步骤:访问存储在至少一个存储位置的第一加密的密钥,其中该第一加密的密钥包括指示利用与第一用户设备相关联的第一不对称密钥对的第一不对称密钥加密的对称密钥的数据,其中所述至少一个存储位置远离第一用户设备并且远离与第一用户设备不同的第二用户设备,而且其中所述至少一个存储位置还存储包括指示利用与第二用户设备相关联的第二不对称密钥对的第一不对称密钥加密的对称密钥的数据的第二加密密钥;利用第一不对称密钥对的第二不对称密钥解密第一加密的密钥来恢复指示对称密钥的数据;访问存储在所述至少一个存储位置的预定数量的所述两个或更多个加密数据集份,该加密数据集份是由第二用户设备利用对称密钥加密的;及利用预定数量的加密数据集份和指示对称密钥的数据恢复数据集。
32.如权利要求31所述的系统,其中指示对称密钥的数据是对称密钥。
33.如权利要求31所述的系统,其中指示对称密钥的数据是利用工作组密钥加密的对称密钥,而且其中该工作组密钥用于恢复数据集。
34.如权利要求33所述的 系统,其中第一用户设备与可以访问所述工作组密钥的一个工作组相关联。
35.如权利要求31所述的系统,其中所述至少一个存储位置包括云计算存储位置。
36.如权利要求31所述的系统,其中由计算机系统执行的方法还包括:在访问第一加密的密钥之前,把第一不对称密钥对的第一不对称密钥提供给注册服务器。
37.一种用于安全共享数据的计算机系统,包括:至少一个处理器;及存储计算机可执行指令的非临时性计算机可读介质,当所述指令被所述至少一个处理器执行时,使计算机系统执行以下步骤:形成加密数据集的两个或更多个份,该加密数据集代表与第一用户设备相关联并且利用对称密钥加密的数据集,而且每个加密数据集份都包括来自该加密数据集的一部分数据;对于包括第一用户设备的多个用户设备中的每一个,通过利用与该用户设备相关联的不对称密钥对的第一不对称密钥加密指示对称密钥的数据来生成加密的密钥;对于两个或更多个加密数据集份中的每一份,在加密数据集份的头部中分配多个加密的密钥;及使所述两个或更多个加密数据集份和头部存储在至少一个存储位置,其中,需要预定数量的所述两个或更多个加密数据集份及多个不对称密钥对中至少一个的第二不对称密钥来恢复数据集。
38.如权利要求37所述的系统,其中指示对称密钥的数据是对称密钥。
39.如权利要求37所述的系统,其中指示对称密钥的数据是利用工作组密钥加密的对称密钥,而且其中需要该工作组密钥来恢复数据集。
40.如权利要求39所述的系统,其中所述多个用户设备每个都与可以访问所述工作组密钥的一个工作组相关联。
41.如权利要求37所述的系统,其中所述至少一个存储位置包括云计算存储位置。
42.如权利要求37所述的系统,其中由计算机系统执行的方法还包括:在生成多个加密的密钥之前,从注册服务器访问多个第一不对称密钥中的至少一些。
43.一种存储计算机可执行指令的非临时性计算机可读介质,当所述指令被至少一个处理器执行时,使计算机系统执行用于安全共享数据集的方法,该方法包括步骤:形成加密数据集的两个或更多个份,该加密数据集代表与第一用户设备相关联并且利用对称密钥加密的数据集,而且每个加密数据集份都包括来自该加密数据集的一部分数据;使两个或更多个加密数据集份彼此独立地存储在至少一个存储位置;通过利用第一不对称密钥对的第一不对称密钥加密指示对称密钥的数据来生成第一加密的密钥,该第一不对称密钥对与第一用户设备相关联;通过利用第二不对称密钥对的第一不对称密钥加密指示对称密钥的数据来生成第二加密的密钥,该第二不对称密钥对与第二用户设备相关联;及使第一加密的密钥和第二加密的密钥存储在至少一个存储位置,其中所述至少一个存储位置远离第一和第二用户设备,而且其中需要预定数量的所述两个或更多个加密数据集份及第一不对称密钥对的第二不对称密钥和第二不对称密钥对的第二不对称密钥中的至少一个来恢复数据集。`
44.如权利要求43所述的非临时性计算机可读介质,其中指示对称密钥的数据是对称密钥。
45.如权利要求43所述的非临时性计算机可读介质,其中指示对称密钥的数据是利用工作组密钥加密的对称密钥,而且其中需要该工作组密钥来恢复数据集。
46.如权利要求45所述的非临时性计算机可读介质,其中第二用户设备与可以访问所述工作组密钥的一个工作组相关联。
47.如权利要求43所述的非临时性计算机可读介质,还包括:形成第一加密的密钥和第二加密的密钥的两个或更多个份,每个加密密钥份都包括来自第一加密的密钥和第二加密的密钥的一部分数据,其中使第一加密的密钥和第二加密的密钥存储在至少一个存储位置包括使所述两个或更多个加密密钥份彼此独立地存储在所述至少一个存储位置,而且其中需要预定数量的所述两个或更多个加密密钥份来恢复第一加密的密钥和第二加密的密钥。
48.如权利要求43所述的非临时性计算机可读介质,其中所述至少一个存储位置包括云计算存储位置。
49.如权利要求43所述的非临时性计算机可读介质,还包括:在生成第二加密的密钥之前,从注册服务器访问第二不对称密钥对的第一不对称密钥。
50.如权利要求43所述的非临时性计算机可读介质,还包括:为与对应多个用户设备相关联的对应多个不对称密钥对的多个第一不对称密钥中的每一个,通过利用第一不对称密钥加密指示对称密钥的数据生成多个加密的密钥;及使所述多个加密的密钥存储在至少一个存储位置,其中需要预定数量的所述两个或更多个加密数据集份及第一不对称密钥对的第二不对称密钥、第二不对称密钥对的第二不对称密钥和多个不对称密钥对的多个第二加密密钥中的至少一个来恢复数据集。
51.如权利要求50所述的非临时性计算机可读介质,其中使多个加密的密钥存储在至少一个存储位置包括在所述两个或更多个加密数据集份中每一份的头部中传输所述多个加密的密钥。
52.—种存储计算机可执行指令的非临时性计算机可读介质,当所述指令被至少一个处理器执行时,使计算机系统执行用于访问安全共享数据集的方法,该方法包括步骤:访问存储在至少一个存储位置的第一加密的密钥,其中该第一加密的密钥包括指示利用与第一用户设备相关联的第一不对称密钥对的第一不对称密钥加密的对称密钥的数据,其中所述至少一个存储位置远离第一用户设备并且远离与第一用户设备不同的第二用户设备,而且其中所述至少一个存储位置还存储包括指示利用与第二用户设备相关联的第二不对称密钥对的第一不对称密钥加密的对称密钥的数据的第二加密的密钥;通过利用第一不对称密钥对的第二不对称密钥解密第一加密的密钥来恢复指示对称密钥的数据;访问存储在所述至少一个存储位置的预定数量的两个或更多个加密数据集份,该加密数据集份是由第二用户设备利用对称密钥加密的;及利用预定数量的加密数据集份和指示对称密钥的数据恢复数据集。
53.如权利要求52所述的非临时性计算机可读介质,其中指示对称密钥的数据是对称密钥。
54.如权利要求52所述的非临时性计算机可读介质,其中指示对称密钥的数据是利用工作组密钥加密的对称密钥,而且其中该工作组密钥用于恢复数据集。
55.如权利要求54所述的非临时性计算机可读介质,其中第一用户设备与可以访问所述工作组密钥的一个工作组相关联。
56.如权利要求52所述的非临时性计算机可读介质,其中所述至少一个存储位置包括云计算存储位置。
57.如权利要求52所述的非临时性计算机可读介质,还包括:在访问第一加密密钥之前,把第一不对称密钥对的第一不对称密钥提供给注册服务器。
58.一种存储计算机可执行指令的非临时性计算机可读介质,当所述指令被至少一个处理器执行时,使计算机系统执行用于安全共享数据的方法,该方法包括步骤:形成加密数据集的两个或更多个份,该加密的数据集代表与第一用户设备相关联并且利用对称密钥加密的数据集,而且每个加密数据集份都包括来自该加密数据集的一部分数据;对于包括第一用户设备的多个用户设备中的每一个,通过利用与该用户设备相关联的不对称密钥对的第一不对称密钥加密指示对称密钥的数据生成加密的密钥;对于两个或更多个加密数据集份中的每一份,在加密数据集份的头部中分配多个加密的密钥;及使所述两个或更多个加密数据集份和头部存储在至少一个存储位置,其中,需要预定数量的所述两个或更多个加密数据集份及多个不对称密钥对中至少一个的第二不对称密钥来恢复数据集。
59.如权利要求58所述的非临时性计算机可读介质,其中指示对称密钥的数据是对称密钥。
60.如权利要求58所述的非临时性计算机可读介质,其中指示对称密钥的数据是利用工作组密钥加密的对称密钥,而且其中需要该工作组密钥来恢复数据集。
61.如权利要求60所述的非临时性计算机可读介质,其中所述多个用户设备每个都与可以访问所述工作组密钥的一个工作组相关联。
62.如权利要求58所述的非临时性计算机可读介质,其中所述至少一个存储位置包括云计算存储位置。
63.如权利要求58所述的非临时性计算机可读介质,还包括:在生成多个加密的 密钥之前,从注册服务器访问多个第一不对称密钥中的至少一些。
【文档编号】H04L9/32GK103636160SQ201280011981
【公开日】2014年3月12日 申请日期:2012年3月6日 优先权日:2011年3月7日
【发明者】M·S·奥黑尔, R·L·奥尔西尼, D·马丁 申请人:安全第一公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1