用于提供安全组播集群内通信的系统和方法

文档序号:7992239阅读:104来源:国知局
用于提供安全组播集群内通信的系统和方法
【专利摘要】公开了使用在加入集群的节点与作为所述集群的有效部分的任何单个节点之间的认证来促进在集群中的任何有效节点之间的安全组播通信的系统和方法。根据实施例,集群密钥用于为集群内通信提供安全性。实施例的集群密钥由已经为集群的部分的节点与加入集群的节点仅在这两个节点互相彼此认证之后共享。实施例的所述互相认证握手实施其中会话密钥由两个节点计算的协议,从而提供可共享集群密钥的安全手段。根据实施例,通过具有所述集群密钥,所述集群中的每个节点能够与所述集群中的任何其它节点或者单独地(例如单播)或者共同地(例如组播)安全通信。
【专利说明】用于提供安全组播集群内通信的系统和方法
【技术领域】
[0001]本发明大体涉及集群内通信,并且更具体而言,涉及提供安全组播集群内通信。
【背景技术】
[0002]存在其中一集群中的不同节点彼此通信的各种系统配置,其中节点为可操作以提供所期望的功能、服务或运算或其部分并且可与其它节点配合以形成集群的操作单元(例如基于处理器的系统)。例如,数据存储系统常常包括存在于该数据存储系统的不同节点处的多个存储装置。此类数据存储系统可使用多种存储架构(诸如网络附接存储(NAS)环境、存储区域网络(SAN)、直接附接存储环境及其组合)来实现。数据存储系统的节点可包括基于处理器的系统,诸如文件服务器系统、家用计算机、计算机工作站等。在不同节点处的存储装置可包括磁盘驱动器、闪速存储器、光学存储器等。可根据存储架构将从所述存储装置中选择的一些存储装置组织成存储阵列。承 载存储阵列中的存储装置以及其它联网装置的节点可因此包括可配合地操作以提供数据存储系统的节点集群。
[0003]为了作为集群来操作,集群中的节点彼此通信。此类通信可包括各种点对点通信(例如单个节点对单个节点或单播通信)和组播通信(例如单个节点对多个节点)。因此,为了有效地配合以提供所期望的操作,集群中的每个节点可需要具有与该集群中的任何和所有其它节点通信的能力。然而,此类通信可能会穿行于不安全的链接,诸如公共或其它网络链接(例如互联网、公用电话交换网(PSTN)、局域网(LAN)、城域网(MAN)、广域网(WAN)等)。通过此类不安全的链接运载的此类通信可易受拦截、窃听、篡改、监控、嗅探、中间人攻击、中继攻击、重放攻击等的影响。
[0004]因此,各种安全协议已经在过去实施以促进在集群中的节点之间的通信(即集群内通信)。例如,集群中的节点已实现安全套接字层(SSL)和传输层安全(TLS)安全协议,以保证集群内通信安全。SSL和TLS为密码协议,其通过将非对称密码技术用于私有和加密钥的消息认证码以求消息可靠性来提供通信安全。然而,这些安全协议为点对点安全协议。即,针对每个节点对,采用唯一的密钥集。因此,安全组播通信无法通过使用SSL和TLS安全协议来提供。
[0005]虽然已经开发出用于保证组播通信安全的协议,但是迄今为止此类协议还无法针对组播通信提供足够的安全性并且还没有充分地适应节点与集群的动态关联。已经用于提供通信的安全性的一个此类协议为JGROUPS。JGR0UPS提供组播协议,其中在传输协议之上增加“分组”层。为了针对组播通信提供安全性,JGROUPS实施其AUTH和ENCRYPT协议。然而AUTH协议仅使用单个基于令牌的认证(例如在不安全的链接之上传送的密码或其它认证凭证)来提供单向认证(即仅一个节点认证另一个),因此窃听者可以监控通信并且模拟安全握手(例如重放攻击)以建立虚假的认证。ENCRYPT协议使用集群密钥(clusterKey)来加密所有组播通信。然而,ENCRYPT协议的集群密钥被提供给提供其自己的公共密钥并且要求集群密钥的任何节点。因此,即使利用由JGROUPS实现的AUTH和ENCRYPT协议,中间人亦可轻易地加入集群并且因此针对组播通信所提供的安全性具有略微空洞。
【发明内容】

[0006]本发明针对使用在加入集群的节点与作为该集群的有效部分的任何单个节点之间的认证来促进该集群中的任何有效节点之间的安全组播通信的系统和方法。根据本发明的实施例,集群密钥(例如对称密码密钥)用于提供集群内通信的安全。实施例的所述集群密钥由已经为集群的部分的节点与加入集群的节点仅在这两个节点互相彼此认证之后共享。实施例的互相认证握手实施其中会话密钥由两个节点计算的协议,或与与该协议关联,从而在会话密钥尚未经网络或其它连接传送的情况下促进在节点之间的安全链接。根据本发明的实施例,会话密钥被已经为集群的部分的节点用来与加入集群的节点在这两个节点互相彼此认证之后安全地共享集群密钥。通过具有集群密钥,集群中的每个节点能够与该集群中的任何其它节点或者单独安全通信(例如单播)或者共同安全通信(例如组播)。 [0007]从上文可以了解,本发明的实施例通过在集群中的任何节点上进行认证来促进节点加入集群。本发明的实施例不依赖公钥基础设施或证书的使用来提供节点的认证。因此,避免了在PKI或管理证书中所涉及的配置和维护。然而,即使在定制或调适于用在组播通信的集群环境的新方法中,本文的实施例仍可利用可用认证协议、密钥协定协议和/或加密算法或其部分,以利用良好测试的并且完全基于证明文件的技术。
[0008]一旦被认证,就与整个节点集群建立针对所加入的节点的信任。即,加入集群的节点作为加入的逻辑单元本质上得到集群的认证。由此,根据本文的实施例不必要针对在集群中的每一个节点或甚至多于一个节点来认证加入集群的节点,如在实施点对点类型协议的方式中所要求的。一旦加入,集群中的节点能够使用包括单播和组播消息传送的各种消息传送技术与集群中的其它节点通信。针对本发明的实施例的操作,在点对点类型协议中不容易实施组播通信技术。
[0009]上文已相当宽泛地概述了本发明的特征和技术优势以便更好地理解下面的对本发明的详细的描述。本发明的额外的特征和优势将在下文中描述,这形成本发明的权利要求的主题。本领域技术人员应了解,可容易地利用所公开的概念和具体的实施例作为用于修改或设计用于执行本发明的相同用途的其它结构的基础。本领域技术人员也应意识到,此类等效构造不脱离在所附的权利要求中陈述的本发明的精神和范围。新颖的特征被认作本发明的特性,就其组织和操作方法而论,以及进一步的目标和优势将从下列在结合附图考虑的描述被更好地理解。然而,应清楚地理解提供每个附图仅用于说明和描述的目的,而不意欲作为限定本发明的限制。
【专利附图】

【附图说明】
[0010]为了更完整理解本发明,现在参考结合附图作出的下列说明,其中:
[0011]图1A和图1B示出根据本发明实施例的适于使一集群中的每个节点能够安全地与该集群中的任何其它节点通信的系统的框图。
[0012]图2示出根据本发明实施例的使一集群中的每个节点能够安全地与该集群中的任何其它节点通信的高层处理流程的梯形图。
[0013]图3示出根据本发明实施例的使一集群中的每个节点能够安全地与该集群中的任何其它节点通信的更详细的处理流程的梯形图。【具体实施方式】
[0014]下面提供本文所使用的特定术语的意义的简述,以便帮助读者更好地理解下列论述中描述的本发明的概念。虽然下文提供针对特定术语的一般意义,应了解的是针对本文某术语的额外的意义可在下文所论述的特定实施例的上下文中而提供。
[0015]本文所使用的集群为一组链接或另外关联的节点,其可一起操作以提供在许多方面中所期望的功能、服务或运算,从而形成单个逻辑实体。节点为联网装置操作单元,诸如基于处理器的系统(例如计算机、网络家电等)和关联的指令集(例如软件、固件、应用程序等),其可操作以提供所期望的功能、服务或运算或其部分并且可与其它节点配合以形成集群。集群内通信为在集群中的两个或多个节点之间的诸如单播通信和组播通信的通信。单播通信为将一个或多个消息或信息发送至单个网络目的地(例如节点)。组播通信为通过单个传输将一个或多个消息或信息发送至多个网络目的(例如节点)。
[0016]如本文所使用的,认证为一方(例如节点)确认另一方(例如另一节点)的身份的过程,而互相认证为两方(例如节点)确认彼此的身份的过程。认证握手为在两方(例如节点)之间的消息的对话试图认证一方或另一方(认证)或者彼此认证(互相认证)。密钥协定协议为如下协议,其中两方或多方(例如节点)可以用使得两者都影响结果的方式来协定密钥(例如用于数据加密和/或解密的密码密钥),从而促进唯一密钥(例如会话密钥)的分别计算而无需在通信方之间传送该唯一密钥并且因此避免窃听和篡改。窃听为当第三方(例如不是集群的部分的节点)在通信中所涉及的通信方(例如集群的节点)未同意和/或不知晓的情况下观察通信时。篡改为当第三方(例如不是集群的部分的联网装置)在通信中所涉及的通信方(例如集群中的节点)不知晓的情况下改变或以其他方式更改正在通信方之间的途中的数据。加密为使用算法(称为密码(cipher))变换信息(在加密之前被称作纯文本)以使其对于除了那些拥有特殊知识(通常称作密钥(例如密码密钥))的人以外的任何人不可读的过程,而解密为将加密的信息变换回纯文本的过程。
[0017]直接关注图1A,示出包括经由网络101耦合的多个联网装置(示出为联网装置110-130)的系统100。联网装置110-130可包括基于处理器的系统,诸如文件服务器系统、家用计算机、计算机工作站等。因此,实施例的联网装置110-130包括处理器(例如中央处理单元(CPU)、专用集成电路(ASIC)、可编程门阵列(PGA)等)、存储器(例如随机存取存储器(RAM)、只读存储器(ROM)、磁盘存储器、光学存储器、闪速存储器等)以及合适的输入/输出电路系统(例如网络接口卡(NIC)、无线网络接口、显示器、键盘、数据总线等)。上文基于处理器的系统可在提供本文所述的操作的指令集(例如软件、固件、小应用程序、代码等)的控制之下操作。网络101可包括各种形式的通信基础设施,诸如互联网、PSTN、LAN、MAN、WAN、无线网络(例如移动通信网络、无线LAN等)和/或类似物。
[0018] 可提供系统100的各种配置,其中由联网装置110和联网装置120形成集群中的一个或多个节点,从而提供集群环境,其中通过在集群中的节点之间的通信来促进集群的配合操作。例如,数据存储系统可由联网装置110-130形成,其中存在于联网装置110和联网装置120的一个或多个存储装置(例如存储装置114和存储装置124)(例如磁盘驱动器、闪速存储器、光学存储器等)配合以提供可访问联网装置130的卷。联网装置110和联网装置120承载存储阵列的存储装置,客户端联网装置130可因此包括可配合地操作以提供数据存储系统的节点的集群。
[0019]图1B提供框图,其中针对系统100的实施例的额外细节适于使集群中的每个节点能够与该集群中的任何其它节点安全地通信。如上文所阐述的,系统100可包括两个或多个互相连接的诸如联网装置110和联网装置120,其被配置成提供对在构成系统100的存储器的一组存储装置(示出为存储装置114和存储装置124)上存储的数据的访问。存储服务可由此类实现配合以提供系统100的分布式存储系统架构的各种功能部件的节点提供。
[0020]说明性地,可将节点(例如联网装置110和联网装置120)组织成一个或多个网络元件(N-模块112和N-模块122)和/或存储元件(D-模块113和D-模块123)以及管理元件(M-主机111和M-主机121)。N-模块可包括使节点能够通过计算机网络101连接至一个或多个客户端(联网装置130)的功能,而D-模块可连接至存储装置(例如可实现为一存储阵列XM-主机可提供在节点之间的集群通信服务,用于生成信息共享操作并且用于呈递系统100的分布式文件系统映像。用于使一集群中的每个节点与该集群中的任何其它节点安全地通信的功能可由根据本发明实施例而调整的M-主机提供。
[0021]应了解的是网络101可包括各种形式的网络基础设施以及甚至分离部分的网络基础设施。例如,联网装置Iio和联网装置120可由集群交换机构102互相连接,而联网装置110和联网装置120 可通过更普遍的数据网络(例如互联网、LAN等)而互相连接至联网装置130。
[0022]也应注意到尽管示出组成所示实施例的节点的相等数量的N和D-模块,但根据本发明的各种实施例,可存在不同数量和/或类型的功能部件实施节点。例如,系统100中可存在互相连接的多个N-模块和/或D-模块,这些模块不反映在联网装置110和120的模块之间的一一对应性。因此,包括一个N-模块和一个D-模块的联网装置110和联网装置120的描述应被视为仅为说明性的,并且将理解新颖的技术不受限于本文所述的说明性的实施例。
[0023]联网装置130可为通用计算机,其被配置成根据信息传递的客户端/服务器模型与联网装置Iio和联网装置120交互。为此,联网装置130可通过将读取或写入请求提交至包括联网装置的集群节点来请求联网装置110和联网装置120的服务。响应于该请求,节点可通过在网络101之上交换信息包来返回所请求的服务的结果。联网装置130可通过使用基于对象的访问协议(诸如例如通用互联网文件系统(CIFS)协议、网络文件系统(NFS)协议、在TCP之上封装的小型计算机系统接口(SCSI)协议(iSCSI)和在光纤通道(FCP)之上封装的SCSI)发布数据包来提交访问请求。优选地,联网装置110和联网装置120可实现基于文件的协议和基于框的协议的组合以与联网装置130通信。
[0024]系统100还可包括用于提供全部集群的管理服务的管理控制台(在此示出为管理控制台150)。例如,管理控制台150可通过网络101与联网装置110和联网装置120通信,以请求在由联网装置组成的集群节点处执行操作,并且从节点请求信息(例如节点配置、操作指标)或将信息提供给节点。另外,管理控制台150可被配置成从系统100的用户(例如存储管理员)接收输入并且将输出提供给系统100的用户,从而作为在管理员与系统100之间的集中式管理接口来操作。在说明性的实施例中,可将管理控制台150联网至联网装置110-130,但是本发明的其它实施例可用节点的功能部件或者连接至或组成系统100的任何其它处理系统来实现管理控制台150。[0025]在分布式架构中,联网装置130向一节点提交对存储在一远程节点处的数据的访问请求。作为示例,可将来自联网装置130的访问请求发送至联网装置120,该访问请求可指向联网装置110上的存储器114中的存储对象(例如,卷(volume))。为了加速对访问请求的服务并且优化集群性能,联网装置120可将所请求的卷缓存在本地存储器(memory)中或在存储器(storage) 124中。例如,在作为集群节点的联网装置120的初始化期间,联网装置120可向联网装置110请求联网装置110的所有或部分卷,以用于在联网装置130实际请求此类数据之前在联网装置120处进行存储。
[0026]如从上文可以了解的,为了作为集群(例如前面提及的数据存储系统)来操作,联网装置110-130可彼此通信。此类通信可包括各种形式的通信(例如点对点或单播通信、组播通信等)。因此,根据本发明的实施例,为了有效地配合以提供所期望的操作,作为逻辑实体,一个集群中的每个节点可被提供与该集群中的任何和所有其它节点通信的能力。然而,由于网络101可提供不安全的链接,所以此类通信可易受拦截、窃听、篡改、监控、嗅探、中间人攻击、中继攻击、重放攻击等的影响,本发明的实施例使用在加入集群的节点与作为该集群的有效部分的任何 单个节点之间的认证来在该集群的任何有效节点之间提供安全通Ih (例如单播和组播)。
[0027]为了促进安全通信,加入集群的节点作为加入的逻辑单元通过该集群的认证,并且因此可在加入的节点与该集群的任何其它有效节点之间提供安全通信,根据本发明的实施例的操作在加入集群的节点与作为该集群的有效部分的任何单个节点之间执行互相认证会话。如果互相认证成功,根据实施例的操作使用针对互相认证会话唯一的安全通信信道(例如使用根据互相认证所计算的会话密钥)将集群机密(例如,集群密钥)传送至加入集群的节点。根据本发明的实施例,拥有集群机密和集群证书使加入集群的节点成为集群节点并且集群机密使集群节点能够与作为该集群的有效部分的每一个其它节点安全地通信。
[0028]图2示出一处理流程,根据本文的实施例,其使集群的每个节点能够与该集群中的任何其它节点或者单独地(例如单播通信)或者共同地(例如组播通信)安全通信,而无需加入集群的节点针对集群中的每一个节点或甚至多于一个节点来认证。具体而言,图2的梯形图提供根据实施例当新节点(例如联网装置120)加入一集群(在该集群中,另一节点是第一成员,例如联网装置110)时发生的认证握手、会话密钥协定和集群密钥交换。应了解的是图2中所示的处理流程的功能可用软件实现,在这种情况下,本发明的实施例的元件本质上为可在基于处理器的系统或计算机系统(例如联网装置110、联网装置120和/或联网装置130)上操作以执行必要任务的代码段。程序或代码段可以存储在计算机可读介质中(例如联网装置110-130中的相应联网装置的前述存储器)。
[0029]根据所示的实施例,假设将成为集群的有效部分的每个节点拥有集群凭证(例如集群密码)。因此,在所示的实施例的过程201,添加集群凭证以确立联网装置110为将有效地包括在集群中的节点。应了解的是可实施各种技术用于集群凭证的添加。例如,联网装置110的用户可在启动期间在联网装置的控制台输入集群密码,集群密码可从通过各种手段保护的文件(例如在暂时附接至联网装置的通用串行总线(USB)存储器装置的存储器中存储的文件)读出,集群密码可从其它可能的机密、数据等获得。无论何种具体的用于添加集群凭证至节点的技术,一旦具有适当的凭证,联网装置110就可有效地加入集群。
[0030]在过程202,联网装置110确定其为集群中的第一成员。对于联网装置110,可实施各种技术以确定集群的其它节点是否存在。例如,联网装置110可经由网络101发送一个或多个消息以查询来自另一集群节点的响应,和/或联网装置110可与管理节点或维护成员节点的数据库的其它集群源(例如管理控制台、M-主机等)通信。作为补充或替代,联网装置110可监控网络101上的通信以识别集群通信业务的存在。无论所示的实施例的联网装置110如何确定其为集群的第一成员,联网装置110在过程202生成新集群机密(例如集群密钥)以用于保证集群通信的安全。
[0031]如根据本文的实施例所利用的集群密钥可使用各种技术而生成。例如,集群密钥可使用安全和/或随机数据而生成。系统常常提供生成伪随机数据的方式,诸如可使用基于CPU温度、风扇速度、鼠标移动、网络流量等的数据作为种数据。此类伪随机数据可用于计算用作本文的集群密钥的密码密钥。根据本发明的实施例所生成的集群密钥包括对称密钥(即提供对称加密,其中相同的密码密钥提供加密和解密)。因此,避免了针对使用此集群密钥进行的集群通信在PKI或管理证书中所涉及的配置和维护。
[0032]如果具有集群机密和集群凭证,则联网装置110为集群的成员(尽管目前为仅有的成员)。联网装置110可操作以诸如通过广播一个或多个消息、与管理节点或维护成员节点的数据库的其它集群资源通信(例如管理控制台、M-主机等)等宣布其为集群的成员。
[0033]在图2中所示的实施例,联网装置120希望加入其中联网装置110为目前仅有成员的集群。因此,在所示的实施例的过程203,添加集群凭证以确立联网装置120为将有效地包括在集群中的节点。如上文针对联网装置110所论述的,可实施用于添加集群凭证的各种技术。无论何种具体的用于将集群凭证添加至联网装置的技术,一旦具有适当的凭证,联网装置120即可有效地加入该集群。
[0034] 在过程204,联网装置120确定在集群中已经存在至少一个成员。如上文针对联网装置Iio所论述的,对于联网装置120,可实施各种技术以确定集群的其它节点是否存在。无论所示的实施例的联网装置120如何确定至少一个成员已经为集群的成员,在过程204经由网络101执行在联网装置120 (加入集群)与现有的集群成员(在该情况中,联网装置110)之间的互相认证握手。由加入节点所选择的用于执行本文的互相认证的特定集群节点可基于许多标准(例如作为集群的最老成员的集群节点、在物理上位于离该加入节点最近的集群节点、可使用具有最少跳数的链接的集群节点、具有最低利用率的集群节点等)的任何标准来选择。应了解的是用于提供本文的互相认证的所选择的集群成员可为加入集群的节点的对等节点。即,不需要利用管理节点或其它集中集群资源,而是作为集群的有效部分的对等节点(例如如果不是发起集群机密的节点,那么可以是已经互相认证过的节点、以及拥有集群机密的节点)的每个可提供根据本文的实施例的认证和集群加入处理。
[0035]根据本发明的实施例而实施的认证握手导致联网装置120和联网装置110的互相认证。此类互相认证握手的使用确保提供用于提供给集群的有效成员的集群机密和/或凭证或者其它安全信息不被提供给未被授权的联网装置或并非集群的有效部分的其它节点(例如中间人)。各种互相认证协议可用于提供过程204的认证握手。在下文参考图3中所示的实施例来提供针对一个此类互相认证协议的细节。无论所实现的具体互相认证协议是哪个,联网装置110和联网装置120的每个针对联网装置120和联网装置110的另一个通过实施例所示的互相认证握手的操作而认证。如果在任何时间联网装置110或联网装置120检测到认证失败,则优选中止加入过程。[0036]在根据本发明的实施例的操作中,联网装置110和联网装置120都导出会话机密(例如会话密钥)作为互相认证握手的部分或与互相认证握手关联。如根据本文的实施例所利用的会话机密可使用各种技术而生成。例如,会话密钥可从在认证握手期间收集的数据而生成。在下文参考图3中所示的实施例来提供针对用于会话密钥生成的一个此类技术的细节。在根据本发明的实施例的操作中,集群凭证、用户导出的信息、在集群中的所有节点的共同信息和可呈递可检测的图案或会使分别计算的会话机密的安全性变弱的其它信息不用在导出会话机密本身中。无论何种具体的生成会话机密的技术,实施例操作以由参与互相认证握手的每个节点来分别生成会话机密,使得会话机密(例如会话密钥)不会通过加入节点的链接(例如网络101)。因此,在所示的实施例中,过程205由联网装置110实施以计算会话机密,而与之分离地,过程206由联网装置120实施以计算会话机密。
[0037]假设互相认证成功,根据本发明的实施例利用上文的会话机密以将集群机密经由网络101从联网装置110安全地传送至联网装置120。因此,在所示的实施例的过程207,联网装置110使用会话机密(例如会话密钥)来加密集群机密(例如集群密钥)并且将加密的集群机密发送至联网装置120。例如,在实施例的过程207使用会话密钥加密集群密钥可使用AES-128对称密钥加密。然而,根据本发明的实施例,亦可使用其它密码密钥算法(例如其它对称密码密钥算法,诸如国际数据加密算法(IDEA)和CAST-128密码算法)。根据本发明的实施例的所利用的会话密钥不依赖PKI或证书的使用来提供节点的认证,并且因此避免在PKI或证书管理中所涉及的配置和维护。
[0038]在将集群机密发送至联网装置120之后,根据本发明的实施例,对于联网装置110而言,联网装置Iio与联网装置120之间的集群加入会话完成,并且因此联网装置110然后可丢弃会话机密。根据实施例,联网装置110可操作以将作为集群的有效部分的节点的列表更新为包括新加入的联网装置120,诸如以用于之后的集群操作。应了解的是,联网装置110可(例如在丢弃会话机密之前)将额外的信息(诸如前面提及的作为集群的有效部分的节点的列表)传送至联网装置120。实施例的联网装置120使用会话机密来解密从联网装置110接收的加密的集群机密以获得集群机密。根据本发明的实施例,在解密从联网装置110接收的集群机密之后,对于联网装置120而言,联网装置110与联网装置120之间的集群加入会话完成,并且因此联网装置120然后可丢弃会话机密。联网装置110和/或联网装置120可(例如使用集群机密)向集群中的其它节点传送将联网装置120识别为集群节点的信息。
[0039]通过具有集群机密和集群凭证,联网装置120成为集群的成员(目前为两个成员中的一个)。因此,在根据实施例的操作中,联网装置120信任在集群中的每一个其它成员,并且在集群中的每一个其它成员信任联网装置120。一旦加入,集群的节点就能够使用包括通过使用各种消息传送技术与集群中的其它节点通信,所述各种消息传送技术包括通过使用集群机密进行(例如使用集群密钥加密消息)的单播和组播消息传送。即,联网装置120已经能够安全地获得集群中的所有其它节点所共享的集群机密,并且因此联网装置120可使用集群机密与那些节点单独通信(例如单播通信)或者共同通信(例如组播通信)。由此,使用(例如用集群密钥加密的)集群机密来保证至/从集群中的任何成员的进一步通信的安全性,如由所示的实施例的过程208所表示的。
[0040]例如,在实施例的过程208使用会话密钥加密消息可使用AES-128对称密钥加密。然而,根据本发明的实施例,可使用其它密码密钥算法(例如其它对称密码密钥算法,诸如国际数据加密算法(IDEA)和CAST-128密码算法)。根据本发明的实施例的所利用的集群密钥不依赖PKI或证书的使用来提供节点的认证,并且因此避免在PKI或证书管理中所涉及的配置和维护。
[0041]应了解的是一旦得到集群中的任何节点的认证,如上文所述的,在整个节点集群中建立针对所加入的节点的信任。由此,根据本文的实施例,不必要针对在集群中的每一个节点或甚至多于一个节点来认证加入集群的节点。即,如根据本文的实施例所实施的互相认证技术提供这样的配置,其中每个节点被配置成促进节点本身加入集群的集群机密的接收方以及促进其它节点加入集群的集群机密的源。因此,当第三节点(例如类似于图1A的联网装置Iio和联网装置120的联网装置)要加入形成为包括在图2中的联网装置110和联网装置120的集群,此类加入节点可执行与已经为集群的部分的任何单个节点(例如为联网装置110或联网装置120)的互相认证和集群机密共享处理(例如执行图2的过程203-207)并且建立与集群的每一个节点(例如联网装置110和联网装置120)的信任和安全通信的能力。即,由于已经成功加入集群的每一个节点具有集群机密(例如集群密钥),所以任何节点可以与集群中的任何其它节点通信。这允许单播和组播消息用于集群内通信。如从上文可以了解的,经仅认证集群中的 单个节点,而非得到集群中每个节点的认证,节点即具有多播通信能力。该方式可以调整至适合任何尺寸的集群。
[0042]图3示出针对图2的处理流程的实施例的提供使集群中的每个节点能够与该集群中的任何其它节点安全地通信的操作的细节。具体地,图3的梯形图提供针对可根据本发明的实施例而利用的互相认证协议以及会话密钥生成技术的细节。因此,图3的过程301-320提供针对可操作以提供根据图2的过程204-207的互相认证的处理流程的细节,并且过程315和过程319提供针对可操作以提供根据图2的过程205和过程206的分别的会话机密计算的处理流程的细节。图3的过程201-203和过程208对应于图2的过程201-203和过程208,并且图3的过程316、过程317、过程320对应于图2的过程207。如图2的处理流程,图3中所示的处理流程的功能可用软件实现,其中本发明的实施例的元件本质上为可在基于处理器的系统或计算机系统(例如联网装置110、联网装置120和/或联网装置130)之上操作以执行必要的任务的代码段。程序或代码段可以存储在计算机可读介质中(例如前面提及的联网装置110-130中的相应联网装置的存储器)。
[0043]在图3中所示的实施例利用修改后的安全远程密码协议版本6a (SRP_6a)的配置来提供互相认证和分别的会话机密计算。然而,根据本发明的实施例,亦可使用其它认证和密钥协定协议,其提供在握手中所涉及的两方的互相认证和仅为所涉及的两方已知的共享机密。虽然假定所使用的认证协议、密钥协定协议和加密算法对于先验的每一个节点是已知的,根据本文的概念所提供的实施例可操作以动态地选择提供本文的操作的特定协议和/或算法(例如通过节点交换消息以在握手发生之前协定公共协议和算法集)。
[0044]在根据图3中所示的处理流程的实施例的操作中,所有节点预先知道互相认证协议的η和g值。例如,用在实施例中的η和g值可由正讨论的两方协定。η和g值可以提前设置或主机可以将其供应给客户端。在后一情况中,主机应在第一消息中与salt —起发送参数。为了最大的安全,η应为安全的素数(例如形式n=2q+l的数,其中q也为素数)。此外,g应为η的模数,这意指对于任何X (其中ο〈χ〈η),存在对应X值的g~x%n==x。然而,替代实施例可操作以返回η和g值(例如在过程304)。
[0045]在图3的实施例中示出的互相认证协议的K值用作会话密钥,并且用伪随机函数(PRF)(例如在RFC2246的第五部分所定义的TLSvl协议,其公开内容通过引用并入本文)来计算。然而,根据本发明的实施例,可使用能够扩展一个机密(S)至另一个(K)的任何数量的算法来计算会话密钥。
[0046]应了解的是SRP_6a协议被设计成在客户端与服务器之间使用,然而在图3中所示的处理流程的互相认证是针对集群中的节点而执行的。在客户端/服务器环境中,服务器通常存储从用户的密码导出的验证符(V),使得其不存储用户的密码但是仍操作为使用用户的密码来验证客户端。在所示的实施例的集群实施中,每个节点知道集群密码(例如其可由如上文所述的各种手段而添加),并且因此在SRP_6a协议中不需要使用验证符(V)来存储遮蔽版本的用户密码。因此,修改在图3所示的互相认证协议使得在每次认证尝试(例如过程302和过程303)中生成salt (s)并计算验证符(v)(例如集群节点名称、地址或唯一地或基本上唯一地识别加入集群的节点的其它信息,可用作计算中的用户名)。虽然必需在每次认证尝试中计算验证符(V),并且因此对没有很好适应适合服务器环境的重需求的处理能力带来负担,但是上述的修改促进集群中的任何节点(而不是在客户端/服务器模型中使用的其单个点(服务器))使用互相认证协议。
[0047]应了解的是如由上文参考图2和图3所论述的实施例所提供的使得集群中的每个节点能够与该集群中的任何其它节点安全地通信的操作不仅可调整至适合任何尺寸的集群,而且可轻易地适于提供节点消耗管理和/或增强的安全协议。例如,由上文的处理流程实施的技术可以延伸至提供周期性集群密钥轮换。根据周期性集群密钥轮换的实施例的操作中,在一段时间已经消逝之后,由一节点生成新的集群密钥,并且使每一个其它节点通过再认证以获得该新的集群密钥。值得注意的是,新的集群密钥并不是使用目前的集群密钥分发给其它节点的,因为如果黑客或其它未授权的节点具有目前的集群密钥,那么黑客或未授权的节点可能简单地解密并且获得新的集群密钥。此类周期性集群密钥轮换减少了如果黑客或其它未授权的节点想要获得或保留集群密钥时可以被解密的消息的可能数量,从而提供增强的安全性。
[0048]上文周期性集群密钥轮换的概念可针对离开集群的节点来利用,从而提供节点消耗管理。离开集群的节点留下了离开集群的节点将仍能够解密集群消息的可能性。因此,根据集群密钥再生成的实施例的操作中,在节点离开集群之后,新的集群密钥由节点生成,并且使每一个其它节点通过再认证以获得新的集群密钥。为了防止离开集群的节点在集群密钥再生成实施中窃听互相认证握手,并且因此导出再生成的集群密钥,可添加新的集群机密(例如集群密码)至其余的节点,而不将其提供给离开集群的节点。
[0049]用于提供增强的安全性的技术可在被允许加入集群的节点上施加额外的约束。例如,为何维持被允许的节点的名册。尝试加入集群的任何节点可必须存在于该名册中并且完成互相认证握手以便加入集群。
[0050] 在特定的联网装置在某时间段之内(例如I小时)认证失败一定次数(例如5)的情况下,然后本文的增强的安全技术可操作以将联网装置在被允许再尝试互相认证之前锁定在互相认证过程之外一段时间。因为集群中的每个节点具有与加入集群的节点相互认证的能力,因此优选地,认证失败锁定信息(例如使用特定节点已经尝试认证的次数的集群状态、使用通过使用集群密钥而促进的组播通信等)在集群中的节点之间共享。此类认证失败锁定技术防止激活的字典式攻击。
[0051]应了解的是,如由上文参考图2和图3所论述的实施例所提供的使得集群中的每个节点能够与该集群中的任何其它节点安全地通信的操作,不仅可轻易地调适于提供节点消耗管理和/或增强的安全协议,而且也可轻易地适于促进在许多不同的环境和/或场景中的操作。例如,在节点加入集群之后,可选择性地(例如在使用具有限制的受限处理能力的节点的环境中)用集群密钥加密消息以改进性能。在一个此类环境中,如果消息被视为不包含敏感素材,那么不需要加密,但是可采用某个有更好性能的防止嗅探的方法(例如数字签名算法和/或其它安全技术)。在通过其它手段(例如IPSec或安全隔离的网络)保证网络安全的环境中,可将使用集群密钥的加密完全关闭。 [0052]虽然已经详细描述本发明及其优势,应理解的是可以在不脱离如由所附的权利要求所限定的本发明的精神和范围的情况下在此做出各种改变、替换和更改。此外,本申请的范围不意欲受限于在说明书中所述的过程、机器、制造、组成物、手段、方法和步骤的特定实施例。本领域的普通技术人员将从本发明的公开轻易地了解,可根据本发明而利用执行如本文所述的对应的实施例的基本上相同的功能或基本上实现相同的结果的现有的或之后将开发的过程、机器、制造、组成物、手段、方法或步骤。因此,所附的权利要求意欲将此类过程、机器、制造、组成物、手段、方法或步骤包括在其范围之内。
【权利要求】
1.一种用于为集群中的多个节点提供安全组播通信能力的方法,所述方法包括: 在加入所述集群的节点与作为所述集群的有效部分的任何单个节点之间执行互相认证会话;以及 如果所述互相认证成功,那么使用针对所述互相认证会话的唯一的安全通信信道将集群机密传送至加入所述集群的所述节点,其中所述集群机密使加入所述集群的所述节点成为集群节点并且使所述集群节点能够与作为所述集群的有效部分的每一个其它节点安全地通信。
2.根据权利要求1所述的方法,其中,加入所述集群的所述节点在仅与作为所述集群的有效部分的所述单个节点执行所述互相认证会话之后成为集群节点。
3.根据权利要求1所述的方法,其中,作为所述集群的有效部分的所述单个节点为加入所述集群的所述节点的对等节点。
4.根据权利要求1所述的方法,其中,所述执行互相认证会话包括: 由加入所述集群的所述节点和所述单个节点分别计算会话密钥,其中所述会话密钥对于所述互相认证会话是唯一的。
5.根据权利要求4 所述的方法,其中,所述传送集群机密包括: 使用所述会话密钥在加入所述集群的所述节点与所述单个节点之间传送集群密钥。
6.根据权利要求1所述的方法,其中,所述执行互相认证会话包括: 使用加入所述集群的所述节点所拥有的集群凭证和作为所述集群的有效部分的所有节点所拥有的集群凭证分别为所述互相认证会话计算验证符,所述所有节点包括所述集群中执行所述互相认证会话的节点。
7.根据权利要求6所述的方法,其中,所述使用集群凭证计算验证符还使用唯一地识别加入所述集群的所述节点的信息。
8.根据权利要求6所述的方法,其中,所述集群凭证包括分别添加至加入所述集群的节点和所述集群中执行所述互相认证会话的节点中的每个节点的集群密码。
9.根据权利要求1所述的方法,其中,所述执行互相认证会话包括: 确定加入所述集群的所述节点包括在所述集群中允许的节点名册中。
10.根据权利要求1所述的方法,其中所述集群机密包括对称密码密钥。
11.根据权利要求1所述的方法,还包括: 再生成所述集群机密;以及 要求作为所述集群的有效部分的所有节点在每个节点与所述集群中的另一节点之间再次执行互相认证会话,以获得所述再生成的集群机密。
12.根据权利要求11所述的方法,其中,所述再生成所述集群机密是周期地执行的。
13.根据权利要求11所述的方法,其中,所述再生成所述集群机密是在节点退出所述集群时执行的。
14.一种方法,其包括: 在集群中的第一节点与所述集群中的第二节点之间执行互相认证握手; 使用通过所述第一节点与所述第二节点之间的所述互相认证握手而建立的安全通信信道来在所述第一节点与所述第二节点之间传送集群密钥; 在所述第一节点和所述第二节点之一与所述集群中的第三节点之间执行互相认证握手; 使用通过所述第一节点和所述第二节点之一与所述第三节点之间的所述互相认证握手而建立的安全通信信道来在所述第一节点和所述第二节点之一与所述第三节点之间传送所述集群密钥; 使用所述集群密钥来在所述第一节点、所述第二节点与所述第三节点之间执行安全集群通信。
15.根据权利要求14所述的方法,其中,在所述第一节点与所述第二节点之间执行所述互相认证握手包括:由所述第一节点和所述第二节点分别计算第一会话密钥,其中使用所述第一会话密钥来保证通过所述第一节点与所述第二节点之间的所述互相认证握手而建立的所述安全通信信道的安全性,并且 其中,在所述第一节点和所述第二节点之一与所述第三节点之间执行所述互相认证握手包括:由所述第一节点和所述第二节点之一和所述第三节点分别计算第二会话密钥,其中使用所述第二会话密钥来保证通过所述第一节点和所述第二节点之一与所述第三节点之间的所述互相认证握手而建立的所述安全通信信道的安全性。
16.根据权利要求14所述的方法,其中,所述安全集群通信包括单播通信和组播通信。
17.根据权利要求14所述的方法,其中,所述在所述第一节点与所述第二节点之间执行互相认证会话包括: 使用由所述第一节点和所述第二节点拥有的集群密码来计算第一验证符,其中所述集群密码分别被添加 至所述第一节点和所述第二节点中的每个;并且 其中,所述在所述第一节点和所述第二节点之一与所述第三节点之间执行互相认证会话包括: 使用由所述第一节点和所述第二节点之一和所述第三节点拥有的所述集群密码来计算第二验证符,其中所述集群密码分别被添加至所述第一节点和所述第二节点之一和所述第三节点中的每个。
18.—种系统,其包括: 第一基于处理器的联网装置,其适于根据控制所述第一基于处理器的联网装置的操作的代码,作为节点集群中的一节点来操作,其中所述第一基于处理器的联网装置的所述代码规定所述第一基于处理器的联网装置相对于作为所述集群中的节点操作的一个或多个其它基于处理器的联网装置同时作为所述集群的机密的安全源和所述集群的所述机密的安全接收方的操作,并且其中所述集群的所述机密适于允许在所述集群中的所有节点之间的安全通信。
19.根据权利要求18所述的系统,其中,所述集群的所述机密包括密码集群密钥。
20.根据权利要求18所述的系统,其中,所述第一基于处理器的联网装置作为所述集群的所述机密的源的所述操作促进一个或多个其它基于处理器的联网装置通过仅与所述第一基于处理器的联网装置认证来加入所述集群以作为一节点,并且其中,所述第一基于处理器的联网装置作为所述集群的所述机密的接收方的所述操作促进所述第一基于处理器的联网装置通过仅与所述一个或多个其它基于处理器的联网装置之一认证来加入所述集群。
21.根据权利要求18所述的系统,其中,所述第一基于处理器的联网装置的所述代码适于与所述其它基于处理器的联网装置之一执行互相认证会话,其中互相认证会话提供适于安全传送所述集群机密的对于所述互相认证会话唯一的安全通信信道。
22.根据权利要求21所述的系统,其中,如果所述第一基于处理器的联网装置加入所述集群,那么所述互相认证会话可操作以将所述第一基于处理器的联网装置认证为作为所述集群的有效部分的节点,并且可操作以接收通过所述安全通信信道传送的所述集群机密,并且其中,如果所述第一基于处理器的联网装置通过与所述一个或多个其它基于处理器的联网装置之一协商加入所述集群,那么所述互相认证会话可操作以认证所述一个或多个其它基于处理器的联网装置之一,并且可操作以如果所述一个或多个其它基于处理器的联网装置之一被成功认证,那么通过所述安全通信信道来传送所述集群机密。
23.根据权利要求18所述的系统,其中,所述第一基于处理器的联网装置为多个基于处理器的联网装置之一,适于根据控制该第一基于处理器的联网装置的操作的代码,作为所述节点集群的一部分来操作,其中,所述多个基于处理器的联网装置中的每个基于处理器的联网装置的所述代码规定相应的基于处理器的联网装置作为所述集群的机密的安全源以及所述集群的所述机密的安全接收方的操作,并且其中,所述多个基于处理器的联网装置中的每个基于处理器的联网装置适于通过该基于处理器的联网装置的代码的操作来加入所述集群,并且适于与所述多个基于处理器的联网装置中的每一个其它的基于处理器的联网装置安全通信,所述代码用于与所述多个基于处理器的联网装置中的单个其它的基于处理器的联网装置认证。
【文档编号】H04L29/08GK103959735SQ201280046647
【公开日】2014年7月30日 申请日期:2012年4月17日 优先权日:2011年8月25日
【发明者】菲利普·布莱恩·克莱 申请人:网络存储技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1