实体网络翻译的制作方法
【专利说明】实体网络翻译
[0001]相关申请的交叉引用
[0002]本PCT申请要求2012年11月9日提交的、名称为“System and Methods forEntity Network Translat1n (ENT) ”的美国临时专利申请N0.61/724,763的权益,其全部公开内容通过引用并入作为本申请说明书的一部分。
技术领域
[0003]本申请涉及应用密码学,并且更具体地涉及用于标识并认证个人、实体和电子设备的抽象身份的数字证书。
【背景技术】
[0004]对包含敏感和/或机密信息的系统的安全访问是已知惯例。例如,银行客户可以通过安全网站访问关于其银行账户的信息。这种安全访问通常由公钥基础设施(PKI)提供,其是创建、管理、分发、使用、存储并撤销在向系统提供安全访问中使用的数字证书所需的硬件、软件、人员、策略和过程的集合。数字证书是使用数字签名将公钥与身份绑定的电子文档。公钥密码学是与PKI —起使用的密码技术,该PKI使得用户能够在不安全的公有网络(诸如,因特网)上安全地通信,并且经由数字签名验证用户的身份。PKI创建将公钥映射到实体的数字证书,将这些证书安全存储在中央库中,并且如果需要将其撤销。PKI通常包括发布并验证数字证书的证书机构(CA)、验证从CA请求信息的用户的身份的注册机构、用于存储并索引密钥的中央目录和证书管理系统。
[0005]在传统PKI系统中,发布的证书包含直接链接到身份的信息。例如,如果证书被发布给个人,则该证书在电子方面与该个人的身份概念上可互换。
【发明内容】
[0006]本发明提供了一种用于实体网络翻译(ENT)的技术。ENT是一种用于使用公私密钥技术和PKI概念(诸如证书机构和证书链)标识并认证抽象身份的方案。ENT可以向任意数目的请求者授予任意数目的真实、不确定、抽象标识符。这些抽象标识符各自被称为验证名,其宽泛地表示“验证的名称”。这些抽象标识符允许任何人或实体出于任何目的电子地建立并控制事物的真实身份,并且建立这些身份之间的关系。根据某些实施方式,ENT通过向请求抽象身份的用户发布所述抽象身份来回避传统PKI关系建立问题。其使用了这些抽象标识符,以及限定其真实世界意义的实体之间形成的关系。
[0007]如上所述,在传统PKI系统中,发布的证书包含直接链接到身份的信息。例如,如果证书被发布给个人,则该证书在电子方面与该个人的身份概念上可互换。根据本发明的实施方式,在ENT中此链接不被假设。可以根本不假设验证名被链接至任何特定使用或上下文。相反,验证名允许出于任何目的在各方之间稳定地建立并维护置信关系。这现有PKI解决方案存在细微但重要的差异。ENT允许建立真实世界关系,但并不暗示其是真实世界身份。关系可以具有许多针对建立的特定规则。银行需要某些信息以与客户建立关系。游戏站点可能需要其他信息。而社交网络可以具有不同标准。针对这些关系的建立的过程特定于问题域。然而,根据本发明的实施方式,验证名是抽象的。
[0008]在各种实施方式中,验证名的使用是由请求者确定的。使用可以包括具有针对个人、计算机和设备的异常安全的在线身份、程序的标识和控制、个人的公司或群组的标识等。根据本发明的实施方式,ENT可以通过其将在所有这些问题域之间使用的能力提供值而不需要域特定技术。ENT可以通过标准化通用解决方案减少或估计这些域特定解决方案中的许多域特定解决方案。此外,ENT可以使用跨问题域的通用ENT接口和机制允许信息、访问、命令和控制等的共享。这使得可以标识电子连接或交互的所有事物,无论其是人、公司、计算机程序、设备、人工智能等。
[0009]在本发明的一个实施方式中,一种用于创建针对个人、实体或电子设备的唯一标识符的方法,所述方法在包括大于一个的数目(N)个根服务器的群组机构结构中实现,并且包括以下步骤:在第一根服务器从请求者接收针对唯一标识符的请求;在所述第一根服务器发布包括唯一标识符和策略的第一证书,其中所述策略包括一个或多个其他唯一标识符和至少一个布尔操作符或数学函数,如果所述策略中其他标识符的数目大于一;在所述第一根服务器用来自与所述根服务器相关联的公钥/私钥对的私钥签名所发布的第一证书;从所述第一根服务器向每个其他根服务器传输所述签名的发布的第一证书;在每个其他根服务器,验证所述签名的发布的第一证书的所述抽象唯一标识符;在每个其他根服务器发布包括所述唯一标识符和所述策略的附加证书;在所述每个其他根服务器用来自与所述相应其他根服务器相关联的公钥/私钥对的私钥签名所发布的附加证书;在数据库存储向所述请求者的所述签名的发布的第一证书和所述签名的发布的附加证书。N是奇数并且每个根服务器独立于所有其他根服务器签名并操作。没有两个根计算机服务器可以向两个不同请求者发布相同唯一标识符。每个根服务器认证用于发布唯一标识符的排外范围。向所述请求者的所述签名的发布的第一证书和所述签名的发布的附加证书不包括所述请求者的任意描述或标识。当所述签名的发布的第一证书和所述签名的发布的附加证书的数目(X)有效时,所述抽象唯一标识符被认为有效,其中X = N/2+1。所述请求进一步包括所述策略。所述方法进一步包括以下步骤:在所述根服务器接收针对所述第一发布证书中所述唯一标识符的恢复的恢复请求,其中所述恢复请求由与具有私钥的所述其他唯一标识符相关联的每个人、实体或电子设备签名;在每个根服务器,通过执行所述第一发布证书中的所述策略验证所述恢复请求;在每个根服务器,发布替代证书以替代所述第一发布的证书;在每个根服务器,用来自与所述相应其他根服务器相关联的公钥/私钥对的私钥签名所述替代证书;以及在数据库存储所述签名的发布的替代证书。所述群组机构自动实施所述策略。所述第一发布证书包括公钥或与所述请求者相关联的公钥的标识。所述策略包括用于替代或更新所述唯一标识符的策略。所述策略包括用于认证所述唯一标识符的策略。
[0010]在本发明的另一实施方式中,一种用于创建针对个人、实体或电子设备的唯一标识符的方法,所述方法在服务器上实现并且包括以下步骤:在所述服务器从请求者接收针对唯一标识符的请求;在所述服务器发布包括唯一标识符和策略的第一证书,其中所述策略包括一个或多个其他唯一标识符和至少一个布尔操作符或数学函数,如果所述策略中其他标识符的数目大于一;在所述服务器用来自与所述服务器相关联的公钥/私钥对的私钥签名所发布的第一证书;在数据库存储所述签名的发布的第一证书。所述签名的发布的第一证书不包括所述请求者的任意描述或标识。所述请求进一步包括所述策略。
[0011]本发明的上述以及其他特征和优势通过下文本发明的优选实施方式更具体描述、附图和权利要求书将变得容易理解。
【附图说明】
[0012]为了更全面理解本发明及其目的和优势,现在参考结合附图进行的随后描述,所述附图简要描述如下:
[0013]图1图示了根据本发明的一个实施方式的实体及其之间的关系;
[0014]图2图示了根据本发明的一个实施方式用于创建自签名和交叉签名证书的过程;
[0015]图3图示了根据本发明的另一实施方式用于创建自签名和交叉签名证书的过程;
[0016]图4图示了根据本发明的一个实施方式用于可以访问实体的最初授权群组和未授权群组;
[0017]图5.1图示了根据本发明的一个实施方式用于替代证书的过程;
[0018]图5.2图示了图5.1的过程中利用的证书之间的关系;
[0019]图6图示了根据本发明的一个实施方式的自签名和交叉签名证书;
[0020]图7图示了根据本发明的一个实施方式的证书之间的关系;
[0021]图8图示了根据本发明的一个实施方式的实体关系;
[0022]图9图示了根据本发明的另一实施方式的自签名和交叉签名证书;
[0023]图10图示了根据本发明的另一实施方式的授权群组的交叉签名文档;
[0024]图11图示了根据本发明的另一实施方式的替代授权群组的交叉签名文档;
[0025]图12图示了根据本发明的另一实施方式包含用于以未来文档替代所述文档的代数的文档;
[0026]图13图示了根据本发明的一个实施方式用于创建证书的过程;
[0027]图14图示了根据本发明的一个实施方式的实体群组;
[0028]图15图示了根据本发明的一个实施方式的示例JSON凭证;
[0029]图16是根据本发明的一个实施方式用于创建证书的过程;
[0030]图17图示了根据本发明的另一实施方式使用对等签名者针对证书的替代请求;
[0031]图18图示了根据本发明的另一实施方式以具有更大序列号的证书替代库中的证书;
[0032]图19图示了根据本发明的另一实施方式以具有更大序列号的证书替代库中的证书;以及
[0033]图20图示了根据一个实施方式包括可以使用实体网络翻译(ENT)系统来访问各种其他系统的ENT系统的框图。
【具体实施方式】
[0034]本发明的优选实施方式及其优势可以通过参考图1至图20理解,其中相似的参考标号指代相似的元素。各种实施方式提供了用于实体网络翻译(ENT)的系统和方法。根据各实施方式,ENT是PKI系统。其利用公钥/私钥、中央机构、证书和证书链。其还被设计用于影响现有技术基础设施和密码协议和标准(诸如传输层安全(TLS))和X.509,本领域技术人员容易理解其实践。这允许ENT用于现有系统而不需要(大多数情况下)对那些系统进行直接修改。并不要求ENT使用这些现有技术,但是这可以有帮助。
[0035]根据各实施方式,ENT并非典型PKI系统。其被设计用于允许所有基本PKI活动的高度自动化,提供异常的可扩展性、耐久性和审核。已经花费了大量研宄和开发来实现这些目标。更正式地,根据各实施方式NET的目标是:
[0036]1.创建验证名的“林冠(Canopy)”。ENT可以确保这些身份可以出于任何目的用于第三方之间的安全、认证通信。所有第三方(各自拥有一个或多个验证名)的集合构成林冠。
[0037]2.提供工业强度密码和PKI服务相当或超过任意现有生产PKI系统。考虑到运行中断、主干安全的丢失和可能影响系统置信和稳定性的其他严重事件,ENT可以以分发方式提供这些服务,而不对系统内验证名的唯一性妥协。
[0038]3.向无论出于任何目的允许使用的所有者委派每个验证名的直接控制。一旦验证名被创建,ENT系统不再对该验证名的使用具有任何控制,除了与给定验证名相关联的定期恢复,其必须伴随有身份持有者的密码“所有权证明”。
[0039]4.冗余地提供这些服务,并且尽可能廉价。大多数当前存在的PKI系统依赖层级签名机制,其中在其核心具有单个根证书。当任何分支毁灭时该单个故障点产生特别成本的PKI系统。附加成本通过要求个人和真实世界过程的系统招致。ENT可以通过创新减少成本而不减少安全性。事实上,在许多方面ENT以深度减少的成本比现有设计更具有安全性。在任何方面NET都不比现有PKI系统具有更少安全性。
[0040]5.操作透明地允许用户和审核者进行明智并且置信检验。这确保系统安全性违背、后门和其他不值得信赖的行为无法被隐藏。
[0041]6.确保验证名使用默认是抽象并且匿名。私人系统可以用于建立非私人系统。反之不行。
[0042]PKI 定义:
[0043]证书是包含对应于公钥/私钥对(PPK)和某些附加任意信息的公钥和对应于可能不同PPK的私钥的签名的密码签名的消息。证书的“目标”是该证书中公钥的持有者或PPK。“签名者”是用于签名证书的私钥的持有者或PPK。
[0044]如果PPK的私有部分被用于签名证书,则该证书被认为“被签名”。为了更加清楚,证书的“目标”被限定为PPK或其公钥在证书中的PPK的所有者。如果证书中找到的公钥是PPK的公有部分,则该证书被认为“自签名”,并且证书的签名是PPK的匹配私有部分。
[0045]如果证书中找到的公钥是PPK的公有部分,则该证书被认为“自签名”,并且证书的签名使用PPK的匹配私有部分创建。
[0046]如这里所述,执行动作的PPK指的是包含PPK的公有部分的证书,因为均指代相同持有者。例如,如果证书A包含PPK的公钥P,则声明诸如“如果A签名证书B”应当被读作P签名B,因此私钥是用于由PPK持有者执行动作的设备。因为P的公钥部分在A中,所以此链和关联性具有逻辑并且更易于读取。
[0047]此外,如这里所述,“目标”的动词形式表示为目标的主体实体或PPK具有其证书中被为目标的公钥。例如,如果证书A包含PPK P,并且证书B包含PPK Q,则当对应于A的PPK (在此例中为P)签名了包含Q的公钥部分的任何证书时“A将B为目标”。将B “为目标”的任何事物可以是签名了包含Q的公有部分的证书的任意PPK。“A将B为目标”和“B被A为目标”是同义的。
[0048]注意,不对称密码学包括诸如ECC、RSA等之类的技术,本领域技术人员容易理解其标识和实现方式,但还包括零知识证明机制。在这些情况下签名不可能的,但证明秘密的所有权的交易是可能的。因此,可以出于本发明目的将不对称密码学认为是能够通过签名、交易或其他机制证明真实性的任何技术。这些技术的机制超过本公开的范围并且可以由本领域普通技术人员理解。
[0049]群组命令和控制:
[0050]在传统PKI系统中,众所周知,存在被称作证书机构(CA)的中央服务器,用于发布证书并且执行证书相关的任务。此中央服务器包含表示CA的PPK。此PPK密码原语用于签名并发布证书、撤销或恢复。如果CA或CA的PPK被妥协,则整个PKI系统变为妥协。在检查ENT中CA等同物的实现方式的特定实施方式之前,描述被称为群组命令和控制的新技术的概念。
[0051]群组命令和控制被限定为成员群组,每个成员控制PPK,形成发布命令并且处理群组的业务而不限于单个密钥或单个故障点的单个概念实体。群组可以对阈值遭受损失而不对概念实体妥协,从而通过允许群组成员可替代来允许鲁棒性长期稳定。通过支持其中多个群组成员各自使用具有不同安全协议和过程的PPK的系统,进一步减少毁灭故障的风险。群组成员的示例可以是具有单个所有者的多个设备,作为群组的多个用户或更多抽象概念,诸如用户群组的群组等。
[0052]此概念的一个价值在于减少由于通过在唯一系统中使用多个PPK造成对PPK控制的损失而产生的损伤,该唯一系统允许节点群组作为单个实体。损伤可以避免即使某些原语被妥协或丢失。附加的风险减少可以通过使用包括多样性密码原语的异构系统实现。例如,一个节点可以使用RSA加密过程。另一个可以使用DSA。另一个可以使用椭圆曲线。所使用不同过程的限制在于群组中节点数目的限制。
[0053]现在参考图1,提供了更详细的论述。限定被称作G的具有N个成员节点的群组,其表示虚拟实体。此虚拟实体可以具有其自己的标识符,或者该标识符可以是其成员的整理,诸如通过对其所有成员节点名进行排序,对值进行哈希,并且使用该哈希作为标识符。限定包括所有设备或允许实体G执行命令和控制的群组W。此控制可以是对数据的访问、代码的执行或者W的成员期望认证G进行的任意其他动作。即,W的成员期望向群组G允许动作并向任意其他群组阻止动作。将节点Mx限定为G的第X个成员。Mx节点使用PPK完成群组G目标。将X限定为W中的用户。在一个实现方式中,N总是奇数。这防止攻击者死锁系统,当其捕获正好N/2节点并且N是偶数时。
[0054]在一个实施方式中,单个Mx节点是给定“连结断路器”机构。在此情况下,允许偶数个节点。如果攻击者捕获了 N/2节点其中N是偶数,则连结断路器节点可以防止死锁。连结断路器Mx节点可以总是相同节点,或者可以取决于G的成员而变化。例如,G的最老成员可以是针对G的连结断路器。备选地,G的最新成员可以是给定连结断路器状态。实现方式可以根据其他方式进行变化。
[0055]继续参考图
1,在某些实施方式中,G使用不对称密码作为技术。在一个实现方式中,PKI构建可以使用的证书,诸如X.509。某些实施方式可以使用更现代的数据互换格式,诸如但不限于JavaScript对象注解(JSON)或可扩展标记语言(XML)格式,本领域技术人员容易理解其实现方式。
[0056]在一个实现方式中,如图2所示采取了如下步骤:(I)每个Mx创建私钥和使用不对称密码原语的自签名证书MxSx (具有所述密钥);(2)每个Mx签名每个其他My的证书。将这些证书之一限定为MxSy。例如,如果N是3,则Ml可以签名M2和M3的证书(创建M1S2和M1S3),M2可以创建M2S3和M2S1,并且M3可以创建证书M3S1和M3S2。针对N = 3,可以存在3个自签名证书(步骤I)和针对G的6个交叉签名(步骤2);以及(3)将GC限定为针对所有Mx节点来自步骤2的证书总集,包括美国自签名MxSx。因此,针对大小N的任何G,可以存在N个自签名证书、N各节点和(N-1)*(N-1)交叉签名,从而产生集合GC中总共N*N个总证书。
[0057]在一个实现方式中,每个Mx使用“循环”过程只签名N/2(向下取整)证书而不是N-1证书。在此情况下,使用某些确定排序过程将由Mx创建的所有证书排序成列表L,使得Ml总是在M2 “之前”等。此集合可以包括GC。由Mx签名的N/2证书是下一更大N/2(向上取整)证书。如果此计算扩展至列表的结束,则该计算应当从列表的开始继续直到L中不再有证书。例如,针对N = 4,Ml可以签名M2和M3的证书,并且M4可以签名Ml和M2的证书。M3可以签名M4和Ml的证书。此集合可以包括GC。图3图示了这种循环签名技术的示例,其中N = 7。
[0058]在一个实现方式中,每个Mx签名N-1个证书。S卩,每个Mx创建以每个其他唯一 My为目标的N-1个证书。在一个实现方式中,G中的每个Mx可以使用不同不对称密码过程。例如,如果N是3,则一个节点可以使用RSA密钥对,一个使用DSA密钥对,并且一个使用椭圆曲线密码。在一个实现方式中,每个Mx使用由CA签名的证书而不是包含自签名证书。在所有这些实现方式中,GC包含证书列表(自签名或交叉签名)使得针对G中任意MxSxJ^大于N/2个签名的证书。即,针对每个节点Mx,总是存在N/2+1个包含Mx使用的PPK的签名的证书。当与G交互时,GC可以被检查以供X使用。
[0059]X必须被给予GC的最初本地拷贝。在X可以执行任何动作之前,X使得GC位于本地库中是重要的。将X存储的证书集合为T。本地库或拷贝是计算机存储器的一部分,诸如包含数据的RAM或盘存储器。在此情况下,存储库包含T。
[0060]参考图4,在一个实现方式中,当G最初向X请求服务时,X接收GC。此时,X可以请求GC作为服务初始化的一部分。在初始化时,T = GC。即,置信库正好包含GC。由于不存在GC的先前版本并且X先前不了解G,因此在最初通信上将GC传至X是安全的。针对与X通信的其他G’群组,X可以存储单独T’。注意,T’等同于G’的唯一标识符。这防止攻击者将GC置于最初通信回合。如果攻击者向X提交修改的T’,则G和T’可以失配。X可以针对G’而不是G记录T’。当G随后提交T时,X不会将G’与G和T’与T混淆。X可以在G联系时使用T并且在攻击者联系时使用T’。
[0061]将大多数限定为大于N/2(向上取整)的计数。或者,在存在连结断路器的情况下,该计数等于或大于N/2并且连结断路器是计数的一部分。因此,针对N = 3,大多数可以是2。如果N是35,则大多数可以是18。
[0062]现在参考图5.1和图5.2描述被称作ALGOl的一个特定实现方式。在此实现方式中,X现在可以通过以下方式验证T是自治的:
[0063]I)X首先计算包括T中所有有效证书的集合TV。有效证书是T中具体以下特征的证书:
[0064]a)是自签名证书(MxSx)或
[0065]b)由T中Mx (MxSy)交叉签名其自签名证书在T中以及
[0066]c)满足任意其他证书有效性规则,诸如期满、开始有效时间、格式等。
[0067]2)限定TV中包含唯一公钥的所有MxSx证书的集合TSS。
[0068]3)限定包含TV中由TSS中任意证书签名的所有证书的集合TV’。即,TV’包含其中MxSx在TSS中的任意MxSy。
[0069]4)创建空集合TV”。
[0070]5)针对TSS中的每个证书y,执行以下步骤:
[0071]a)如果TV’中所有MxSy的计数是TSS中找到证书的大多数,则将TV’中所有证书MxSx添加到TV”。这应当包括所有MySy (自签名)证书。由于此步骤不会将不具有来自其他Mx节点的大多数签名的任意My添加到TV”。
[0072]6)创建包含TV”中所有自签名证书的集合TSS’。
[0073]7)创建包含TV”中找到的由TSS’中的任意证书签名的所有证书的集合GT。添加至GT中的证书将不包括以不在TSS’中的Mx节点为目标的证书。
[0074]8) X 用 GT 替代 T。
[0075]在典型实现方式中,最初T = GC = GT
[0076]实践中,T中由具有T中有效MxSx的节点签名的任意有效证书MxSp (其中节点p不具有T中的MpSp)不会被丢弃。该证书被设置用于稍后与ALG02 —起使用,其在下文进行描述。重点是MxSx是置信的,并且由X签名的任何证书也是置信的单没有被使用。
[0077]注意,ALGOl的步骤8允许X修正来自T的证书。S卩,由不具有G中大多数节点置信的节点签名的任意证书从T丢弃。同样注意,ALGOl改变T。其要求T输入并且产生替代T作为输出。如果在任意T上重复运行,则ALGOl将在第一迭代之后达到不改变的状态。艮P,如果ALGOl采取T作为输入并且产生GT作为输出,则GT上ALGOl的任意未来迭代将正好产生GT。ALGOl是幂等的。
[0078]注意,如果针对某些节点集合不存在大于N/2个交叉目标的证书,则ALGOl可以产生空T。传至X的最初GC包含正确的证书集是重要的。在一个实现方式中,这可以通过设置GC完成以在G中只包含针对节点的单个自签名证书,继而使用ALG02和ALG03(稍后论述)来“生长” T。
[0079]在一个实现方式中,T中的有效证书是包含“期满”时间值的证书,并且当前日期-时间(如当ALGOl运行时计算)尚未通过该时间值。过去具有“期满”时间值的证书被认为无效。
[0080]在一个实现方式中,T中的有效证书是包含“有效开始时间”时间值的证书,并且当前日期-时间(如当ALGOl运行时计算)尚未通过该时间值。未来具有“有效开始时间”时间值的证书被认为无效。
[0081]向G添加节点:在一个实现方式中,G中节点可以通过使用以下机制创建证书来创建并向G添加附加节点。这些节点继而可以被发送至可以使用ALG02来更新其置信库的W的成员。
[0082]现在参考图6,描述了被称作ALG03的另一过程。在此实现方式中,ALG03包括:
[0083]I)新节点Mp创建私钥,和使用不对称密码原语的自签名证书(MpSp)。
[0084]2) G中每个节点Mx创建MxSp证书。
[0085]3)针对G中每个其他节点Mp创建MpSp证书。
[0086]4)限定包含步骤1、2和3的结果的集合IN。IN包含(N*2+l)个证书。
[0087]在一个实现方式中,集合IN可以包括由一个或多个新节点创建的证书。同样注意,由攻击者发送的IN证书集合除了正确的证书还可以有任意其他不正确的证书。
[0088]在一个实现方式中,Mp节点总是成对创建。S卩,总有2个ALG03中创建的Mp节点。当N被要求是奇数时,这是有效的。是否存在连结断路器并且N是偶数不是必要的。
[0089]在一个实现方式中,X可以通过添加证书创建新的T。这可以被描述为其允许X安全重新限定G以包含更多数目的节点或者替代由于无效而不再T中的节点。X接收证书集合IN。以下ALG02允许计算IN中的哪部分应当被添加到T。此过程还允许在不正确的证书(由攻击者发送)进入置信库T之前将其清除。
[0090]现在参考图7,描述了被称作ALG02的另一过程。在此实现方式中,ALG02包括:
[0091]I)在IN中创建MxSx证书的集合SS。这是IN中被审查进入T的所有自签名证书的集合。
[0092]2)针对SS中每个MySy证书(y是待审查的节点):
[0093]a)创建T或IN中由T中任意MxSx签名的所有证书的集合T”。由于T中的MxSx是置信的,因此T”包含由T或IN中呈现的置信节点签名的所有证书。
[0094]b)创建T”中所有MxSy的集合VT0 VT是以y为目标的所有置信证书的集合。
[0095]c)使用ALGOl的步骤I中找到的相同有效性规则检验VT中每个证书的有效性,从VT中丢弃任何无效证书。
[0096]d)如果T中由VT中任意MxSy签名的MxSx的数目总和不是T中所有MxSx的大多数,则针对SS中的下一 MySy重复步骤2。在此情况下,y没有被正确地审查。置信节点的大多数没有创建担保I的证书。
[0097]e)创建IN中所有MySx证书的集合VC(其中x是由T中MxSx表示的节点)。这是由以T中置信节点为目标的y签名的所有证书的集合。
[0098]f)如果VC中证书的总和是T中所有MxSx的大多数,则将VC中所有证书和MySy添加至T’。如果审查节点y为T中置信节点的大多数担保,则将y的自签名证书以及将T”中置信节点为目标的所有其证书添加置信集合T”。
[0099]g)用 T” 替代 T。
[0100]3)在 T 上执行 ALGOl。
[0101]ALG02允许G中节点的数目被称作X改变,因为T现在包含针对那些新节点的证书。
[0102]从G移除节点:除了能够向G添加节点,能够从G移除节点也是有益的。在一个实现方式中,G中节点可以通过以下方式从G移除节点Mp。将撤销证书限定为包含针对撤销目标(Mp)、G中节点签名(Mx)和撤销值的证书。在一个实现方式中,撤销值是被称作“无效”的证书值字段。撤销值可以是X和G与W的成员理解意味着该证书的目标无效的任意值。有效撤销证书是具有针对Mx的有效签名的证书。
[0103]现在描述被称为ALG04的另一过程。在此实现方式中,ALG04包括:
[0104]I)创建由以Mp为目标的所有Mx创建的撤销证书的集合GR。将MxRp限定为以Mp为目标的Mx创建的GR中的任意证书。
[0105]2) GR被分发至X (通常还有W)。
[0106]在一个实现方式中,X将所有这种撤销证书存储在证书库TR中。
[0107]在一个实现方式中,T中的有效证书是针对其在TR中不存在证书MxRp的证书MxMp。即,此实现方式修改ALGOl中的步骤1,使得TR中有效MxRp的存在无效T中任意MxSp。如果TR中存在证书MxRp并且T中存在证书MxSp,则T中MxSp不再有效。在优选实现方式中,在接收撤销证书GR的某些集合之后,X向TR添加GR并且执行ALGOl。在优选实现方式中,X仅向由T中MxSx签名的TR添加来自GR的证书。
[0108]在一个实现方式中,撤销证书MyRy (其中My节点无效其本身),由My签名的所有证书应当被认为无效,包括其MySy证书。这允许节点无效本身。在一个实现方式中,这应当不排除Mx节点创建MxRy撤销证书。
[0109]在一个实现方式中,如果每个Mx使用由CA签名的证书,并且CA为Mx发布撤销证书,则X可以无效由Mx签名的每个证书,并且从T移除所有这种证书。在此情况下,X应当将CA的撤销证书存储在TR中。注意,此实现方式向ALGOl的步骤I添加了另一有效性条件。例如,图8示出了在Ml已经通过证书M1R2撤销M2时证书之间关系的映射。
[0110]使用G执行工作:G现在可以通过认证的方式从X请求服务。假设G期望通过X执行动作A。A是X期望认证G的动作。即,为了执行A,X需要群组G期望动作完成的有效认证。
[0111]在一个实现方式中,限定Ax使得Ax是由认证动作A的Mx签名的消息。限定包括所有Ax消息的集合AG,其中每个Ax由对应的唯一 Mx签名。例如,Ml签名Al,M2签名A2等。
[0112]在一个实现方式中,Mx节点MInit通过整理来自G中所有其他Mx节点的签名初始化并消息传输与X的通信。
[0113]现在描述被称为ALG04的另一过程。在一个实现方式中,X可以认证G以通过以下方式执行A:
[0114]I) X 从 MInit 请求 AG。
[0115]2) MInit使用其私钥签名Ax,并且向G中所有其他Mx转发A。
[0116]3)每个Mx的一个或多个创建Ax并且向MInit返回这些值。
[0117]4)MInit现在持有AG。AG包含N个或较少的签名消息,其中每个来自位移Mx。
[0118]5) MInit 向 X 发送 AG。
[0119]6)X验证每个Ax,确保命令有效,签名有效,并且Mx签名Ax存在T中。
[0120]7) X将来自唯一 Mx节点的有效Ax消息的数目相加。
[0121]8)如果总和是T中所有N个自签名证书的大多数,则X认证该动作。
[0122]在一个实现方式中,MInit不存在并且每个Mx直接向X发送Αχ。在此情况下,在X从谨慎的Mx接收每个Ax消息之后,运行ALG06。
[0123]现在参考图9描述被称为ALG06的另一过程。在此实现方式中,ALG06包括:
[0124]I)每个Mx向X发送Ax
[0125]2)每次X接收Ax,X验证至今为止接收的每个Ax,确保命令有效,签名有效,并且Mx签名Ax存在T中。
[0126]3) X将来自唯一 Mx节点的有效Ax消息的数目相加。
[0127]4)如果总和是T中MxSx证书的大多数,则X认证该动作。
[0128]证书在集合或群组(诸如T和GC)和典型实现方式中处理,这些群组中的证书包含在与相同群组中其他证书比较时是完全相同的内容部分。例如,针对G中所有Mx,针对给定P创建的所有MxSp证书包含针对Mp的完全相同信息。此静态内容可以是认证的动作或者由证书签名者交叉签名的其他证书。此外,相同概念适用内容的签名者。针对G中的给定P,由P创建的所有MpSx由P签名。因为此对称性,如果证书在交叉签名发生之前已经彼此了解,则可以显著减少上述过程的复杂度。即,节点之间的一致意见创建是同步并原子的。在许多典型实现方式中,就是这样因为节点必须对那些成员包括在G中彼此达成一致。接下来,示出简化但等同方法的特定形式,并且示出此签名和交叉签名仅仅是G中若干Mx之间的认证一致。
[0129]在使用同步编码的一个实现方式中,每个Mx 了解G中待被交叉签名的每个其他Mx。可以生成标识G的单个公钥集合。此密钥列表可以单独由每个Mx签名,并且添加至包含公钥列表和G中每个Mx签名的单个文档中。这产生包含G中允许成员的列表的文档D,其由G中每个Mx哈希并签名,从而产生如图10中以JSON格式描述的具有相同数目条目的第二列表(假设所有Mx签名)。在一个实现方式中,D包含“时钟”整数值。在另一实现方式中,当前时间值可以足够作为“时钟”值。
[0130]在某些实现方式中,可以呈现其他有效值,诸如期满、有效时间等。
[0131]相比于上文异步证书模型,此编码非常有效。针对包含7个成员的G,异步方法产生49个分立异步证书,并且要求经由ALGOl处理以验证。在同步编码中,呈现包括所有自签名和交叉签名的相同信息,但针对单个文档仅要求7个签名。此外,T、GC和GT仅包含D。不要求附加的
证书。
[0132]在一个实现方式中,ALGOl可以由ALG0101替代,假设D存在。在此情况下,T =D、D’ = GCo在此实现方式中,所有Mx成员同意替代D的新D’将具有比T中持有的时钟值更大的“时钟”值。即,应当替代更老D文档的D’文档将具有更大“时钟”值。
[0133]ALG0101 包括:
[0134]1.对D中所有唯一密钥计数并且将被2除的总数(向上取整)限定为COUNT
[0135]2.限定变量n,并设置为零
[0136]3.针对D’中每个签名,如果满足以下标准则将η增1:
[0137]a)确保签名匹配D’中密钥列表中找到的密钥
[0138]b)确保签名匹配D中密钥列表中找到的密钥
[0139]c)确保签名正确地签名D’中密钥列表。
[0140]4.如果η大于COUNT或者η等于COUNT并且连结断路器节点正确完成步骤3,则继续。否则拒绝D’。
[0141]5.如果D’中的“时钟”值大于T的“时钟”值,则继续。否则拒绝D’。
[0142]6.D’满足所有有效性和格式要求,包括期满、有效开始时间等。如果其中之一不满足,则拒绝D’。
[0143]7.用 D’ 替代 D。
[0144]在某些实现方式中,ALG0101还可以替代ALG02、ALG03和ALG04。即,在同步编码情况下,向G添加或移除节点并且更新T可以都经由ALG0101起作用。由于D’中的密钥列表可以包含或多或少的密钥,包括针对新Mx节点的密钥,ALGOlOI可以修改T以及对其进行验证。在某些实现方式中,如果“计数”字段总是每G中拓扑改变就增1,则D’消息流可以从任意有效先前版本的T更新任意X中的T。这可以通过向X传输每个D’来完成,使得传输的D’具有比X持有的D正好高I的“计数”值。这使得跨任意数目X的T的非常简单简洁的同步。例如,图11替代了图10中找到D,假设所有签名和有效性要求均满足。
[0145]在一个实现方式中,ALG05可以被修改以使用同步编码。在这些情况下,单个文档AD被发送而不是消息群组AG。AD包含签名列表和动作A。签名的验证针对AD中的签名而不是针对单个Ax消息。
[0146]在某些实现方式中,使得Mx节点的部分子集能够作为认证代理是有益的,即使其是少部分。通过向D添加整数“仲裁集(quorum)”字段,可以使用仲裁集值而不是ALG0101中找到的COUNT值。即,可以将所需的节点数目设置成任意值,而不是设置严格最大值。例如,如果G包含7个节点,则可以将仲裁集设置成2。在此情况下,ALG0101可以要求大于2个或更多签名用于待作为D的有效替代的D’。
[0147]在某些实现方式中,使得桶化并群组在一起成为子群组G’的Mx节点认为例如某些Mx节点比其他节点不安全是有益的。在此情况下,可以限定图12中找到的被称作“桶”的类似群组语法。
[0148]在一个实现方式中,“桶”中的每个群组GBx可以被认为是小型群组G。即,G基于“仲裁集”字段和G中评估为真的GBx桶的数目认证动作。此外,这些桶中的每个桶可以按照需要可以内部地包含其他桶群组。这是G的分形表示,并且允许G中投票特性的任意控制。为了将D’认证为D的替代,ALG0101被运行但是以递归方式,以便每个桶使得ALG0101针对该桶运行。例如,图12中找到的D可以允许替代D’,使得M4和签名中找到的(M1、M2、M3)的大多数进行与操作。D同样满足(M1、M2、M3)的大多数和(M5、M6、M7)的大多数进行与操作。
[0149]此实现方式具有允许G的拓扑针对特定性能特性、负载平衡、安全和分布特性进行微调而不止于使用严格大多数系统的优势。如在相关认证部分可以看出,此原理可以进一步抽象成通用认证代数。
[0150]使用群组命令和控制创建群组机构:
[0151]目前已经描述了群组命令和控制机制的各种实现方式,此机制可以应用于被称作群组机构(GA)的概念的创建。在ENT中,GA等同于传统PKI系统中的认证机构(CA)。根据某些实施方式,GA可以描述如下。
[0152]最初,限定PKI系统PK,和用户Ux,其中Ux是系统的任意用户。Ul可以是用户I等。限定由Ux创建的私钥/公钥对UxPPK,其中Ux持有私钥。例如,Ul的PPK可以是U1PPK。Ux可以表示证书控制专员,其责任是管理PK中的证书。如果Ux是这种专员,则UlP可能不被Ux创建,而是由发起用户创建。在此情况下,只为Ux替代专员,因为这不会对以下实现方式产生影响。限定密码过程CAL,这是使用的不对称密码技术。
[0153]创建N节点的群组G。通过使用上文在“群组命令和控制”章节概括的机制创建证书库GC。根据这些规则,G可以作为单个实体发布命令。限定G中的任意节点Mx,其中每个Mx具有GC中的自签名证书和交叉签名证书。例如,Ml可以是G中的节点I。
[0154]每个节点Mx可以签名包含UxPPK公有部分的证书。每个这种签名的证书必须包含证书字段的唯一组合,使得证书可以被限定为标识唯一部分Ux,使得Mx将不每Ux创建不止一个唯一签名的证书。将此证书限定为UxC。在一个实现方式中,根据群组命令和控制章节中的同步方法所有此类证书可以被组合成单个文档UC。
[0155]在一个实现方式中,本领域技术人员可以选择X.509标准中存在的字段,诸如普通字段如组织、子组织和普通名称。
[0156]在一个实现方式中,证书中的唯一信息可以是包含特定唯一数值的字段。在此情况下,所有Ux经由证书限定为抽象数。
[0157]在一个实现方式中,Ux可以ALGOl向G中每个Mx请求证书。
[0158]现在参考图13描述被称作ALGOl的另一过程。在此实现方式中,ALGOl包括:
[0159]1.Ux 创建 UxPPK
[0160]2.Ux创建包含UxPPK中公钥的证书请求UxR,以及针对Ux的某些唯一标识符I。
[0161]3.G中每个Mx当接收UxR时执行以下动作:
[0162]a)Mx验证其没有创建包含UxR中唯一标识符的任意证书。如果其继而针对下一Mx运行步骤3则不向用户返回证书。
[0163]b)Mx创建并签名包含UxPPK的唯一标识符和公有部分的新证书UxC,并且将此证书返回Ux0
[0164]Ux现在使得证书集合UxS包括由所有Mx创建的UxC,其中每个证书由唯一 Mx签名。UxS包含N个证书,假设没有从ALGOl的步骤4退出。
[0165]群组G可以被用作传统PKI系统中CA的替代。
[0166]Ux可以联系PK的任意用户并使用UxPPK的私有部分进行认证。将X限定为由Ux联系的期望针对PK认证Ux的一方,其中PK使用G作为GA。将UxA限定为由Ux向X发送的签名认证方法。通常X可以向Ux发送随机值,并且Ux可以响应签名的消息UxM,其中UxM由Ux的私钥签名。
[0167]现在描述被称为ALG02的另一过程。在此实现方式中,ALG02包括:
[0168]1.X 请求 UxS
[0169]2.X验证UxM包含正确的签名和信息。如果没有认证失败。
[0170]3.针对UxS中的每个UxC,X验证UxC由G的成员签名并且声明UxC有效。作为一个示例,X也可以可选地检验各种类型的有效性,诸如有效性开始日期和有效性结束日期。
[0171]4.X创建包含所有有效UxC证书数目的总和S
[0172]5.如果S大于(N/2)+l,其中N是G中节点的数目,则X具有认证Ux。
[0173]假设G中某个数目J个节点已经由攻击者捕获。这暗示J个Mx签名不能被置信。然而,只要J小于N/2,系统就安全。如果攻击者创建了具有欺骗证书的UxS,则UxS将只包含J个证书。这防止攻击者获得需要通过ALG02的步骤5的认证的大多数。
[0174]在一个实现方式中,X附加地验证每个Mx签名UxC具有通过G中大多数其他Mx的有效交叉签名。如果没有,则由Mx签名的任意UxC被认为无效。此外,ALG02由X的未来迭代可以使用此信息完全低估Mx。在Mx被低估的情况下,根据X,G中节点的总数可以是N-10
[0175]限定概念置信级,其意味着G中成功验证并认证X的认证节点的百分比。这是值(S*2)/N。如果置信级大于100%,则系统安全,并且可以限定这种翻译为完全置信。应当注意大于100%的任何级都不具有附加值。因此针对G中所有Mx产生200%置信值的完全认证检验具有本质上不多于大于100%的置信级的值。
[0176]如果使用了连结断路器节点,并且连结断路器节点正确认证,并且S = N/2,则向S添加I以向置信级给予绝对大多数。
[0177]根本上,收集大于(N/2)+IMx的控制的任意实体控制系统。实体可以修改G使得任意Mx不被具有Mx的大多数无效的其交叉签名的实体控制。在此情况下,N可以具有正确交叉签名的Mx的数目,其可以只是由实体控制的Mx。因此,大于100%的置信值表示完全置信。
[0178]在一个实现方式中,由X进行的某些操作类型可以被置信级限制。例如,20%的置信级可以允许只读信息访问低安全数据,50%级可以允许非机密互动,诸如发送消息或允许电子邮件被检验,并且100%级或更多可以用于机密交易,诸如货币转移、PK策略改变等。
[0179]在一个实现方式中,当每个Mx证书被CA签名时,X可以附加地验证由Mx签名的每个UxC被CA正确地签名。如果不是,则UxC可以被声明无效。
[0180]在一个实现方式中,X维持在被称作T的集合内部的G的子集,并且验证T而不是Go T可以包含N-1或更少G的节点。
[0181]在一个实现方式中,X仅针对有效Mx验证单个UxC。如果UxC有效,则X认证Ux。在此情况下,X的置信级为2/N。例如,如果N是3,则置信级可以是66%。此操作模式不被推荐,因为其允许任何攻击值在仅捕获G中单个Mx之后针对X进行验证。然而,值得注意此操作模式在安全上与所有web浏览器中用于认证针对金融交易、机密数据交换以及命令和控制的TLS/SSL连接的现有机制等同。
[0182]ENT可以实现群组机构结构。此CA包括运行不同不对称密钥过程的不同位置的服务器群组。每个这种服务器被称作根。每个根独立于所有其他根进行签名和操作。每个根具有被限定为连贯字符集的唯一名称。一起,使用群组命令和控制以及群组机构章节中找到的过程,根能够发布新的验证名。优选实现方式是创建具有奇数节点的GA以避免死锁。在ENT中,针对创建在群组命令和控制中ALGOl中计算的大多数的所有根的签名和自签名证书的集合被称作根环。在一个实现方式中,这些证书可以根据群组命令和控制章节被同步组合成单个文档。
[0183]ENT根可以被撤销。这可以针对可以减少ENT系统的安全性或置信的任何原因发生。某些可能原因可以是故障计算机硬件、恶意攻击、审核故障、自然灾害、计划的根衰老等。根经由群组命令和控制章节中概括的机制撤销。如果根应当被撤销,则根环中每个其他根服务器将创建以待被撤销的根为目标的撤销证书。当这种证书大多数已经由唯一根发布时,所述根将根据群组命令和控制章节概括的机制从根节点的连接图移除。ENT系统中接收这些证书的任意用户将同样从其置信库(T)移除被撤销的根节点。
[0184]在一个实现方式中,根节点可以无效本身。在此情况下,系统将无效看作相当于其他节点的大多数无效证书。即,无效本身的根必须被看作产生针对根的无效证书的大多数其他节点。根据各种实现方式,推荐使用这两种机制。
[0185]还可以添加ENT节点。这在系统需要增长或撤销的节点需要被替代时出现。ENT使用用于添加在群组命令和控制中找到的节点的机制来完成此任务。首先,创建针对每个新节点的PPK。继而公钥部分被发送至根环中的每个根。根环根中的每个根继而针对包含新根的公钥的此新根创建交叉签名。这些证书继而经由群组命令和控制章节的ALG02中概括的机制添加至每个根的置信库(T)。
[0186]ENT系统状态和置信库
[0187]ENT根置信库期望存储在整个ENT网络中的每个ENT使能系统(运行ENT软件)上。这些设备可以被称作ENT节点。针对ENT系统的所有用户维护单独置信库(T)是有价值的。这允许部分或偶发连接ENT设备有用地维护操作,即使ENT系统的根或其他部分不可到达。另外,攻击者可能需要击败系统中的大部分节点以整体损害系统的有效性。当根节点无效并且新的ENT根节点被处理时,这些证书可以在ENT节点之间传播直到整个ENT系统具有更新、相同状态,因为群组命令和控制的ALGOl (或ALG0101)是确定并幂等的。
[0188]在一个实现方式中,ENT节点的置信库可以每次其通信或交换信息时进行同步。在一个实现方式中,节点在交易之前交换置信库T中的所有证书。这可能并不优选,因为这可能是非常大量的数据。
[0189]在一个实现方式中,密码哈希从根的自签名证书产生。这些证书是第一排序的。任何确定的排序都是足够的。在优选实现方式中,排序包括根名称的标准字母排序。一旦根自签名证书的排序列表被创建,哈希通过插入每个这种证书计算,以便通过产生数字哈希的哈希功能。每个ENT节点独立地创建此哈希并存储结果值。
[0190]在一个实现方式中,当两个ENT节点通信或交换信息时,其将首先交换此哈希。此哈希的不匹配将强制两个ENT节点交换其置信库(T)。如群组命令和控制的ALGOl(ALGOlOl)所示,置信库在所有节点已经交换之后重新计算。在ALGOl (ALG0101)的一次迭代之后,两个ENT节点将具有相同置信库并因此具有相同的哈希值。
[0191]在一个实现方式中,如上所述,执行根证书的字母排序。每个证书继而被哈希。每个证书继而被哈希。每个这种证书的哈希继而被按顺序添加至数据对象。实践中,哈希值可以按顺序级联在一起以产生值ENTSTATE。另外,确定ENT系统版本的值可以被级联到ENTSTATE。ENT系统版本可以包含如下信息,诸如系统使用的常量,允许的过程等。一旦计算,ENTSTATE反映包含所有根的对象或资料,单独可识别(由ENTSTATE中其位置偏移),以及可以用于在节点之间兼容性检验的系统上下文值。此ENTSTATE继而可以在节点之间交换。ENTSTATE的哈希可以首先被交换。如果这不匹配,则全部置信库或其部分(如由ENTSTATE中根哈希确定)可以被交换直到两个置信库匹配。
[0192]在一个实现方式中,ENT除了能够从其他ENT节点接收此信息还可以直接检验任意根以接收全部置信库。
[0193]在一个实现方式中,系统版本可以由若干值和设置限定。某些设置包括使用的密码过程,硬编码值诸如最小密钥长度,策略设置诸如证书命名结构和格式等。在优选实现方式中,所有这些值由单个版本值确定,其可以用作系统版本。
[0194]在一个实现方式中,如果ENT节点的置信库哈希或系统版本值不同,则其可以不交互。ENT节点必须在交易之前在其置信库和系统版本方面一致。在系统版本不匹配的情况下,节点应当终止其连接并且具有更低系统版本的节点应当更新其软件。在置信库不匹配的情况下,两个节点应当交换证书直到达到一致性此时他们可以继续任何交易。如果一致性没有达到,则交易应当被终止。
[0195]通过根节点发布验证名
[0196]在ENT,验证名可以基于其唯一码或映射被唯一标识,并且由第一根发布以接收请求。在其他PKI系统中,名称或描述章节用于发布的证书。典型的值是名称、组织、组织单元等。然而,在优选实现方式中,ENT通过将抽象标识符直接作为数字发布进行操作。每个数字是唯一的并且保证在系统中唯一如群组机构章节所述。没有两个根可以向两个不同请求者发布相同标识符。其他实现方式可能使用字母数字,或者允许请求者选择给定标识符值。
[0197]验证名可以被限定为证书的集合,每个由唯一根节点发布。每个这种证书包含由请求者提
交的公钥和系统中唯一的数字。因此,完整验证名可以包含N/2+1或更多证书,其中N是ENT中根节点的数目,每个根节点包括针对该验证名的唯一标识符。此文档中的各种位置指的是验证名证书。此术语指的是验证名中找到的证书。如果上下文指的是密码原语或证书,则验证名和验证名证书可以互换。在某些实现方式中,单个文档可以根据群组命令和控制章节包含与若干证书相同的信息。
[0198]验证名的发布从请求者(请求验证名的用户)创建PPK并且向核心根中的任意一个提交请求开始。请求包含PPK对的公钥。在一个实现方式中,请求还可以包含稍后论述的对等节点的列表。
[0199]在一个实现方式中,每个根具有预定块数值分配给请求者。例如,根可能有I块值1-1000,根2就块值1001-2000,等。在一个典型的实现,这些块的范围可能是32位数据块。只有根允许块可以在给定的块分配数。在另一根块号码分配应被视为一个安全漏洞。ENT的中心办公室指示哪个根可以发布哪个块。在优选实现方式中,已经发布所有块的根应当被无效,并且通过新的块用具有发布公开的新的根替代。在另一实施方式中,已经发出了所有的块的根可以由中央办公室指派新的块。在优选实施方案中,根将向请求者发布在其之前尚未发布有效块中选择的序列号。在另一实施方式中,根可以从其有效块发布随机数。
[0200]一旦根从其尚未指派的块选择了数值NV,其创建并签名包含请求者公钥和NV的证书。此证书继而转发至ENT系统中的每个其他有效根。每个其他根节点首先确认他们没有包含NV已经发布了一个证书,然后创建并签名证书包含相同的请求者的公钥和NV。此证书集然后完成验证名返回给请求者。在实践中,请求者可能会检查数据存储将根部存款新创建的证书。请求者现在有一个有效验证名它们需要的任何目的。
[0201]一旦发布,私钥验证名可能会丢失,被盗或失效。在某种程度上的私钥将为给定验证名需要更换。当这些事件发生时重要的是提供一种机制的验证名所有者重建控制验证名自控制失去了控制私钥丢失。在传统的PKI系统需要参与的人员重新建立用户的身份问题。ENT的过程自动化的使用一种新颖的技术被称为关系适用于任何PKI系统的授权。
[0202]相关认证:
[0203]下面的部分将介绍一种重建控制(通过替换)PKI凭证当用户失去了控制自己的凭证或私钥在PKI系统中或授权行动基于关系的凭证使用的其他凭证。这些可以分别被认为是一个所有权策略,和一个或多个控制策略。高水平的概念,称为相关认证是允许一个实体,根据对等组定义,要求那些对等的支持或凭证,可以使用证书颁发机构或团体权力重建所有权和创建新的实体签名的证书。另外,同样的概念允许一组对等实体用自己的凭证来证明一个动作(或控制机制)的实体。
[0204]首先,注意相关认证不需要特定的特征在对等人之外所需的实体本身。也就是说,它的匿名和隐私的。其次,CA不再需要执行更新基于当前本领域状态,这始终是一个集中的方法。最后,注意在任何声明放在CA对人力、管理、或过程,并且事实上CA根本不需要管理用户/实体信息超出了抽象的标识符。
[0205]虽然本章节的大部分特别关注于针对证书恢复的相关认证的使用,但是本发明在授权动作被期望并且多个证书被期望作为认证的输入时具有更广泛的应用性。例如,相关认证可以用包括协同用于证明针对认证标识的控制的多个实体的策略替代证书中的公钥,以允许对数据的标识访问或者出于任意其他目的。
[0206]限定包括N个实体/用户群组的PKI系统PK。用户可以是人、计算机、移动设备或者允许证书被存储和使用的其他电子使能系统。将CA限定为PK的认证机构。CA可以是群组机构(GA)。将每个实体限定为Ul至UN及其由CA签名证书Cl至CN,其中U5表示用户5并且C5表示用户5的证书。将每个实体的私钥限定为Pl至PN,其中P5是实体5的私钥,并且将Pm限定为任意实体的私钥。将Ux限定为需要用新的证书Cx’替代Cx的实体。限定具有若干M实体的群组G,其中每个实体在PK中并且具有与Ux的真实世界或带外关系。将那些实体中的任意一个限定为Um。将针对Um的证书限定为Cm。例如,如图14所示,可以限定G具有3个实体Uq、Uz、Uy,各自分别控制Cq、Cz和Cy。
[0207]在一个实现方式中,限定包含G和策略状态S的数据对象L。S是一个策略声明,由一组处理规则结合G的声明的成员提供了一个布尔值作为输出。例如,S可以包含一个连续的字符列表“ (Uy和Uq)或(Uz和Uy) ”。额外的非-布尔规则可以创建诸如“大多数(Uy, Uq, Uz) ”或“ (Ua, Uy, Uq, Uz)中的2个”。S定义的标准CA应该允许Ux的密钥恢复。有用的规则将包含基本的布尔操作符(或,与,非),排序分组语句和函数。任意数量的不同的功能可以被支持,但一个函数必须返回一个值,指示或真或假,必须采取G的一个或多个成员作为输入。S的语法在很大程度上取决于证书格式和具体实现,但可能包括XMUJSON,串,或其他二进制格式。这些语句可以评估或真或假,如果任意Um在声明中被替换为一个“真”的值。默认情况下所有这些值被认为是错误的。简而言之,Um值经由ALGOY由“真”值取代,如果Um签名凭证授权的行动,或者如果Cm包含策略Sm本身评估为真。
[0208]在另一个实现中,S中的分组操作符可以有一个优先级值。这个值可以设置一个优先级输入。例如,“(Ux*Uy,101) “可能代表声明优先级101。在一个实现中,较高优先级评估为真的语句覆盖低优先级评估为真的语句。如果攻击者获得一些Um实体被攻击者破坏则控制优先级是有用的,并且攻击者可以经由S证明真值。在本例中,它将有利于CA优先更安全的Um实体集合有效,但欺骗实体攻击者已经将其控制。这允许年代代数包含层次结构的控制甚至在策略。在这种情况下,CA将记住最后一个授权行动的优先级值。如果出现更优先行动后,CA可以允许新的交互和撤销之前的。
[0209]在一些实现方式中,较高优先级证书重置可以禁用较低优先级重置一些指定时间段。例如,两个星期。这将不允许攻击者在持续时间再次重置策略,并且禁用策略中不同认证群组之间的触发连接。
[0210]在另一个实现中,数据对象L不需要包含G,因为这信息也出现在S中。
[0211]在一个典型的实现方式中,验证通常直接用私钥完成。然而,使用相关认证,证书可以相反经由S针对对等群组进行认证。即,S可以替代证书中的公钥。例如,如果证书代表组织,该组织需要秘密数据访问,并且三个人需要访问授权,则相关认证可以用来满足组织的身份验证过程,而不是需要一个特定的PPK。一个人的证书,例如,可能需要使用智能手机和密钥卡设备访问他们的银行账户。手机和钥匙都包含私钥,而在音乐会允许个人经由其证书中的S获得他们对其银行账户的访问。在这种情况下,证书包含一个策略进行身份验证,而不是一个公钥。该公钥由策略S中的角色持有。为了澄清,Pm被替换为一个包含角色X的策略声明S,角色X自己的Px可以是私钥或可以是另一策略声明Sx。在这种情况下,重要的是并不会形成循环嵌套Sx语句。例如,如果Ul具有包括“U2”的SI,并且U2具有包括“U1”的S2,则声明无法等同于真,因为无论是从PPK语句输入,可以声明Sm的一部分设置为真。在一些实现,可以使用深度条件有限,这个循环,只允许一定整型数的递归进程退出,返回值之前将返回假。在一些实现方式,策略S只有在至少一个路径返回真值时才合法。
[0212]虽然在其他文献讨论分词器,但是值得注意的是声明中包含经由语句S’控制的Ul,S可以通过用S’替代Ul而扩展,无论Ul出现在S中的什么位置。例如,如果S是“Ul和U2”,并且S,针对Ul存在并包括S可以用S,替代“U1”的“U4和U5”,则产生“U4和U5和 U2,,。
[0213]多个策略可能存在于单个L,每个处理系统中的具体行动或权威。例如,访问、身份验证、更新等。在一些实现,可以创建任意数量的这些策略,分配和管理用户以同样的方式,一个所有权的策略可以用CA创建和管理。参见图15为凭据JSON格式的一个例子。在特定的实现,这些策略声明可能存在于CA颁发的证书。在其他实现,这些策略声明可能存在于自己的签名和真实的消息,也由CA签名。
[0214]在一个典型的实现,策略将通过图15中的ALGOY存在的凭证可更换。也就是说,这些策略(如群组)通过一个证书更新过程所取代。有些实现可能希望单独更新这些独立的策略。在这种情况下ALGOY将存在,对于每一次这样的执行策略声明。这种机制提供了一个分布式的概念更比一般在我的脑海里,“身份”和次要的影响包括管理成本增加,复杂性增加,等等。
[0215]在一个实现中,CA将提供临时凭证提交的任何请求实体的公钥。这些证书将包含一个简单的数值增加,从不重复。这样的证书将不同于彼此的识别指标只基于这个数量和相关的公共密钥。此外,这些凭据将明确的标志系统,这样他们不能用于其他目的。任何用户都可以随时请求这样一个证书。例如,一些用户可能会请求包含一个串行1000这样一个证书。下一个请求这样证书的用户将获得证书1001等。相同的实体可以请求任何数量的这种证书。这方面的一个变化是允许这样的证书包含实体信息。这一信息将匹配Ux的身份如果Ux是请求者。本证书不得用于任何形式来识别Ux。它的目的只是建立一个任意的序列号之间的关系和一个公钥在一个安全的和可寻址的方式。
[0216]假设Ux创建一个新的PPK密钥Px’,并且请求包含一个独特的证书Px’ (公共部分)使用上面的机制。将此称为临时证书Tx。Ux现在已经是PK中公认的证书,并提供了一个机制,通过该机制其他用户可以使用其序列号验证Tx的唯一性。此外,Tx现在可以由Ux临时用于验证PK的其他成员不是作为Ux,但作为PK中唯一的实体。唯一性由唯一的序列号限定。
[0217]在一个实现方式中,Ux和Um是人,Ux在现实世界联系Um并且要求他们向CA提交针对Ux的密钥恢复请求。在优选实现方式中,Ux将序列号口头向向Um通信。其他的通信方法包括电话、口头面对面,或通过视频声音。重要的标准是,Ux通信需要一个新的密钥,Tx中的序列号,并且Ux向Um提供了强大的身份证明。身份证明在这种上下文意味着Um认识到Ux作为Cx的合法拥有者,Ux是人,并且Ux是Um认为是合法所有者的人。最好的解决方案是Ux和Um的物理会议,第二个最好的将是视频,第三最好将电话等。较强的所有权的证明和身份越好。替代或支持机制可能包括DNA样本,指纹,或某种类型的生物识别技术。具体使用和程序的这些不是本文的范围。然而,意图是Um能够识别Ux并确定他们不是试图通过欺骗Ux的真实世界身份来获得对Cx或Cx’的控制的攻击者。人以外的实体将使用一组不同的身份证明识别标准超出了本文的范围,但这可能包含共同的秘密,对计算设备的物理访问,等等。
[0218]在一个实现中,Um创建针对Ux的签名的更新消息RCx,其中包含Cx中的信息,不包括公钥,和Tx中找到的唯一序列号。Um向CA发送此消息。
[0219]在一个简单的实现,如果任何Um证明Ux控制Tx中找到的公钥Tx,则CA将创建Cx’。在接收RCx之后,CA应该验证Cx’中的信息匹配Cx中的信息,并创建Cx’。这些步骤参考图16的ALGOX,制定更正式地陈列如下:
[0220]1.Ux 创建 PPK Px,(或策略 Ax)
[0221]2.Ux从CA请求证书Tx,其中Tx包含Px’(或Ax’)的公用部分
[0222]3.Ux联系执行Ux的身份的某些真实世界验证的Um
[0223]4.Um创建包含Cx中用户身份信息和Tx的序列号的签名消息RCx
[0224]5.CA通过将RCx中的序列号与Tx中的序列号匹配来提取Tx中的公钥
[0225]6.CA验证Um的签名并且验证RCx中的身份信息,继而创建包含Tx的公钥和RCx中用户信息的Cx’
[0226]在步骤6中创建Cx’的简单机制在很多情况下都是不被推荐的。很显然,获得PK中Um的控制的攻击者将允许攻击者妥协系统中其他Cx。下面是一个更健壮的机制。还要注意,Tx不是创建Cx’所必须的。它仅仅是有用的。每个Um相反可以向CA提交包含Ux的识别信息和Px’的公有部分的更新证书。公钥可以在Ux与Um之间验证过程期间给予Um。Tx仅仅为公钥部分提供了一个更加自动化,人性化的方式达到CA。
[0227]定义在Ux控制Cx时由Ux签名的消息RAx,其包含L和Ux的标识信息。至关重要的是,Ux在Ux被发布PK中Cx之后不久并且在Ux失去对Px控制之前创建了此消息。如果Ux在RAx被创建之前失去对Px的控制,则整个更新策略失败。在一个实现中,Ux创建了 RAx作为创建Cx的原始过程的一部分。也就是说,Cx和RAx级联创建。这就消除了期间RAx不存在的任何时间段。这可以防止攻击者永久破坏Ux重新恢复并替代Cx的能力。
[0228]Ux向CA提交RAx。CA通过检查RAx被Px签名,并且Px对应于Cx来验证消息,该Cx由CA签名。CA继而不确定地存储RAx。此消息将定义规则,根据该规则PK的成员可以要求针对用户Ux替代证书Cx’的创建。
[0229]Ux现在联系每个Um并且要求他们使用前面描述的方法向CA提交恢复密钥请求。每个这种Um提交标识针对Ux的信息的签名消息RCx,以及对应于Px’的公钥。Ux可能需要接触不到M个Um用户,如果S中的规定指示较少用户需要产生布尔输出值真。
[0230]CA从G中的不同Um用户接收若干RCx消息。CA用CA签名的有效证书Cm验证源自PK中Um的每个签名消息。CA还验证每个RCx包含相同的公钥。如果不是,CA应该计算收到的所有RCx,其中公钥匹配RCx的大多数。不匹配的RCx应当被丢弃。
[0231]可能存在多个有效RCx消息从单个对等X存在,该单个对等X包含针对Ux的有效密钥信息。例如,对等可以发布两个凭证,每个包含不同的公钥作为恢复的目标,如果Ux向对等发送恢复凭证请求两次,则具有两个不同的密钥。CA无法确定哪一个应该使用。在这种情况下,CA通过针对Ux的唯一公钥从所有对等收集所有传入凭证成集合。如果所有RCx消息集合中不止有一个公共密钥,则CA可以针对每一个创建集合。CA继而处理每个这样的集合。第一集合通过所有权策略的标准决定了 Ux的新公钥。在某些情况下,没有一个实体的公钥用于身份验证,而是一个身份验证策略。
[0232]CA然后针对Ux加载并执行L中的S,计算输出值。输出值通过将每个Um的真值插入声明S中计算。例如,如果S是“ (Uy和Uq) ”并CA从Uy收到有效RCy,但没有从Uq收到任何事物,则S就计算为“(真和假)“这将有错误的输出值。如果计算的结果是假,则CA什么也不做。如果CA计算值为真,则CA验证针对针对S写入的标识正确。如果是这样,CA针对Ux创建Cx’,并且恢复是成功的。这些被称为ALGOY步骤被正式提出如下:
[0233]1.当Ux最初获得PK中证书Cx时,Ux随后向CA提交包含数据对象L的签名消息RAxο此签名必须是Ux的签名,或如果Cx包含策略S而不是密钥,S中认证角色的足够签名用于认证RAx。
[0234]2.CA认证RAx的签名和有效性。如果有效,则CA不确定地存储RAx
[0235]3.稍后,Ux失去对Cx (或策略Ax)的控制
[0236]4.Ux创建新的PPK Px’ (或策略Ax’ )
[0237]5.Ux从CA请求证书Tx,其中Tx包含Px’的公有部分
[0238]6.Ux联系唯一 Um,其执行Ux的身份的某些真实世界验证
[0239]7.Um创建包含Cx (Ax)中用户身份信息和Tx序列号的签名消息RCx
[0240]8.CA通过匹配RCx中的序列号与Tx中的序列号在Tx中提取公钥[0241 ] 9.CA验证Um的签名和验证RCx中的身份信息
[0242]10.CA然后执行RAx中的S,Um的每个实例替换为“真”只要Um签名或者策略Cm(Am)评估为真。为G中签名RAx或有评估为真
的策略Cm(Am)的每个唯一 Um,,重复这个步骤。注意,策略评估可能是递归的。
[0243]11.如果S评估为真,则CA创建包含与Cx相同的信息的Cx’,而是具有Tx中找到的更新的公钥。
[0244]12.然后CA无效针对Ux的前Cx (Ax)并且发布新的Cx’(Ax’)。使用CRL这可能发生,或者最好,新颖密钥撤销中概述的唯一撤销过程。请注意,在这种情况下,每个RCx消息必须包含Cx中找到的公钥(或Ax中的策略信息)。否则CA不会知道给定RCx消息想要替代哪个Cx。如果不存在,这将允许攻击者执行重放攻击。
[0245]重要的是Ux能够在G变化的情况下更新RAx。有可能某些用户不再在PK,新成员应该被添加到G等。因此RAx应该是可替换的。然而,Ux不能安全地取代RAx。想象Px被攻击者破坏。如果Ux可以更新RAx则攻击者也可以。攻击者可以用有利于攻击者的RAx取代RAx。如果Ux意识到他们不再具有对Px的控制,就会没有资源,因为RAx将不再包含针对Ux的置信群组,而是无论攻击者放置在RAx中。因此,更换RAx应该使用另一种机制。
[0246]相反,RAx应该以相同的方式可更换,创建Cx’或Ax’。Ux添加其选择Tx的新的L’。每个Um然后创建包含Tx系列的签名消息和将其发送给CA。CA继而使用ALGOY步骤10验证每个消息和计算S的相同的结果。如果真,则CA在步骤11用包含L’的RAx’取代RAx0 CA然后停止使用RAx并使用RAx’用于所有未来的续签。这个过程与在ALGOY发现的相同,除了在步骤11中,CA用包含L’的RAx’替换RAx,并且Tx包含L’。
[0247]在一个实现中,可以结合多个RCx消息到发送到CA的单个消息。自从RCx消息中的密钥信息是用户身份信息和序列号,这个信息可以添加到一个文件,这是由一个或多个Um成员签名。文档与多个签名可以提交CA代替多个个体RCx消息。见图17。
[0248]在一些实现,RAx’的更换(修改ALGOY的步骤12)可以被放置在一个托管对于一些预定的一段时间。这可以防止攻击者获得授权S中节点的控制并且在凭证所有者有时间反应之前重置凭证。在这种情况下,CA不立即执行步骤12或公开发布RAx’。相反,CA存储RAx’ 一些预定的时间段。在一些实现,此时间段设置证书所有者通过添加一个时间段的数据对象L.在一些实现,时间是固定的系统。在此期间CA可能接触每个授权实体和Ux并通知那些凭证重置正在等待的实体。备选地,CA可以发布一个公共签名消息称凭据复位,等待,并允许Ux和其他授权实体来定期检查公共位置。这个过程部队攻击者捕获和保存的凭证在较长一段时间,同时通知各授权实体,等待复位。如果这些实体每个自己使用相关认证更新机制各自的Cx凭证,和每一个单独的RAx与其他授权实体更新证书,是不太可能的攻击者接管并持有大量的凭证没有实体Cx’的续签需要一段时间。
[0249]现在可以执行一个安全比较计算多少更安全这样的设置是比现有PKI更新程序。在现有最先进的实现总是有一个单点故障。安全官员或集团负责更新的过程中创建了一个签名请求受到CA的尊重。这是运用。然而,如果安全官员或集团的签名密钥被攻击者破坏,攻击者获得访问未来创建新用户证书之前,密钥可以撤销。
[0250]虽然不太可能一个人会有相同的安全上下文或安全培训程序组或官,我们还可以看到,通过置换计算不难超过一组的安全或官员使用的多样性更不安全密钥一致行动。例如,包含刚从两个独特的Um实体2个额外RCx签名除了一名安全官员的签名有一个戏剧性的效果。如果每个Um的凭证在Cm的寿命期间有极大提升50%的机会妥协,则总安全仍增加400%的安全官员的密钥。事实上,每一个额外的用户添加“值”这个列表(使用S中的布尔操作)进一步增加了安全系数的200%。这是一个指数函数的机会妥协崩溃的1/2为每个额外的用户。这种方法显然是比任何现有恢复密钥过程具有更安全的程序。进一步,相关认证原则上可以申请任何的控制特点期望收益率相同水平的增加安全认证,数据访问,代表团等。
[0251]ENT中的相关认证:
[0252]当验证名的密钥失效或破坏时,相关认证可以用来重建验证名的控制权。验证名的所有者(Ux)创建了一个列表的对等ENT用户所有者信任谁。这些用户成为所有者的验证名更新对等群体。当所有者失去控制的验证名对等人的所有者将接触足够(G)重新建立验证名的控制权。对等的精确计算方法,许多对等人可以重建控制是留给验证名的所有者定义(通过声明)。当然,这意味着用户创建了一个所有权策略早些时候(RAx)。
[0253]在一个实现中,所有者可以重建控制验证名首先从头创建一个新的ENT验证名(相当于创建Tx)。创建这个新验证名之后它可以用于安全传输和身份验证与其他ENT对等。这验证名可以用来联系更新对等。每个对等可以(通过语音或视频聊天)验证的用户是正确的所有者验证名被更新,然后保证更新通过创建一个签名认可(RCx)。这种支持可以转移到根,然后补发一套证书验证名的问题。注意,每个根执行ALGOY独立,通过组合在集团机关发现部分,Cx的证书成为新的验证名凭证为Ux0
[0254]验证名发布后,验证名持有者可能向根提交签名的所有权策略消息(RAx)。所有权策略消息签名的消息由验证名所有者,包含一个策略声明(与上述声明S—样)和一个对等更新成员列表(上述对象L中的列表),允许验证名法律更新,包括一个新的PPK。
[0255]更新凭证消息(上述RCx消息)是更新对等组的任何成员针对给定的验证名签名并且向根服务器提交作为认可的消息。
[0256]策略消息包含一个布尔表达式,每次执行一个根接收更新凭证信息,包含布尔表达式的目标验证名id。如果是真的,根将发行新证书验证名其中公钥匹配是密钥在所有有效的更新凭证信息。
[0257]根据相关认证,所有权策略的布尔表达式包含变量、逻辑运算符和逻辑函数评估一个正确或错误的值。结合形成一个布尔声明。每个变量是一个验证名id。对于每个签名,认证更新凭证信息收到,适当的验证名id将被替换为一个真正的价值。如果布尔表达式的求值结果为真,没有任何更新现有凭证,这一策略被认为是无效的,并且不被保留。如果布尔表达式包含验证名id的所有权策略,该策略被认为是无效的,并且不被保留。
[0258]所有权策略消息包含布尔语句和对等验证名的列表。这个对等验证名id列表必须包含验证名id发现作为变量的布尔表达式。第一个有效策略送到一个根是唯一这样所有权策略。任何后续策略消息丢弃(除非他们伴随着足够的凭证来建立新的策略如下所述)。因此,重要的是所有权策略是尽可能方便地发送到服务器后验证名证书已发布。如果攻击者能够短暂地抢夺用户的私钥,和所有权策略消息没有发送,签合同将会永久的和不可逆转的。如果启用了验证名持有人不希望对等所有权策略验证名持有人应提交到主干所有权策略在布尔语句总是求值结果为假。
[0259]为改变现有策略,必须满足以下标准。
[0260]1.对等验证名发现点列出现有的所有权策略可能提交有效的所有权策略信息,其中布尔表达式和验证名id列表匹配所有这样的消息;以及
[0261]2.目前的所有权策略必须满足布尔语句替换在布尔验证名id变量声明时为真。也就是说,现有的所有权策略逻辑语句中每个验证名id被替换为真值如果认证所有权策略从匹配验证名id信息已经收到,并且布尔语句然后评估为真。
[0262]满足这些标准建立的对等群体授权更新目标验证名也授权策略的变化。它还建立新布尔就是约定的声明所有涉及到的对等。在这一点上现有的策略是新策略所取代。
[0263]在一些实现,改进可以防止信息泄漏。信息泄漏可能发生在验证名更新对等看到任何人检查所有权策略。跟踪后续验证名之间的关系可以产生一个连通图用来推断验证名之间的连接和简化现实世界映射到人或机器。攻击者的信息理论上规划协调攻击一组节点,将允许他们获得永久验证名的控制。改进防止这种情况可以,但会增加系统的复杂性。
[0264]在一个限制的信息泄漏,实现每个所有权策略(L)的内容可以使用公钥加密的部分每根的PPK创建一个L’。一旦加密,只有根服务器能够解密的加密内容L。任何其他外部党不能解密的内容L.根接收更新凭证时,根可以解密的内容L’以生产L,然后计算值S如上所述。
[0265]在一个实现,外部审计设施A能够验证和审计更新的过程是有价值的。这意味着A能够计算L’。验证名的所有者O具有L,因为O在加密和发送到根源之前最初计算L。在一个实现方式中,O简单地将L放置在相对私人的地方。在优选实现中,O可以向根请求L。在这种情况下,O联系的根将L’解密成L,用O的私钥加密L以产生L”,并将此消息传输给O。O现在可以使用自己的私钥解密L”和检索L。一旦O通过一些机制检索到L,O可以向A提交L。A现在可以通过用根的公钥加密L来计算和验证L’。这确保根是使用与A获得的相同的L。
[0266]在上面的实现中,A还需要访问提交给根的所有更新凭证以便执行一个完整的审计。A可以从O检索这些值。在优选实现中,A可以从根检索更新凭证直接。在这个实现中,根如前所述针对O更新策略或验证名。一旦更新成功,然后根整理所有更新凭证到单个对象,并用L加密对象,从而产生RV。然后根使RV公开。审计师A可以检索RV,使用L,检索所有更新凭证用于策略替代或验证名密钥替换。现在可以执行一个完整的审计,以确保一个根被允许重新验证名密钥或替换现有的所有权策略。在请求时执行针对O的审计的失败可能升级。根可能继而被确定破坏,如果没有正确的审计信息。
[0267]在一个实现方式中,L可能包含一个随机数或价值,使得L非常独特。例如,向L添加一个128位的随机值。这可以防止攻击者猜测潜在验证名id值L和S的格式和通过试验和错误重建L。
[0268]在优选实施方式中,当一个新的替换组凭证创建验证名,现有的凭证失效。这是一个新颖的方法通过密钥撤销,可以用在任何现有的PKI系统和描述如下。简而言之,有效证书签名的一个给定的根,最新的创建时间戳被认为是有效的证书。所有其他的证书具有相同验证名id与较早的日期时间戳被认为是无效的。
[0269]新颖密钥撤销
[0270]解释新颖改进需要提供适当的上下文。想象有一个证书机构,数据存储(通常称为一个目录)D,和用户U。U被认证来从A请求一个新的证书。U分别创建了一个非对称密钥K与私人/公共密钥对(px, py)。U希望创建包含py由A签名和认证的证书C。
[0271]在一个实现中,U在请求C之前执行以下步骤。
[0272]在另一更典型的实现中,U在请求C之后执行以下操作。
[0273]过程ALGOl参考图18描述如下:
[0274]1.U创建一组密钥的非对称密钥I到N,其中N是任意数量相匹配的假定寿命C证书更新前需要从a值N可以基于任何时间增量来确定。例如,如果证书之间的时间续签I年,增加I天,然后η = 366。这将提供一个证书对于每一个时间间隔,这是每一天。交替N可以确定基于空间,传播,或其他要求,数量和间隔可以来自N值N不需要大于1,在这种情况下,钥匙只包含I密钥对。U然后创建集包含证书I到N的集合S,在密钥对密钥[X]是用来创建一个证书[X],和每个证书签名的证书链C这样的C->C’是一个有效的证书链。S中每个证书还包含一个独特的价值证书“串行”字段。通常这个值就值I到N,其中S中的证书I序列值1,证书2系列值2,等等。
[0275]2.U签名S中具有px的每个证书
[0276]3.在一个实现中,U创建了包含例如,“N终止”的串行终止值的最终证书F。备选实现将使用不同的证书值,或针对序列值的不同的文本值以包含一些令牌,代表证书增量的终止。也就是说,它终止集合S,使得任何人看着所有的证书可以确定S中没有具有值大于N的更多的证书。在另一个实现中,F没有被创建,并且每个
[0277]4.在任何请求创建C(如果之前)和所有上述步骤已经完成之后,U破坏包含px, py的密钥Ko
[0278]K现在是不可恢复的。除非攻击者可以访问的机器这些步骤已经完成,攻击者不能访问K或创建与S中密钥类似或对称的额外密钥。U现在有S中的N个证书的列表数值增加,F和证书包含的信息清楚地表示集合S的大小,并明确表示终止。此外,U还没有与任何其他方分享这些证书。他们在本地创建,而A不参与。
[0279]定义包含N个对象的集合CERT,其中每个对象包含针对每个I到N之间的x的对(S(x)密钥[X])。
[0280]在一个实现,U现在加密CERT中的每个对象,并且用私钥P认证F,产生集合PS,其是大小N(每个包含证书或证书/密钥[X]对)的加密对象的集合。P是只有U知道的密码。
[0281]在另一个实现,U将CERT中的每个对象分裂成J个部分,其用J个人密钥进行加密。这些密钥可能不对称和对称密钥。如果非对称密钥,实现加密证书的每个部分对等用户。称之为对等群体T。在这种情况下,PS集由一组,每个都包含这些加密对象,每个子集由J部分组成。
[0282]在一个实现U将PS转移到目录用于存储。
[0283]在一个实现U将PS转移到其他对等用户存储。
[0284]在一个实现U将PS离线存储在磁盘驱动器或其他存储介质如笔驱动。
[0285]在一个实现U打破了 PS中每个对象P”为J个部分,并将每个这样的部分放置不同的位置。位置可能包括上述地点如对等、本地存储、CA存储,等等。
[0286]定义证书C’ (C原语)为集合S中的任何证书。PKI系统必须将任何证书C’视为具有C的有效性。其可以验证C’保持正确的证书链A。A签名C,C签名C’。因此,C’具有使用PKI证书链到A的直接路径。已经很明显,每个C’已经被C签名。因此,PKI系统的其他成员可以清楚地跟踪C’到A如果他们有C的记录,并允许受信任的沟通、身份验证、授权等系统内发生U当U持有C’。
[0287]每个用户(目录、个人、CA、第三方等)的PKI系统必须把证书C’包含更大的连续值作为有效的证书,和任何现有的证书签名的C较小的连续值作为撤销与无效。
[0288]在一个实现,包括上面,每个用户接收包含终止的最终证书F值必须用C’不再允许任何事务。
[0289]参考图19,以下示例演示了此概念:
[0290]1.具有序列值2的C’被提交给目录D
[0291]2.D包含具有序列值I的C’
[0292]3.D丢弃具有序列值I的C’,并且存储具有序列值2的C’
[0293]4.用户H请求针对U的证书并且接收具有序列值2的C’
[0294]5.F被提交给目录D
[0295]6.用户H请求针对U的证书并且接收F。用户H不允许交易和任意未来交易
[0296]因此,当前最新C’在PKI系统被认为是有效的C’和所有其他较低的序列值被忽略和考虑撤销。如果任何用户系统的串行接收更大的值在一个C,那么C的使用,任何连接打开到一个较低的序列C的关闭,所有服务对于那些低串行C’证书都是禁用的。
[0297]在一个实现中,当一个请求或签名指令,或进行其他业务或发起任何实体持有私钥部分C的一个用户,用户查询多个目录,以检查是否更大的C’存在。如果是这样,请求或取消业务,实体断开连接,等。也就是说,低价值的持有人C’不被认为是一个有效的所有者。它可以表明,在这样的一个实现,每增加一个额外的目录添加到查询中,机会更大的值C’发现,假设有一个目录组成PKI的整个世界。
[0298]U现在有证书的列表,他们可以作为备选使用的C函数相同的加密强度。U可以使用任何C’的设置,只要其余的PKI系统只有看到C’和不C’有更高的价值。
[0299]将C1,C2……CN定义为CERT中的证书值。定义K1,K2……KN的公共/私人对密钥CERT,Kl解密使用Cl数据加密,Κ2解密C2编码的数据等。
[0300]C和U执行算法I迹象后,然后U就可以开始使用C
l和Kl。当Cl或Kl会丢失,或被盗,或基于一段,U可以执行下列操作。为清楚起见,在一个实现U每天可以旋转证书,或基于任何时期。U得到加密或分离对象包含C2和Κ2。这个对象是一个实现加密,U使用他们的私人密码进行解密。在另一个实现U收集所有数据块P”重组C2和Κ2从不同的位置,然后解密内容(如果他们解密)。在另一个实现U接触对等人T和每个成员解密和展示他们的部分U直到U可以重建C2和Κ2。
[0301]U现在有一个有效的C2和Κ2。U分配C2到一个或多个目录。每一个这样的目录替换Cl C2。未来所有的用户联系每一个这样的目录将C2 Cl,而是和可以确认它是有效的,Cl是无效的。在一个实现中,U还分发C2与一个用户列表,U或者与之交互。这些用户可以缓存C2,立即禁止攻击者使用Cl。在一个实现中,如果用户缓存C2他们没有联系的一个或多个目录要求最近的证书。
[0302]与Cl现在不允许攻击者访问数据和服务为U —旦C2引入系统。Cl是撤销在实践中,即使没有明确撤销流程执行。相反,C2无效的颁布和消除使用Cl。这种积极的控制是非常强大的,因为它使U管理自己的证书有效性现状和颁布的知识系统的新证书用户谁将受益于最了解。
[0303]注意,当时没有必要U请求证书,证书撤销列表(CRL),或者来自A的其他数据。撤销已由U和各种系统的其他部分,只有当一个事务发生。进一步,没有人员参与任何手动方式除了 U和对等群体他们依赖重建C2。为每一个未来的Cx,X是I到n,U可以执行相同的操作。在一个实现中,当或如果U决定他们的证书应该不再被使用,或因为C不再包含一个有效的时间戳,U可以释放证明F到PKI系统通过目录或者其他手段。在另一个实现,而不是使用ALGOl的步骤2,每个密钥迹象而不是与px签订每个密钥。A必须签名证书,但不得发布或公布这些证书,除了第一个Cl。在这种情况下,证书链看起来像A->C’。否则,步骤都是一样的。
[0304]旅行密钥:
[0305]执行密钥更新授权使用关系需要沟通与中央根,对等的参与,O的一部分上的一些时间和精力。此外,每次用户必须执行更新过程中央根必须参与,这可以产生额外的ENT中央系统上的负载。它会更好,如果用户有可支配的钥匙。这将允许用户切换设备暂时托管私钥用于各种目的,允许的情况下,他们的设备丢失或被盗,等等。它还将允许用户无需接触更频繁的更换钥匙一个根服务器。理想情况下,用户应该尽可能经常接触根服务器。ENT这些可替换的密钥叫做旅行密钥。旅游主要由私人非对称密钥和公共证书包含一个序列号。按照上面的部分,一个更高的序列号在旅行密钥证书无效的任何以前-现有旅游密钥证书编号较低。
[0306]旅行密钥使用上面的主要失效机制和删除。验证名的私钥部分用于旅行的签名和创建一个组密钥。那密钥是摧毁,留下一套旅行密钥提供等效的安全级别和必要的滚动密钥的能力。
[0307]在一个实现中,旅行的一组密钥。在练习数量会有所不同,但30或更多应该足够了。此外,终止证书也按上述规则创建的。如果终止证书发布任何按ENT对等节点,这些对等节点将不再接受现有验证名证书,和验证名需要重新使用对等更新过程。
[0308]在一个实现用户也可以将其部分或全部的钥匙在一个安全的地方旅行。然而,在优先实现旅行密钥将分布在一些群对等。对等可能对等人一样用于对等更新过程,或他们可能是一个不同的组。
[0309]在一个实现中,将分布式存储(直到需要)对等以循环方式。例如,如果有3密钥将分发给对等,然后对等I将获得密钥系列1、对等2将获得密钥2等等。这允许用户接触任何对等并获得更高的序列号的密钥。自最高序列号的ENT系统被认为是有效的密钥,任何对等应该能够产生一个更高级的密钥。在优选实现中,终止与所有对等人证书存储。这使得它可以访问用户从任何已知的对等。
[0310]在一个实现中,每个分布式密钥将加密的密钥只知道验证名所有者。这可以防止任何对等获得随意验证名凭证或如果他们的设备或存储器包含凭证成为破坏或被盗。这种机制将使用任何加密对称密钥加密过程的每个密钥的证书和私钥对旅行。选择的对称密钥的密码验证名所有者。
[0311 ] 实现相关认证和旅行钥匙的操作注意事项
[0312]在首选实现,ENT允许用户提交他们最近旅行任何或所有的密钥根源。根商店最有效的旅游密钥观察ENT系统用户。在实践中,当用户开始使用一种新的密钥旅行,他们将提交一份密钥根服务器,这样任何查询节点最近的根密钥将返回密钥。
[0313]在一个实现中,五官科允许用户更新其他节点直接传送他们最近的旅行这些节点的密钥。这就是所谓的密钥自发布之日起施行。这是很有用的,当一个用户拥有无数ENT使能服务,可以直接联系。在这些情况下,用户(或代表他们的一些软件)可以联系所有记录的用户的服务,直接和传递最新的旅行的密钥。五官科鼓励节点保持缓存其他节点验证名s,特别是如果这些节点有关系。如果一个ENT节点接收密钥证书旅行,比现有的证书,证书更新更有效的旅行的密钥,节点应与新版本替换现有的密钥证书。这个概念是非常有用的,因为它确保给定用户所使用的任何服务用户的最近ENT凭证。这缩短了数量的机会,攻击者可能会使用一个妥协密钥或旅行之前验证名凭据。此外,根据服务的安全策略可能会提高性能。
[0314]在一个实现中,花在网上放有多个数据存储。这些商店包含一系列验证名旅行凭证和密钥对一些系统上的验证名子集。用户可以使用密钥与这些中心自发布之日起施行。与任何用户服务中心接收更多有效验证名凭据或旅行密钥将取代现有的副本更有效。在实践中,数据存储可能会服务的一系列验证名标识符。一旦数据存储将覆盖验证名id1-1000,另一个可以覆盖验证名id 1001 - 2000等,另一个将覆盖验证名id等。在实践中是否有多个数据存储覆盖范围相同的id。在多个数据存储在哪里覆盖相同的验证名id范围,这些商店应该沟通成功更新验证名凭证,或密钥移动到另一个商店覆盖相同的验证名id0
[0315]密钥公布服务优先作为第一步在根上面提交机制的第一步。密钥公布数据存储是优选第二步。所有步骤都建议在实践和应尽快完成所有步骤。在优选实现中,更高的服务价值损失的情况下妥协前应该联系价值较低的节点。毕竟服务更新,数据存储应被更新。根的更新将会完成。
[0316]在其他实现,可以使用不同的传播技术。例如,一个对等网络可以用来搜索大量对等新凭证。许多其他类似的拓扑结构和技术存在。
[0317]可以设置级别的安全性基于临界给定节点提供的服务。
[0318]例如,银行使用ENT将具有更高的比一个聊天网站要求严格的有效性检查,因为损失的成本较高。执行严格的测试增加的成本事务的时间(延迟),带宽,并通过若干倍数计算。因此,ENT光谱提供了一个安全的水平。验证验证名包含两个主要阶段。第一阶段称为树冠验证,由验证现有的证书,每个签名了一个不同的根。如果有N根完整的树冠验证将是一个安全检查N/2根以上签名链在哪里确认。然而,这可能是更安全比是有用的对于某些类型的交易。因此I到N/2+1签名链必须验证对于一个给定的事务。高安全事务应该执行一个完整的安全检查(100%或更多的信任级别组中定义的权威部分)。微不足道的或非常低的交易价值,一个签名链检查一个根可以完成。注意检查只有一个根签名链可能允许攻击者控制,根欺骗用户。这是减轻更多的根链进行验证,因为它减少了机会,攻击者会受到损害多个根。在整个树冠的验证级别,攻击者必须获得超过N/2节点的控制;实际上,控制了整个ENT系统。
[0319]第二阶段包括系统寻找验证名凭据和旅行密钥证书(如果使用)是最有效的。如果攻击者访问服务,通过一个过时的凭证,和服务没有检查更新证书的存在,该服务将假设攻击者证书是有效的。对于高价值的交易,最安全的机制之一是检查适当的数据存储为一个有效的验证名凭据,旅行和一个有效的密钥。对于低价值交易,然而,这一步可以省略,或者有“懒惰”的基础上。一个懒惰的检查允许事务继续。然而,检查是异步完成适当的数据存储在事务允许继续。如果搜索找到一个新的凭证和证明现有的凭证用于启动事务是无效的,事务应该终止和撤销,如果可能的话。
[0320]在一个实现中,第二阶段检查可以跳过如果搜索已经及时的时间内完成由用户决定。例如,可以跳过检查以前的搜索已经过去30分钟内完成。
[0321]—个优先实现使用三个安全水平。“简单”水平检查只是执行树冠验证对单个根和不执行第二阶段。“基本”级别执行一个完整的安全检查,然后执行一个“懒”寻找新的凭证。“完整的”水平检查凭证执行一个完整的安全检查和搜索允许继续一个事务之前。
[0322]在一个实现中,事务可以被缓存。这使得树冠上跳过验证后续事务,直到验证名凭证或旅行的密钥变化。在第一个事务验证名,需要一个树冠验证服务。然而,检查完全由以确保大多数根给定验证名担保。如果一个验证名凭证没有改变初始事务之后,随后的交易可以使用这个缓存结果,而不需要执行另一个树冠验证。
[0323]—旦安全检查已经完成,该服务可以请求所有权的证明。这可以确保用户开始事务与服务的正确的私钥部分密钥旅行,旅行或者密钥是不习惯,部分匹配的私钥验证名中发现的公共部分。这通常涉及到一个握手机制,如发现在TLS标准。这个话题很受其他来源,遵循传统机制的发现在PKI系统中确定真实性,建立私人沟通渠道。在ENT旅行密钥可以使用,如果可用。否则,任何证书验证名凭证可以使用,因为他们都有相同的公共密钥。
[0324]在一个实现中,当一个事务启动用户会传输到服务最近验证名和旅行的密钥信息。这可能允许服务来处理事务,而不需要联系其他服务是否执行“简单”或“基本”安全检查。
[0325]现在参考图20,框图根据一个实施方式图示了系统100,包括用户访问终端105,其使用上述ENT系统访问其他系统。用户访问终端105可能是一个数量的设备,如智能手机,手机,VoIP电话,个人数字助理,平板计算机,笔记本计算机,便携式数字音乐播放器,或其他移动设备,语音或数据通信,或任何上述的组合。用户访问终端105也可能包括一个网络连接的计算机系统,包括一个有线或无线连接局域网,例如。这将是容易明白用户访问终端可能包括任何合适的设备的操作来执行控制用户访问电子应用程序的功能,和图15中所示的特定组件的说明描述的一般概念和讨论。在各种实施方式中,用户访问终端105有能力操作根据上述例子。
[0326]在图20的实施方式中,用户访问终端105直接或通过网络连接到一个访问系统110。这样一个网络可能包括任何合适的网络能够传送数据的许多不同的协议。这种网络是众所周知的,在这里不需要进一步详细地描述。访问系统I1互联到网络115,例如,互联网,其具有其他网络附加组件。一个中央服务器120连接到网络115,并且在各种实施方式中,执行如上所述与ENT系统相关的功能。中央服务器计算机系统120,例如,可以由一个或多个服务器计算机、个人计算机、工作站、web服务器、或其他合适的计算设备组成,并且个人计算设备对于一个给定的服务器可能是本地的还是远程的。用户系统125也可以直接连接到网络115。这样的用户系统125可能是另一个用户访问,可以使用上面描述的系统。
[0327]本发明已经描述了使用具体的实施方案中,为了说明的目的,只。然而,本领域普通技术人员容易理解本发明的原理可以体现在其他方面。因此,本发明不应被视为限制在一定的范围内,对特定的本文所公开的实施例,而是完全相称的范围有以下要求。
【主权项】
1.一种用于创建针对个人、实体或电子设备的唯一标识符的方法,所述方法在包括大于一个的数目(N)个根服务器的群组机构结构中实现,并且包括以下步骤: 在第一根服务器从请求者接收针对唯一标识符的请求; 在所述第一根服务器发布包括唯一标识符和策略的第一证书,其中所述策略包括一个或多个其他唯一标识符和至少一个布尔操作符或数学函数,如果所述策略中其他标识符的数目大于一; 在所述第一根服务器用来自与所述根服务器相关联的公钥/私钥对的私钥签名所发布的第一证书; 从所述第一根服务器向每个其他根服务器传输所述签名的发布的第一证书; 在每个其他根服务器,验证所述签名的发布的第一证书的所述抽象唯一标识符; 在每个其他根服务器发布包括所述唯一标识符和所述策略的附加证书; 在所述每个其他根服务器用来自与所述相应其他根服务器相关联的公钥/私钥对的私钥签名所发布的附加证书; 在数据库存储向所述请求者的所述签名的发布的第一证书和所述签名的发布的附加证书。2.根据权利要求1所述的方法,其中N是奇数并且每个根服务器独立于所有其他根服务器签名并操作。3.根据权利要求1所述的方法,其中没有两个根计算机服务器可以向两个不同请求者发布相同唯一标识符。4.根据权利要求1所述的方法,其中每个根服务器认证用于发布唯一标识符的排外范围。5.根据权利要求1所述的方法,其中向所述请求者的所述签名的发布的第一证书和所述签名的发布的附加证书不包括所述请求者的任意描述或标识。6.根据权利要求1所述的方法,其中当所述签名的发布的第一证书和所述签名的发布的附加证书的数目(X)有效时,所述抽象唯一标识符被认为有效,其中X = N/2+1。7.根据权利要求1所述的方法,其中所述请求进一步包括所述策略。8.根据权利要求1所述的方法,进一步包括以下步骤: 在所述根服务器接收针对所述第一发布证书中所述唯一标识符的恢复的恢复请求,其中所述恢复请求由与具有私钥的所述其他唯一标识符相关联的每个人、实体或电子设备签名; 在每个根服务器,通过执行所述第一发布证书中的所述策略验证所述恢复请求; 在每个根服务器,发布替代证书以替代所述第一发布的证书; 在每个根服务器,用来自与所述相应其他根服务器相关联的公钥/私钥对的私钥签名所述替代证书;以及 在数据库存储所述签名的发布的替代证书。9.根据权利要求1所述的方法,其中所述群组机构自动实施所述策略。10.根据权利要求1所述的方法,其中所述第一发布证书包括公钥或与所述请求者相关联的公钥的标识。11.根据权利要求1所述的方法,其中所述策略包括用于替代或更新所述唯一标识符的策略。12.根据权利要求1所述的方法,其中所述策略包括用于认证所述唯一标识符的策略。13.一种用于创建针对个人、实体或电子设备的唯一标识符的方法,所述方法在服务器上实现并且包括以下步骤: 在所述服务器从请求者接收针对唯一标识符的请求; 在所述服务器发布包括唯一标识符和策略的第一证书,其中所述策略包括一个或多个其他唯一标识符和至少一个布尔操作符或数学函数,如果所述策略中其他标识符的数目大于一; 在所述服务器用来自与所述服务器相关联的公钥/私钥对的私钥签名所发布的第一证书; 在数据库存储所述签名的发布的第一证书。14.根据权利要求13所述的方法,其中所述签名的发布的第一证书不包括所述请求者的任意描述或标识。15.根据权利要求13所述的方法,其中所述请求进一步包括所述策略。
【专利摘要】本发明提供了一种实体网络翻译(ENT)计划使用公私密钥对抽象的身份识别和认证技术和PKI的概念,比如一个证书颁发机构和证书链。ENT可能给予任何数量的真实,无限期,抽象的标识符到任意数量的请求者。这些抽象的标识符都称为验证名,即“验证的名字”。他们允许任何个人或实体,为任何目的,建立电子和控制事物的真实身份,并建立这些身份之间的关系。据一些体现,ENT避开传统PKI关系建立问题通过抽象的用户标识符,请求他们。其使用这些抽象标识符以及实体之间形成的定义它们的真实意义的关系。
【IPC分类】H04L9/32, H04L9/30
【公开号】CN104904157
【申请号】CN201380069609
【发明人】蒂莫西·莫斯伯格
【申请人】蒂莫西·莫斯伯格
【公开日】2015年9月9日
【申请日】2013年11月8日
【公告号】CA2889936A1, EP2918042A2, US20140136838, WO2014074865A2, WO2014074865A3, WO2014074865A9