证书撤销的制作方法

文档序号:7885085阅读:211来源:国知局
专利名称:证书撤销的制作方法
技术领域
本发明涉及在通信系统中对客户端进行认证,并且特别涉及当用于对客户端进行认证的证书不再有效时对节点进行更新。
背景技术
许多通信系统包括由系统提供商运行的集中式服务器。客户端可以通过访问那些服务器中的一个来获取服务。通常,服务器在向客户端提供所请求的服务之前对客户端的身份进行认证。例如,可以要求用户输入用户名和密码,其中,服务器对照其存储或可访问的用户名和密码的记录检查所述用户名和密码。一旦服务器已对客户端进行认证,其可以依照请求提供服务。其它通信系统被进行不同的安排。取代使用仅由系统提供商运行的集中式服务器,网络可以包含大量分布式节点,其中,客户端可以访问所述分布式节点以获取服务。这些节点不必被系统提供商拥有或运行。例如,节点可以是用户设备,所述用户设备运行使其能够充当通信系统中的节点的来自系统提供商的软件。这使通信系统能够通过本质上从数百万设备“借用”少量计算资源而被创建。用户可以然后经由数百万节点中的任一个访问系统。在所述分布式网络中,客户端不必再访问集中式服务器以获取服务。然而,仍然需要对客户端进行认证。一种选项将是客户端向分布式节点提供其用户名和密码,分布式节点可以然后使用集中式数据库对所述用户名和密码进行检查。然而,分布式节点在每次其需要对客户端进行认证时不得不与集中式数据库联系是不可取的。一种可替换选项是为每个客户端指派私钥/公钥对。客户端可以通过向节点发送消息来向分布式节点认证其自身,其中,该客户端已使用其私钥对所述消息进行数字签名。分布式节点可以然后通过对消息应用对应公钥来对客户端进行认证。每个客户端通常被发给数字证书。数字证书构成RELOAD协议的一部分,并且在由C.Jennings 等所著的 “Resource Location and Discovery (RELOAD) Base Protocol,,中进行描述。证书包含用户名与公钥之间的绑定,从而第三方节点可以确定公钥被指派给了该特定客户端。证书可以由被节点信任的中央服务器或由某个被信任的第三方发行者发出。发行者使用其私钥对证书进行签名。由于节点信任证书的发行者,所以,一旦客户端具有对密钥进行认证的证书,则该节点可以确定客户端的公钥被指派给了该客户端。通常,证书包括:
-客户端的公钥 -客户端的用户名
-证书的到期日 -发行者的名称 -发行者的数字签名。在大型通信系统中,每个节点存储针对系统中的每个用户的证书不可行。证书因此需要被存储在系统中的别处,在可被分布式节点访问的位置处。一种选项将是证书由中央服务器存储。然而,这将要求节点在每次其想要对客户端进行认证时访问中央服务器。一种优选选项是,将特定客户端的证书存储在特定节点中。证书可以然后遍及通信系统的节点进行分发。分布式电信系统的一个示例在图1中示出。一般地在101处示出的系统包括多个一般地在102处示出的节点。系统被图示为“环形”结构,其中,在所述环形中的每个位置处分配了号码。在图1中所示的示例中,环形具有22个所述位置。然而实际上,位置的数量可以共计许多百万。每个位置可以被节点102占有,而某些位置仍旧为空。跟随在一个或多个空位之后的节点将承担对紧接在其自身位置之前的空位的责任(例如,如103处所示,图1中位置20处的节点107还对位置18和19负责)。关联于特定客户端的证书可以被存储在所述节点中的一个中。在图1中,对客户端104的公钥进行认证的证书被存储在节点106中。通常,将存储关联于一个特定用户的证书的节点的身份将由中央服务器确定,该中央服务器可以然后将证书向外“推送”到合适的节点。想要对特定客户端进行认证的节点可以从存储该客户端的证书的节点请求该客户端的证书。一种在包括大量分布式节点的通信系统中存储数据的方式是通过使用分布式哈希表(DHT)。DHT提供与哈希表类似的服务,其通过存储键/值对从而使任意参与的节点可以检索关联于给定键的值。DHT可以将维护键到值的当前映射的职责分布到通信系统的节点中,从而使参与节点的改变导致最少量的中断。为最小化系统中的节点需要为其它节点存储数据的量,可以仅允许任意给定节点在覆盖中的少量位置处存储数据。例如,RELOAD协议提供访问控制,允许给定键仅可通过少量节点写入。节点被准许进行写入的位置可以由其证书确定。可以还要求节点使用其私钥对每个将被存储的值进行签名,以便对其在该位置处进行存储的权限进行认证。对将被存储的值进行签名还用于保护所存储的数据不被篡改。因此,不仅为了控制对系统的访问,而还为了保护存储在系统中的数据以防流氓节点,当证书无效时通知覆盖中的节点是重要的。一个问题是如何在证书的到期日之前撤销证书。例如,如果膝上电脑被偷的用户将想要撤销该膝上电脑访问通信系统的权利。在可以包括许多百万节点的通信系统中,这不一定是简单明了的。一种选项是,中央服务器将关于证书撤销的信息向外推送到网络中的全部节点。这样的一个示例如在由D.Cooper等所著的“Internet X.509 Public KeyInfrastructure Certificate and Certificate Revocation List (CRL) Profile,,中描述的证书撤销列表。然而,如果这些消息太频繁地被生成,则其可以负面影响系统的性能。相反,如果不足够频繁地生成这些消息以向节点提供关于证书撤销的及时更新,则存在这样的可能:客户端可以被提供以其不再被授权的服务,因为还未将证书已被撤销通知到提供该服务的节点。另一种选项是,如在由M.Myers等所著的“X.509 Internet Public KeyInfrastructure Online Certificate Status Protocol - 0CSP”中描述的,通过使用在线状态检查来针对证书状态对节点进行更新。然而,这要求节点与集中式OSCP应答器(其可以是证书权力机构)联系以检查证书的当前状态。该选项因此也遭受性能/及时性折衷的问题,由此,试图获取最新证书信息的节点经由用状态请求轰击中央节点可以负面影响系统性能。由于证书被存储的方式而出现进一步的问题。在RELOAD中,证书由中央机构发出,并且然后被存储在覆盖中的给定位置处(如上面所描述的)。该位置可被证书的拥有者写入,并且因此不能免受来自被盗用节点的攻击。因此,存在对于遍及通信系统分发证书撤销信息的改进方式的需求。

发明内容
根据本发明的第一实施例,提供一种包括多个节点的通信系统,所述通信系统被安排为:为所述多个节点的每个指派证书,借助于该证书,所述节点可以向所述通信系统中的其他节点认证其自身;定期向所述多个节点分发更新,所述更新通过对代表指派给所述多个节点的证书的有效性的数据集进行压缩而形成,所述更新是这样的,从而使节点不可以能够从所述更新中无歧义地确定特定证书是否有效;以及,为所述多个节点提供关于所述多个证书的有效性的信息源,其中,所述信息源与所述更新不同,并且借助于所述信息源,节点可以解决所述更新中关于特定证书的有效性的歧义。所述通信系统可以被安排为通过形成所述数据集以致其识别所述证书的哪些是有效的以及所述证书的哪些是无效的来生成所述更新。所述通信系统可以被安排为,将所述数据集形成为:包括至少数量与被指派给所述多个节点的证书的数量一样多的条目的位图,或者包括数量少于被指派给所述多个节点的证书的数量的条目的位图。所述通信系统可以被安排为,通过对所述数据集应用有损压缩算法来生成所述更新。所述通信系统可以被安排为,通过对所述数据集应用Bloom过滤器来生成所述更新。所述通信系统可以被安排为,存储证书撤销的指示符作为不同于所述定期更新的、关于所述多个证书的有效性的信息源。所述通信系统可以被安排为,将所述指示符存储在所述通信系统中这样的位置处,其中,被指派了所述已被撤销证书的节点不被允许写入所述位置。所述通信系统可以包括认证节点,所述认证节点被安排为:确定证书应当被撤销;以及,响应于该确定,将所述证书的撤销的指示符写入这样的位置,其中,该位置在所述认证节点外部,并且被指派了所述已被撤销证书的节点不被允许写入该位置。所述通信系统包括存储节点,所述存储节点被安排为,存储与所述定期更新不同的、关于所述多个证书的有效性的所述信息源。所述存储节点可以被安排为存储所述指示符。所述存储节点可以被安排为,不允许被指派了所述已被撤销证书的节点写入所述指示符所存储于的位置。所述存储节点可以被安排为,仅允许所述认证节点写入所述指示符所存储于的位置。所述多个节点中的一个或多个可以被安排为,当其不能从所述更新中无歧义地确定特定节点是否有效时,获取对应于该特定证书的指示符,并且从所述指示符中确定该特定证书是否有效。所述认证节点可以被安排为,响应于确定所述证书应该被撤销,为被指派了所述已被撤销证书的节点指派新证书。所述指示符可以识别这样的证书,所述证书是最新近指派给被指派了所述已被撤销证书的节点的有效证书。所述指示符可以包括序列号,所述序列号关联于所述最新近指派给被指派了所述已被撤销证书的节点的有效证书。所述多个节点中的一个或多个可以被安排为,每当所述指示符改变时,请求所述存储节点对其进行更新。所述存储节点可以被安排为,当所述指示符改变时,将该改变的指示发送到请求所述更新的节点。所述存储节点可以被安排为,当所述指示符改变时,将所述新指示符发送到请求所述更新的节点。所述认证节点被安排为,将所述指示符写入到多于一个节点。存储所述指示符的节点中的每个可以被安排为,不允许被指派了所述已被撤销证书的节点写入所述指示符所存储于的位置。根据本发明的第二实施例,提供一种用于在包括多个节点的通信系统中运行的节点,其中,每个节点被指派了证书,借助于该证书,所述节点可以向所述通信系统中的其他节点认证其自身,所述节点被安排为:接收指示被指派给所述多个节点的证书的有效性的更新;确定其不能从所述更新中无歧义地断定特定证书是否有效;以及,响应于该确定,访问与所述更新不同的关于所述多个证书的有效性的信息源,并且借助于该信息解决关于所述特定证书的有效性的歧义。所述通信系统可以被安排为,当证书被撤销时,该撤销的指示符被存储在所述多个节点中的一个中,该节点被安排为解决关于所述特定证书的有效性的歧义,其是通过获取关联于该证书的指示符,并依赖于该指示符确定所述特定证书是否有效。所述通信系统可以被安排为,证书撤销的指示符识别这样的证书,所述证书是最新近被指派给被指派了所述已被撤销证书的节点的有效证书,所述节点被安排为,如果关联于其他节点证书的指示符将该证书识别为最新近被指派给其他节点的有效证书,则对另一节点进行认证。所述节点被安排为,每当所述指示符改变时,请求存储关联于特定证书的指示符的节点对其进行更新。根据本发明的第三实施例,提供一种用于在包括多个节点的通信系统中运行的认证节点,其中,每个节点被指派了证书,借助于该证书,所述节点可以向所述通信系统中的其他节点认证其自身,所述认证节点被安排为:定期向所述多个节点分发更新,所述更新通过对代表被指派给所述多个节点的证书的有效性的数据集进行压缩而形成,所述更新是这样的,其使得节点不可以能够从所述更新中无歧义地确定特定证书是否有效;以及,导致关于所述多个证书的有效性的信息源被通信系统存储,其中,所述信息源不同于所述更新,并且借助于所述信息源,节点可以解决所述更新中关于特定证书的有效性的歧义。所述认证节点可以被安排为,通过形成所述数据集以致其识别出所述证书中的哪些有效以及所述证书中的哪些无效而生成所述更新。
所述认证节点可以被安排为,将所述数据集形成为位图,该位图包括数量至少与被指派给所述多个节点的证书的数量一样多的条目。所述认证节点可以被安排为,将所述更新生成为位图,该位图包括数量少于被指派给所述多个节点的证书的数量的条目的位图。所述认证节点可以被安排为,通过对所述数据集应用有损压缩算法来生成所述更新。所述通信系统可以被安排为,通过对所述数据集应用Bloom过滤器来生成所述更新。所述认证节点可以被安排为:确定证书应当被撤销;以及,响应于该确定,将该证书的撤销的指示符作为所述关于所述多个证书的有效性的信息源写入到所述多个节点中的一个。所述认证节点可以被安排为,将所述指示符写入所述多个节点的所述一个中这样的位置处,其中,被指派了所述已被撤销证书的节点不被允许写入该位置。所述认证节点可以被安排为,响应于确定所述证书应当被撤销,为被指派了所述已被撤销证书的节点指派新证书。所述认证节点可以被安排为,将所述指示符形成为识别这样的证书,该证书是最新近被指派给被指派了所述已被撤销证书的节点的有效证书。所述认证节点可以被安排为,将所述指示符形成为包括序列号,其中,所述序列号关联于最新近被指派给被指派了所述已被撤销证书的节点的有效证书。所述认证节点可以被安排为,将所述指示符写入到多于一个节点。根据本发明的第四实施例,提供一种编码有指令的计算机可读介质,当被用于在包括多个节点的通信系统中运行的节点执行时,其中,每个节点被指派了证书,借助于该证书,所述节点可以向所述通信系统中的其他节点认证其自身,所述指令导致所述节点:接收指示被指派给所述多个节点的证书的有效性的更新;确定其不能从所述更新中无歧义地断定特定证书是否有效;以及,响应于该确定,访问不同于所述更新的关于所述多个证书的有效性的信息源,并且借助于该信息,解决关于该特定证书的有效性的歧义。根据本发明的第五实施例,提供一种编码有指令的计算机可读介质,当被用于在包括多个节点的通信系统中运行的认证节点执行时,其中,每个节点被指派了证书,借助于该证书,所述节点可以向所述通信系统中的其他节点认证其自身,所述指令导致所述认证节点:定期向所述多个节点分发更新,所述更新通过对代表被指派给所述多个节点的证书的有效性的数据集进行压缩来形成,所述更新是这样的,以使得节点不可以能够从所述更新中无歧义地确定特定证书是否有效;以及,导致关于所述多个证书的有效性的信息源被通信系统存储,其中,所述信息源不同于所述更新,并且借助于所述信息源,节点可以解决更新中关于特定证书的有效性的歧义。


为更好地理解本发明,作为示例参考以下附图,其中:
图1示出了分布式通信系统;
图2示出了根据本发明的实施例的通信系统; 图3示出了可以被希望对通信系统中的另一节点进行认证的节点遵循的事件序列;
图4示出了根据本发明的实施例的认证节点;以及 图5示出了根据本发明的实施例的存储节点。
具体实施例方式包括多个节点的通信系统可以被安排为,为每个节点指派证书,借助于该证书,所述节点可以向通信系统中的其他节点认证其自身。为保持多个节点关于哪些证书已被撤销并且现在无效是被更新的,通信系统可以定期向节点分发指示证书有效性的更新。由于更新有可能极其大,其优选通过对代表指派给多个节点的证书的有效性的数据集进行压缩来形成。由此产生的更新可以不包括对节点来说仅从该更新就能无歧义地确定特定证书是否有效的足够信息。因此,通信系统优选还为多个节点提供其可以用于解决更新中关于特定证书有效性的任何歧义的、关于多个证书的有效性的备用信息源。通信系统可以被安排为包括多个节点的分布式网络。节点的每个可以能够为系统中的其他节点提供服务,从而客户端可以通过访问多个节点中的任一个来有效地访问网络。每个节点优选被安排为,在允许其他节点访问服务之前对其进行认证。节点可以是任意能够在通信系统中运行的设备,例如服务器、PC、膝上电脑、移动电话或PDA。用于将设备编程以运行为通信系统中的节点的软件可以由系统提供商提供。客户端设备可以被编程为不仅用作系统中的客户端节点,而还用作充当系统自身的一部分的节点,例如用作中继节点。许多通信系统不是基于识别和认证系统内的实际机器而是基于识别和认证已向系统提供商注册的用户帐户而运行。因此,证书也可以被指派给用户帐户。证书可能被指派给在特定用户帐户下运行的客户端软件的实例。证书可能还被指派给由外部软件开发人员提供的软件,以致由外部提供的软件实现的应用可以通过将其证书转发给其他节点而像是有效应用那样认证其自身。在每种情况下,证书与节点的特定实例相关,不论该实例与节点自身还是在特定用户帐户下运行或运行特定应用的节点相关,并且因此,可以仍然认为证书被指派给该节点。在某些情况下,多个节点可以共享证书。在这些情况下,可以认为证书被指派给那些节点中的每个。每个证书适当地包括到期日,在该到期日之后其是无效的。然而,在某些情况下,通信系统可以在证书的到期日之前确定证书应当被撤销。所述情况的示例包括:
-移动电话或膝上电脑已被偷的订户联系系统运营商以要求阻止该被偷设备访问网络。-订户想要改变其用户名、密码或其它安全详情。-基于由系统做出的内部确定的决定。例如,使用“现收现付”费用的客户端可以在其预付余额已递减到零时被阻止,或者对系统做出不当行为的用户可以被系统仲裁人阻止。-外部开发人员已开发正被用于通信系统中并且包含漏洞(bug)的软件。在该场景中,通信系统可能想要有效阻止该软件访问该系统。这可以通过撤销指派给使用该软件的全部节点的证书来达到。可替换地,如果系统也指派证书给应用,则系统可以简单地撤销指派给有漏洞应用的全部证书。
伴随在证书的到期日之前撤销证书的困难在于,如何将特定证书不再有效通知到分布式通信系统中的全部节点。该问题可以通过使CA (其发出证书)为覆盖中的给定用户发布最新有效证书的指示符来解决。该指示符可以被一个或多个节点的子集存储。希望验证证书的有效性的节点可以从该子集的节点请求指示符。节点可以然后从指示符确定特定证书实际是否有效。节点可以然后依赖于证书的有效性来对证书所被指派给的节点进行认证。指示符被所述子集中的每个节点恰当地存储在这样的位置处,该位置在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的撤销,并且将由此直到证书34到期之前一直继续为节点205提供其可能不再被授权的服务。为解决该问题,CA将证书34撤销的指示符存储在节点203中,其是通过将指示符发送到节点203。指示符可能是一些值,例如证书的序列号或摘要。在本示例中,CA发送被指派给用户名ABC的当前有效证书的序列号(步骤9),节点203然后将其存储(步骤10)。证书撤销的指示符被恰当地存储在这样的位置,其中,被指派了已被撤销证书的节点不被允许写入该位置。因此,例如,CA可能将指示符35写入到节点203中的位置当前证书:ABC处,并且实施该位置仅可被CA写入的访问控制规则。如果节点204希望确认证书34仍然有效,其可以联系节点203获取对应于该证书的当前指示符(步骤11)。节点203返回指示符“35”(步骤12),该指示符“35”不对应于节点204当对客户端节点205进行认证时接受的证书的序列号(34)。节点204可以从此推断证书34已被撤销,并相应地从节点205撤走服务(步骤13)。伴随将证书的指示符的位置存储在覆盖中的问题在于,节点如果打算及时获取关于证书撤销的信息则必须定期轮询存储节点。这可以是在带宽方面昂贵的。性能/及时性折衷可以通过引入发布/订阅机制来改进。所述机制在由A.Roach等所著的“SessionInitiation Protocol (SIP) - Specific Event Notification”中一般地描述。该一般概念已被发展为涉及证书撤销数据,以致系统中的多个节点中的任一个可以从存储节点订阅证书更新。通常,依赖(relying)方将订阅包含证书状态的位置,并且,当存储在该位置的数据改变时,存储节点向依赖节点发送更新。更新可以包括:新指示符,或简单地对存储在所订阅位置处的数据已改变的指示。依赖节点可以将改变的任意指示看作是意指正在讨论的证书已被废止。如果攻击者获取了对刚巧存储状态信息的节点的控制(当使用小型DHT存储状态信息时,这更有可能),则其可以简单地不向订户节点更新有关证书撤销,或者其可以对于状态数据的当前状况撒谎。一个示例可能是,其中订户A的膝上电脑已被偷,并且窃贼已向系统运营商报告。运营商将然后撤销膝上电脑的证书以阻止其访问系统。然而,如果窃贼,订户B刚巧拥有存储针对膝上电脑证书的撤销数据的节点,则阻止膝上电脑的尝试可能无效。订户B可以停止节点发送关于膝上电脑的证书撤销的更新。订户B可能还将节点控制为发送这样的消息,该消息指示膝上电脑的已被撤销证书实际仍然有效。存在两种针对该形式攻击的防御。—种防御是将撤销信息存储在多个(冗余)位置处。这意味着,攻击者为控制关于特定证书的全部状态数据将不得不破坏多于一个节点。状态被存储于其中的位置越多,潜在攻击者获得对全部状态数据的控制越难。然而,上面的系统可以仍然被危害。有可能,即使不太可能,攻击者可以设法控制全部状态位置。另外,任何依赖于特定证书的节点将不得不订阅来自存储与该证书相关的状态数据的全部位置的更新。第二种防御是,通信系统发布其已生成的全部证书状态信息的定期摘要。这些摘要可能由CA恰当地生成。摘要用作对已被盗用的存储节点的检查。优选地,摘要不被太频繁地发送。每日更新应当足以保持对任何已被盗用节点的检查。摘要将恰当地包括系统中每个证书的有效性的指示。如果通信系统较大,则这可以共计达许多百万个证书。因此,为避免摘要消息变得不可行地大,其优选具有已压缩的格式。一种生成摘要的方式是数据集,该数据集识别哪些证书有效以及哪些无效。数据集可以例如是位图,其中,“I”代表无效证书,以及“O”代表有效证书。位图优选包括针对系统中的每个证书的条目。摘要消息可以然后通过对位图应用压缩算法来生成,从而摘要消息实际包含比通信系统中的证书的数量少的条目。摘要消息中的每个条目可以因此与多于一个证书相关。压缩算法适宜是有损压缩算法以将摘要消息的尺寸保持最小。这具有缺点:某些信息在压缩期间丢失。因此,节点从摘要无歧义地确定特定证书是否有效将未必是可能的。相反,摘要中的每个条目可以指示仅有可能特定证书是有效的。然而,节点可以通过对照存储在系统中别处的状态数据对摘要条目进行再次检查来解决摘要中的任何歧义。用于生成摘要的合适压缩算法的示例如Bloom过滤器。Bloom过滤器产生高度压缩的数据集,但具有非零错误判正率。换句话说,在摘要中具有“I”条目的证书(即,就像被撤销一样)可能实际未被撤销。任何使用摘要来确认证书的有效性的节点因此优选被安排为,使用存储在系统中别处的证书状态信息,对被指示为无效的证书实际已被撤销进行再次检查。
CA可以被安排为,使用其私钥对摘要进行数字签名,从而接受者节点可以验证摘要的来源。图3示出了示例性事件序列。在步骤301中,节点B从节点A请求服务。节点B使用其私钥对请求进行数字签名。节点A通过对请求应用对应公钥来对节点B进行认证。作为认证过程的一部分,节点A需要确认公钥是有效的并且已被指派给节点B这两者。节点A因此从节点C请求节点B的证书,其中该节点C存储该证书(步骤302)。节点C返回证书(步骤303)。节点A然后从节点D请求证书有效性的对应指示符,其中该节点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,以识别正存储请求服务的节点的证书和证书状态信息的一个或多个节点。存储节点可以通过对用户名应用例如哈希函数的数学函数来识另O。认证单元可以被安排为,指令通信单元将合适的请求消息发送到已识别的存储节点,以便获得所需的证书和状态指示符。认证单元可以还被安排为,导致通信单元将订阅请求发送到存储单元,从而每当指示符改变时该节点被更新。认证单元可以被安排为,如果其从存储节点接收到更新指示该证书的状态已改变,则确定证书无效。如之前一样,相关消息可以被通信单元502发送和接收。认证单元可以还被安排为,根据接收自通信系统的服务器的摘要确定特定证书是否有效。如果认证单元仅从摘要不能无歧义地回答该问题,则其被安排为,以与上面所描述的类似的方式,经由识别单元和通信单元向外发送对状态信息的请求。认证单元被安排为,使用返回的状态更新解决任何有效性歧义。如果在任意时刻由多个存储节点提供的状态信息相矛盾,则认证单元优选被安排为确定证书无效。如果节点501被服务器选为是用来存储证书或与证书相关的状态数据的节点子集中的一个,则该节点可以还包括用于存储认证数据的存储器505。如果节点被选为存储状态数据,则存储器优选被安排为实现这样的访问控制规则,以使得仅认证节点被允许向状态数据所存储于的存储器位置写入。图4中所示的服务器和图5中所示的节点这两者都被说明性地示为包括多个互连的功能块。在实践中,这些功能块很可能用软件来实现,尽管其也可以全部或部分上用硬件来实现。在本发明的一个优选实施例中,节点被安排为,借助于由网络运营商提供的软件根据本发明运行。本发明的实施例可以因此利用分布式通信系统来在大量节点中共享对客户端进行授权的职责。这降低了系统运行的服务器上的负载,并且具有加速对通信系统服务的访问的潜能。然而,使证书遍及系统被分发确实引起当证书被撤销时节点应当如何被更新的问题。本发明的实施例用一些方式解决该问题:发布证书状态数据,在多个节点中存储状态数据,以及定期发布状态摘要。这些特征共同作用为使流氓节点难以破环证书系统。申请人:特此分离地公开本文中描述的每个单独特征以及两个或多个所述特征的任意组合,在所述特征或组合能够根据本领域的技术人员的常识、作为整体基于本说明书被实现的范围内,不论所述特征或特征的组合是否解决本文中公开的任何问题,并且不限制权力要求的范围。申请人指出,本发明的方面可以由任意所述特征或特征的组合构成。鉴于前面的描述,对于本领域的技术人员将显而易见的是,可以在本发明的范围内作出各种修改。
权利要求
1.一种包括多个节点的通信系统,所述通信系统被安排为: 为所述多个节点的每个指派证书,借助于该证书其可以向所述通信系统中的其他节点认证其自身; 定期向所述多个节点分发更新,所述更新通过对代表指派给所述多个节点的证书的有效性的数据集进行压缩来形成,所述更新是这样的,其使得节点不可以能够从所述更新中无歧义地确定特定证书是否有效;以及 为所述多个节点提供与所述更新不同的、关于所述多个证书的有效性的信息源,并且,借助于该信息源,节点可以解决所述更新中关于特定证书的有效性的歧义。
2.根据权利要求1的通信系统,其中,所述通信系统被安排为,通过形成所述数据集以使得其识别所述 证书中的哪些有效以及所述证书中的哪些无效来生成所述更新。
3.根据权利要求1或2的通信系统,其中,所述通信系统被安排为,将所述数据集形成为位图,所述位图包括数量至少与指派给所述多个节点的证书的数量一样多的条目。
4.根据任一前面权利要求的通信系统,其中,所述通信系统被安排为,将所述更新生成为位图,所述位图包括数量比指派给所述多个节点的证书的数量少的条目。
5.根据任一前面权利要求的通信系统,其中,所述通信系统被安排为,通过对所述数据集应用有损压缩算法来生成所述更新。
6.根据任一前面权利要求的通信系统,其中,所述通信系统被安排为,通过对所述数据集应用Bloom过滤器来生成所述更新。
7.根据任一前面权利要求的通信系统,其中,所述通信系统被安排为,存储证书撤销的指示符作为与所述定期更新不同的、关于所述多个证书的有效性的信息源。
8.根据权利要求7的通信系统,其中,所述通信系统被安排为,将所述指示符存储在所述通信系统中这样的位置处,其中,被指派了所述已被撤销证书的节点不被允许写入该位置。
9.根据权利要求7或8的通信系统,其中,所述通信系统包括认证节点,所述认证节点被安排为:确定证书应当被撤销,以及,响应于该确定,将该证书撤销的指示符写入这样的位置,该位置在所述认证节点外部,并且被指派了所述已被撤销证书的节点不被允许写入该位置。
10.根据任一前面权利要求的通信系统,其中,所述通信系统包括存储节点,所述存储节点被安排为,存储与所述定期更新不同的、关于所述多个证书的有效性的信息源。
11.根据依赖于权利要求7到9中任一个的权利要求10的通信系统,其中,所述存储节点被安排为存储所述指示符。
12.根据权利要求11的通信系统,其中,所述存储节点被安排为,不允许被指派了所述已被撤销证书的节点写入所述指示符所存储于的位置。
13.根据权利要求3的通信系统,其中,所述存储节点被安排为,允许仅所述认证节点写入所述指示符所存储于的位置。
14.根据权利要求7到13中任一个的通信系统,其中,所述多个节点中的一个或多个被安排为,当其不能从所述更新中无歧义地确定特定节点是否有效时,获取对应于该特定证书的指示符,并且从所述指示符中确定该特定证书是否有效。
15.根据权利要求9到14中任一个的通信系统,其中,所述认证节点被安排为,响应于确定所述证书应当被撤销,为被指派了所述已被撤销证书的节点指派新证书。
16.根据权利要求7到15中任一个的通信系统,其中,所述指示符识别这样的证书,该证书是最新近被指派给被指派了所述已被撤销证书的节点的有效证书。
17.根据权利要求16的通信系统,其中,所述指示符包括序列号,该序列号关联于所述最新近被指派给被指派了所述已被撤销证书的节点的有效证书。
18.根据权利要求11到17中任一个的通信系统,其中,所述多个节点中的一个或多个被安排为,每当所述指示符改变时,请求所述存储节点对其进行更新。
19.根据权利要求18的通信系统,其中,所述存储节点被安排为,当所述指示符改变时,将该改变的指示发送到所述已请求所述更新的节点。
20.根据权利要求18或19的通信系统,其中,所述存储节点被安排为,当所述指示符改变时,将所述新指示符发送到所述已请求所述更新的节点。
21.根据权利要求9到20中任一个的通信系统,其中,所述认证节点被安排为,将所述指示符写入多于一个节点。
22.根据权利要求21的通信系统,其中,所述存储所述指示符的节点中的每个被安排为,不允许被指派了所述已被撤销证书的节点写入所述指示符所存储于的位置。
23.一种用于在包括多个节点的通信系统中运行的节点,其中,每个节点被指派证书,借助于该证书,其可以向所述通 信系统中的其他节点认证其自身,所述节点被安排为: 接收更新,所述更新指示被指派给所述多个节点的证书的有效性; 确定其不能从所述更新中无歧义地断定特定证书是否有效;以及 响应于该确定,访问与所述更新不同的、关于所述多个证书的有效性的信息源,并且借助于该信息解决关于所述特定证书有效性的所述歧义。
24.根据权利要求23的节点,其中,所述通信系统被安排为,当证书被撤销时,该撤销的指示被存储在所述多个节点中的一个中,该节点被安排为:通过获取关联于该证书的指示符,并依赖于该指示符确定所述特定证书是否有效,解决关于所述特定证书的有效性的所述歧义。
25.根据权利要求23或24的节点,其中,所述通信系统被安排为,证书撤销的指示符识别这样的证书,该证书是最新近被指派给被指派了所述已被撤销证书的节点的有效证书,所述节点被安排为:如果关联于另一节点的证书的指示符将该证书识别为是最新近被指派给该另一节点的有效证书,则对另一节点进行认证。
26.根据权利要求24或25中任一个的节点,其中,所述节点被安排为,每当所述指示符改变时,请求正存储关联于特定证书的指示符的节点对其进行更新。
27.一种用于在包括多个节点的通信系统中运行的认证节点,其中,每个节点被指派证书,借助于该证书,其可以向所述通信系统中的其他节点认证其自身,所述认证节点被安排为: 定期向所述多个节点分发更新,所述更新通过对代表被指派给所述多个节点的证书的有效性的数据集进行压缩来形成,所述更新是这样的,以致节点不可以能够从所述更新中无歧义地确定特定证书是否有效;以及 导致关于所述多个证书的有效性的信息源被所述通信系统存储,其中,所述信息源与所述更新不同,并且,借助于信息源,节点可以解决所述更新中关于特定证书的有效性的歧义。
28.根据权利要求27的认证节点,其中,所述认证节点被安排为,通过形成所述数据集以使得其识别所述证书中的哪些有效以及所述证书中的哪些无效来生成所述更新。
29.根据权利要求27或28的认证节点,其中,所述认证节点被安排为,将所述数据集形成为位图,所述位图包括数量至少与被指派给所述多个节点的证书的数量一样多的条目。
30.根据权利要求27到29中任一个的认证节点,其中,所述认证节点被安排为,将所述更新生成为位图,所述位图包括数量少于被指派给所述多个节点的证书的数量的条目。
31.根据权利要求27到30中任一个的认证节点,其中,所述认证节点被安排为,通过对所述数据集应用有损压缩算法来生成所述更新。
32.根据任一前面权利要求的认证节点,其中,所述通信系统通过对所述数据集应用Bloom过滤器来生成所述更新。
33.根据权利要求27到32中任一个的认证节点,其中,所述认证节点被安排为:确定证书应当被撤销,以及,响应于该确定,将该证书的撤销的指示符作为所述关于所述多个证书的有效性的信息源写入所述多个节点中的一个中。
34.根据权利要求33的认证节点,其中,所述认证节点被安排为,将所述指示符写入所述多个节点中的所述一个中这样的位置处,其中,被指派了所述已被撤销证书的节点不被允许写入该位置。
35.根据权利要求33或34的认证节点,其中,所述认证节点被安排为,响应于所述证书应当被撤销的所述确定,为所述被指派了所述已被撤销证书的节点指派新证书。
36.根据权利要求33到35中任一个的认证节点,其中,所述认证节点被安排为,将所述指示符形成为识别这样的证书,该证书是最新近被指派给被指派了所述已被撤销证书的节点的有效证书。
37.根据权利要求33到36中任一个的认证节点,其中,所述认证节点被安排为,将所述指示符形成为包括序列号,该序列号关联于最新近被指派给被指派了所述已被撤销证书的节点的有效证书。
38.根据权利要求33到37中任一个的认证节点,其中,所述认证节点被安排为,将所述指示符写入多于一个节点。
39.一种编码有指令的计算机可读介质,当被用于在包括多个节点的通信系统中运行的节点执行时,其中,每个节点被指派证书,借助于该证书其可以向所述通信系统中的其他节点认证其自身,所述指令导致所述节点: 接收更新,所述更新指示被指派给所述多个节点的证书的有效性; 确定其不能从所述更新中无歧义地断定特定证书是否有效;以及 响应于该确定,访问与所述更新不同的、关于所述多个证书的有效性的信息源,并借助于该信息解决所述关于所述特定证书有效性的歧义。
40.一种编码有指令的计算机可读介质,当被用于在包括多个节点的通信系统中运行的认证节点执行时,其中,每个节点被指派证书,借助于该证书其可以向所述通信系统中的其他节点认证其自身,所述指令导致所述认证节点: 定期向所述多个节点分发更新,所述更新通过对代表被指派给所述多个节点的证书的有效性的数据集进行压缩来形成,所述更新是这样的,以使得节点不可以能够从所述更新中无歧义地确定特定证书是否有效;以及 导致关于所述多个证书的有效性的信息源被通信系统存储,其中,所述信息源与所述更新不同,并且,借助 于所述信息源,节点可以解决所述更新中关于特定证书的有效性的歧义。
全文摘要
一种包括多个节点的通信系统,所述通信系统被安排为为所述多个节点的每个指派证书,其中,借助于该证书,所述节点可以向所述通信系统中的其他节点认证其自身;定期向所述多个节点分发更新,其中,所述更新通过对代表被指派给所述多个节点的证书的有效性的数据集进行压缩来形成,所述更新是这样的,以使得节点不可以能够从所述更新中无歧义地确定特定证书是否有效;以及,为所述多个节点提供关于所述多个证书的有效性的信息源,其中,所述信息源与所述更新不同,并且,借助于所述信息源,节点可以解决所述更新中关于特定证书有效性的歧义。
文档编号H04L9/32GK103098436SQ201180044509
公开日2013年5月8日 申请日期2011年9月15日 优先权日2010年9月17日
发明者E.雷斯科拉, T.佐尔佐维利斯 申请人:斯凯普公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1