证书撤销的制作方法

文档序号:7885109阅读:305来源:国知局
专利名称:证书撤销的制作方法
技术领域
本发明涉及验证通信系统中的客户端,尤其涉及在用于验证客户端的证书不再有效时更新节点。
背景技术
许多通信系统 包括由系统提供方进行操作的集中服务器。客户端可以通过访问那些服务器之一而获得服务。典型地,服务器在向客户端提供所请求的服务之前对其身份进行验证。例如,用户可能被要求输入用户名和密码,服务器相对于其所存储或有权访问的用户名和密码的记录对所述用户名和密码进行检查。一旦服务器已经验证了客户端,其就可以提供所请求的服务。其它通信系统被有所区别地进行配置。不同于仅使用由系统提供方所操作的集中服务器,网络可以包括客户端能够访问以获得服务的大量分布式节点。这些节点并不必然被系统提供方所拥有或操作。例如,节点可以是运行来自系统提供方的软件的用户设备,该软件使得它们作为通信系统中的节点。这使得能够通过实质上“浏览”数百万设备中的少量计算资源就能够创建通信系统。用户因此能够经由数百万节点中的任意一个对系统进行访问。在这样的分布式网络中,客户端不再必须访问集中服务器来获得服务。然而,仍然需要对客户端进行验证。一种选择是客户端向分布式节点提供其用户名和密码,该分布式节点随后对集中数据库核查。然而,分布式节点并不期望在毎次需要对客户端进行验证时都要联系集中服务器。ー种可替换的选择是向每个客户端分配公钥/私钥对。客户端能够通过向分布式节点发送已经利用其私钥进行过数字签名的消息来对该节点验证其自己。该分布式节点随后能够通过对该消息应用相对应的公钥来验证客户端。每个客户端通常被颁发以数字证书。数字证书形成RELOAD协议的一部分并且在C.Jennings等人的“Resource Location and Discovery (RELOAD) Base Protocol,,中有所描述。证书包含用户名和公钥之间的绑定,从而第三方节点能够确信公钥被分配给该特定客户端。证书可以由被节点所信任的中央服务器所颁发,或者由ー些受信任的第三方发行方所颁发。发行方利用其私钥对证书进行签署。由于节点信任证书的发行方,所以一旦其具有验证该密钥的证书就能够确信客户端的公钥被分配给了客户端。典型地,证书包括:
客户端的公钥
客户端的用户名 证书过期时间 发行方名称 发行方的数字签名。在大型通信系统中,每个节点存储系统中每个用户的证书是不可行的。证书因此需要被存储在系统中的其它地方,存储在可被分布式节点所访问的位置。一种选择是由中央服务器存储证书。然而,这将要求节点在它们每次想要验证客户端时都要访问中央服务器。ー种优选的选择是将特定客户端的证书存储在特定节点中。该证书随后可以遍及通信系统的节点进行分布。图1中示出了分布式电信系统的示例。总体以101示出的该系统包括总体以102示出的多个节点。该系统被描绘为“环形”结构,其中环中的每个位置被分配以数字。在图1所示的示例中,环具有22个这样的位置。然而在实际上,位置的数量可以为数百万的数量。每个位置可以被节点102所占据,而ー些位置则保持为空。跟随一个或多个空位置的节点将假设对直接处于其自身之前的空位置负责(例如图1中位置20处的节点107也对如103处所示的位置18和19负责)。与特定客户端相关联的证书可以被存储在其中一个节点中。在图1中,对客户端104的公钥进行验证的证书被存储在节点106中。典型地,将存储与ー个特定用户相关联的证书的节点的标识可以由中央服务器所确定,其随后能够将证书“推送”至适当节点。想要对特定客户端进行验证的节点能够从存储该客户端证书的节点请求它。在包括大量分布式节点的通信系统中存储数据的ー种方式是通过使用分布式散列表(DHT)。DHT通过存储键值对(key/value pair)以使得任何參与节点都能够获取与给定键相关联的数值而提供了与散列表相似的服务。DHT可以对维护键与数值的当前映射的职责在通信系统的节点之间进行分布,以使得參与节点中的变化导致最少量的干扰。为了使得系统中的节点需要针对其它节点所存储的数据量最小化,任意给定节点都可以仅被允许在覆盖区(overlay)内的少量位置存储数据。例如,RELOAD协议提供了允许给定键仅可由少量节点进行写入的访问控制。节点被允许进行写入的位置可以由其证书所确定。节点还可以被要求对要存储的每个数值用其私钥进行签署以对其在该位置进行存储的权限进行验证。对所要存储的数值进行签署还用来保护所存储数据不被篡改。因此在证书无效时通知覆盖区中的节点是非常重要的,不仅控制对系统的访问还保护了系统内所存储的数据不受流氓节点的侵扰。ー个问题在于如何在证书过期之前对其进行撤销。例如,如果用户膝上计算机被盗则其想要撤销该膝上计算机访问通信系统的权利。在可能包括数百万节点的通信系统中,这必然并不容易。中央服务器的一种选择是将有关证书撤销的信息推送至网络中的所有节点。这样的不例是 D.Cooper 等人的“Internet X.509 Public Key InfrastructureCertificate and Certificate Revocation List ( CRL) Profile” 中所描述的证书撥销列表。然而,如果这些消息过于频繁地传送,则它们会对系统性能造成不利影响。相反,如果它们没有足够频繁地传送来向节点提供关于证书撤销的及时更新,则留下了客户端会被提供以不再具有权限的服务的可能性,因为存储其证书的节点并没有被通知该证书已经被撤销。另一种选择是通过如 M.Myers 等人的“ Internet X.509 Public Key InfrastructureOnline Certificate Status Protocol - 0CSP”中所描述的那样使用在线状态检查而就证书状态更新节点。然而,这需要节点与集中的OSCP应答器(其可能是证书机构)进行联系以检查证书的当前状态。这种选择因此受到性能/及时性权衡的影响,从而试图获得最新状态信息的节点会通过利用状态请求轰炸中央节点而对系统性能造成不利影响。另ー个问题则由于存储证书的方式而出现。在RELOAD中,证书由中央机构发行并且随后存储在覆盖区中的给定位置(如以上所描述的)。该位置可由证书的拥有者进行写入并且因此对于被盗用节点所进行的攻击而言并非安全。因此,需要ー种有所改进的遍及通信系统分布证书撤销信息的方式。

发明内容
根据本发明的第一实施例,提供了ー种包括多个节点的通信系统,该通信系统被配置为为多个节点中的每ー个分配证书,该节点能够通过所述证书向通信系统中的其它节点验证其自己,该通信系统进一歩包括验证节点,其被配置为确定证书应当被撤销并且响应于该确定向通信系统中的ー个位置写入该证书撤销的指示符,该位置处于验证节点之外并且不允许被分配以所撤销证书的节点向其进行写入。该验证节点可以被配置为为多个节点中的每ー个分配证书,它们可以利用所述证书向通信系统中的其它节点验证其自己。该通信系统可以包括存储节点,验证节点被配置为将证书撤销的指示符传送至该存储节点并且该存储节点被配置为存储该指示符并且不允许被分配以撤销的证书的节点对其中存储有该指示符的位置进行写入。该存储节点可以被配置为仅允许验证节点向其中存储有该指示符的位置进行写入。该验证节点可以被配置为响应于确定证书应当被撤销而向被分配以所撤销证书的节点分配新的证书。该指示符可以识别作为最近向被分配以所撤销证书的节点所分配的有效证书的证书。该指示符可以包括与最近向被分配以所撤销证书的节点所分配的有效证书相关联的序列号。多个节点中的一个或多个可以被配置为在其希望利用分配给另ー节点的证书对该节点进行验证时获取与该证书相关联的指示符并且依据该指示符指示该证书是否仍然有效而对其它节点进行验证。多个节点中的一个或多个可以被配置为无论对应于特定证书的指示符何时发生变化都请求存储节点对其进行更新。该存储节点可以被配置为当对应于特定证书的指示符有所变化时将该变化的指示传送至请求更新的节点。该存储节点可以被配置为当其接收到对应于特定证书的新的指示符时将该新的指示符传送至请求更新的节点。该通信系统可以被配置为使得证书的撤销的指示符存储在多于ー个的节点中。存储该指示符的每个节点可以被配置为不允许被分配以所撤销证书的节点对其中存储有该指示符的位置进行写入。该通信系统可以被配置为定期向多个节点分发指示被分配给多个节点的证书的有效性的更新。该通信系统可以被配置为生成更新以包括分配给多个节点的一个或多个证书的有效性的压缩表示形式,以使得节点可能无法从更新明确确定特定证书是否有效。该通信系统可以被配置为通过以下方式生成更新:形成识别ー个或多个证书中的哪些证书有效并且ー个或多个证书中的哪些无效的数据集合并且通过向该数据集合应用有损压缩算法来生成更新。该通信系统可以被配置为将该数据集合形成为位图,其包括至少与ー个或多个证书的数量一祥多的多个条目。该通信系统可以被配置为将该更新生成为位图,其包括少于ー个或多个证书的数量的多个条目。该通信系统可以被配置为通过向数据集合应用Bloom过滤器来生成该更新。多个节点中的每ー个可以被配置为在其无法从更新明确确定特定证书是否有效的情况下获得与该证书相对应的指示符并且从该指示符确定该证书是否有效。根据本发明的第二实施例,提供了一种用于在包括多个节点的通信系统中进行操作的验证节点,该多个节点中的每ー个被分配以证书,该节点能够利用所述证书向通信系统中的其它节点验证自己,该验证节点被配置为确定证书应当被撤销,并且响应于该确定向通信系统中的ー个位置写入该证书撤销的指示符,该位置处于验证节点之外并且不允许被分配以所撤销证书的节点对其进行写入。该验证节点可以被配置为将证书撤销的指示符传送至存储节点,该指示符被该存储节点所存储。该验证节点可以被配置为将证书撤销的指示符传送至没有对其分配所撤销证书的多个存储节点,该指示符被那些多个存储节点中的每ー个所存储。该验证节点可以被配置为响应于确定证书应当被撤销,向被分配以所撤销证书的节点分配新的证书。该验证节点可以被配置为形成指示符以包括标识符,所述标识符识别作为最近向被分配以所撤销证书的节点所分配的有效证书的证书。该验证节点可以被配置为形成指示符以包括与最近向被分配以所撤销证书的节点所分配的有效证书相关联的序列号。该验证节点可以被配置为定期向多个节点分发指示对该多个节点所分配的证书的有效性的更新。该验证节点可以被配置为生成更新以包括被分配给多个节点的一个或多个证书的有效性的压缩表示形式以使得节点无法从该更新明确确定特定证书是否有效。该验证节点可以被配置为形成识别ー个或多个证书中的哪些证书有效以及ー个或多个证书的哪些证书无效的数据集合并且通过向该数据集合应用有损压缩算法来生成更新。该验证节点可以被配置为将该数据集合形成为位图,其包括至少与ー个或多个证书的数量一祥多的多个条目。该验证节点可以被配置为将该更新生成为位图,其包括少于ー个或多个证书的数量的多个条目。该验证节点可以被配置为通过向数据集合应用Bloom过滤器来生成该更新。根据本发明的第三实施例,提供了一种用于在包括多个节点的通信系统中进行操作的节点,该多个节点中的每ー个被分配以证书,该节点能够利用所述证书向通信系统中的其它节点验证自己,该节点被配置为从验证节点接收证书撤销的指示符,在节点内的一个位置存储该指示符并且不允许被分配以所撤销证书的节点对其中存储有该指示符的位置进行写入。该节点可以被配置为仅允许验证节点对其中存储有该指示符的位置进行写入。该节点可以被配置为从另一个节点接收无论对应于特定证书的指示符何时发生变化都对其进行更新并且在对应于特定证书的指示符有所变化时向其它节点传送该变化的指示的请求。该节点可以被配置为在其接收到对应于特定证书的新的指示符时将该新的指示符传送至请求更新的节点。根据本发明的第四实施例,提供了一种用于在包括多个节点的通信系统中进行操作的节点,该多个节点中的每ー个被分配以证书,该节点能够利用所述证书向通信系统中的其它节点验证自己,该节点被配置为通过接收分配给其它节点的证书、获得该证书有效性的指示符并且依据该证书和指示符验证其它节点而对另一节点进行验证。该节点可以被配置为请求没有被分配以证书的节点无论对应于该证书的指示符何时发生变化都对其进行更新。该节点可以被配置为依据从验证节点所接收的指示对多个节点所分配的证书的有效性的更新而对其它节点进行验证。该节点可以被配置为在其无法根据更新明确确定特定证书是否有效的情况下获取与该证书相对应的指示符并且根据该指示符确定该证书是否有效。根据本发明的第五实施例,提供了ー种利用指令进行编码的计算机可读介质,当被用于在包括多个节点的通信系统中进行操作的验证节点所执行时,其中该多个节点中的每ー个被分配以证书,该节点能够利用所述证书向通信系统中的其它节点验证自己,使得该验证节点确定证书应当被撤销,并且响应于该确定向通信系统中的ー个位置写入该证书撤销的指示符,该位置处于验证节点之外并且不允许被分配以所撤销证书的节点对其进行写入。根据本发明的第六实施例,提供了ー种利用指令进行编码的计算机可读介质,当被用于在包括多个节点的通信系统中进行操作的节点所执行时,其中该多个节点中的每ー个被分配以证书,该节点能够利用所述证书向通信系统中的其它节点验证自己,使得该节点从验证节点接收证书撤销的指示符,在节点内的ー个位置存储该指示符并且不允许被分配以所撤销证书的节点对其中存储有该指示符的位置进行写入。根据本发明的第七实施例,提供了ー种利用指令进行编码的计算机可读介质,当被用于在包括多个节点的通信系统中进行操作的节点所执行时,其中该多个节点中的每ー个被分配以证书,该节点能够利用所述证书向通信系统中的其它节点验证自己,使得该节点通过接收分配给其它节点的证书,获得该证书有效性的指示符并且依据该证书和指示符验证其它节点而对另ー节点进行验证。


为了更好地理解本发明,通过示例參考附图,其中:
图1示出了分布式通信系统;
图2示出了依据本发明实施例的通信系统;图3示出了可以被希望对通信系统中的另ー节点进行验证的节点所遵循的系列事件; 图4示出了依据本发明实施例的验证节点;和 图5示出了依据本发明实施例的存储节点。
具体实施例方式ー种包括多个节点的通信系统可以被配置为为多个节点中的每ー个分配证书,该节点能够通过所述证书向通信系统中的其它节点验证其自己。如果该通信系统确定那些证书之ー应当被撤销,则优选地在通信系统中的被分配以所撤销证书的节点无法对其进行写入的位置中存储该证书撤销的指示符。适当地,该位置处于证书机构(CA)之外。例如,该位置可能服从于仅允许CA对该位置进行写入的访问控制规则。在该通信节点中进行操作的节点可以被配置为通过接收分配给其它节点的证书,从代表证书机构存储该证书有效性的那些指示符的节点获取该证书的指示符,并且最后依据该证书和指示符验证其它节点而对另一节点进行验证。该通信系统可以被配置为包括多个节点的分布式网络。每个节点能够向系统中的其它节点提供服务以使得客户端能够通过访问多个节点中的任意节点而有效访问网络。每个节点优选地被配置为在允许其它节点访问服务之前对其进行验证。节点可以是能够在通信系统中进行操作的任意设备,例如服务器、PC、膝上计算机、移动电话或PDA。用于对设备进行编程以作为通信系统中的节点进行操作的软件可以由系统提供方来提供。客户端 设备不仅可以被编程为用作系统中的客户端节点,而且还可以作为用作系统自身一部分的节点,例如作为中继节点。许多通信系统并不基于对系统内的实际机器进行识别和验证而是对向系统提供方所注册的用户账户进行识别和验证来进行操作。因此,证书也可以被分配给用户账户。证书可能被分配给在特定用户账户下运行的客户端软件的实例。证书也可能被分配给外部软件开发商所提供的软件以使得外部提供的软件所实施的应用能够通过将其证书转发至其它节点而将其自身验证为有效应用。在每种情形中,证书都与节点的特定实例相关,无论该实例是涉及节点自身还是在特定用户账户下进行操作或运行特定应用的节点,并且证书因此仍然能够被认为是被分配给了该节点。在一些情况下,多个节点可以共享证书。在这些情形中,证书可以被认为分配给了那些节点中的每ー个。每个证书适当地包括在其之后就无效的过期日期。然而,在一些情况下,通信系统可以确定证书应当在其过期日期之前被撤销。这种情况的示例包括:
其移动电话或膝上电脑被盗的用户联系系统运营商请求阻止被盗设备访问网络。 用户希望更改其用户名、密码或其它安全细节。 基于系统内部确定的决策。例如,“现购现付(pay-as-you-go)”收费表上的客户端可能在其预付余额已经減少为零时被阻止,或者在系统上行为不当的用户可能被系统版主所阻止。 外部开发人员已经开发了在通信系统中使用并且包含问题的软件。在这种情况下,通信系统可能希望有效阻止该软件访问系统。这可以通过撤销分配给使用该软件的所有节点的证书来实现。可替换地,如果系统也向应用分配证书,则系统可以简单地撤销分配给存在问题的应用的所有证书。
在证书过期日期之前撤销它们的困难在于如何向分布式通信系统中的所有节点通知特定证书不再有效。通过使得(发行证书的)CA为覆盖区中的给定用户发布最新有效证书的指示符可以解决这ー问题。该指示符可以被一个或多个节点的子集所存储。想要对证书有效性进行验证的节点可以从该节点子集请求该指示符。节点随后能够根据该指示符确定特定证书是否实际有效。节点随后可以依据其有效性来验证对其分配以该证书的节点。该指示符被子集中的每个节点存储在可由CA进行写入但是无法由分配以该证书的节点进行写入的位置中。这防止了被盗用节点为了使得所撤销证书看上去有效而对指示符进行重写。图2中示出了利用不同撤销数据存储的通信系统的示例。该通信系统包括多个节点,所述多个节点共同形成总体以201示出的分布式通信系统的覆盖区。在与图1所示类似的部署中,该系统被图示为“环形”结构,其中该环中的每个位置被分配以编号。如上文,跟随一个或多个空位置的节点将假设对直接处于其自身之前的空位置负责。该通信系统还包括负责发行并撤销证书的CA 202,以及用于分别存储状态数据和证书的两个存储节点203、206。可以通过向与证书相关联的用户名应用散列函数或其它数学函数以获得证书和证书状态在系统内所应当存储的位置来确定存储节点的位置。优选地,存储节点并不是被分配以所讨论证书的节点。现在将參考图中所示的示例系列事件而对如图2所示的通信系统的操作进行描述。首先,CA发行关于用户名ABC的新证书。该证书被节点206所存储(见步骤I和2)。该证书具有序列号34。客户端节点205随后在用户名ABC下从节点204请求服务(步骤3)。节点204从节点206请求分配给用户名ABC的证书(步骤4)并且在其返回时(步骤5)使用该证书对节点205进行验证。节点204随后向节点205许可所请求的服务(步骤6)。然而,与此同吋,CA已经确定分配给用户名ABC的证书34应当被撤销。其发行具有序列号35的新证书并且将其转发至节点206 (步骤7)以便存储为分配给用户名ABC的当前证书。问题在于节点204并不知道证书34的撤销并且因此将继续向节点205提供其不再具有权限的服务直至证书34过期。为了解决这ー问题,CA通过将证书34撤销的指示符发送至节点203来存储该指示符。该指示符可以是多个数值,例如证书的序列号或摘要。在该示例中,CA发送分配给用户名ABC的当前有效证书的序列号(步骤9),节点203随后对其进行存储(步骤10)。适当地,证书撤销的指示符被存储在被分配以所撤销证书的节点不被允许写入的位置中。从而,例如,CA可能将指示符35写入节点203中的位置current_cert:ABC并且在该位置实行仅可由CA进行写入的访问控制规则。如果节点204想要确认证书34仍然有效,其可以针对对应于该证书的当前指示符而联系节点203 (步骤11)。节点203返回指示符“35”(步骤12),其并不对应于节点204在验证客户端节点205时所接受证书的序列号(34)。节点204可以由此推断出证书34已经被撤销并且相应地从节点205撤回服务(步骤13)。将证书位置的指示符存储在覆盖区中的问题在于节点如果要及时获取与证书撤销相关的信息必须定期对存储节点进行轮询。这在带宽方面会是昂贵的。性能/及时性权衡可以通过引入发布/订阅机制而得以改善。这样的机制在A.Roach等人的“ SessionInitiation Protocol (SIP) - Specific Event Notification”中进行了总体描述。该一般性概念已经被发展至涉及证书撤销数据,从而系统中的多个节点中的任意节点可以从存储节点订阅证书更新。典型地,有所依赖的一方将对包含证书状态的位置进行订阅并且当存储在该位置的数据有所变化时,存储节点向依赖节点发送更新。该更新可以包括新的指示符或者简单地包含存储在订阅位置的数据已经变化的指示。依赖节点可以将任意变化指示视为意味着所讨论的证书已经被无效。如果攻击者获得了对恰好存储状态信息的节点的控制(在使用小的DHT存储状态信息时更可能如此),则他们完全无法关于证书撤销而对用户节点进行更新或者他们能够就状态数据的当前状态说谎。一个示例可能是,其中用户A的膝上电脑已经被盗并且该盗窃已经被报告给系统运营商。运营商随后将撤销该膝上电脑的证书以将其从系统阻止。然而,如果窃贼,用户B,恰好拥有存储该膝上电脑的证书的撤销数据的节点,则阻止该膝上电脑的尝试可能会无效。用户B可以使得该节点停止发送与该膝上电脑的证书撤销相关的更新。用户B还可能控制该节点来发送指示该膝上电脑被撤销的证书事实上仍然有效的消息。针对这种形式的攻击存在两种防御措施。—种防御措施是将撤销信息存储在多个(冗余)位置。这意味着攻者为了控制与特定证书相关的所有状态数据将必须破坏多于一个的节点。状态数据被存储的位置越多,潜在攻击者获得对所有状态数据的控制的困难就越大。然而,以上系统仍然可能被盗用。即便可能性不大,但是攻击者还是可能设法控制所有的状态位置。此外,依赖于特定证书的任何节点都必须要从存储与该证书相关的状态数据的所有位置订阅更新。第二种防御措施是通信系统发布其已经生成的所有证书状态信息的定期概要。这些概要可能由CA适当生成。该概要用作针对可能已经被盗用的存储节点的检查。优选地,该概要并不过于频繁地进行发送。毎日更新就应当足以保持对任意盗用节点的检查。该概要将适当包括系统中每个证书的有效性的指示。如果通信系统很大,则这可能是数百万计的证书。因此,为了避免概要消息变为不可行的大,其优选地具有压缩格式。ー种生成概要的方式是形成识别哪些证书有效及哪些无效的数据集合。例如,该数据集合可能是位图,其中“ I”表示无效证书而“ 0 ”表示有效证书。该位图优选地包括系统中每个证书的条目。随后可能通过向该位图应用压缩算法来生成概要消息以使得该概要消息实际上包含比通信系统中的证书数量更少的条目。概要消息中的每个条目因此可能涉及多于ー个的证书。该压缩算法适当地是有损压缩算法以将概要消息的大小保持为最小。这样的缺点在于有ー些信息在压缩期间被丢失。因此,节点并非必然可能从概要明确确定特定证书是否有效。相反,概要中的每个条目可以仅指示特定证书有效的可能性。然而,节点可以通过针对系统中其它地方所存储的状态信息对概要条目进行再次确认而使得概要中的任何不明确性得以解決。用于生成概要的适当压缩算法的示例是Bloom过滤器。Bloom过滤器产生高度压缩的数据集合但是具有非零的误判率(false positive rate)。换句话说,在概要中具有条目“I”的证书(即认为被撤销)可能实际上并未被撤销。因此,使用该概要来确认证书有效性的任意节点都优选地被配置为利用存储在系统中其它地方的证书状态信息再次确认被指示为无效的证书实际上已经被撤销。CA可以被配置为使用其私钥对该概要进行数字签署以使得接收方节点能够确认概要的来源。图3图示了示例系列事件。在步骤301,节点B从节点A请求服务。节点B利用其私钥对该请求进行数字签署。节点A通过向该请求应用相对应的公钥而对节点B进行验证。作为该验证过程的一部分,节点A需要确认公钥有效并且被分配给节点B。节点A因此从存储节点B的证书的节点C请求该证书(步骤302)。节点C返回该证书(步骤303)。节点A随后从负责存储该证书有效性的相对应指示符的节点D请求该指示符(步骤304)。节点D返回该指示符(步骤305),并且节点A确认该证书有效(步骤306)并使用其公钥对节点B进行验证(步骤307)。节点A随后从节点D订阅状态更新以使得无论证书状态何时发生变化其都将得到通知(步骤308)。节点A随后从CA接收概要更新(步骤309),其指示证书已撤销(310)。节点A通过从节点D请求指示符再次确认该信息(步骤311)。节点D返回该指示符(步骤312)并且节点A确认该证书确实有效(步骤313)。然而,节点A随后从节点D接收到该指示符有所变化的更新(步骤314),节点A据此确定该证书现在为无效(步骤315)。节点A因此终止其向节点B提供的服务(步骤316)。如果节点具有ー个或多个被撤销的证书,则可以要求其对通信系统的中央服务器重新验证其自己以便重新获得对系统的访问。如果重新验证的过程成功,则该节点可以再次被分配以ー个或多个证书,其能利用该ー个或多个证书向任意分布式节点验证其自身。图4示出了可以被用来实施本发明的验证节点的示例。服务器401包括通信単元402、识别单元403、验证数据生成単元404和撤销单元405。验证单元403可以识别要用来存储与特定客户端相关联的验证数据的节点的子集。验证数据生成単元404可以生成该数据,其例如可以是包括客户端公钥并且使用服务器的私钥进行签署的证书。该验证数据随后可以被送至识别单元403。该识别単元例如可以通过向与该证书相关联的用户名应用诸如散列函数的数学函数而识别出将被用来存储证书和证书状态信息的节点的子集。该证书随后可以被送至通信単元402以使得其可以被发送至将存储该证书的一个或多个节点的子集。验证单元在其毎次生成新证书时还生成相对应的状态数据并且将其写入通信系统中的ー个或多个位置。这样的状态数据例如可以是新证书的序列号或新证书的摘要。撤销单元404可以被配置为识别应当阻止于通信系统的用户、设备或应用。识别単元403可以确定存储分配给那些用户、设备或应用的证书以及相关联的状态数据的节点的子集。撤销单元403随后可以指示通信単元402向那些节点发送经更新的状态信息。验证单元可以被配置为在已有证书被撤销之后分配新的证书,在这种情况下证书将从验证单元传送至适当存储节点。服务器还可以包括用于对证书状态的概要进行编译而以预定间隔发送至所有节点的更新単元406。更新単元406可以从撤销单元405获得该信息。概要消息可以仅包括自之前更新起所发生的状态变换或者可以包括指示系统中所有证书的状态的信息(诸如以上所描述的压缩概要)。这些概要可以被更新単元406送至通信単元402以便传输至适当节点。图5中示出了可以被用来实施本发明的特征的节点的示例。节点501包括用于从客户端接收针对服务的请求的通信単元502。这些请求可以由验证单元503进行处理。该验证单元可以将适当用户名送至识别单元504以识别出存储请求服务的节点的证书以及证书状态信息的ー个或多个节点。存储节点可以通过向用户名应用诸如散列函数之类的数学函数来识别。验证単元可以被配置为指示通信单元将适当请求消息发送至所识别的存储节点以便获得所请求的证书和状态指示符。验证单元还可以被配置为使得通信単元向存储单元发送订阅请求以便无论指示符何时发生变化该节点都会被更新。验证单元可以被配置为在其从存储节点接收到指示证书状态已经发生变化的更新的情况下确定该证书无效。如前所述,相关消息可以由通信单元502发送和接收。验证单元还可以被配置为根据从通信系统的服务器所接收的概要来确定特定证书是否有效。如果验证単元无法单独根据概要明确回答该问题,则其被配置为以与以上所描述的类似方式经由识别单元和通信単元发送针对状态信息的请求。验证单元被配置为使用所返回的状态更新来解决任意有效性的歧义。如果多个存储节点所提供的状态信息在任意时刻是矛盾的,则验证単元优选地被配置为确定该证书无效。如果节点501被服务器选择作为用来存储证书或者与证书相关的状态数据的节点子集之一,则该节点还可以包括用于存储验证数据的存储器505。如果节点被选择以存储状态数据,则该存储器优选地被配置为实施访问控制规则以使得仅验证节点被允许对其中存储状态数据的存储器位置进行写入。图4所示出的服务器和图5所示出的节点都被说明性地图示为包括多个相互连接的功能块。实际上,虽然这些功能块也可以整体或部分以硬件实施,但是它们可能以软件来实施。在本发明的优选实施例中,节点被配置为利用网络运营商所提供的软件而依据本发明进行操作。本发明的实施例因此可以利用分布式通信系统的优势而在大量节点之间共享授权客户端的职责。这減少了系统运营的服务器上的负载并且可能令针对通信系统的服务的访问加速。然而,令证书遍及系统进行分发增加了在证书被撤销时应当如何更新节点的问题。本发明实施例以多种方式解决了该问题:发布证书状态数据,将状态数据存储在多个节点中以及定期发布状态概要。这些特征共同作用以使得流氓节点难以破坏证书系统。申请人:由此根据本领域技术人员普遍的一般性知识而以这里所描述的每个单独特征以及两个或更多这样的特征的组合能够基于本说明书而被整体执行的程度独立公开了这样的特征或组合,而无论这样的特征或特征组合是否解决了这里所公开的任何问题,并且并不对权利要求的范围进行限制。申请人指出本发明的各方面可以由任意这样的特征或特征组合所构成。借鉴于以上描述,在本发明的范围内进行各种修改对于本领域技术人员而目是显而易见的。
权利要求
1.一种包括多个节点的通信系统,该通信系统被配置为为多个节点中的每ー个分配证书,该节点能够通过所述证书向通信系统中的其它节点验证其自己,该通信系统进一歩包括验证节点,其被配置为确定证书应当被撤销并且响应于该确定向通信系统中的ー个位置写入该证书撤销的指示符,该位置处于验证节点之外并且不允许被分配以所撤销证书的节点向进行其写入。
2.根据权利要求1的通信系统,其中该验证节点被配置为为多个节点中的每ー个分配证书,它们可以利用所述证书向通信系统中的其它节点验证其自己。
3.根据权利要求1或2的通信系统,其中该通信系统包括存储节点,该验证节点被配置为将证书撤销的指示符传送至该存储节点并且该存储节点被配置为存储该指示符并且不允许被分配以撤销证书的节点对其中存储有该指示符的位置进行写入。
4.根据权利要求3的通信系统,其中该存储节点被配置为仅允许验证节点向其中存储有该指示符的位置进行写入。
5.根据权利要求2至4中任ー项的通信系统,其中该验证节点被配置为响应于确定证书应当撤销而向被分配以所撤销证书的节点分配新的证书。
6.根据之前任一项权利要求的通信系统,其中该指示符识别作为最近向被分配以所撤销证书的节点所分配的有效证书的证书。
7.根据权利要求6的通信系统,其中该指示符包括与最近向被分配以所撤销证书的节点所分配的有效证书相关联的序列号。
8.根据之前任一项权利要求的通信系统,其中多个节点中的ー个或多个被配置为在其希望利用分配给另ー节点的证书对该节点进行验证时获取与该证书相关联的指示符并且依据该指示符是否指示该证书仍然有效而对其它节点进行验证。
9.根据权利要求2至8中任ー项的通信系统,其中多个节点中的ー个或多个被配置为无论对应于特定证书的指示符何时发生变化都请求存储节点对其进行更新。
10.根据权利要求9的通信系统,其中该存储节点被配置为当对应于特定证书的指示符有所变化时将该变化的指示传送至请求更新的节点。
11.根据权利要求9或10的通信系统,其中该存储节点被配置为当其接收到对应于特定证书的新的指示符时将该新的指示符传送至请求更新的节点。
12.根据之前任一项权利要求的通信系统,其中该通信系统被配置为使得证书撤销的指示符存储在多于ー个的节点中。
13.根据权利要求12的通信系统,其中存储该指示符的每个节点被配置为不允许被分配以所撤销证书的节点对其中存储有该指示符的位置进行写入。
14.根据之前任一项权利要求的通信系统,其中该通信系统被配置为定期向多个节点分发指示被分配给多个节点的证书的有效性的更新。
15.根据权利要求14的通信系统,其中该通信系统被配置为生成更新以包括分配给多个节点的一个或多个证书的有效性的压缩表示形式,以使得节点可能无法从更新明确确定特定证书是否有效。
16.根据权利要求14的通信系统,其中该通信系统被配置为通过以下步骤生成更新: 形成识别ー个或多个证书中的哪些证书有效并且ー个或多个证书中的哪些无效的数据集合;并且通过向该数据集合应用有损压缩算法来生成更新。
17.根据权利要求16的通信系统,其中该通信系统被配置为将该数据集合形成为位图,其包括至少与ー个或多个证书的数量一祥多的多个条目。
18.根据权利要求16或17的通信系统,其中该通信系统被配置为将该更新生成为位图,其包括少于ー个或多个证书的数量的多个条目。
19.根据权利要求16至18中任ー项的通信系统,其中该通信系统被配置为通过向数据集合应用Bloom过滤器来生成该更新。
20.根据权利要求15至19中任ー项的通信系统,其中多个节点中的每ー个被配置为在其无法从更新明确确定特定证书是否有效的情况下获得与该证书相对应的指示符并且从该指示符确定该证书是否有效。
21.一种用于在包括多个节点的通信系统中进行操作的验证节点,该多个节点中的每ー个被分配以证书,该节点能够利用所述证书向通信系统中的其它节点验证自己,该验证节点被配置为确定证书应当被撤销,并且响应于该确定向通信系统中的ー个位置写入该证书撤销的指示符,该位置处于验证节点之外并且不允许被分配以所撤销证书的节点对其进行写入。
22.根据权利要求21的验证节点,其中该验证节点被配置为将证书撤销的指示符传送至存储节点,该指示符被该存储节点所存储。
23.根据权利要求22的验证节点,其中该验证节点被配置为将证书撤销的指示符传送至没有对其分配所撤销证书的多个存储节点,该指示符被那些多个存储节点中的每ー个所存储。
24.根据权利要求21至23中任ー项的验证节点,其中该验证节点被配置为响应于确定证书应当被撤销,向被分配以所撤销证书的节点分配新的证书。
25.根据权利要求21至24中任ー项的验证节点,其中该验证节点被配置为形成指示符以包括标识符,所述标识符识别作为最近向被分配以所撤销证书的节点所分配的有效证书的证书。
26.根据权利要求21至25中任ー项的验证节点,其中该验证节点被配置为形成指示符以包括与最近向被分配以所撤销证书的节点所分配的有效证书相关联的序列号。
27.根据权利要求21至26中任ー项的验证节点,其中该验证节点被配置为定期向多个节点分发指示对该多个节点所分配的证书的有效性的更新。
28.根据权利要求27的验证节点,其中该验证节点被配置为生成更新以包括被分配给多个节点的一个或多个证书的有效性的压缩表示形式以使得节点可能无法从该更新明确确定特定证书是否有效。
29.根据权利要求28的验证节点,其中该验证节点被配置为: 形成识别ー个或多个证书中的哪些证书有效以及ー个或多个证书的哪些证书无效的数据集合;并且 通过向该数据集合应用有损压缩算法来生成更新。
30.根据权利要求29的验证节点,其中该验证节点被配置为将该数据集合形成为位图,其包括至少与ー个或多个证书的数量一祥多的多个条目。
31.根据权利要求29或30的验证节点,其中该验证节点被配置为将该更新生成为位图,其包括少于ー个或多个证书的数量的多个条目。
32.根据权利要求27至31中任ー项的验证节点,其中该验证节点被配置为通过向数据集合应用Bloom过滤器来生成该更新。
33.一种用于在包括多个节点的通信系统中进行操作的节点,该多个节点中的每ー个被分配以证书,该节点能够利用所述证书向通信系统中的其它节点验证自己,该节点被配置为: 从验证节点接收证书撤销的指示符; 在节点内的ー个位置存储该指示符;并且 不允许被分配以所撤销证书的节点对其中存储有该指示符的位置进行写入。
34.根据权利要求33的节点,其中该节点被配置为仅允许验证节点对其中存储有该指示符的位置进行写入。
35.根据权利要求33或34的节点,其中该节点被配置为从另一个节点接收无论对应于特定证书的指示符何时发生变化都对其进行更新并且在对应于特定证书的指示符有所变化时向其它节点传送该变化的指示的请求。
36.根据权利要求35的节点,其中该节点被配置为在其接收到对应于特定证书的新的指示符时将该新的指示符传送至请求更新的节点。
37.一种用于在包括多个节点的通信系统中进行操作的节点,该多个节点中的每ー个被分配以证书,该节点能够利用所 述证书向通信系统中的其它节点验证自己,该节点被配置为通过以下步骤而对另ー节点进行验证: 接收分配给其它节点的证书; 获得该证书有效性的指示符;并且 依据该证书和指示符验证其它节点。
38.根据权利要求37的节点,其中该节点被配置为请求没有被分配以证书的节点无论对应于该证书的指示符何时发生变化都对其进行更新。
39.根据权利要求37或38的节点,其中该节点被配置为依据从验证节点所接收的指示对多个节点所分配的证书的有效性的更新而对其它节点进行验证。
40.根据权利要求39的节点,其中该节点被配置为在其无法根据更新明确确定特定证书是否有效的情况下获取与该证书相对应的指示符并且根据该指示符确定该证书是否有效。
41.一种利用指令进行编码的计算机可读介质,当被用于在包括多个节点的通信系统中进行操作的验证节点所执行时,其中该多个节点中的每ー个被分配以证书,该节点能够利用所述证书向通信系统中的其它节点验证自己,使得该验证节点确定证书应当被撤销,并且响应于该确定向通信系统中的ー个位置写入该证书撤销的指示符,该位置处于验证节点之外并且不允许被分配以所撤销证书的节点对其进行写入。
42.一种利用指令进行编码的计算机可读介质,当被用于在包括多个节点的通信系统中进行操作的节点所执行时,其中该多个节点中的每ー个被分配以证书,该节点能够利用所述证书向通信系统中的其它节点验证自己,使得该节点: 从验证节点接收证书撤销的指示符; 在节点内的ー个位置存储该指示符;并且不允许被分配以所撤销证书的节点对其中存储有该指示符的位置进行写入。
43.一种利用指令进行编码的计算机可读介质,当被用于在包括多个节点的通信系统中进行操作的节点所执行时,其中该多个节点中的每ー个被分配以证书,该节点能够利用所述证书向通信系统中的其它节点验证自己,使得该节点通过以下步骤而对另ー节点进行验证: 接收分配给其它节点的证书;获得该证书有效性的指示符;并且依据该证书和指示符验证其它 节点。
全文摘要
一种通信系统包括多个节点,该通信系统被配置为为多个节点中的每一个分配证书,该节点能够通过所述证书向通信系统中的其它节点验证其自己,该通信系统进一步包括验证节点,其被配置为确定证书应当被撤销并且响应于该确定向通信系统中的一个位置写入该证书撤销的指示符,该位置处于验证节点之外并且不允许被分配以所撤销证书的节点向进行其写入。
文档编号H04L29/06GK103098438SQ201180044811
公开日2013年5月8日 申请日期2011年9月15日 优先权日2010年9月17日
发明者E.雷斯科拉, T.佐尔佐维利斯 申请人:斯凯普公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1