本申请要求于2004年10月25日提交的美国临时申请第60/622,146号以及2005年9月16日提交的美国临时申请第60/718,185号的优先权,在此将它们两者完全并入本文作为参考。
具体实施方式
本发明的一个方面是提供加密系统,其中一个或多个安全服务器或者信任引擎存储加密密钥和用户鉴权数据。通过网络访问信任引擎来访问传统加密系统的功能,然而,该信任引擎并不发布实际密钥和其它鉴权数据,因此这些密钥和数据保持安全。这种以服务器为中心的密钥和鉴权数据存储提供独立于用户的安全性、可移植性(portability)、可用性和简洁性。
因为用户可以确信或者信任加密系统来进行用户和文档鉴权和其它加密功能,所以可以将各种功能并入该系统中。例如,信任引擎提供商可以通过如下操作来确保不会出现违约:例如对协议参与者进行鉴权、代替或者对于参与者以数字方式签订协议、以及存储由每个参与者以数字方式签订的协议的记录。此外,加密系统可以监控协议并基于例如价格、用户、商家、地理位置、使用地点等来确定采用各种鉴权级别。
为了便于完全理解本发明,剩下的详细说明参照附图描述本发明,其中在所有附图中,相同的要素以相同的标号来表示。
图1例示了根据本发明实施例的多个方面的加密系统100的框图。如图1所示,该加密系统100包括用户系统105、信任引擎110、认证机构115以及商家系统120,它们通过通信链路125进行通信。
根据本发明的一个实施例,用户系统105包括具有一个或多个微处理器的传统通用计算机,该微处理器例如为基于Intel的处理器。此外,用户系统105包括适当的操作系统,例如能够包括图形或窗口的操作系统,如Windows、Unix、Linux等。如图1所示,用户系统105可以包括生物测定设备107。该生物测定设备107有利地可以捕获用户的生物测定信息并将该捕获的生物测定信息传输到信任引擎110。根据本发明的一个实施例,生物测定设备有利地可以包括具有与在1997年9月5日提交的题为“RELIEF OBJECT IMAGEGENERATOR”的美国专利申请第08/926,277号、2000年4月26日提交的题为“IMAGING DEVICE FOR A RELIEF OBJECT ANDSYSTEM AND METHOD OF USING THE IMAGE DEVICE”的美国专利申请第09/558,634号、1999年11月5日提交的题为“RELIEFOBJECT SENSOR ADAPTOR”的美国专利申请第09/435,011号以及2000年1月5日提交的题为“PLANAR OPTICAL IMAGE SENSORAND SYSTEM FOR GENERATING AN ELECTRONIC IMAGE OFARELIEF OBJECT FOR FINGERPRINT READING”的美国专利申请第09/477,943号中公开的属性和特征类似的属性和特征的设备,所有这些申请都由当前受让人所有,并且通过引用将所有这些申请并入本文中。
此外,用户系统105可以经由传统服务提供商连接到通信链路125,该传统服务提供商是例如拨号数字订户线(DSL)、电缆调制解调器、光纤连接等。根据另一实施例,用户系统105经由诸如局域网或广域网的网络互连,而连接到通信链路125。根据一个实施例,操作系统包括TCP/IP协议栈,该协议栈处理经过通信链路125的所有输入和输出消息业务量。
虽然参照以上实施例来公开用户系统105,但是本发明并不旨在限于此。相反,本领域技术人员将根据本文的公开认识到该用户系统105的许多另选实施例,包括能够发送或接收来自另一计算机系统的信息的几乎任何计算设备。例如,用户系统105可以包括但不限于可以与通信链路125交互的计算机工作站,交互式电话,交互式商亭,诸如数字助理、移动电话、膝上型电脑等的个人移动计算设备,无线通信设备,智能卡,嵌入式计算设备等。在这些另选系统中,操作系统将可能不同,并且将适于特定设备。然而,根据一个实施例,操作系统有利地继续提供对于建立与通信链路125的通信而言所需的适当通信协议。
图1例示了信任引擎110。根据一个实施例,信任引擎110包括用于访问并存储敏感信息的一个或多个安全服务器,这些敏感信息可以是任何类型或形式的数据,例如但不限于音频、视频、用户鉴权数据以及公共和私有加密密钥。根据一个实施例,该鉴权数据包括被设计为唯一地标识加密系统100的用户的数据。例如鉴权数据可以包括用户身份证号、一个或多个生物测定信息,以及由信任引擎100或用户生成的但最初是由用户在注册时回答的一系列问题和答案。上述问题可以包括人口统计数据,如出生地、地址、周年纪念日等,个人数据,如母亲的婚前姓、喜爱的冰淇淋等,或者其它被设计为唯一标识该用户的其它数据。信任引擎110将与当前事务相关的用户的鉴权数据与在更早时候,例如注册时,提供的鉴权数据进行比较。信任引擎110有利地可能要求用户在进行每次事务时产生鉴权数据,或者信任引擎110有利地可能允许用户定期地产生鉴权数据,例如在一系列事务开始时,或者在登录到特定商家网站时。
根据其中用户产生生物测定信息数据的该实施例,用户将物理特性,例如但不限于面部扫描、手部扫描、耳部扫描、虹膜扫描、视网膜扫描、血管图案、DNA、指纹、笔迹或话音,提供给生物测定设备107。生物测定设备有利地产生物理特性的电子图案或生物测定信息。该电子图案经由用户系统105传输到信任引擎110以用于注册目的或者鉴权目的。
一旦用户产生适当的鉴权数据并且信任引擎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有利地包括万维网服务器。典型的万维网服务器通常利用若干因特网标记语言或者文档格式标准,如超文本标记语言(HTML)或可扩展标记语言(XML),在因特网上提供内容。万维网服务器接受来自像Netscape和Internet Explorer这样的浏览器的请求,然后返回适当的电子文档。可以使用多种服务器或客户侧技术来增强万维网的除了能够传输标准电子文档之外的能力。例如,这些技术包括公共网关结构(Common Gateway Interface CGI)、安全套接字层(Secure SocketsLayer SSL)安全性以及动态服务器页面(Active Server Pages ASPs)。该商家系统120有利地可以提供与商业、个人、教育或其它事务有关的电子内容。
虽然参照以上实施例公开了商家系统120,但是本发明并不旨在限于此。相反,本领域技术人员将根据本文的公开意识到商家系统120有利地可以包括参照用户系统105或其组合描述的任何设备。
图1还例示了连接用户系统105、信任引擎110、认证机构115和商家系统120的通信链路125。根据一个实施例,通信链路125优选地包括因特网,在本公开全文中使用的因特网是全球计算机网络。本领域普通技术人员公知的因特网的结构包括骨干网以及从该骨干网分支出来的多个网络。这些分支进而具有从其分支出来的多个网络等。路由器在网络层之间,也就是从网络到网络,移动信息分组,直到分组到达其目的地附近为止。目的地网络的主机将该信息分组从该目的地导向适当的终端或节点。在一个有利实施例中,因特网路由集线器包括如本领域公知的使用传输控制协议/因特网协议(TCP/IP)的域名系统(DNS)服务器。路由集线器经由高速通信链路连接到一个或多个其它路由集线器。
因特网的一个通用部分是万维网(World Wide Web)。该万维网包含不同的计算机,这些计算机存储能够显示图形和文本信息的文档。这些在万维网上提供信息的计算机一般称为“网站”。网站是由具有相关电子页面的因特网地址定义的。该电子页面可以由统一资源定位符(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等获得的传统万维网服务器。例如,万维网服务器有利地可以接收来自通信链路125的输入数据。根据本发明的一个实施例,输入数据被寻址到信任引擎110的前端安全系统。例如,前端安全系统有利地可以包括防火墙、搜索已知攻击简档(profile)的入侵检测系统,和/或病毒扫描仪。在跳过前端安全系统之后,数据被事务引擎205接收,并且被路由到存储结构210、鉴权引擎215、加密引擎220和大容量存储装置225中的一个。此外,事务引擎205监测来自鉴权引擎215和加密引擎220的输入数据,并将该数据经由通信链路125路由到特定系统。例如,事务引擎205有利地可以将数据路由到用户系统105、认证机构115或商家系统120。
根据一个实施例,使用常规HTTP路由技术,例如采用URL或同一资源指示符(URI),来路由数据。URI类似于URL,但是URI一般指示文件或动作的源,例如可执行文件、脚本等。因此,根据所述一个实施例,用户系统105、认证机构115、商家系统120以及信任引擎210的组件有利地包括对于事务引擎205的通信URL或URI内的充分数据,以适当地将数据路由通过加密系统。
虽然参照优选实施例公开了数据路由,但是本领域技术人员将意识到还有大量可能地数据路由方案或策略。例如,XML或其它数据分组有利地可以被解包并且利用它们的格式、内容等对它们进行识别,以使得事务引擎205可以适当地将数据路由通过信任引擎110。此外,本领域技术人员将意识到,数据路由有利地可以适于符合特定网络系统(例如,当通信链路125包括局部网络时)的数据传输协议。
根据本发明的又一实施例,事务引擎205包括传统SSL加密技术,以使得前述系统可以在特定通信期间利用交易引擎205对自己进行鉴权,或者反之。如在本公开中使用的,术语“1/2SSL”是指其中对服务器(但是无需对客户)进行SSL鉴权的通信,术语“FULL SSL”是指其中对客户和服务器进行SSL鉴权的通信。当当前公开使用术语“SSL”时,通信可以包括1/2SSL或者FULL SSL。
当事务引擎205将数据路由到加密系统100的各种部件时,事务引擎205有利地可以创建审查跟踪(audit trail)。根据一个实施例,审查跟踪包括至少由事务引擎205通过加密系统100路由的该种类型和格式的数据的记录。这种检查数据有利地可以存储在大容量存储装置225中。
图2还例示了存储机构210。根据一个实施,存储机构210包括一个或多个数据存储设施,例如目录服务器、数据库服务器等。如图2所示,存储机构210存储加密密钥和注册鉴权数据。加密密钥有利地可以对应于信任引擎110,或者对应于加密系统100地用户,如用户或商家。注册鉴权数据有利地可以包括被设计为唯一标识用户地数据,如用户ID、密码、问题的答案、生物测定信息数据等。该注册鉴权数据有利地可以在用户注册时或者其它另选的随后时刻获取。例如,信任引擎110可以包括注册鉴权数据的定期或其它更新或者重新发行。
根据一个实施例,从事务引擎205到鉴权引擎215和加密引擎220以及来自鉴权引擎215和加密引擎220的通信包括安全通信,例如传统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中。存储机构检查追踪数据与事务引擎205的数据的类似之处在于检查追踪数据包括由存储机构210接收的请求机器响应的记录。此外,大容量存储装置225可以用于存储其中包含有用户的公钥的数字证书。
虽然参照优选和另选实施例公开了信任引擎110,但是本发明并不旨在由此进行限制。相反,本领域技术人员将在本文的公开中意识到对于信任引擎110的许多另选。例如,信任引擎110有利地可以只进行鉴权,或者另选的,只进行鉴权功能中的一些或全部,如数字加密和解密。根据这种实施例,鉴权引擎215和加密引擎220中的一个有利地可以被去除,由此创建对于信任引擎110的更为简洁的设计。此外,加密引擎220还可以与认证机构通信,已使得认证机构被嵌入信任引擎110中。根据又一实施例,信任引擎110有利地可以进行鉴权以及一个或多个加密功能,例如数字签名。
图3例示了根据本发明实施例的多个方面的图2的事务引擎205的框图。根据该实施例,事务引擎205包括具有处理线程和侦听线程的操作系统305。操作系统305有利地可以类似于在诸如可从Apache获得的万维网服务器的传统大体积服务器中找到的操作系统。侦听线程监测来自通信链路125、鉴权引擎215和加密引擎220中的一个的输入通信以发现输入数据流。处理线程识别输入数据流的特定数据结构,例如上述数据结构,由此将输入数据路由到通信链路125、存储机构210、鉴权引擎215、加密引擎220或大容量存储装置225中的一个。如图3所示,有利地可以通过例如SSL技术来保护输入和输出数据。
图4例示了根据本发明实施例的多个方面的图2的存储机构2的框图。根据该实施例,存储机构210包括一个或多个轻质的目录访问控制(LDAP)服务器。LDAP目录服务器可从各种制造商获得,例如Netscape、ISO和其它。图4还示出了目录服务器优选地存储与加密密钥对应的405和与注册鉴权数据对应的数据410。根据一个实施例,存储机构210包括以鉴权数据和加密密钥数据作为唯一用户ID的索引的单个逻辑存储结构。该单个逻辑存储结构优选地包括确保其中所存储的数据的较高信任度、安全性的机制。例如,存储机构210的物理位置有利地可以包括多个传统安全性量度,如受限的雇员访问、现代监视系统等。除了物理安全性之外,或者代替物理安全性,计算机系统或者服务器有利地可以包括用于保护所存储数据的软件解决方案。例如,存储机构210有利地可以创建并存储与所采取动作的审查跟踪对应的数据415。此外,输入和输出通信有利地可以利用与传统SSL技术耦合的公钥加密技术来加密。
根据另一实施例,存储机构210可以包括多个不同的并且物理分离的数据存储设施,如参照图7进一步公开的。
图5例示了根据本发明实施例的多个方面的图2的鉴权引擎215的框图。与图3的事务引擎205类似,鉴权引擎215包括具有经修改的传统万维网服务器(例如从Apache可获得的万维网服务器)的侦听线程和处理线程。如图5所示,鉴权引擎215包括对于至少一个私钥510的访问。私钥510有利地可以用于例如对来自交易引擎205或存储机构210的数据进行解密,其中该数据是利用鉴权引擎215的对应公钥加密的。
图5还例示了鉴权引擎215,其包括比较器515、数据分割模块520和数据集合模块525。根据本发明的优选实施例,比较器515包括能够比较与上述生物测定信息鉴权数据相关的多个可能复杂模式的技术。该数据可能包括用于模式比较的硬件、软件或组合方案,这些图案例如代表指纹图案或声音模式。此外,根据一个实施例,鉴权引擎215的比较器515有利地可以对多个常规的杂乱文档进行比较,以提供比较结果。根据本发明的一个实施例,比较器515包括将启发方式(heuristic)530应用于比较。该启发方式530有利地可以解决验证尝试周围的环境,例如,一天中的时间、IP地址或子网掩码、购买简档、电子邮件地址、处理器序列号或ID等。
此外,生物测定信息数据比较的性质可能导致根据当前生物测定信息鉴权数据与注册数据的匹配而产生的各种置信度。例如,与仅可以返回肯定匹配或否定匹配的传统密码不同,指纹可以被确定为部分匹配,如,90%匹配,75%匹配、10%匹配,而不是简单的正确或不正确。诸如声纹分析或者面部识别的其它生物测定信息识别器可以共享概率鉴权的这种属性,而不是完全鉴权的属性。
当利用这种概率鉴权运行时,或者在鉴权被认为次于完全可信的其它情况下,可能期望采用启发方式530来确定所提供的鉴权的置信级别是否足够高,以证实正在进行的事务有效。
有时存在如下情况,所关注事务是相对低值的事务,其中以较低的置信级别来对该事务鉴权是可以接受的。这可能包括与其相关的货币值较小的事务(例如10美元购买),或者具有低风险的事务(如,准如仅针对会员的网站)。
相反地,对于鉴权其它事务而言,可能期望在允许进行交易之前要求高的鉴权置信度。这些交易可能包括大货币值的交互(如,签署几百万美元的供应协议)或者如果出现不适当鉴权则具有高风险的事务(如,远程登录到政府计算机)。
可以使用与置信级别和事务值相组合来使用启发方式530,如下面将要描述的,以允许比较器提供动态的环境敏感的鉴权系统。
根据本发明的另一实施例,比较器515有利地可以跟踪对于特定事务的鉴权尝试。例如,当事务失败时,信任引擎110可以请求用户重新输入他或她的当前鉴权数据。鉴权引擎215的比较器515有利地可以采用尝试限制器535来限制鉴权尝试的次数,由此禁止进行暴力尝试,从而冒充用户的鉴权数据。根据一个实施例尝试限制器535包括针对重复鉴权尝试而监测事务、并且将对于给定事务的鉴权尝试限于三次的软件模块。由此,尝试限制器535将冒充个人鉴权数据的自动尝试简单地限制为例如三次“猜测”。在三次失败之后,尝试限制其535有利地拒绝另外的鉴权尝试。这种拒绝有利地可以通过例如返回否定结果的比较器515来实现,而与正在发送的当前鉴权数据无关。另一方面,事务引擎205有利地可以阻止与先前三次尝试失败的事务有关的任何另外的鉴权尝试。
鉴权引擎215还可以包括数据分割模块520和数据组合模块525。数据分割模块520有利地包括能够对各种数据进行算术运算以基本上打乱数据并将数据分割成多个部分的软件、硬件或组合模块。根据一个实施例,无法根据单个部分来再创建原始数据。数据组合模块525有利地包括被配置为对上述基本上打乱的多个部分进行算术运算以使得它们的组合提供经界面的原始数据的软件、硬件或者组合模块。根据一个实施例,鉴权引擎216采用数据分割模块520来打乱注册鉴权数据并将该数据分割成多个部分,并采用数据组合模块525来将所述多个部分重新组合为可用的注册鉴权数据。
图6例示了根据本发明一个实施例的多个方面的图2的信任引擎200的加密引擎220的框图。类似于图3的事务引擎205,加密引擎220包括至少具有经修改的传统万维网服务器(例如从Apache可获得的万维网服务器)的监听线程和处理线程的操作系统504。如图6所示,加密引擎220包括数据分割模块610和数据组合模块620,这两个模块以类似于图5的这些模块的方式进行作用。然而,根据一个实施例,数据分割模块610和数据组合模块620处理加密密钥数据,这于上述的注册鉴权数据相反。然而,本领域技术人员将根据本文的公开意识到,数据分割模块910和数据分割模块620可以与鉴权引擎216的这些模块相组合。
加密引擎220还包括被配置为进行多个加密功能中的一个、一些或全部的加密处理模块625。根据一个实施例加密处理模块625可以包括软件模块或者程序、或者硬件、或者包括这两者。根据另一实施例,加密处理模块625可以进行数据比较、数据分析、数据分割、数据分离、数据散列、数据加密或解密、数字签名验证或创建、数字证书生成、存储、或请求、加密密钥生成等。此外,本领域技术人鱼昂将从本文的公开意识到,加密处理模块825有利地可以包括:公钥基础设施(如良好隐私(Pretty Good Privacy))、基于RSA的公钥系统、或者更多另选的密钥管理系统。此外,密钥处理模块625可以进行公钥加密、或者对称密钥加密、或者这两者。除了以上之外,加密处理模块625可以包括一个或多个计算机程序或模块、或硬件、或者这两者,以实现无缝、透明的可交互操作功能。
本领域技术人员还可从本文的公开意识到,加密功能可以包括通常与加密密钥管理系统相关的许多或者各种功能。
图7例示了根据本发明实施例的多个方面的存储机构系统700的简化框图。如图7所示,存储机构系统700有利地包括多个数据存储设施,例如数据存储设施D1、D2、D3和D4。然而,本领域技术人员容易理解,该存储机构系统可以值具有一个数据存储设施。根据本发明的一个实施例,数据存储设施D1、D2、D3和D4中的每一个有利地可以包括参照图4的存储机构210公开的元件中的一些或全部。类似于存储机构210,数据存储设施D1到D4与事务引擎205、鉴权引擎215和加密引擎220进行通信,优选地通过传统SSL。通信链路传输例如XML文档。来自事务引擎205的通信有利地可以包括对于数据的请求,其中该请求有利地被广播到每个数据存储设施D1到D4的IP地址。另一方面,事务引擎205可以基于多个准则,例如响应时间、服务器负载、维护调度等,来将请求广播到特定数据存储设施。
响应于来自事务引擎205的对于数据的请求,存储机构系统700有利地将所存储的数据转发到鉴权引擎215和加密引擎220。各个数据组合模块接收所转发的数据,并将数据组合成有用的格式。另一方面,从鉴权引擎215和加密引擎220到数据存储设施D1到D4的通信可以包括传送待存储的敏感数据。例如,根据一个实施例,鉴权引擎215和加密引擎220有利地可以采用它们各自的数据分割模块来讲敏感数据分给为多个不可解密的部分,然后将所述敏感数据的一个或多个不可解密的部分发送到特定的数据存储设施。
根据一个实施例,每个数据存储设施D1到D4包括分离的并且独立的存储系统,例如目录服务器。根据本发明的另一实施例,存储机构系统700包括多个地理上分离且独立的数据存储系统。通过将敏感数据分发到其中的一些或全部可以有利地被地理分离的不同且独立的存储设施D1到D4,存储机构系统700提供冗余以及附加安全量度。例如,根据一个实施例,只需要来自多个数据存储设施D1到D4中的两个的数据来对敏感数据进行解密和重新组合。由此,所述四个数据存储设施D1到D4中最多有两个由于维护、系统故障、电力故障等不可操作,而不影响信任引擎110的功能。此外,根据一个实施例,由于存储在个数据存储设施中的数据被打乱并且不可解密,所以对于任何单个数据存储设施的安全的危及并不会危及敏感数据的安全。此外,在使多个数据存储设施地理分离的实施例中,对于多个地理上远离的设置的安全的危及变得越来越困难。事实上,即时粗心的雇员也将很难破坏所需的多个完全在地理上远离的数据存储设施。
虽然参考优选和另选实施例公开了存储机构系统700,但是本发明并不旨在限于此。相反,本领域技术人员将从本文的公开意识到该存储机构系统700的许多另选。例如,存储机构系统700可以包括一个、两个或更多个数据存储设施。此外,可以对敏感数据进行数学运算,以使得需要来自两个或更多个数据存储设施的多个部分,以便重新组合并解密所述敏感数据。
如上所述,鉴权引擎215和加密引擎220分别包括数据分割模块520和610,以用于分割任何类型或形式的敏感数据(例如文本、音频、视频)、鉴权数据和加密密钥数据。图8例示了根据本发明实施例的多个方面的由数据分割模块进行的数据分割处理800的流程图。如图8所示,数据分割处理800开始于步骤805,当敏感数据“S”被鉴权引擎215或者加密引擎220的数据分割模块接收时。优选的,随后,在步骤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,在该步骤中,将随机数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。由此,当数据组合模块525例如从数据存储设施D1到D4中的至少前两个接收多个数据部分以响应于信任引擎110发出的组合请求时,数据组合模块525可以组合敏感数据S。
基于以上数据分割和组合处理,敏感数据S只以可用格式存在于信任引擎110的首先区域中。例如,当敏感数据S包括注册鉴权数据时,有用的未经打乱的注册鉴权数据只可在鉴权引擎215中获得。类似地,当敏感数据S包括加密私钥数据时,可用的未经打乱的加密私钥数据仅可在加密引擎220中获得。
虽然参照优选实施例公开了数据分割和组合处理,但是本发明并不限于此。相反,本领域技术人员根据本发明中的公开将意识到,分割和重新组合敏感数据S的许多另选。例如,可以使用公钥加密来进一步保护数据存储设施D1到D4处的数据。此外,很显然,对于本领域技术人员而言,本文描述的数据分割模块也是本发明的独立并且明显的实施例,其可以并入任何预先存在的计算机系统、软件套件、数据库、或它们的组合,或者本发明的其它实施例(如本文中公开和描述的信任引擎。鉴权引擎和事务引擎)中,或者与其相组合,或者构成其一部分。
图9A例示了根据本发明实施例的多个方面的注册处理900的数据流。如图9A所示,注册处理900开始于步骤905,当用户想要利用加密系统100的信任引擎110进行注册时。根据该实施例,用户系统105有利地包括客户侧小程序,如基于Java,该小程序询问用户以输入注册数据,如人口统计数据和注册鉴权数据。根据一个实施例,注册鉴权数据包括用户ID、一个或多个密码、一个或多个生物测定信息等。根据一个实施例,在查询处理期间,客户侧小程序优选地与信任引擎110进行通信以确保所选择的用户ID是唯一的。当用户ID不是唯一的时,信任引擎110有利地可以建议唯一的用户ID。客户侧小程序收集注册数据,并将注册数据通过例如XML文档发送到信任引擎110,具体的,发送到事务引擎205。根据一个实施例,利用鉴权引擎215的公钥对传输进行编码。
根据一个实施例,用户在注册处理900的步骤905期间进行单个注册。例如,用户将他或她注册为特定个人,如Joe User。当Joe User想要注册为Joe User,CEO of Mega Corp.时,那么根据该实施例,JoeUser第二次注册,接收第二个唯一的用户ID,并且信任引擎110没有关联这两个标识。根据本发明的另一实施例,注册处理900为单个用户ID提供多个用户标识。由此,在以上示例中,信任引擎110有利地关联Joe User的这两个标识。如本领域技术人员根据本文公开将理解的,用户可以具有许多标识,例如户主Joe User,慈善基金的会员Joe User等。即时用户可能具有多个标识,根据该实施例,信任引擎110有利地只存储一组注册数据。此外,用户有利地可以根据他们的需要添加、编辑/更新或者删除标识。
虽然参照优选实施例公开了注册处理900,但是本发明并不旨在限于此。相反,本领域技术人员将根据本文的公开意识到,用于收集注册数据(具体的,注册鉴权数据)的许多另选。例如,该小程序可以是基于公共对象模型(COM)的小程序等。
另一方面,注册处理可以包括分等级的注册。例如,在注册的最低级别,用户可以在通信链路125上进行注册,而不产生对于他或她的标识的文档记录。根据提高的注册级别,用户使用信任的第三方,如数字公证人,进行注册。例如,用户可以亲自面见信任的第三方,产生诸如出生证明、驾驶执照、军用ID等的凭证,并且信任的第三方有利地可以在注册提交中包含用户的数字签名。信任的第三方可以包括实际的公证人;政府办事处,如邮局或机动车辆部门;大公司的招收雇员的人力资源人员,等等。本领域技术人员根据本文的公开将明白,在注册处理900期间可能出现许多各种级别的注册。
在接收到注册鉴权数据之后,在步骤915,使用传统FULL SSL技术的事务引擎205将注册鉴权数据转发到鉴权引擎215。在步骤920,鉴权引擎215使用鉴权引擎215的私钥对注册鉴权数据进行解密。此外,鉴权引擎215采用数据分割模块来对注册鉴权数据进行数学运算,以将该数据分割成至少两个独立的不可解密的、打乱的数。如上所述,至少两个数包括统计随机数或者二元的X0Red数。在步骤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,该认证机构115在步骤955返回数字证书。所返回的数字证书有利地可以是标准格式,如PKCS7,或者是一个或多个认证机构115的专有格式。在步骤960,数字证书被事务引擎205接收,并且一拷贝被转发到用户,并且一拷贝被利用信任引擎110存储。信任引擎110存储该证书的拷贝,一使得信任引擎110将无需依赖于认证机构115的可用性。例如,当用户想要发送数字证书时,或者第三方请求用户的数字证书时,对于数字证书的请求典型地被发送到认证机构115。然而,如果认证机构115正在进行维护或者已成为故障或安全威胁地受害者,则数字证书可能是不可获得的。
在发布了加密密钥之后的任意时刻,加密引擎220有利地可以采用上述数字分割处理800,已使得加密密钥被分割成多个独立不可解密的打乱数。类似于鉴权数据,在步骤965,加密引擎220将打乱的数传输到数据存储设施D1到D4。
本领域技术人员根据本文的公开将意识到,用户可以在注册之后的任意时刻请求数字证书。此外,系统间的通信有利地可以包括FULLSSL或公钥加密技术。此外,注册处理可以发布来自多个认证机构的多个数字证书,该多个认证机构包括信任引擎110内部或外部的一个或多个专有认证机构。
如在步骤935到960中公开的,本发明的一个实施例包括对于证书的请求,该证书最终被存储在信任引擎110上。因此,根据一个实施例,加密处理模块625发布由信任引擎110使用的密钥,每个证书对应于一私钥。因此,信任引擎110有利地可以用于通过监测由用户拥有或者与用户关联的证书,来提供互操作性。例如,当加密引擎220接收对于加密功能的请求时,加密处理模块625可以调查由发出请求的用户所拥有的证书,以确定用户是否用于与该请求的属性匹配的私钥。当存在这样的证书时,加密处理模块625可以使用与其关联的证书或公钥或私钥,以执行所请求的功能。当不存在这样的证书时,加密处理模块625可以有利地并且透明地执行多个动作,以尝试弥补适当密钥的缺乏。例如,图9B例示了根据本发明实施例的多个方面的互操作性处理970的流程图,该流程图公开了前述步骤以确保加密处理模块625使用适当密钥执行加密功能。
如图9B所示,互操作性处理970开始于步骤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,在该步骤中,加密处理模块625确定用户是否拥有交叉认证的证书。根据一个实施例,多个认证机构之间的交叉认证发生在当第一认证机构确定信任来自第二认证机构的证书时。换言之,第一认证机构确定来自第二认证机构的证书满足某些质量标准,因此可以被认证为等同于第一认证机构自己的证书。交叉认证在认证机构发布例如具有多个信任级别的证书时变得更为复杂。例如,第一认证机构可以通常基于注册处理中的信任度,对于特定证书提供三个信任级别,同时第二认证机构可以提供七个信任级别。交叉认证有利地可以跟踪来自第二认证机构的哪些级别和哪些证书可以代的来自第一认证机构的哪些级别和哪些证书。当前述交叉认证是在两个认证机构之间官方并且公开地进行的时,彼此之间证书和级别的映射通常被称为“链接(chaining)”。
根据本发明的一个实施例,加密处理模块625有利地可以进行被所述认证机构同意的认证之外的交叉认证。例如,加密处理模块625可以访问第一认证机构的证书实施声明(CPS),或者其它公开的政策声明,并且使用例如由特定认证级别要求的认证标记,将第一认证机构的证书与另一认证机构的证书匹配。
当在步骤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提供具有满足所选认证机构的要求的注册鉴权数据时,加密处理模块625在步骤986中确定是否存在具有不同认证要求的其它认证机构。例如,加密处理模块625可以寻找具有较低鉴权要求但是仍然发布所选证书或者其交叉认证的认证机构。
当存在具有较低要求的上述认证机构时,互操作性处理970进行到步骤980,并且选择认证机构。另选的,当不存在这种认证机构时,在步骤988,信任引擎110可以请求来自用户的额外的鉴权标记。例如,信任引擎100可以请求新注册鉴权数据,包括例如生物测定信息数据。此外,信任引擎110可以请求面见信任的第三方并且提供适当的授权凭证,例如携带驾驶执照、社会安全卡、银行卡、出生证明、军人ID等见面公证人。当信任引擎110接收到经更新的鉴权数据时,互操作性处理970进行到步骤984,并且获取上述选择的证书。
通过上述互操作性处理970,加密处理模块625有利地提供在不同加密系统之间的无缝、透明的转换和变换。本领域技术人员根据本文的公开将意识到上述互操作系统的许多优点和实现方式。例如,互操作处理970的上述步骤986有利地可以包括下面更详细描述的信任仲裁的多个方面,其中认证机构可以在特殊情况下接受低级别的交叉认证。此外,互操作性处理970可以包括确保多个标准证书撤销之间的互操作性,并采用所述多个标准证书撤销,该标准证书撤销采用例如证书撤销列表(CRL)、在线证书状态协议(OCSP)等。
图10例示了根据本发明实施例多个方面的鉴权处理的数据流。根据一个实施例,认证处理1000包括手机来自用户的当前认证数据,并且将该数据与该用户的注册认证数据进行比较。例如,认证处理1000开始于步骤1005,在该步骤中,用户想要进行与例如商家的事务。这种实物可以包括例如选择购买选项、请求访问商家系统120的限制区域或设备,等等。在步骤1010,商家对用户提供事务IID和鉴权请求。事务ID有利地可以包括具有与128位随机量联系的32位时间戳的192位量,或者包括与32位商家特定常数联系的“nonce”。这种事务ID唯一地表示事务,以使得信任引擎110可以拒绝复印机事务。
鉴权请求有利地可以包括对于特定事务需要什么级别的极圈。例如,商家可以指定对于待解决事务所要求的特定置信级别。如果不能对该置信级别进行鉴权,如下所述,则在用户不进行进一步鉴权以提高置信级别的情况下或者在商家与服务器之间的鉴权不发生改变的情况下,事务将不进行。下面更为完全地讨论这些问题。
根据一个实施例,事务ID和鉴权请求有利地可以由商家侧小程序或者其它软件程序生成。此外,交易ID和鉴权数据地传送可以包括使用传统SSL技术(例如1/2SSL),或者换言之,经商家侧鉴权的SSL,加密的一个或多个XML文档。
在用户系统105接收到事务ID和鉴权请求之后,用户系统105收集来自用户的当前鉴权数据,可能包括当前生物测定信息数据。在步骤1015中,用户系统105至少利用鉴权引擎215的公钥对当前鉴权数据“B”和事务ID进行加密,并且将该数据传输到信任引擎110。传输优选地包括至少利用传统的1/2SSL技术加密的XML文档。在步骤1020,事务引擎205接收该传输,优选地识别采用URL或IRI的数据格式或请求,并且将该传输转发到认证引擎215。
在步骤1015和1020期间,商家系统120在步骤1025中使用优选的FULL SSL技术将事务ID和鉴权请求转发到信任引擎110。该通信还可以包括商家ID,虽然还可以通过事务ID的非随机部分来传达商家标识。在步骤1030和1035,事务引擎205接收该通信,在审查跟踪中创建记录,并且产生对于待从数据存储设施D1到D4而组合的用户注册鉴权数据的请求。在步骤1040,存储机构系统700将与用户对应的注册鉴权数据的多个部分传输到鉴权引擎215。在步骤1045,鉴权引擎215使用其私钥对该传输进行解码,并且将注册鉴权数据与用户提供的当前鉴权数据进行比较。
步骤1045的比较有利地可以采用启发式的上下文敏感鉴权,如在上文提出并在下面进一步具体讨论的。例如,如果所接收的生物测定信息没有很好地匹配,则产生较低置信匹配。在特定实施例中,将鉴权的置信级别相对于事务的特征以及用户和商家的期望而平衡。同样,下面将更为详细对此进行讨论。
在步骤1050,鉴权引擎215在鉴权请求中填入步骤1045的比较结果。根据本发明的一个实施例,鉴权请求被填入有鉴权处理1000的是/否、真/假结果。在步骤1055,填充后的鉴权请求被返回到商家,以使商家进行动作,以允许用户完成发起该鉴权请求的事务。根据一个实施例,确认消息被传递到用户。
基于上文的描述,鉴权处理1000有利地使敏感数据保持安全,并且产生被配置为保持敏感数据完整性的结果。例如,敏感数据仅被组合在鉴权引擎215内部。例如,注册鉴权数据是不可解密的,直到其在鉴权引擎215中被数据组合模块所组合位置,并且当前鉴权数据是不可解密的,直到其被传统SSL技术和鉴权引擎215的私钥所解包位置。此外,传送到商家的鉴权结果不包括敏感数据,并且用户甚至可能不知道他或她是否产生了有效的鉴权数据。
虽然参照其优选和另选实施例公开了鉴权处理1000,但是本发明并不旨在限于此。相反,本领域技术人员将根据本文的公开意识到鉴权处理1000的许多另选。例如,商家有利地可以被几乎任何进行请求的应用代替,即使那些利用用户系统105驻留的应用。例如,客户程序,例如Microsoft Word,可以使用应用程序接口(API)或者加密API(CAPI)来在对文档解锁之前请求鉴权。另选的,邮件服务器、网络、蜂窝电话、个人或移动计算设备、工作站等都可以进行鉴权请求,该鉴权请求可以有鉴权处理1000来履行。事实上,在提供了上述信任的鉴权处理1000之后,进行请求的应用或设备可以提供对于许多电子或计算机设备或系统的访问或使用。
此外,在鉴权失败的情况下,鉴权处理1000可以采用许多另选过程。例如,鉴权失败可能保持相同的事务ID,并且请求用户重新输入他或她的当前鉴权数据。如上所述,使用相同事务ID使得鉴权引擎215的比较器可以监控并限制对于特定事务的鉴权尝试的次数,由此创建更为安全的加密系统100。
此外,鉴权处理1000有利地可以被采用来开发优越的单注册(sign-on)方案,如对敏感数据保管中心(vault)进行解锁。例如,成功的或者肯定的鉴权可以使经鉴权的用户能够自动访问对于几乎无限数量的系统和应用的任何数量的密码。例如,用户的鉴权可以提供用户对于与多个在线商家、局域网、各种个人计算设备、因特网设备提供商、拍卖提供商、投资经纪人等关联的密码、登录、金融凭证等的访问。通过采用敏感数据保管中心,用户可以选择非常大并且随机的密码,因为他们借助关联而无需记住这些密码。这样,鉴权处理1000提供对于它们的访问。例如,用户可以选择随机字母数字串,其长度比与可记忆数据、名称等关联的密码长出20位。
根据一个实施例,与给定用户相关联的敏感数据保管中心有利地可以被存储在存储机构210的数据存储设施中,或者被分割并存储在存储机构系统700中。根据该实施例,在肯定的用户鉴权之后,信任引擎110对于进行请求的应用,对所请求的敏感数据提供例如适当的密码。根据另一实施例,信任引擎110可以包括用于存储敏感数据保管中心的独立系统。例如,信任引擎110可以包括用于实现数据保管中心功能并且假借地驻留在信任引擎110的上述前端安全系统之后的独立软件引擎。根据该实施例,该软件引擎在接收到来自信任引擎110的指示肯定的用户鉴权的信号之后,服务于所请求的敏感数据。
在又一实施例中,数据保管中心可以通过第三方系统实现。于该软件引擎实施例类似,该第三方系统有利地可以在接收到来自信任引擎110的指示肯定的用户鉴权的信号之后,服务于所请求的敏感数据。根据又一实施例,该数据保管中心可以在用户系统106上实现。用户侧软件引擎有利地可以在接收到来自信任引擎110的指示肯定的用户鉴权的信号之后服务于前述数据。
虽然参照另选实施例公开了前述数据保管中心,但是本领域技术人员根据本文公开将意识到其许多另外的实现。例如,一特定数据保管中心可以包括根据上述实施例中的某些或全部的多个方面。此外,上述数据保管中心中的任何一个可以在不同时间采用一个或多个鉴权请求。例如,数据保管中心中的任何一个可以要求定期地鉴权每一个或多个事务;以一个或多个其它规定的时间间隔等鉴权每一个或多个会话、对于一个或多个网页或网站地每一次访问。
图11例示了根据本发明实施例多个方面的签名处理110的数据流。如图11所示,签名处理1000包括类似于项目结合图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有利地可以请求组合与信任引擎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所示,解密处理1200开始于使用鉴权处理1000对用户进行鉴权。根据一个实施例,鉴权处理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所示,信任引擎系统300分别包括多个不同的信任引擎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中的一个或多个上执行的客户侧小程序执行的。根据另选实施例,可以采用更为复杂的确定处理来从信任引擎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的客户侧小程序与信任引擎系统1400同时是,这些通信被发送到信任引擎1405到1420中的每一个。此外,信任引擎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中由鉴权引擎接收由用户提供的当前鉴权数据和从存储机构210检取的注册数据。这两组数据都可以包含与多个独立的鉴权技术关联的数据。鉴权引擎215在步骤1605中对与每个单个鉴权示例关联的鉴权数据进行分离。这是必须的,从而将鉴权数据与用户的注册数据的适当子集相比(如,指纹鉴权数据应当与指纹注册数据相比,而不是与密码注册数据相比)。
通常,对用户进行鉴权包括一个或多个单独的鉴权示例,基于这些示例,鉴权技术可用于用户。这些方法不受由用户在他的注册处理期间提供的注册数据(如果用户在注册时没有提供视网膜扫描,则他将不能使用视网膜扫描来鉴权自己)和当前可用于用户的装置(如,如果用户在其当前位置处不具有指纹读取器,则指纹鉴权将是不现实的)的限制;然而,在特定情况下,可以使用多个鉴权示例的组合,以更为可靠地对于特定事务而鉴权用户。
每个鉴权实例包括与特定鉴权技术(如,指纹、密码、智能卡等)和对于该特定技术的数据的捕获和传递有关的周围环境有关的数据。例如,试图经由密码验证的特定实例将不仅生成与该密码本身有关的数据,而且生成与该密码尝试有关的环境数据,成为“元数据”。该环境数据包括诸如特定鉴权实例发生的时间、从其传递鉴权信息的网络地址这样的信息,还包括对于本领域技术人员公知的可以关于鉴权数据的由来而确定的任何其它信息(连接的类型、处理器序列号等)。
在许多情况下,只有少量的环境元数据可获得。例如,如果用户位于其使用代理服务器或网络地址转换或对发起计算机的地址进行掩码的技术的网络上时,只能确定该代理服务器或路由器的地址。类似地,在许多情况下,诸如处理器序列号的信息将由于对所使用硬件或操作系统的限制、由该系统的操作者禁用了这些特征、或者其它的对于用户系统与信任引擎110之间的连接的限制,而不可获得。
如图16所示,一旦在步骤1605内在鉴权数据内标识的所述多个单独的鉴权实例,则鉴权引擎215在指示用户是否是他所宣称自己是的人时对于每个实例评价其可靠性。对于单个鉴权实例的可靠性通常将基于几个因素来确定。这些因素可以被分为涉及与鉴权技术相关联的可靠性(其在步骤1610中被评估)的因素,以及涉及所提供的特定鉴权数据的可靠性(其在步骤1815中被评估)的因素。该第一组包括但不限于所使用的鉴权技术的固有可靠性、以及利用该方法使用的注册数据的可靠性。该第二组包括但不限于注册数据与利用鉴权实例提供的数据之间的匹配度,以及与该鉴权实例关联的元数据。这些因素中的每一个可以独立于其它因素而变化。
鉴权技术的固有可靠性基于使冒名顶替者提供某个其它人的正确信息的难度如何以及鉴权技术的总体错误率。对于基于密码和指示的鉴权方法,该可靠性通常非常低,因为没有什么能够防止某人将他们的密码暴露给另一人并且该另一人使用该密码。即时基于更为负载的知识的系统也可能只具有一般的可靠性,因为该知识可能非常容易从一人传输到另一人。基于标记的鉴权,诸如使用适当的智能卡或者使用具体终端来进行鉴权,类似地其使用的可靠性低,因为不能确保正确的人拥有该适当的标记。
然而,生物测定信息技术固有地更为可靠,因为其通常难于使其它人能够以方便的方式使用你的指纹,即使该使用是无意的。因为破坏生物测定信息鉴权技术更为困难,所以生物测定信息方法的固有可靠性通常高于基于鉴权技术的单纯的知识或或标记的可靠性。然而,即使生物测定信息技术也有例外,在该例外中,产生了错误的接受或错误的拒绝。这些的发生可能因同一生物测定信息技术的不同实现的可靠性的差异而反映出来。例如,一个公司提供的指纹匹配系统可能提供的可靠性高于由不同的公司提供的指纹匹配系统的可靠性,因为所述一个公司使用了更高质量的光学器件或者更好的扫描分辨率或者降低了错误接受或错误拒绝的发生的某些其它改进。
注意,该可靠性可以不同的方式表达。可能期望将该可靠性以某个量度来表达,该量度可以由启发方式530以及鉴权引擎215的算法使用来计算每个鉴权的置信级别。表达这些可靠性的一个优选模式是百分比或比率。例如,可以对指纹指定97%的固定可靠性,而密码可能只被指定50%的固有可靠性。本领域技术人员应当意识到这些特定值知识示例,并且可以在具体实现之间改变。
必须评估其可靠性的第二因素是注册的可靠性。该因素是上文所引称的“分级注册”的一部分。该可靠性因素反映在初始注册处理器期间提供的标识的可靠性。例如,如果该个人开始时按照他们真实地产生他们身份的证据以提供给公证人或其它公共机关的方式进行注册,并且注册数据在当时被记录,并且被公证,则该用户将会比在注册期间通过网络提供并且只由与该个人并非真实关联数字签名或其它信息保证的数据更为可靠性。
具有可变可靠性级别的其它注册技术包括但不限于:在信任引擎110的操作者的实际办公室处的注册;在用户的工作地点处的注册;在邮局或签证机关处的注册;通过信任引擎110操作者的附属的或信任的一方进行的注册;匿名或假名注册,其中所注册的身份尚未通过特定真实个体以及现有技术中公知的这种其它装置所鉴别。
这些因素反映信任引擎110与在注册处理期间提供的标识的源之间的信任。例如,如果在提供身份证据的最初处理期间与雇主关联地进行注册,则该信息在公司内部可以被认为是极其可靠的,但是政府办事处或者竞争对手可能以较低级别信任该信息。因此,由这些其它组织中的每一个运行的信任引擎可以对该注册知道不同的可靠性级别。
类似地,通过网络提交但是利用该同一信任引擎110通过在先前注册期间所提供的其它信任数据而鉴权的附加数据可以被视为与原注册数据一样可靠,即时后一数据是经由开放式网络提交的。在这种情况下,后续公证将有效地提交与原注册数据关联的可靠性的级别。例如在此方式中,可能因向某一注册机关证实与所注册数据匹配的个人的标识而使匿名或假名注册变为完全注册。
上述可靠性因素通常是在任何特定鉴权实例之前预先可以确定的值。这是因为他们基于注册和技术,而不是基于实际鉴权。在一个实施例中,基于这些因素产生可靠性的步骤涉及对于该特定鉴权技术和用户的注册数据查询先前确定的值。在本发明有利实施例的另一方面,这种可靠性可能包括有注册数据本身。通过这种方式,这些因素被与从存储机构210发送的注册数据一起传递到鉴权引擎215。
虽然这些因素可能通常旨在任何单独鉴权实例之前预先确定的,但是它们仍然对于使用对于该用户的特定鉴权技术的每个鉴权实例有影响。此外,虽然这些值可以随着时间改变(如,如果用户以更为可靠的方式重新注册),但是它们并不依赖于鉴权本身。相反,与单个具体实例的数据关联的可靠性因素可能视每个情况而变化。如上所述,必须对于每个新鉴权评价这些因素,以在步骤1815产生可靠性得分。
鉴权数据的可靠性反映由用户在特定鉴权实例中提供的数据与在鉴权注册期间提供的数据之间的匹配。这是该鉴权数据是否与用户声称其就是的人的个人的注册数据匹配。正常情况下,当数据不匹配时,用户将被视为没有被成功鉴权,并且鉴权失败。对其进行评价的方式可能根据所使用的鉴权数据而改变。这种数据的比较由如图5所示的鉴权引擎215的比较器515功能来执行。
例如,通常以二元方式来评价密码的匹配。换言之,密码是完全匹配的,或者匹配失败的。通常不希望接受一个与正确密码接近但是却不完全正确的密码,即使部分匹配。因此,当评估密码鉴权时,由比较器515返回的鉴权的可靠性通常为100%(正确)或者0%(错误),而不可能存在中间值。
与对于密码的规则相类似的规则通常被应用于基于标记的鉴权方法,例如智能卡。这是因为具有类似标识或者类似于正确标识的智能卡仍然与任何其它不正确标记一样错误。因此,标记也倾向于为二元鉴权:用户或者有正确标记,或者没有。
然而,某些类型的鉴权数据,例如问卷或生物测定信息,通常不是二元鉴权。例如,指纹可以将参考指纹与各种程度匹配。某种程序上,这可能是因为在最初注册期间或者在随后鉴权中捕获的数据质量的不同。(指纹可能被弄脏,或者个人可能在特定手指尚具有静态的痊愈伤疤或者烧伤。)在其它实例中,数据可以不太完全匹配,因为信息本身在某种程度上是可变的,并且是基于模式匹配的。(声音分析可能看起来接近,但是却不完全正确,因为录音时的背景噪声、或者环境声音,或者因为该人感冒)。最后,在比较大量数据的情况下,可能存在这样的情况,即,很多数据良好匹配,但是某些数据却没有。(10个问题的问卷可能产生对于个人问题的8个正确回答,但是两个错误回答)。对于这些原因中的任何一个,可能希望对注册数据与对于特定鉴权实例的数据之间的匹配分配由比较器515产生的部分匹配值。通过这种方式,例如,指纹可以被认为85%匹配。声纹65%匹配,以及问卷80%匹配。
该比较器515产生的该量度(匹配度)是代表鉴权是否正确的基本问题的因素。然而,如上所述,这只是可用于确定个定鉴权实例的可靠性的因素之一。还要注意,即时可以确定与某些部分程度的匹配,但是最终,可能期望提供基于该部分匹配的二元结果。在操作的另选模式中,还可能将部分匹配视为二元的,即,根据匹配程度是否超过匹配的特定阈值级别,要么完全匹配(100%)要么匹配失败(0%)。这种处理可以用于对于产生部分匹配的系统提供匹配的简单通过/失败级别。
在评价给定鉴权实例的可靠性的另一因素涉及提供该特定实例的鉴权的环境。如上所述,环境是指与特定鉴权实例关联的元数据。这可以包括但不限于以下信息:鉴权的网络地址,只要该地址可以确定;鉴权时间;鉴权数据的传输模式(电话线、蜂窝电话、网络等);以及鉴权的系统的序列号。
这些因素可以用于产生正常情况下由用户请求的鉴权的类型的简档。从而,该信息可以用于以至少两种方式评估可靠性。一种方式是考虑用户是否以与该用于的鉴权的正常简档一致的方式来请求鉴权。如果在工作日(当她在工作时)用户正常地从一个网络地址进行鉴权请求,并且在晚上或周末(当她在家时)从不同的网络地址进行鉴权请求,则在工作日期间从家用地址发出的将不太可靠,因为其处于正常鉴权简档之外。类似地,如果用户正常情况下使用指纹生物测定信息并且在晚上进行鉴权,则在白天期间只使用密码发出的鉴权将不太可靠。
可以使用环境元数据来评价鉴权实例的可靠性的另外方式是确定该环境提供该鉴权是他所声称自己是的个人的确证是什么程度。例如,如果该鉴权来自其序列号已知与用户关联的系统,则这是对于用户就是他所声称的人的好的环境指示。相反,如果鉴权来自已知处于Los Angeles的网络地址,而用户已知为住在伦敦,则这指示该鉴权饮泣环境而不太可靠。
还可以当用户与商家系统或者信任引擎110交互时在由用户使用的系统上设置cookie或其它电子数据。该数据被写入用户的系统的存储装置,并且可以包含由用户系统上的万维网浏览器或者其它软件可读取的标识。如果在会话期间允许该数据驻留在用户系统上(“永久cookie”),则可以将其与鉴权数据一起作为在特定用户的鉴权期间由该系统过去使用的进一步证据发送。实际上,给定实例的元数据,具体的,永久cookie,本身可以形成一种基于标记的鉴权。
一旦如上面分别在步骤1610和1615中描述的,生成基于鉴权实例的技术和数据的适当可靠性因素,则可以使用这些可靠性因素来产生对于在步骤1620中提供的鉴权实例的完全可靠性。进行此操作的一个方式只是将每个可靠性表达为百分比,并且将它们乘在一起。
例如,假设鉴权数据被从根据用户的过去鉴权文档而完全已知为用户的家用计算机的网络地址发送(100%),并且所使用的技术是指纹标识(97%),并且最初的指纹数据是通过具有信任引擎110的用户的雇主获取(roister)的(90%),并且鉴权数据与注册株距中的原指纹模板之间的匹配非常好99%。那么可以按照这些可靠性的乘积来计算该鉴权实例的总体可靠性:100%*97%*90%*99%-86.4%可靠性。
该计算出的可靠性代表一个单个鉴权实例的可靠性。单个鉴权实例的可靠性还可以通过使用不同地对待不同可靠性因素的技术,例如通过使用被对于每个可靠性因素指定了不同权重的公式,来计算出。此外,本领域技术人员将意识到,使用的实际值可能代表不是百分比的值,并且可以使用非算术系统。一个实施例可以包括用于设置每个因素的权重的由鉴权请求者使用的模块,以及在建立鉴权实例的总体可靠性时使用的算法。
鉴权引擎215可以使用上述技术及其变型来确定单个鉴权实例的可靠性,如步骤1620指示的。然而,这可能在许多鉴权情况下对于要同时提供的多个鉴权实例有用。例如,当试图使用本发明的系统对他自己进行鉴权时,用户可以提供用户身份、指纹鉴权数据、智能卡和密码。在这种情况下,对信任引擎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%-.98%的不可靠性,其对应于99.02%的可靠性。
在另外的操作模式中,可以在鉴权引擎215内应用附加因素和启发方式530来考虑各种鉴权技术的互相依赖性。例如,如果某人未被授权访问特定家用计算机,则他们也可以接入该地址处的电话线。因此,基于发端电话号码以及鉴权系统的序列号的鉴权并没有使鉴权中的总体之心读增加太多。然而,基于知识的鉴权很大程度上依赖于基于标记的鉴权(即,如果某人窃取了你的蜂窝电话或钥匙,则他们不可能知道你的PIN或密码)。
此外,不同的商家或者其它鉴权请求者可能希望对不同的鉴权方面进行不同的加权。这可能包括使用在计算独立示例的可靠性时使用的单独的加权因子或算法,以及使用不同的方式来评价具有多个实例的鉴权事件。
例如,特定类型交易(例如,公司电子邮件系统)的商家可能希望基于启发方式或者默认的其它环境数据来主要地进行鉴权。因此,他们可能对于元数据相关的因素以及与鉴权事件周围的环境关联的其它简档相关信息进行高加权。这种结构可以用于减轻用户在正常运行期间的负担,只需用户在工作时间期间登录到正确的机器即可。然而,其它商家可能对来自特定技术的鉴权加权最多,该特定技术例如为指纹匹配,因为该商家的策略决定是这种技术最适合于针对该特定商家目的的鉴权。
这种变化的加权可以由鉴权请求者在生成鉴权引擎时定义,并且在一个操作模式中被利用鉴权请求发送到信任引擎110。这些选项也可以在鉴权请求者的最初注册处理期间被设置为偏好,或者在另一操作模式中被存储在鉴权引擎内。
一旦鉴权引擎215产生所提供鉴权数据的鉴权置信级别,则该置信级别可以被用于完成步骤1640中的鉴权请求,并且该信息被从鉴权引擎215转发到事务引擎205以包含在对于鉴权请求者的消息中。
上述处理只是实例,并且本领域技术人员将意识到这些步骤无需按照所示的顺序执行,或者期望只执行这些步骤中的某些,或者可能期望这些步骤的各种组合。此外,某些步骤,诸如评估所提供的每个鉴权实例的可靠性,可以相互并行执行,如果环境允许的化。
在本发明的又一方面,提供了一种方法来适应于当上述处理所产生的鉴权置信级别无法满足要求鉴权的商家或其它方的所需信任级别时的状况。在诸如在所提供的置信级别于所期望的信任百之间存在空隙的环境下,信任引擎110的操作者负责对一方或双方提供机会来提供另选数据或需求,从而填补该信任空隙。该处理在本文中将被称为“信任仲裁”。
信任仲裁可能发生在如上参照图10和11描述的加密鉴权的结构中。如其中所示的,商家或者其它方将请求于特定事务关联的特定用户的鉴权。在一种情况下,商家只请求鉴权,要么肯定要么否定,并且在接收到来自用户的适当数据之后,信任引擎110将提供这种二元鉴权。在诸如这样的环境中,为了确保肯定鉴权而需要的置信度是基于信任引擎110中设置的偏好确定的。
然而,还可能的是商家可能要求特定的信任级别以完成特定事务。该要求的级别可以利用鉴权请求(如,鉴权该用户到98%置信度)而被包括,或者可以由信任引擎110基于于该事务关联的其它因素而确定(如,鉴权该用户适合于该事务)。一个这种因素可以是事务的经济价值。对于具有较高经济价值的事务,可能要求高级别的信任。类似地,对于具有高奉献的事务,可能要求高级别的信任。相反的,对于低方向或低价值的事务,可能商家或者其它鉴权请求者要求较低的信任级别。
在图10的步骤1050中的信任引擎110接收鉴权数据的步骤以及图10的步骤1055中的将鉴权结果返回到商家的步骤之间进行信任仲裁的处理。在这些步骤之间,导致对信任级别的评价以及可能的信任仲裁的处理如图17所示地发生。在进行简单二元鉴权地环境中,图17所示的处理减少至使事务引擎205将所提供的鉴权数据直接于所识别用户的注册数据进行比较,如上面参照图10讨论的,将任何差异标记为否定鉴权。
如图17所示,在步骤1050中接收到数据之后的第一步骤是在步骤1710中使事务引擎205确定对于该具体事务的肯定鉴权所需的信任级别。该步骤可以由若干不同方法中的一个来执行。所需信任级别可以由鉴权请求者在进行鉴权请求的时刻被指定给信任引擎110。鉴权请求者还可以预先设置偏好,该偏好被存储在可由事务引擎205访问的存储机构210中或者其它存储装置内。然后,在每次由鉴权请求者进行鉴权请求时,可以读取并使用该偏好。该偏好还可以作为安全量度于特定用户关联,以使得总是需要特定安全级别来鉴权该用户,该用户偏好被存储在可由信任引擎205访问的存储机构210或其它存储介质中。所要求的级别还可以由事务引擎205或者鉴权引擎215基于在鉴权请求中提供的信息而导出,如要鉴权的事务的价值或安全级别。
在一个操作模式中,使用在生成鉴权请求时使用的策略管理模块或者其它软件来指定对于该事务的鉴权所需的信任级别。这可以用于当基于在策略管理模块中指定的策略来指定所要求的信任级别时提供一系列要遵循的规则。一个有利的操作模式是使这种模块并入商家的万维网服务器中,以适当地确定利用该商家的万维网服务器发起的事务的所要求信任级别。通过这种方式,可以根据商家的策略对来自用户的事务请求指定所要求的信任级别,并且该信息可以与鉴权请求一起被转发到信任引擎110。
该所要求的信任级别与商家想要该正在鉴权的个人事实上是他所声称自己是的人的确定程度相互关联。例如,如果因为货物正在转手,所以该事务是商家想要很高的确定级别的事务,则该商家可以要求85%的信任级别。对于商家仅是正在鉴权用户以允许该用户查看仅成员内容或者对聊天室实施特权的情况而言,下侧风险可能足够小,以至于商家值需要60%的信任级别。然而,为了参加价值数万美元的产品合同,商家可能需要99%或更高的信任级别。
该所需要的信任级别代表了用户必须鉴权自己以完成事务的度量。如果所需要的信任级别例如是85%,则用户必须向信任引擎提供证明,该证明足够使信任引擎110认为该用户就是他所声称自己是的人的置信度为85%。该所需要的信任级别与鉴权信任级别之间的平衡产生了肯定的鉴权(使商家满意)或者可能的信任仲裁。
如图17所示,在信任引擎205接收到所要求的信任级别之后,其在步骤1720中将要求的信任级别与鉴权置信度级别进行比较,该鉴权置信度级别是鉴权引擎215为了当前鉴权而计算出的(如参照图16所讨论的)。如果在步骤1730中,鉴权置信度级别高于对于该事务的所要求的置信级别,则处理进行到步骤1740,在该步骤中,有事务引擎205产生对于该事务的肯定鉴权。然后由事务引擎205将对于该结果的消息插入鉴权结果中,并且返回给商家,如步骤1055所示(参见图10)。
然而,如果在步骤1730中,鉴权置信度级别没有满足所要求的信任级别,则对于当前鉴权存在置信间隙,并且在步骤1750中执行信任仲裁。下面参照图18更完全地描述信任仲裁。上述处理发生在信任引擎110地事务引擎205中。因为不需要鉴权或者其它加密操作来执行信任仲裁(不同于事务引擎205与其它组件之间的SSL通信所要求的操作),该处理可以在鉴权引擎215的外部执行。然而,如将要讨论的,对于鉴权数据或者其它加密或鉴权事件的任何重新评价都将要求事务引擎205再次提交适当的数据给鉴权引擎215。本领域技术人员将意识到,仲裁处理另选地可能部分地或者完全地在鉴权引擎215本身内进行。
如上所述,信任仲裁是如下处理,其中信任引擎110调解商家与用户之间的谈判,以试图适当地确保肯定鉴权。如步骤1805所示,事务引擎205首先确定当前状况是否适合于信任仲裁。这可以基于鉴权环境,如该鉴权是否已经经历了多轮仲裁,以及基于商家或者用户地偏好来确定,如下面将进一步讨论的。
在不能仲裁的这种环境下,处理进行到步骤1810,在该步骤中,事务引擎205声称否定鉴权,然后将其插入在步骤1055中(参见图10)被发送到商家的鉴权结果中。一种有利地可以用于防止鉴权永远悬而未决的限制是设置从最初鉴权请求起的超时时间段。通过这种方式,任何在该时间限制之内没有被肯定鉴权的事务都被拒绝进一步仲裁,并且被否定鉴权。本领域技术人员将意识到这种时间限制可能根据事务环境以及用户和商家的期望而变化。也可以对在提供成功鉴权时可以尝试的次数施加限制。这些限制可以由如图5所示的尝试限制器535来处理。
如果在步骤1805中没有禁止仲裁,那么事务引擎205将进行与谈判双方中的一方或两方的谈判。信任引擎205可能向用户发送消息以请求某种形式的附加证明,从而提升在步骤1820中产生的鉴权置信度级别。通过这种最简单的形式,这可能只表明曾经的鉴权是不充分的。也可一发送如下请求,该请求产生一个或多个附加鉴权是列来提高鉴权的整体置信度级别。
如果用户在步骤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)中再次比较鉴权置信度级别和所要求的信任级别。处理从这里继续,并且可能导致步骤1740(参见图17)中的肯定鉴权,或者在步骤1740中返回到信任仲裁处理以进行进一步仲裁(如果允许)或者如果禁止进一步仲裁则在步骤1810给出否定鉴权。
除了在步骤1820向用户发送消息之外,事务引擎205还可以在步骤1830向商家发送消息,其表明悬而未决的鉴权当前低于所要求的信任级别。该消息还可以提供关于如何进行到商家的各种选项。这些选项之一是仅通知商家当前鉴权置信度级别是什么,并且询问商家是否系统保持他们当前的未满足要求的信任级别。这可能是有益的,因为在某些情况下,商家可能具有独立的方式来鉴权该事务,或者可能曾使用了默认的要求集合,该要求集合通常使得最初产生的所要求级别高于对于正在进行的特定事务所实际需要的级别高。
例如,可能是如下标准做法,即,期望所有到来与商家的购买定单事务都满足98%信任级别。然而,如果最近商家和长期客户电话讨论了一定单,并且随后立即对该事务进行了鉴权,但是只有93%的置信级别,则该商家可能希望仅对于该事务降低接受阈值,因为该电话有效地向商家提供了额外证明。在某些情形下,商家可能希望降低他们的所要求的信任级别,但是并不特地对于当前鉴权置信度的级别降低要求。例如,在上述示例中的商家可能认为定购之前的电话可能值得将所需要的信任级别降低4%;然而这仍然高于用户产生的93%的置信度。
如果在步骤1835中商家确实调整了他们所要求的信任级别,则在步骤1730中将鉴权所产生的鉴权置信度级别与所要求的信任级别进行比较(参加图17)。如果该置信度级别目前超过了所要求的置信度级别,则在步骤1740中在事务引擎205中可以产生肯定的鉴权(参加图17)。如果不是,则如果允许的话,可以如上所述尝试进一步的仲裁。
除了请求调整所要求的置信级别之外,事务引擎205还可以向请求鉴权的商家提供商家侧保险。该保险的目的类似于上述的用户侧保险的目的。然而,这里,不同于信任引擎在上面鉴权所产生的实际鉴权置信度级别时所承担风险的成本,该保险的成本对应于商家在接受较低的置信度信任级别时所承担的风险。
代替仅降低他们的实际所要求的信任级别,商家可以选择购买保险来保护其自己不受与用户鉴权时的较低置信级别关联的额外风险的影响。如上所述,有利地,可以由商家仅考虑购买这种保险来填补在当前鉴权已经高于某一阈值的情况下的空隙。
这种商家侧保险的可用性使得商家可以选择:在不增加其自己的成本的情况下降低他的信任要求,但是承担自己错误鉴权的风险(基于所要求的较低信任级别);或者对于该鉴权置信度级别与他的要求之间的信任空隙购买保险,使信任引擎110操作者承当所提供的较低信任级别的风险。通过购买保险,商家有效地保持其高信任级别要求;因为错误鉴权的风险已经转移到信任引擎110操作者。
如果商家在步骤1840中购买保险,则在步骤1730中将鉴权置信度级别与所要求的信任级别进行比较(参加图17),并且处理如上所述的继续。
注意,还可以由用户和商家相应于来自信任引擎110的消息。本领域技术人员将意识到,由多种方式可以处理处理这些情形。处理可能多个响应的一个有利模式是仅以先来先服务的方式对待这些响应。例如,如果商家以较低的所要求置信度级别进行了响应,并且不久之后,用户也购买了保险类提高他的鉴权级别,则首先基于来自商家的降低的信任要求来重新评价该鉴权。如果鉴权现在是肯定的,则忽略用户的保险购买。在另一有利操作模式中,用户可以仅对满足商家的新的降低的信任要求所需要的保险级别付费(如果即时对于该涓埃女冠的的商家信任要求,仍然有信任空隙)。
如果在步骤1850中的信任仲裁助理期间,在对于鉴权设置的时间限制内没有接收到来自任何一方的响应,则在步骤1805中再次评价该仲裁。这有效地再次开始了仲裁处理。如果在步骤1805中时间限制最终或者在其它情况下阻止了进一步的仲裁,则有事务引擎205在步骤1810中产生否定鉴权,并在步骤1055中将其返回给商家(参见图10)。如果没有,则可以将新消息发送到用户和商家,并且如果希望,可以重复所述处理。
注意,对于某些类型的事务,例如,并不是事务一部分的数字签名文档,可能无需存在商家或者其它第三方;因此,事务主要在用户与信任引擎110之间。在诸如这样的情形中,信任引擎110将具有其自己的必须满足的要求信任级别,以产生肯定的鉴权。然而,在这种情况下,通常将不期望信任引擎110对用户提供保险来使他提高他自己签名的置信度。
上面所述的并在图16到18中示出的处理可以使用各种通信模式执行,如参照信任引擎110所描述的。例如,这些消息可以是基于万维网的,并且使用信任引擎110与实时下载到在用户或商家系统上允许的浏览器的小程序之间的SSL连接来发送。在另选操作模式中,可以有用户和商家使用某些有助于这种仲裁和保险事务的专用应用。在另一另选操作模式中,可以使用安全电子邮件操作来调解上述仲裁,由此允许延期的评价和鉴权的批处理。本领域技术人员将意识到,可以使用适合于环境和商家的鉴权要求的不同通信模式。
参照图19的以下描述描述了一个结合了如上所述的本发明多个方面的示例事务。该示例例示了通过信任引擎110调解的用户与商家之间的整个处理。虽然可以使用上面详细描述的各种步骤和组件来执行以下事务,但是所例示的处理集中于信任引擎110、用户和商家之间的交互。
事务开始于在步骤1900中当用户在线浏览网页的同时在商家的网站上填写定单表格时。用户希望将签有她的数字签名的定单提交给商家。为了进行此操作,用户在步骤1905中利用他的对于签名的请求提交定单。用户还将提供鉴权数据,该数据将用于如上所述地来鉴权他的身份。
在步骤1910,如上所述,由信任引擎110将鉴权数据与注册数据进行比较,如果产生了肯定的鉴权,则将利用用户私钥签名的定单的散列联通定单本身转发到商家。
商家在步骤1915接收经签名的定单,然后商家在步骤1920将产生与要进行的购买相关的清单或其它合同。在步骤1925中将该合同利用对于签名的请求发送回用户。商家还可以在步骤1930中将对于该合同事务的鉴权请求发送到信任引擎110,该请求包括将由双方签名的该合同的散列。为了允许由双方对该合同进行数字签名,该商家还包括用于自己的鉴权数据,以使得如果需要,可以随后验证商家在合同上的签名。
如上所述,然后信任引擎110验证由商家提供的鉴权数据以确认商家的身份,并且如果在步骤1935中该数据产生肯定的鉴权,则当从用户接收到该数据时继续到步骤1955。如果商家的鉴权数据与商家的注册数据的匹配没有达到期望的程度,则将一消息返回给商家,以请求进一步鉴权。如果需要,如上所述,此时可以进行信任仲裁,以使得商家成功地将其自己对于信任引擎110鉴权。
当用户在步骤1940接收到该合同,他浏览该合同,并且在步骤1945中如果该合同是可以接受的,则生成对于签署该合同的鉴权数据,然后在步骤1950将该合同的散列以及他的鉴权数据发送到信任引擎110。信任引擎110在步骤1955中验证鉴权数据,并且如果鉴权良好,则如上所述进行到处理合同。如上面参照图17和18讨论的,适当地,可以进行信任仲裁以填补存在于鉴权置信度级别与对于该事务所要求的鉴权级别之间的信任空隙。
在步骤1960,信任引擎110利用用户的私钥签署该合同的散列,并且将该签名后的散列发送到商家,利用信任引擎110的私钥510代替用户签署该完全消息,即,包括该完全消息的散列(包括用户的签名)。在步骤1965中,该消息被商家接收。该消息代表所签署的合同(使用用户的私钥加密的合同的散列)和来自信任引擎110的收据(利用信任引擎110的私钥加密的包括所签署合同在内的消息的散列)。
在步骤1970,信任引擎110类似地准备带有商家私钥的合同的散列,并将信任引擎110签名的该合同转发给用户。通过这种方式,在步骤1975,用户也接收到由商家签名的合同的拷贝,以及由信任引擎110签名的对于传递该签名的合同的收据。
除了上述讨论之外,本发明的附加方面提供了鉴权服务提供上模块(SPM),其作为访问由上述信任引擎110提供的功能的方式,可以对于客户侧应用可用,提供这种服务的一个有利方式是使加密SPM成为第三方应用编程接口(API)与可以经由网络或其它远端连接访问的信任引擎110之间的中间通信。下面参照图20描述示例加密SPM。
例如,在典型的系统上,多个API对于编程者可用。每个API提供一功能调用集,其可以由在系统上允许的应用2000进行。提供适于加密功能、鉴权功能和其它安全功能的编程接口的API的示例包括由Mcrisoft利用其Windows操作系统提供的加密API(CAPI)2010,以及由IBM、Intel和Open Group的其它成员赞助的公共数据安全架构(CDSA)。在下面的讨论中,CAPI将用作示例安全API。然而,上述加密SPM也可一利用CDSA或者其它现有技术已知的安全API来使用。
当调用加密功能时,该API由用户系统105或商家系统120使用。这些功能中可能包括与进行各种加密操作相关的请求,该加密操作例如为利用特定密钥对文档加密、签署文件、请求数字证书、衍生所签名文档上的签名、以及本文所描述的或者本领域技术人员公知的其它加密功能。
这些加密功能通常在CAPI 2010所处于的系统的本地进行。这是因为通常所调用的功能要求使用本地用户系统105的资源,如指纹读取器,或者利用在本地机器上执行的库而编程的软件功能。对于这些本地资源的访问通常由上面所提到的一个或多个服务提供上模块(SPM)2015、2020来提供,这些模块提供执行加密功能的资源。这些SPM可以包括进行加密或解密功能的软件库2015、或者能够访问专用硬件2025的驱动器和应用2020,如生物测定信息扫描设备。通过由CAPI 2010提供可以由系统105的应用2000使用的功能,SPM2015、2020使CAPI访问与系统上的可用服务关联的较低级别的功能和资源。
根据本发明,可以提供加密SPM 2030,器能够访问由信任引擎110提供的加密工,并使这些功能通过CAPI 2010而对于应用2000可用。与CAPI 2010只能访问通过SPM 2015、2020本地可用的资源不同,这里所述的加密SPM 2030将能够将对于加密操作的请求提交到位于远端的、网络可访问的信任引擎110,以进行所期望的操作。
例如,如果应用2000需要进行加密操作,例如签署文档,则应用2000对适当的CAPI 2010功能进行功能调用。CAPI 2010进而将利用通过SPM 2015、2020和加密SPM 2030而变得可用的资源,来执行该功能。在数字签名功能的情况下,加密SPM 2040将产生适当的请求,该请求将经由通信链路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)对可加密分割块进行加密,利用不同类型的加密对每份进行加密,然后分散并安全存储在多个位置。
在一个实施例中,该处理包括根据所生成的随机数的内容或者密钥对数据进行分割,并且将在对分割数据进行加密时所使用的该密钥进行加密分割,以将其保护成经分析和分割的数据的两个或更多个部分或份,并且在一个实施例中,优选的保护成经分析和分割的数据的四个或更多个部分,对所有这些部分进行加密,然后将这些部分分散并存储回数据库中,或者将它们重新定位到任何有名字的设备,该设备根据请求者对于私密性和安全性的需求可以是固定的或者可移除的。另选的,在另一实施例中,加密可以在将由分割模块或安全数据分析器进行数据集的分割之前进行。在本实施例中如上所述处理的原始数据被加密和搞乱,并且被保护。如果需要,经加密元素的分散实质上可以在任何地方进行,包括但不限于三个服务器或数据存储设备,或者在多个单独的数据存储设施或设备中。在一个实施例中,加密密钥管理可以被包含在软件组件内,或者在另一实施例中,可以并入已有基础设施或者任何其它期望的地点。
加密分割(cryptosplit)将数据划分成N份。该划分可以基于数据的任何尺寸的单位,包括单个位、几个位、几个字节、几千字节、几兆字节或者更大的单位,以及预先确定或随机生成的多个数据单位尺寸的任何模式或组合。根据随机或预先确定的值的集合,这些单位可以是不同的尺寸。这意味着数据可以被视为这些单位的序列。通过这种方式,例如通过使用一个或多个预先确定或随机生成的数据单位尺寸的模式、序列或组合,这些数据单位的尺寸本身可以使数据更为安全。然后将这些单位分布(随机地或者通过预先确定的值的集合)到所述N份中。该分布可能还涉及搅乱这些份中这些单位地顺序。对于本领域技术人员而言,很容易理解,将数据单位分布到这些份中可以根据各种可能的选择来执行,包括但不限于固定尺寸的、预定尺寸的、或者一个或多个预先确定或随机生成的数据单位尺寸的组合、模式或序列。
该加密分割处理或cryptosplit的一个示例是考虑数据尺寸位23字节,将数据单位尺寸选择位一个字节,并且将份数选择位4。每个自己将被分布到这4份之一中。假设随机分布,则获得密钥以生成23个随机数的序列(r1、r2、r3到r23),每个随机数的值在对应于这四份的1与4之间。这些数据单位(在本实施例为23个单独的数据字节)中的每一个与对应于所述四份之一的这23个随机数之一相关联。通过将数据的第一字节放入份编号r1中、将第二字节放入份r2中,将第三字节放入份r3中,到将数据的第23字节放入份r23中,来将这些数据字节分布到这四份中。本领域技术人员容易理解,在本发明的cryptosplit处理中可以使用各种其它可能的步骤,或者多个步骤的组合或序列,包括多个数据单位的尺寸,并且上述示例是对于加密分割数据的一个处理的非限制性描述。为了重新创建原始数据,将进行逆操作。
在本发明的加密分割处理的另一实施例中,对于加密分割处理的选项是在这些份中提供足够的冗余,以使得只需要这些份的子集来将数据重新组合或回复成原始的可用形式。作为非限制性示例,加密分割可以作为“4个中的3个(3 of 4)”加密分割来进行,以使得这四份中只需要三份来将数据重新组合或恢复成其原始或可用形式。这样也称为“N个中的M个加密分割”,其中N是总份数,M是小于N并至少为1的数。本领域技术人员很容易理解,在本发明的加密分割处理中可能有许多方式来创建该冗余。
在本发明的加密分割处理的一个实施例中,每个数据单位被存储成两份,主份和备份份。使用上述的“4个中的3个”加密分割处理,任何一份可以丢失,并且这对于利用没有丢失的数据单位来重新组合或回复原始数据是足够的,因为总共四份中只需要三份。如本文中所述,对应于这些份之一生成随机数。该随机数与一数据单位关联,并且基于一密钥,存储在对应的份中。在该实施例中,使用一个密钥来生成主份随机数和备份份随机数。如本文中对于本发明的加密分割处理描述的,生成等于数据单位数的从0到3的一组随机数(也称为主份数)。然后,从1到3生成等于数据单位数的另一组随机数(也称为备份随机数)。然后将每个数据单位与主份数和备份份数关联。另选的,可以生成一组随机数,该组随机数少于数据单位数,并且重复该组随机数,但是这可能降低敏感数据的安全性。主份数用于确定数据单位要存储到哪一份中。备份份数与主份数组合来产生0和3之间的第三随机数,并且该书被用于确定该数据单位存储到哪一份中。在该示例中,确定第三份数的公式如下:
(主份数+备份份数)MOD 4=第三份数
在上述实施例中,主份数在0和3之间,并且备份份数在1和3之间,这确保了第三份数不同于主份数。这使得该数据单位被存储在两个不同的份中。本领域技术人员容易理解,除了本文公开的实施例之外,还有许多方式进行冗余加密分割和非冗余加密分割。例如,可以使用不同的算法搅乱每份中的数据单位。该数据单位搅乱例如可以在原始数据被分割成多个数据单位时执行,或者在将这些数据单位放入这些份之后进行,或者在该份充满之后进行。
可以对任何尺寸的数据单位进行本文描述的各种加密分割处理和数据搅乱处理,以及本发明的所述加密分割和数据搅乱方法的任何其它实施例,该任何尺寸的数据单位包括但不限于小至等于单个位、几个位、几个字节、几千字节、几兆字节或更大。
执行本文描述的该加密分割处理的源代码的一个实施例的示例为:
DATA[1:24]-具有待分割数据的多个字节的数组
SHARE[0:3;1:24]-每行代表多份之一的二维数组
RANDOM[1:24]-在0..3的范围内的数组随机数
S1=1;
S2=1;
S3=1;
S4=1;
For J=1 to 24 do
Begin
IF RANDOM[J[==0 then
Begin
SHARES[1,S1]=DATA[J];
S1=S1+1;
End
ELSE IF RANDOM[J[==1 then
Begin
SHARES[2,S2]=DATA[J];
S2=S2+1;
END
ELSE IF RANDOM[J[==2 then
Begin
Shares[3,S3]=data[J];
S3=S3+1;
End
Else begin
Shares[4,S4]=data[J];
S4=S4+1;
End;
END;
进行本文描述的鉴权分离RAID处理的源代码的一个实施例的示例为:
生成两组随机数,PrimaryShare为0到3,BackupShare为1到3。然后利用与在上述加密分割处理中相同的处理将每个数据单位放入share[primaryshare[1]]和share[(primaryshare[1]+backupshare[1])]mod 4中该方法可以伸缩为任何尺寸N,其中对于恢复数据只有N-1份。
经加密数据元素的检取、重新合并、重新组合或重构可以使用任何数量的鉴权技术,包括但不限于生物测定信息,例如指纹识别、面部扫描、手部扫描、虹膜扫描、视网膜扫描、眼部扫描、血管图案识别或DNA分析。如果需要,本发明的该数据分割和/或分析器模块可以并入各种基础设施产品或应用中。
本领域公知的传统鉴权技术依赖于用于加密数据并使得没有密钥无法使用该数据的一个或多个密钥。然而,该数据保持完整并完好并且易受攻击。在一个实施例中,本发明的安全数据分析器通过对加密文件进行加密分析并将其分割成两个或多个部分或份(在另一实施例中,优选地分割成四份或更多份)、对该数据的每份添加另一层加密、然后将这些份存储在不同的物理和/或逻辑地址中,来解决该问题。当通过使用诸如数据存储设备的可移除设备或者通过将该份置于另一方的控制之下,而物理上从该系统移除一份或多份数据时,有效地消除了可能对于所保护数据的安全的危及。
在图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 XORy意味着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被分为两份或更多份,将其以安全方式删除(discard)。
本发明的安全数据分析器可以使用该函数,进行涉及多个不同机密密钥值的XOR函数,这些不同机密密钥值为:K1、K2、K3、K4、K5。在操作开始时,使要保护的数据经过第一加密操作,安全数据=数据XOR机密密钥5:
S=D XOR K5
为了以例如四份S1、S2、S3、Sn安全地存储所得的经加密数据,并根据K5的值对该数据进行分析,并分割成“n”段或份。该操作产生原始经加密数据的“n”个伪随机份。然后可以利用剩余的机密密钥值对每份进行后续的XOR函数,例如:安全数据段1=经加密数据份1XOR加密密钥1:
SD1=S1 XOR K1
SD3=S2 XOR K2
SD3=S3 XOR K3
SDn=Sn XOR Kn
在一个实施例中,可能期望任何一个存储机构包含对于解密其中保持的信息而言足够的信息,从而将对于解密该份所要求的密钥存储在不同的数据存储机构中:
存储机构1:SD1,Kn
存储机构2:SD1,K1
存储机构3:SD3,K2
存储机构n:SDn,K3。
此外,将对于鉴权原始会话加密密钥K5所要求的信息附于每份。因此,在本文描述的密钥管理示例中,原始会话主密钥被以一事务ID表示,该原始会话主密钥被根据依赖于安装的分析器主密钥(TID1、TID2、TID3、TIDn)分割为“n”份。
存储机构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:SD1,K1,SK2
存储机构3:SD3,K2,SK3
存储机构n:SDn,K3,SKn。
除非检取到所有四份,否则根据该示例,无法重新组合该数据。即使捕获到所有四份,在不能访问会话主密钥和分析器主密钥的青虾,也不能重新组合或恢复原始信息。
在本发明的该方法的一个实施例中描述了该示例,并且在另一示例中,描述了用于将多份置于存储机构中以使得来自所有存储机构的多份可以被组合以形成机密鉴权材料的算法。所需计算非常简单且快速。然而,当利用一次一密乱码本(OTP)算法时,可能存在不太期望该算法的情形,例如要保护的数据集太大,因为密钥尺寸与要存储数据的尺寸相同。因此,需要存储并传送大约两倍于原始数据量,在某些情形下这可能是不期望的。
流密码RS1
流密码RS1分割技术非常类似于本文所述的OTP分割技术。代替n位随机值,生成n’=min(n,16)字节随机值,并使用其来对RS1流密码算法进行加密。RS流密码算法的优点在于根据非常少的种子数生成伪随机密钥。RS1流密码机密的执行速度大约是现有技术中公知的三重DES加密的10倍,且不危及安全性。RS1流密码算法是现有技术中已知的,并且可被用于生成在XOR函数中使用的密钥。RS1流密码算法可与市场上可获得的诸如RSA Security Inc的RC4TM的流加密码算法流密码算法互操作,并且适于在本发明的方法中使用。
使用上述密钥符号,K1到K5现在是n’字节随机值,并且我们设置:
SD1=S1 XOR E(K1)
SD3=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算法比OTP算法有效,因为它相对较短。本领域技术人员容易理解,各种加密方法和算法,包括但不限于RS1、OTP、RC4TM、三重DES和AES,都适合于在本发明中使用。
本发明的数据保护方法和计算机系统优于传统加密方法的主要优点。一个优点在于将多份数据移动到一个或多个数据存储机构或存储设备上而获得的安全性,这些位置可以在不同的逻辑、物理或地理位置。当物理地或者在不同人员的控制下分割多个数据时,可以大大降低对于数据的安全的危及。
本发明的方法和系统提供的另一优点是组合本发明的用于保护数据的方法的多个步骤,以提供保持敏感数据的安全性的全面处理。该数据可以利用安全密钥加密,并根据该安全密钥被分割成一份或多份,在一个实施例中,分割成四份。利用根据一安全密钥而安全存储在四份中的指针,安全地存储该安全密钥。然后对所述多份数据分别加密,并且利用不同的加密份安全地存储这些密钥。当组合根据本文公开的方法时,根据这些方法的保护数据的整个处理成为对于数据安全性的全面封装。
根据本发明的方法保护的数据可以容易地被检取,并且恢复、重构、重新组合、解密或者以其它方式返回到其原始的或者其它适当形式以使用。为了恢复原始数据,可以使用以下项:
1、数据集的所有份或部分。
2、再现用于保护数据的方法的处理流的知识和能力。
3、对于会话主密钥的访问。
4、对于分析器主密钥的访问。
因此,可能期望安排安全安装,其中上述元件中的至少一个可以与该系统的其余部件物理上分离(例如在不同系统管理员的控制之下)。
可以通过使用分析器主密钥防止欺诈应用调用数据保护方法应用。在采取任何动作之前,在本发明的该实施例中可能需要在安全数据分析器与该应用之间的相互鉴权握手。
该系统的安全性规定对于重新创建原始数据没有“后门”方法。对于可能产生数据恢复问题的安装,可以增强安全数据分析器以提供所述四份和会话主密钥存储机构的镜像。诸如RAID(非昂贵磁盘的冗余阵列,用于将信息散布到若干磁盘)的硬件选项和诸如复制的软件选项也可以帮助数据恢复设计。
密钥管理
在本发明的一个实施例中,该数据保护方法对于一个加密操作使用三组密钥。基于安装,每组密钥可以具有各自的密钥存储、检取、安全性和恢复选项。可以使用的密钥包括但布限于:
分析器主密钥
该密钥是与安全数据分析器的安装有关的单独密钥。将其安装在其上布置有安全数据分析器的服务器上。有各种选项适于保护该密钥,这些选项包括但不限于例如:智能卡、单独的硬件密钥存储、标准密钥存储、客户密钥存储或者保护在经保护的数据库表内。
会话主密钥
可以在每次保护数据时生成会话主密钥。会话主密钥用于在进行分析和分割操作之前对数据加密。还可以将其作为分析经加密数据的方式并入(如果会话主密钥没有并入该经分析的数据中)。会话主密钥可以按照各种方式保护,包括但不限于例如标准密钥存储、客户密钥存储、单独的数据库表、或者保护在经加密份内。
份加密密钥
对于所创建的数据集的每份或每部分,可以生成各自的份加密密钥以进一步加密这些份。这些份加密密钥可以被存储在与被加密份不同的份中。
本领域技术人员容易理解,本发明的数据保护方法和计算机系统广泛应用于任何设备或环境中的任何数据类型。除了在因特网上或者在客户与商家之间执行的商业应用之外,本发明的数据保护方法和计算机系统还可非常适用于非商业或私人设备或环境。可以使用本文描述的方法和系统来保护想要保护其不受任何未授权用户的威胁的任何数据组。例如,通过采用本发明的用于保护数据的方法和系统,对于公司或阻织内的特定数据库的访问有利地可以被限制于唯一选择的用户。另一示例是生成、修改或访问文档,其中期望限制访问或者防止未授权的或意外的访问,或者对于一组选定个人、计算机或工作站外部的公开。本发明的保护数据的方法和系统可应用于对于任何设备的任何非商业或商业环境或者设置,包括但不限于任何组织、政府办事处或公司。
在本发明的另一实施例中,数据保护方法对于加密操作使用三组密钥。基于安装,每组密钥可以具有各自的密钥存储、检取、安全性和恢复选项。可以使用的密钥包括但布限于:
1、分析器主密钥
该密钥是与安全数据分析器的安装有关的单独密钥。将其安装在其上布置有安全数据分析器的服务器上。有各种选项适于保护该密钥,这些选项包括但不限于例如:智能卡、单独的硬件密钥存储、标准密钥存储、客户密钥存储或者保护在经保护的数据库表内。
2、会话主密钥
可以在每次保护数据时生成会话主密钥。会话主密钥用于与分析器主密钥结合使用来导出中间密钥。会话主密钥可以按照各种方式保护,包括但不限于例如标准密钥存储、客户密钥存储、单独的数据库表、或者保护在经加密份内。
3、中间密钥
可以在每次保护数据时生成中间密钥。中间密钥用于在分析和分割操作之前对数据进行加密。还可以将该密钥作为分析经加密数据的方式并入。
4、份加密密钥
对于所创建的数据集的每份或每部分,可以生成各自的份加密密钥以进一步加密这些份。这些份加密密钥可以被存储在与被加密份不同的份中。
本领域技术人员容易理解,本发明的数据保护方法和计算机系统广泛应用于任何设备或环境中的任何数据类型。除了在因特网上或者在客户与商家之间执行的商业应用之外,本发明的数据保护方法和计算机系统还可非常适用于非商业或私人设备或环境。可以使用本文描述的方法和系统来保护想要保护其不受任何未授权用户的威胁的任何数据组。例如,通过采用本发明的用于保护数据的方法和系统,对于公司或阻织内的特定数据库的访问有利地可以被限制于唯一选择的用户。另一示例是生成、修改或访问文档,其中期望限制访问或者防止未授权的或意外的访问,或者对于一组选定个人、计算机或工作站外部的公开。本发明的保护数据的方法和系统可应用于对于任何设备的任何非商业或商业环境或者设置,包括但不限于任何组织、政府办事处或公司。
工作组、项目、个人PC/膝上型电脑或跨平台数据安全性
本发明的数据保护方法和计算机系统还可用于由在例如商业机构、办公室、政府办事处或任何设备(其中创建、处理或存储敏感数据)中使用的工作组、项目、个人PC/膝上型电脑以及任何其它平台来保护数据。本发明提供用于保护数据的方法和计算机系统,该方法和计算机系统已知要由诸如美国政府的组织寻求使用,从而跨整个政府组织或者在一个州或联邦级别内的多个政府之间实现。
本发明的数据保护方法和计算机系统不仅能够提供对于屏幕文件(flat file)进行分析和分割,还能够对于任何类型的数据字段、数据集以及表格进行分析和分割。此外,任何形式的数据都能够受到该处理的保护,这些数据包括但不限于文本、视频、图像、上午信息和语音数据。本发明的保护数据的方法的可伸缩性、速度和数据吞吐量不仅限于用户在其配置中所具有的硬件。
在本发明的一个实施例中,如下所述地在工作组环境中使用这些数据保护方法。在一个实施例中,如图23所示并如下文所描述的,本发明的工作组规模的数据保护方法使用TrustEngine的私钥管理功能来存储对于一组用户共享安全数据所必须的用户/组关系以及相关私钥(分析器组主密钥)。本发明的该方法能够根据如何配置分析器主密钥来为公司、工作组或个人用户保护数据。
在一个实施例中,可以提供附加密钥管理和用户/密钥管理程序,使得可以利用单点的管理和密钥管理来进行宽规模的工作组实现。由单个维护程序来处理密钥生成、管理和撤销,随着用户数量增加,这些操作都变得非常重要。在另一实施例中,可以跨一个或若干不同的系统管理员而设置密钥管理,如果需要,该密钥管理可能不允许任何个人或组控制数据。这使得可以如一组织所定义的,通过职务、责任、成员、权利等来获得对于受保护数据的访问。并且对于受保护数据的访问可以只限于使允许或要求的人员仅访问他们工作所用的部分,而其他人,如经理或总裁,可以访问所有受保护数据。该实施例允许在公司或组织内的不同组之间共享受保护数据,而同时只允许某些选定个人,如具有受授权和预定职务和责任的个人,只能查看数据。此外,本发明的方法和系统的该实施例还允许在要求某一共享的例如不同公司、或公司的不同部门或分部、或者任何政府或组织等的不同组织部门、组、办事处或办公室等之间共享数据,单并不是任何一方都被允许访问所有数据。对于本发明的这种方法和系统的需要和使用的具体显著示例是在例如政府区域、办事处和办公室之间、大公司的不同分布、部门或办公室之间或者任何组织之间允许共享,但是要维护安全性。
将本发明的方法应用于较小规模的示例如下。将分析器主密钥作为安全数据分析器的编序(serialization)或引号码(branding)用于一组织。随着使用分析器主密钥的规模从整个企业缩减到较小的工作组,本文描述的数据保护方法用于在多个用户组内共享文件。
在图25所示的和下文描述的示例中,利用他们在组织内的头衔或职务来定义六个用户。侧栏代表根据他们的职务用户可以术语的五个可能的组。箭头代表用户是一个或多个组的成员。
当配置在本示例中使用的安全数据分析器时,系统管理员通过维护程序从操作系统访问用户和组信息。该维护程序基于用户是组中的成员对用户生成并指定分析器组主密钥。
在该示例中,在高级人员组中有三个成员。对于该组,动作为:
1、访问对于该高级人员组的分析器组主密钥(如果不可用,则生成一密钥);
2、生成将CEO与该高级人员组关联的数字证书;
3、生成将CFO与该高级人员组关联的数字证书;
4、生成将副总裁、市场与该高级人员组关联的数字证书。
对于每组以及每组内的每个会员将进行相同的一组动作。当完成维护程序时,分析器组主密钥成为对于该组中每个会员的共享凭证。当用户离开该组时,可以通过维护程序自动撤销所指定的数字证书,而不影响该组的其余成员。
一旦定义了共享凭证,分析和分割处理则相同。当要保护文件、文档或数据元素时,提示用户当保护数据时使用目标组。所得受保护数据仅可由该目标组的其它成员访问。本发明的这些方法和系统的功能可以利用任何其它计算机系统或软件平台来使用,任何可以是例如并入现有应用程序或者对于文件安全性独立使用。
本领域技术人员容易理解,加密算法中的任何一个或组合适于在本发明的方法和系统中使用。例如,在一个实施例中,加密步骤可以被重复以产生多层加密方案。此外,可以在重复加密步骤中使用不同的加密算法或者多个加密算法的组合,以使得将不同的加密算法应用于多层加密方案的不同层。这样,该加密方案本身可能成为本发明的用于保护敏感数据不被未授权使用或访问的方法的组成部分。
安全数据分析器可以包括作为内部组件、作为外部组件、或者作为这两者的错误检查组件。例如,在一个适当方法中,由于数据的多个部分是使用根据本发明的安全数据分析器而创建以确保该数据在一部分内的整体性,所以按照该部分内的预设间隔取散列值,并且将散列值附于该间隔的末尾。散列值是该数据的可预测和可再生树脂标识。如果数据内的任何位改变,则该散列值将不同。然后扫描模块(或者作为安全数据分析器外部的独立组件或者作为内部组件)可以扫描有安全数据分析器生成的数据的这些部分。将数据的每个部分(另选的,根据某一间隔或者通过随机或伪随机抽样,少于数据的所有部分)与所附的一个或多个散列值进行比较,并且采取一动作。该动作可以包括报告匹配和不匹配的值、警告不匹配的值、或者调用某一外部或内部程序以触发数据的恢复。例如,数据的恢复可以通过基于如下概念来调用恢复模块以执行,该概念为根据本发明可能需要少于所有部分的部分来生成原始数据。
可以使用附于所有数据部分或者其自己内的任何适当的整体信息来实现任何其它适当的整体检查。整体信息可以包括可用于确定数据部分整体的任何适当信息。整体信息的示例可以包括基于任何适当参数(如,基于各数据部分)、数字签名信息、消息鉴权码(MAC)信息、任何其它适当信息、或者他们的任何组合而计算出的散列值。
本发明的安全数据分析器可能用于任何适当的应用中。即,本文描述的安全数据分析器具有在不同计算和技术领域中的各种应用。下面讨论几个不同领域。应当理解,这些本质上只是示例,并且任何其它适当的应用可以利用该安全数据分析器。进一步应当理解,所述示例只是示例实施例,其可以以任何适当方式修改以满足任何适当期望。例如,分析和分割可以基于任何适当的单位,例如位、字节,千字节、兆字节,或者基于它们的任何组合,或者基于任何其它适当单位。
本发明的安全数据分析器可以用于实现安全物理标记,借助于这些标记可能需要存储在物理标记中的数据以访问存储在另一存储区域中的附加数据。在一个适当方法中,诸如小型USB闪存驱动、软盘、光盘、智能卡的物理标记或任何其它适当物理标记可以用于存储根据本发明的经分析数据的至少两部分中的一个部分。为了访问原始数据,需要访问USB闪存驱动。由此,保持经分析数据的一个部分的个人计算机将需要具有USB闪存驱动,而经分析数据的另一部分在可以访问原始数据之前附上。存储区域2500包括经分析数据2502的一部分。具有经分析数据2506的一部分的物理标记2504将需要使用任何适当的计算接口2508(如USB、串行、并行、蓝牙、IR、IEEE 1394、以太网或者任何其它适当的通信接口)被耦合到存储区域2500,以访问原始数据。这在例如计算机的敏感数据被置之不理并且易受未授权访问尝试的情形下是有用的。通过移除物理标记(如,USB闪存驱动),敏感数据不可访问。应当理解,可以使用用于使用物理标记的任何其它适当方法。
本发明的安全数据分析器可以用于实现安全鉴权系统,通过该系统,使用安全数据分析器对用户注册数据(如,密码、加密私钥、指纹模板、生物测定信息数据或者任何其它适当的用户注册数据)进行分析和分割。可以对用户注册数据进行分析和分割,由此,可以在智能卡、政府公共接入卡、任何适当的物理存储设备(如,磁盘或盘、USB密钥驱动等)、或者任何其它适当的设备上存储一个或多个部分。可以在进行鉴权的系统中存储经分析用户注册数据的一个或多个其它部分。这对于鉴权处理提供添加的安全级别(除了从生物测定信息源获得的生物测定信息鉴权信息之外,还必须经由适当的经分析和分割的数据部分获得用户注册数据)。
本发明的安全数据分析器可以并入任何适当的已有系统中,从而将其功能用于每个系统各自的环境。图27示出了例示系统2600的框图,其可以包括用于实现任何适当应用的软件、硬件或者两者。系统2600可以是一种已有系统,其中安全数据分析器2602可以被改装为一集成组件。另选的,安全数据分析器2602可以在其最早设计阶段并入任何适当的系统2600中。可以在系统2600的任何适当级别,并入安全数据分析器2600。例如,可以在充分后端级别将安全数据分析器2602并入系统2600中,以使得安全数据分析器2602的存在可以基本上对于系统2600的最终用户透明。根据本发明,安全数据分析器2602可以用于在一个或多个存储设备2604之间分析和分割数据。下面讨论具有本文中并入的安全数据分析器的系统的一些例示性示例。
本发明的安全数据分析器可以集成到操作系统内核(如,Linux、Unix或者任何其它适当的商用或者专用操作系统)。该集成可以用于在设备级别保护数据,由此,例如通常存储在一个或多个设备中的数据被集成到操作系统中并且存储在所述一个或多个设备中的安全数据分析器分割成某一数量的部分。当试图访问原始数据时,也并入该操作系统的适当软件可以按照对于最终用户透明的方式将经分析的数据部分重新合并成原始数据。
本发明的安全数据分析器可以集成到容积管理器或者存储系统的任何其它适当组件中,以保护跨任何或所有受支持平台的本地或通过网络的数据存储。例如,利用集成的安全数据分析器,存储系统可以利用由安全数据分析器提供的冗余(即,该冗余用于实现为了重构原始数据而使需要的部分比数据的所有独立部分少的特征),以防止数据丢失。安全数据分析器还允许将写入存储设备的(无论是否使用冗余)的所有数据采取根据本发明的分析而产生的多个部分的形式。当试图访问原始数据时,也集成到容量管理器或者存储系统的其它适当组件的适当软件可以按照可以对于最终用户透明的方式将经分析的数据部分重新合并到原始数据中。
在一种适当的方法中,本发明的安全数据分析器可以集成到RAID控制器(作为硬件或软件)中。这允许将数据安全存储到多个驱动,同时在驱动故障的情况下保持容错。
本发明的安全数据分析器可以并入数据库中,从而例如保护敏感表信息。例如,在一个适当方法中,可以根据本发明对与数据库表的特定单元(如,多个单独单元、一个或多个特定栏、一行或多行、它们的任何组合、或者一个安全的数据库表)关联的数据进行分析和分离(即,其中将不同部分存储在一个或多个位置处的一个或多个存储装置上,或者存储在单个存储装置上)。通过传统鉴权方法(如,用户名和密码询问)可以授权进行访问以重新合并多个部分从而查看原始数据。
本发明的安全分析器可以集成到涉及移动(即,将数据从一个位置转移到另一位置)中的数据的任何适当系统中。这些系统包括例如电子邮件、流传输数据广播以及无线(如,WiFi)通信。对于电子邮件,在一个适当方法中,可以使用安全数据分析器来分析发出消息(即,包含文本、二元数据、或者两者(如,附于电子邮件消息的文件)),并将将分析数据的不同部分沿着不同路径发送,由此创建多个数据流。如果这些数据流中的任何一个的安全被危及,则原始消息仍保持安全,因为系统可以要求根据本发明组合所述多个部分中的多于一个部分,以产生原始数据。在另一适当方法中,可以一次沿着一同路径传输数据的多个不同部分,以使得如果获得一个部分,其可能不足以生成原始数据。根据本发明,不同部分到达期望的接收者位置,并且可以被合并以生成原始数据。
图27和28时这些电子邮件系统的例示性框图。图28示出了发送方系统2700,其可以包括任何适当的硬件,如计算机终端、个人计算机、手持设备(如PDA、Blackberry)、蜂窝电话、计算机网络、任何其它适当硬件、或者它们的任何组合。发送方系统2700用于生成和/或存储消息2704,该消息可以是例如电子邮件消息、二元数据文件(如,图形、声音、视频等)、或者两者。消息2704被根据本发明的安全数据分析器2702分析并分割。所得数据部分可以跨越网络2708(如,因特网、内联网、LAN、WiFi、蓝牙、任何其它适当的硬连线或无线通信方式、或者它们的任何组合)上的一个或多个单独的通信路径2706而传输到接收方系统2710。这些数据部分可以在时间上并行传输,或者另选的,根据不同数据部分的通信之间的任何适当延时而传输。接收方系统2710可以是相对于发送方系统2700的如上所述的任何适当的硬件。根据本发明,在接收方系统2710处重新合并沿着通信路径2706承载的多个单独的数据部分,以生成原始消息或数据。
图28示出了发送方系统2800,其可以包括任何适当的硬件,如计算机终端、个人计算机、手持设备(如PDA)、蜂窝电话。计算机网络、任何其它适当的硬件、或者它们的任何组合。发送方系统2800可以用于生成和/或存储消息2804,该消息可以是例如电子邮件消息、二元数据文件(如,图形、声音、视频等)或者两者。根据本发明,通过安全数据分析器2802来分析和分割消息2804。将所得数据部分跨越网络(如,因特网、内联网、LAN、WiFi、蓝牙、任何其它适当的通信方式、或者它们的任何组合)上的单个通信路径2806而传输到接收方系统2810。这些数据部分可以跨越通信路径2806相对于彼此串行传输。接收方系统2810可以是相对于发送方系统2800的如上所述的任何适当的硬件。根据本发明,在接收方系统2810处重新合并沿着通信路径2706承载的多个单独的数据部分,以生成原始消息或数据。
应当理解,图27和28的布置仅是例示。可以使用任何其它适当的布置。例如,在另一适当方法中,可以并入图27和28的系统,通过这些系统使用图28的多路径方法,并且切中使用一个或多个通信路径2706来承载比通信路径2806在图29的情况下承载的一个数据部分更多的数据部分。通常
可以在运转中数据系统的任何适当级别集成安全数据分析器。例如,在电子邮件系统的情况下,可以在用户接口级别集成安全分析器(集成到
Outlook中),在这种情况下,当使用电子邮件时用户可以控制安全数据分析器特征的使用。另选的,安全分析器可以在后端组件,诸如交换服务器中实现,在这种情况下,根据本发明,可以对消息自动进行分析、分割、并且沿着不同路径传输,而无需任何用户干预。
类似地,在数据(如音频、视频)的流传播情况下,可以对送出数据进行分析,并且分离成多个流,每个流包含经分析数据的一部分。根据本发明,所述多个流可以沿着一个或多个路径传输,并且在接收方位置处被重新合并。该方法的优点之一在于其避免了与传统数据加密相关的相对大的开销,该传统数据加密之后是在单个通信信道上的经加密数据的传输。本发明的安全分析器允许在多个并行流中发送运转中数据,这提高了速度和效率。
应当理解,可以集成安全数据分析器来保护经过任何传输介质的任何类型的运转中数据,并且对这些数据容错,所述任何传输介质包括例如有线、无线、或者物理。例如,基于因特网协议的语音(VoIP)应用可以利用本发明的安全数据分析器。可以使用本发明的安全数据分析器来保护从或到诸如Blackberry和SmartPhone的任何适当的个人数字助理(PDA)设备的无线或有线数据传送。根据本发明,使用用于端到端和基于集线器的无线网络、卫星通信、点到点无线通信、因特网客户/服务器通信或者任何其它适当通信的无线802.11协议的通信可能涉及安全数据分析器的运转中数据功能。计算机外围设备(如打印机、扫描仪、监视器、键盘、网络路由器、生物测定信息鉴权设备(如,指纹扫描仪)或者任何其它适当外围设备)之间、计算机与外围设备之间之间、计算机外围设备与任何其它适当设备之间、或者它们的组合之间的数据通信可以利用本发明的运转中数据特征。
使用独立的路由、媒介、方法、任何其它适当的物理传输或者它们的任何组合,本发明的运转中数据特征可以用于安全份的物理传输。例如,数据的物理传输可以在数字/磁带、软盘、光盘、物理标记、USB驱动、可以动硬驱动、具有闪存的消费者电子设备、闪存、用于传输数据的任何其它适当介质、或者它们的任何组合上进行。
本发明的安全数据分析器可以提供具有故障恢复功能的安全性。根据本发明,为了检取原始数据,可能需要少于由安全数据分析器产生的分离数据的所有部分的部分。即,在所存储的m部分之外,n可以是对于检取原始数据所需的这m个部分的最小数,其中n<=m。例如,如果这四个部分中的每一部分被存储在相对于其它三个部分不同的物理位置中,则,如果在本示例中n=2,则这些位置中的两个的安全可能被危及,由此,数据被毁坏或者不可访问,但是原始数据仍然可以从其它两个位置中的部分中检取。可以使用对于n或m的任何适当值。
此外,本发明的m个中的n个的特征可以用于创建“两人规则”,根据该规则,为了避免委托单个个人或者任何其它实体完全访问可能是敏感的数据,可能需要两个或更多个不同实体(每一个具有经本发明的安全分析器分析的分离数据的一部分)同一将它们的多个部分放在一起以检取原始数据。
本发明的安全数据分析器可以用于提供具有组大小密钥的一组实体,该密钥允许组成员访问被授权由该特定组访问的特定信息。该组密钥可以是由根据本发明的安全分析器产生的多个数据部分之一,该部分可能需要与中央存储的另一部分合并,一边例如检取所搜索的信息。该特征允许例如保护一组之中的写作。这可以应用于例如专用网络、虚拟私人网络、内联网或者任何其它适当网络。
使用安全分析器的具体应用包括例如联合信息共享,其中,例如,使多国友好政府力量能够在在单个网络或者双网络上在对于每个相应国家授权的安全级别上传输可操作或者其它敏感数据(即,与涉及当前使用的相对而言基本上人工的处理的许多网络相比)。该功能也可以应用于公司或者其它组织,其中需要对于一个或多个特定个人(在组织内或不在组织内)已知的信息可以通过单个网络传输,而无需干扰查看该信息的未授权个人。
另一特定应用包括用于政府系统的多级别安全分层。即,本发明的安全分析器可以提供如下功能:使用单个网络在经分类信息的不同级别(如,未分类、分类、机密、项级机密)运行政府系统。如果需要可以使用更多网络(如,用于顶级机密的单独网络),但是本发明也允许基本上比当前布置更少,其中对于每个分类级别使用单独的网络。
应当理解,可以使用本发明的安全分析器的上述应用的任何组合。例如,可以使用组密钥应用以及运转中数据安全应用(即,根据本发明,通过这些应用,只有相应组的会员可以访问在网络上传输的数据,并且其中,当数据在移动时,在多个路径(或者在多个连续部分中)之间分割数据)。
本发明的安全数据分析器可以集成到任何中间件应用,以使得应用可以安全地将数据存储到不同的数据库产品或者不同的设备,而无需修改应用或数据库。中间件通常用于任何产品,该产品允许两个单独的并且已经存在的程序进行通信。例如,在一个适当的方法中,集成有安全数据分析器的中间件可以用于允许对于特定数据库编写的程序与其它数据库进行通信,而无需定制编码。
本发明的安全数据分析器可以实现为具有任何适当功能的任何组合,这些功能例如为本文所讨论的功能。在本发明的某些实施例中,例如,安全司沪剧分析器可以被实现为仅具有某些功能,而其它功能可以通过使用与安全数据分析器直接或者间接相接的外部硬件、软件或者两者来获得。
例如,图30示出了作为安全数据分析器3000的安全数据分析器的例示性实现。安全数据分析器3000被利用非常少的嵌入式功能实现。如所例示的,根据本发明,安全数据分析器3000可以包括用于使用模块3002分析数据并将数据分割成多个数据部分(本文中也成为多份)的嵌入式功能。安全数据分析器3000还可以包括用于进行冗余的嵌入式功能,以使得能够使用模块3004实现例如上述的n个中的m个的特征(即,使用比经分析和分割数据的总份数少的份来重新创建原始数据)。根据本发明,安全数据分析器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,打包层将在步骤3100中标识的输入数据流传输到组合数据缓冲器3088。此外,在步骤3102,可以存储任何适当的份信息、文件名、任何其它适当的信息、或者它们的任何组合(如,打包层3022中的信息3106)。然后,根据本发明,安全数据处理器3000对其所承载的数据,作为来自组合数据缓冲器3008的输入,进行分析和分割。其将数据份输入分割份缓冲器3010。在步骤3104,打包层3022从所存储的信息3106获得任何适当的份信息(即,由打包器3022在步骤3102存储)和一个或多个份位置(如,来自一个或多个配置文件)。打包层3022然后适当地对输出份(从分割份缓冲器3010获得)进行写入(如,写入一个或多个存储设备,传输到网络上,等)。
图32例示性地示出了当进行读取(如,从存储设备)、选择(如,从数据库字段中)、或者接收(如,从网络)时可以如何使用图30的布置。在步骤3200,对要恢复的数据进行标识,并且从应用层3024对安全数据分析器3000进行调用。在步骤3202,从打包层3022,或者任何适当的份信息,并且确定份位置。打包层3022将在步骤3200标识的数据部分加载到分割份缓冲器4010。安全数据分析器3000然后根据本发明处理这些份(如,如果只有四份中的三份可用,则可以仅利用者三份,使用安全数据分析器3000的冗余功能来恢复原始数据)。然后将经恢复的数据存储在组合数据缓冲器3008中,在步骤3204,应用层3022将存储在组合数据缓冲器3008中的数据转换成其原始数据格式(如果需要),并且以其原始格式将原始数据提供给应用层3024。
应当理解,图31所例示的原始数据的分析和分割以及如图32所例示的将多个数据部分恢复成原始数据只是例示性的。除了所例示的这些外或者代替所例示的这些,可以使用任何其它适当的处理。组件或者这两者。
图33是根据本发明一个实施例的用于分析原始数据并将其分割成两个或更多个数据部分的例示性处理流的框图。如所例示的,期望分析和分割的原始数据是纯文本3306(即,单词“SUMMIT”用作示例)。应当理解,根据本发明,可以解析和分割任何其它类型的数据。生成会话密钥3300。如果会话密钥3300的程度与原始数据3306的长度不兼容,则可以生成密码反馈会话密钥3304。
在一个适当方法中,可以在分析。分割或者这两者之前对原始数据3306进行加密。例如,如图33所例示的,原始数据3306可以与任何适当值(如,与密码反馈会话密钥3304,或者与任何其它适当的值)取XOR。应当理解,可以代替XOR技术例示或者附加于XOR技术例示,使用任何其它适当的加密数。还应当理解,虽然图33以逐字节操作的方式被例示,但是可以在位级别或者任何其它适当级别进行该操作。还应当理解,如果期望,可以无论原始数据3306是什么都无需任何加密。
然后对所得经加密数据(或者如果没有进行加密则为原始数据)进行散列,以确定如何将经加密(或原始)数据分割到多个输出桶中(如,其中,在所例示的示例中示出了四个)。在所例示的示例中,散列逐字节进行,并且是密码反馈会话密钥3304的函数。应当理解,这只是例示性的。如果需要,可以在位级进行散列。散列是除了密码反馈会话密钥3304之外的任何其它可用值的函数。在另一适当方法中,无需使用散列。取而代之,可以采用任何其它适当的用于分割数据的技术。
图34是根据本发明一个实施例的用于从原始数据3306的两个或更多个经分析和分割的部分恢复原始数据3306的例示性处理流的框图。该处理涉及作为密码反馈会话密钥3304的函数的反函数(级,与图33的处理相反),对多个部分进行散列,以恢复经加密原始数据(或者如果在分析和分割之前没有加密,则恢复成原始数据)。然后可以使用加密密钥来恢复原始数据(即,在所例示实施例中,使用密码反馈会话密钥3304通过将其与经加密数据取XOR来解密该XOR加密)。这恢复原始原始3306。
图35示出了在图33和34的示例中如何可以实现位分割。可以使用散列(如,作为密码反馈会话密钥的函数,作为任何其它适当值的函数)来确定分割数据的每个字节的位值。应当理解,这只是一个例示方式,其中实现了在位级别的分割。可以使用任何其它适当的技术。
应当理解,可以针对任何适当散列算法执行对于本文所进行的散列功能的任何引用。这些包括例如MD5和SHA-1。不同的散列算法可以在不同时刻使用,并且可以由本发明的不同部件使用。
在根据上述例示性过程或者通过任何其它过程或算法确定了分割点之后,可以针对哪些数据部分要附于左段以及右段中每一个,来进行确定。可以使用任何适当的算法来进行该确定。例如在一个适当方法中,可以创建所有可能分布的表(如,以对于左段和对于右段的目的地组对方法),由此,可以通过对于会话密钥、密码反馈会话密钥或者任何其它适当的随机或伪随机值(其可以被产生为或扩展为原始数据的尺寸)中的对应数据使用任何适当的散列函数,来确定用于左段和右段中每一个的目的地份值。例如,可以进行对于随机或伪随机值中的对应字节的散列函数。使用散列函数的输出来确定要从所有目的地组合的表中选择那个目的地对(即,一个用于左段,一个用于右段)。基于该结果,将经分割数据单位的每段附于由选作散列函数结果的表值表明的对应两份。
根据本发明,可以将冗余信息附于这些数据部分,以允许使用少于所有数据部分的数据部分来恢复原始数据。例如,如果期望四个部分中的两个足够来恢复数据,则来自这些份中的额外数据可能按照例如循环方式相应地附于各份(如,如果原始数据的尺寸是4MB,则份1得到其自己的份以及份2和份3的份;份2得到其自己的份以及份3和份4的份;份3得到其自己的份以及份4和份1的份;份4得到其自己的份以及份1和份2的份)。根据本发明可以使用任何这种适当的冗余。
应当理解,根据本发明,可以使用任何其它适当的加密和分割方法来从原始数据组产生多个数据部分。例如,可以随机地或者伪随机地逐位处理分析和分割。可以使用随机或伪随机值(如,会话密钥。密码反馈会话密钥等),由此,对于原始数据中的每位,对于随机或伪随机值中的对应数据的散列函数的结果可能只是要将哪份附于对应位。在一个适当方法中,可以作为原始数据尺寸的8倍或者对于该8倍尺寸的扩展,生成随机或位随机值,以使得可以针对原始数据中的每位,对于随机或伪随机值的对应字节执行散列函数。根据本发明,可以使用任何其它的用于基于逐位级别来分析和分割数据的适当算法。应当理解,根据本发明,可以按照例如上文刚刚描述的方式将冗余数据附于这些数据份。
在一个适当方法中,分析和分割无需是随机的或者伪随机的。取而代之,可以使用用于分析和分割数据的任何适当的确定算法。例如,作为分析和分割算法,可以采用将原始数据拆成顺序的多份。另一个示例是逐位分析和分割原始数据,以循环方式将每个对应位附于这些数据份中。应当理解,根据本发明可以按照例如上述方式将冗余数据附于这些数据份。
在本发明的一个实施例中,在安全数据分析器生成多部分原始数据,以恢复该原始数据之后,某一个或多个所生成部分可以是强制性的(mandatory)。例如,如果这些部分之一用作鉴权份(如,保存在物理标记设备上),并且如果使用安全数据分析器的容限特征(即,其中需要少于所有部分的部分来恢复原始数据),那么即使安全数据分析器可以访问足够数量的原始数据部分以恢复原始数据,其可能也需要在其恢复原始数据之前的存储在物理标记设备上的鉴权份。应当理解,基于例如应用、数据类型、用户、任何其它适当的因素、或者它们的任何组合,可能需要任何数目和类型的特定份。
在一个适当方法中,安全数据分析器或者该安全数据分析器的外部组件可以对原始数据的一个或多个部分进行加密。可能要求提供经加密的部分并对其进行解密,以恢复原始数据。可以利用不同的加密密钥对不同的经加密部分进行加密。例如,该特征可以用于实现更为安全的“二人规则”,通过该规则,第一用户需要使用第一密钥对特定份加密,并且第二用户需要使用第二加密密钥对特定分进行加密。为了访问原始数据,两个用户将需要具有它们各自的加密密钥并且提供原始数据的他们各自的部分。在一个适当方法中,可以使用公钥来加密一个或多个数据部分,该数据部分可以是恢复原始数据所需要的强制份。然后可以使用私钥来解密该份,以在恢复原始数据时使用。
可以使用任何这种适当范例,其利用强制份,其中需要少于所有份的份来恢复原始数据。
在本发明的一个适当实施例中,可以随机地或者伪随机地进行将数据分布到有限数量的数据份中,以使得根据统计观点,任何特定数据份接收数据的特定单位的概率等于任何其余份将接收该数据单位的概率。结果,每份数据将具有大致相等的数据位量。
根据本发明的另一实施例,有限数量的数据份中的每一个无需具有从原始数据的分析和分割中接收多个数据单位的相同概率。取而代之,某一份或某多份可以具有比其余份更高或更低的概率。结果,在于其它份相关的位长度方面,某些份可能较大或较小。例如,在二份情景中,一个可能具有接收数据单位的1%的概率,而第二份具有99%的概率。因此应当遵循:一旦通过安全数据分析器将这些数据单位分布到两份中,第一份应当具有大约1%的数据,第二份具有99%的数据。根据本发明,可以使用任何适当的概率。
应当理解,可以对安全数据分析器进行编程,以根据确切(或近似确切)百分比将数据分布到多份。例如,安全数据分析器可以编程位将80%的数据分布到第一份并且将其余20%的数据分布到第二份。
根据本发明的另一实施例,安全数据分析器可以生成多个数据份,其中的一个或多个具有预定义尺寸。例如,安全数据分析器可以将原始数据分割成多个数据部分,其中这些部分中的一个部分确切地为256位。在一个适当方法中,如果无法产生具有精确尺寸的数据部分,则安全数据分析器可以填充该部分以使其具有正确尺寸。可以使用任何适当的尺寸。
在一个适当方法中,数据部分的尺寸可以是加密密钥、分割密钥、任何其它适当密钥或者任何其它数据元素的尺寸。
如前所述,安全数据分析器可以在数据的分析和分割中使用密钥。为了清楚和简洁,这些密钥在本文中称为“分割密钥”。例如,如前面所引入的会话主密钥是一种类型的分割密钥。此外,如前所述,分割密钥可以保护在由安全数据分析器生成的多份数据内。可以使用用于保护分割密钥的任何适当算法来保护这多份数据之中的分割密钥。例如,可以使用Shamir算法来保护分割密钥,由此可以用来重构分割密钥的信息被生成并附于这多份数据。根据本发明,还可以使用任何其它这种适当的算法。
类似地,可以根据诸如Shamir算法的任何适当算法,在一份或多份数据内保护任何适当加密密钥。例如,可以使用例如Shamir算法或者任何其它适当的算法,来保护用于在分析和分割之前加密数据集的加密密钥、用于在分析和分割之后加密数据部分的加密密钥、或者这两者。
根据本发明的一个实施例,可以使用诸如全封装转换的所有或没有转换(All or Nother Transform AoNT)来通过转换分割密钥、加密密钥、任何其它适当数据元件、或者它们的组合来进一步保护数据。例如,根据本发明用于在分析和分割之前对数据集进行加密的加密密钥可以通过AoNT算法转换。然后根据例如Shamir算法或者任何其它适当的算法,可以将经转换的加密密钥分布在数据份之中。为了重构加密密钥,必须恢复经加密数据集(如,根据本发明,如果使用了冗余,则无需使用素有数据份),以访问涉及根据本领域技术人员公知的AoNT的转换的所需信息。当检取到原始加密密钥时,其可以用于解密经加密数据集,以检取原始数据集。应当理解,本发明的容错特征可以与AoNT特征结合使用。即,冗余数据可以包含在多个数据部分中,以使得对于恢复经加密数据集而言需要比所有数据部分少的数据部分。
应当理解,该AoNT可以应用于用于加密这些数据部分的加密密钥,随后代替在分析和分割之前与该数据集对应的各自加密密钥的加密和AoNT或者作为其附加,进行分析和分割。类似地,AoNT可以应用于分割密钥。
在本发明的一个实施例中,可以使用工作组密钥进一步对在根据本发明使用的加密密钥、分割密钥或者这两者进行加密,以提供对于所保护数据集的额外的安全性级别。
在本发明的一个实施例中,可以提供审查模块,其跟踪何时安全数据分析器被唤醒来分析和/或分割数据。
另外,根据本文的公开,其它合并、添加、替换或者修改对于本领域技术人员是显而易见的。因此,本发明并不旨在限于优选实施例的反应,而是应当参考所附权利要求来限定。