CN110463157B - 用于分配spi值的系统与方法 - Google Patents

用于分配spi值的系统与方法 Download PDF

Info

Publication number
CN110463157B
CN110463157B CN201880020711.1A CN201880020711A CN110463157B CN 110463157 B CN110463157 B CN 110463157B CN 201880020711 A CN201880020711 A CN 201880020711A CN 110463157 B CN110463157 B CN 110463157B
Authority
CN
China
Prior art keywords
spi
endpoint
value
key
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201880020711.1A
Other languages
English (en)
Other versions
CN110463157A (zh
Inventor
A·乔普拉
李辰
G·钱德拉谢卡尔
杨晋强
S·皮莱
钱斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nicira Inc
Original Assignee
Nicira Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nicira Inc filed Critical Nicira Inc
Publication of CN110463157A publication Critical patent/CN110463157A/zh
Application granted granted Critical
Publication of CN110463157B publication Critical patent/CN110463157B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0485Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本文描述的某些实施例通常用于将安全参数索引(“SPI”)值分配给网络中的多个端点,可以使用SPI导出公式和多个参数导出SPI值。在某些实施例中,可以由端点导出SPI值,而在其他实施例中,可以由服务器导出SPI值。使用SPI导出公式和多个参数,使得端点和服务器能够立即导出SPI值,而不需要服务器存储它们。

Description

用于分配SPI值的系统与方法
相关申请
本申请关于并要求于2017年2月2日提交的、题为“用于分配SPI值的系统与方法(SYTEMS AND METHODS FOR ALLOCATING SPI VALUES)”的美国非临时专利申请15/423,063的优先权,该申请的全部内容通过引用合并于此。
背景技术
软件定义的网络(SDN:Software-defined Networking)可以利用分布式网络加密(DNE:Distributed Network Encryption),其是在SDN框架内创建的一种功能,用于简化与IP安全协议(IPSec)相关联的密钥管理。在一些实施例中,DNE通过允许网络控制器向逻辑网络内的各个主机分发加密密钥以及安全参数索引(“SPI”)值,从而避免了在IPSec中使用互联网密钥交换(IKE:Internet Key Exchange)协议的需要。DNE可以根据每个密钥策略分发相同的加密密钥和SPI值。通常,为了跟踪分配给主机的SPI值,网络控制器和/或主机本身会存储这些值。此外,每当单个主机重启时,所分配的SPI值可能会改变,新的SPI值可能会分发给支持DNE的主机和服务器。
发明内容
本文描述了用于将SPI值分配给网络中的多个端点(“EP”)的方法的一个或更多个实施例。该方法包括:在第一端点处独立地使用SPI导出公式和一个或更多个参数导出SPI值。该方法还包括:使用SPI值在第一端点和第二端点之间建立安全通信通道。该方法还包括:第一端点通过安全通信通道与第二端点通信。
本文还描述了计算机系统的实施例,其中该计算机系统的软件被编程以执行用于将SPI值分配给网络中的多个EP的上述方法。
本文还描述了非暂时性计算机可读介质的实施例,其包括要在计算机系统中执行的指令,其中该指令在计算机系统中执行时执行用于将SPI值分配给网络中的多个EP的上述方法。
附图的简要说明
图1说明了网络的示例。
图2说明了基于多个密钥策略将全局唯一SPI值分配给网络内的EP的示例。
图3说明了在多个密钥策略下与多个EP相对应的全局唯一SPI值的可视表示的示例。
图4说明了在EP重启时,图3中全局唯一SPI值的移位的可视表示的示例。
图5说明了基于多个密钥策略将局部唯一SPI值分配给网络中的EP的示例。
图6说明了与某密钥策略的多个源EP和目的地EP相对应的局部唯一SPI值的可视表示的示例。
图7说明了根据一些实施例的用于导出SPI值的示例操作。
图8说明了用于使用EP导出全局唯一SPI值的示例操作。
图9说明了用于使用服务器导出全局唯一SPI值的示例操作。
图10说明了用于使用EP导出局部唯一SPI值的示例操作。
图11说明了用于使用服务器导出局部唯一SPI值的示例操作。
图12为图1的网络的示例实现的框图。
具体实施方式
本文呈现的实施例涉及将SPI值分配给网络中的多个EP。例如,在一些实施例中,基于多个密钥策略导出SPI值并将其分配给多个EP,如下所述。
图1说明了网络100的例子。网络100可以表示物理网络。如图1所示,网络100可以连接多个EP,其包括EP 110、EP 120和EP 130。EP通常可以指网络数据包流的始发节点(“源端点”)或终止节点(“目的地端点”),网络数据包流可以包括从源端点传递到目的地端点的一个或更多个网络数据包。实际上,端点可以是物理计算设备(例如物理服务器、物理主机)。在某些实施例中,可以将端点配置为托管一个或更多个虚拟化计算实例(例如,虚拟机、容器、数据计算节点、隔离的用户空间实例),如本文进一步讨论的。在某些实施例中,网络(例如网络100)内的所有EP都可以由服务器140(例如中央控制器)管理。在这些实施例中,服务器140可以控制和管理EP之间的通信和安全,为每个EP生成ID号,存储与每个EP相关的数据等等。服务器140可以是物理计算设备(如物理服务器、物理主机)、由物理计算设备支持的虚拟化计算实例(例如,虚拟机、容器、数据计算节点、隔离的用户空间实例)等。在某些方面,服务器140可以是一个或更多个物理计算设备或虚拟化计算实例的集群。
在网络中,EP可以尝试与其他EP通信或向其他EP发送数据包。例如,EP 110可以尝试以安全的方式(例如,通过使用IP安全(IPSec)协议)发送数据包至EP 120。然而,在一些实施例中,在使用IPSec框架安全地传输任何数据之前,可能需要在两个EP之间建立安全关联。在一些实施例中,每个安全关联都是单向或单工连接,因此在两个IPSec对等点(例如,EP)之间建立至少两个安全关联,一个用于入站,一个用于出站。这些安全关联可以是EP之间的一种形式的契约,其详细说明了如何在彼此之间交换和保护信息。在一些实施例中,每个安全关联由相互认可的密钥、一个或更多个安全协议和/或SPI值组成。
在一些实施例中,基于适当的安全规则和密钥策略,服务器(例如,服务器140)可以生成相互认可的密钥(例如,可互换的会话密钥或加密/解密密钥),并随后分发给请求EP。在其他实施例中,密钥可以由一个或更多个EP在其数据传输之前生成。除了相互认可的密钥外,在某些实施例中,每个安全关联还可以指定相互认可的安全协议来提供安全性。这些IPSec安全协议可包括验证头(AH,Authentication Header)、封装安全有效负载(ESP,Encapsulating Security Payload)等。在两个IPSec对等点之间建立了安全关联之后,可以使用这些安全协议中的一个或更多个来保护数据包进行发送。
除了相互认可的密钥和安全协议外,安全关联还可以包括SPI值。在一些实施例中,每个SPI值是附加到安全关联的二进制数字串,其使得EP能够区分多个活动的安全关联。例如,SPI值可用于区分在EP上运行的入站和出站安全关联。在一些情况中,互联网密钥交换(IKE)协议用于在IPSec框架中生成这些SPI值以及加密/解密密钥。例如,在任何数据交换之前,IKE执行两阶段的协商会话,这导致在两个IPSec对等点之间建立两个安全关联。这些安全关联不仅可以包括用于传入和传出流量的相互认可的加密和解密密钥,而且它们还为每个数据传输维护序列号。
例如,当信息发送者(源EP)发送消息时,它将序列号添加到它的数据包中。序列号从0开始,每个后续包的序列号递增1。每次信息发送者发送数据包时,接收者都会验证该序列号不是之前发送的数据包的序列号。这些序列号被维护以确保防重放(anti-replay)。但是,如果使用IKE协议以采用例如N个主机在网络中建立这些安全关联,那么每个主机可能需要设置(N-1)个IKE协商会话。
因此,在一些实施例中,使用DNE代替使用IKE来简化密钥管理和SPI分配。DNE使中央单元,例如服务器(如服务器140),能够生成加密/解密密钥和SPI值并将其分配给网络中的EP。DNE还通过允许用户(例如网络管理员)定义简单的安全规则和密钥策略,而简化对EP(例如,在EP上运行的虚拟机)的网络流量的保护。例如,在某些实施例中,服务器140可以将多个安全规则和密钥策略存储在其内存中。安全规则可以是用户定义的规则,用户通过接口(例如,经由管理器,它可以是物理计算设备或物理计算设备支持的虚拟化计算实例)将该规则输入到服务器140。安全规则可以定义服务器140可以使用什么密钥策略来生成用于网络中EP之间的数据传输的加密/解密密钥。例如,服务器140可以存储密钥策略1、2、3等。然后,用户定义的安全规则可规定密钥策略1必须用于从EP 110去到EP 120的流量。
在某些实施例中,每个密钥策略可以与一个或更多个EP相关联,并包括定义加密/解密密钥的属性的某些规范。在某些实施例中,规范可以是密钥的算法、动作和/或强度。在上面的示例中,可以基于密钥策略1生成会话密钥,用于在对EP 110和EP 120之间的数据包进行加密或解密时使用。
在某些实施例中,服务器140可以由DNE配置为在每个密钥策略下将相同的加密/解密密钥和SPI值分配给EP。然而,在一些其他实施例中,可以将服务器140配置为向EP分发唯一的SPI值和密钥值。在一些实施例中,唯一SPI值可提供防重放保护,并避免实现DNE功能的大型网络中的网络中断和数据丢失。为了用例子说明这一点,我们假设EP 110、120和130被分配了唯一的SPI值,并且正在通信。在此示例中,攻击者或黑客无法捕获从EP 110始发到EP 120的流量并将其重放为从EP 110始发到EP 130。除了提供防重放保护之外,分配唯一的SPI值还可以防止网络中断和数据丢失。在上面的例子中,唯一的SPI值可防止从EP130到EP 120的流量由于在EP处序列号失配而被丢弃。例如,当EP 120所在的序列号由于与EP 110通信而递增时,就会发生失配,而EP 130则开始用序列号标记数据包,从0开始。除了防止网络中断之外,分配唯一的SPI值还可以防止数据丢失,因为如果其中一台主机重新启动,其他主机维护的序列号不需要重置。
此外,在一些实施例中,SPI值可以是全局唯一的,而在其他实施例中,SPI值可以是局部唯一的。参照图2、图3和图4描述的实施例,提供了用于为每个信息发送者(例如,源EP)分配全局唯一出站SPI值的过程。参照图5和图6描述的其他一些实施例,提供了用于分配局部唯一SPI值以供一个或更多个源EP在与某目的地EP通信时使用的过程。
图2说明了基于多个密钥策略将全局唯一SPI值分配给网络内的EP的例子。如图2所示,包括EP 210、220、230、240、250、260和270在内的多个EP可以是网络的一部分。
如关于图1所示,将全局唯一出站SPI值分配给网络内的EP可以提供防重放保护,并避免网络中断和数据丢失。在本文描述的全局SPI分配下,在一些实施例中,与EP相关联的所有SPI值可以在所有密钥策略中都是唯一的(例如,网络中的每个EP可以由多个密钥策略保护)。此外,在一些实施例中,与密钥策略相关联的SPI值可以在所有EP中都是唯一的(例如,密钥策略可能传播到多个EP)。此外,相同的密钥策略下的SPI值可以在发生与密钥策略(在图3中进一步描述)相关的任何CRUD(创建、检索、更新和删除)事件时再生。同时,当EP重启时,对应于EP的所有SPI值可以再生,即使它们属于不同的密钥策略(在图4中进一步描述)。
如图2所示,每个EP都被分配了全局唯一的SPI值以用于其出站安全关联。例如,在密钥策略A(用单箭头表示)下,EP 210被分配了SPI值1,EP 210使用该SPI值1用于其与EP220、230、240和250的出站安全关联。此外,EP 220、230、240和250中的每一个都分别被分配了全局唯一的出站SPI值2、3、4和5。在另一个密钥策略B(用双箭头表示)下,EP 210被分配了不同的出站SPI值6。同样,EP 250被分配了全局唯一的值7,用于其与EP 210、240、260和270的出站安全关联,每个EP 210、240、260和270也都有自己的全局唯一出站SPI值。除了全局唯一的SPI值之外,每个安全关联还可以包括唯一的加密/解密密钥。在DNE框架中,源EP使用这些密钥来加密流量,目的地EP使用这些密钥来解密流量。在某些实施例中,此密钥可由每个EP生成。在其他实施例中,服务器(例如,服务器140)可以生成密钥。在某些实施例中,可以使用函数和一个或更多个参数生成密钥。下面是函数的示例,该函数在某些实施例中可用于密钥生成:
Session Key=fn(MASTER_KEYkp,SPIsrc,SPIdst,RND_NUMsrc,RND_NUMdst)
在上面的会话密钥函数中,MASTER_KEYkp表示与密钥策略相关联的公共密钥。当更新相应的密钥策略时,此密钥可能会更改。SPIsrc表示针对给定密钥策略分配给源EP(信息发送者)的SPI值。当更新相应的密钥策略时,这个SPI值可能会更改。SPIdst表示分配给给定策略的目的地EP(信息接收者)的SPI。当更新相应的密钥策略时,这个SPI值可能会更改。RND_NUMsrc表示与源EP相关联的随机数。当源EP重新启动时,这个数字可能会改变。RND_NUMdst表示与目的地EP相关联的随机数。当目的地EP重新启动时,此数字可能会更改。
如关于图1所述,使用上面描述的全局SPI分配和密钥管理,可以提供防重放保护,并防止网络中断和数据丢失。为了在网络上分配全局唯一的SPI值,服务器(例如,服务器140)可能需要跟踪分配给EP的SPI值。例如,如果为EP 210分配了SPI值1,则管理EP 210的服务器可以跟踪该分配,以避免将相同的SPI值分配给网络中的其他EP。因此,在某些实施例中,SPI值可以由服务器存储。但是,本文描述的某些实施例涉及不需要存储SPI值的全局SPI分配和导出技术。例如,在一些实施例中,网络中的每个EP和/或服务器可以通过使用SPI导出数据(“SDD”)按需导出全局唯一的SPI值,该SPI导出数据可以由网络中的每个EP和/或服务器存储。使用SDD按需导出全局唯一的SPI值可以防止扩展性问题,这些问题可能由存储网络中例如成千上万个EP的非常大量的唯一SPI值造成。此外,由于网络中的每个EP和/或服务器都能够导出SPI值,因此在例如EP重启时,EP和服务器之间不需要同步或更新。在EP导出其自己的SPI值的实施例中,服务器可以通过将SPI值的导出委托给EP来节省大量计算资源,并避免创建瓶颈。这种方法还可以获得很大的性能收益。这是因为并非每个EP都需要与其他EP通信,因此,在必要的通信之前不需要SPI值。因此,计算能力仅用于在需要时导出SPI值。
如前所述,在一些实施例中,EP和/或服务器可以使用SDD导出全局唯一的SPI值。在某些实施例中,SDD可以包括EP ID号、密钥策略号、全局SPI导出公式(“GSDF”)、移位因子、Kmax和EPmax。在某些实施例中,服务器(例如,管理器、服务器140等)可以生成EP ID号并将其分配给添加到网络中的EP。服务器可以通过将与EP相关的信息及其相应的ID号存储在其内存中来跟踪这些EP ID号。此外,如上所述,每个密钥策略可以分配给一组EP,并且可以包括定义加密/解密密钥的属性的某些规范。服务器还可以通过将与EP相关的信息及其分配的密钥策略存储在内存中来跟踪它。如所讨论的,SDD还可包括GSDF。GSDF可以是函数(例如,线性函数),它使用一个或更多个参数,包括EP ID号、密钥策略号、移位因子、Kmax(如下描述的)和EPmax(如下描述的)来导出全局唯一的SPI值。
在某些实施例中,每个EP和/或服务器可以存储SDD(包括GSDF和一个或更多个参数)。因此,每个EP和/或服务器可以基于存储的GSDF和一个或更多个参数导出SPI值,而不需要服务器存储SPI值(例如,多个EP的SPI值)。
以下是公式(GSDF)的示例,该公式在某些实施例中可用于导出全局唯一的SPI值:
SPI(Ki,EP,Sj)=EPmax*[(Ki–Sj+Kmax)%Kmax]+EPj+1
在上面的公式中,SPI表示二进制SPI值(例如,具有有限的大小)。在一些实施例中,每个SPI值可以是32位长度。EPmax是网络使用DNE功能所能够支持的最大EP数。然而,这并不意味着网络中实际EP的总数等于EPmax。EPmax只是一个常量(例如,它是在服务器140启动时定义的)。Kmax是DNE支持的最大密钥策略数(Kmax/2)的两倍。但是,这也并不意味着所有网络中实际密钥策略的总数等于Kmax/2。Kmax只是一个常量(例如,它是在服务器140启动时定义的)。在一些实施例中,Kmax和EPmax可以是用户定义的。此外,在某些实施例中,Kmax*EPmax最多可以是32位的二进制数。
EPj对应于源EP ID号,可以用列索引来表示(如后面关于图3描述的)。在一些实施例中,EPj最多是17位(217)数字,并且在网络生命周期期间不会更改。此外,如上所述,EPj不超过EPmax。Ki对应于密钥策略号,在某些实施例中,密钥策略号由服务器生成和维护。Ki可以用行索引来表示(如后面关于图3描述的)。在一些实施例中,Ki最多是15位(215)数字,并且可能由于相应密钥策略的更改而变化。在某些实施例中,服务器可以通过将与EP相关的信息、其EP ID号及其对应的密钥策略号存储在内存中来跟踪这些EP ID号和密钥策略号。
Sj是移位因子,在EP重启时发生改变(见图4)。在一些实施例中,在EP重启后Sj可以只递增1以易于实现(Sj=Sj+1)。在一些其他实施例中,Sj可以只在一范围内移位,以便使得调试更简单(Sj=[Sj+1]&0x03)。在又一其他实施例中,Sj可以是一随机数(Sj=random.nextIntl())。在某些实施例中,Sj小于Kmax。在一些实施例中,服务器通过将与EP相关的信息及其相应的移位因子存储在内存中来跟踪这些移位因子。移位因子(Sj)根据相应的EP是否已重启或已重启多少次而变化。如上所述,Kmax和EPmax也是用户定义的或预定义的值,其也可以由服务器存储。除了上述参数外,在某些实施例中,GSDF还使用mod操作以确保安全环绕(warparound)。在某些实施例中,如果上面的参数是无符号整数,则产生的SPI值将自动环绕,而无需使用mod操作。
图3说明了根据某些实施例的多个密钥策略下与多个EP相对应的全局唯一SPI值的可视表示的示例。图3示出了与支持多达五个EP和多达两个密钥策略的网络相对应的表。每一列对应于EP ID号,每一行对应于密钥策略。如图3所示,已经创建了两个密钥策略,KP1和KP2。在一些实施例中,当创建密钥策略时,服务器为这个密钥策略分配与表上一行对应的Ki编号。例如,当创建KP1时,服务器可以将第0行(K0)分配给KP1。因此,作为示例,如果EP2正试图与网络中的另一个EP通信,用户为该通信指定的密钥策略是KP1,则EP2会导出一32位的SPI值,表上显示的其可视表示是单元格3,这是与KP1相对应的第0行和与EP2相对应的第2列的交点。
在一些实施例中,分配给一组EP的密钥策略可能会由于CRUD(创建、读取、更新或删除)事件而改变或更新。在此类实施例中,可以重新导出同一密钥策略下的所有SPI值。例如,如果KP1更新为KP1',则服务器可以将第1行分配给KP1'。在这种情况下,EP2随后重新导出SPI值,表上显示的其可视表示为8。如果KP1'再次更新为KP1”,则服务器可以将第0行分配给KP1”,以便再次更新SPI值。因此,每个密钥策略有两行,以使得在更新密钥策略的情况下能够更新SPI值。除了在密钥策略CRUD事件上更改全局唯一SPI值外,当EP重启时,EP下的所有全局唯一SPI值也需要重新生成,即使它们属于不同的密钥策略也是如此。
图4说明了根据某些实施例的在EP重启时,图3中全局唯一SPI值的移位的可视表示的示例。在某些实施例中,如果EP重新启动或重启,则为EP的出站流量向其分配新的全局唯一SPI值。在某些实施例中,这是通过在各种密钥策略下分配给EP的全局唯一的SPI值的移位来执行的。如上所述,移位由移位因子Sj表示,在某些实施例中,该移位因子仅可递增1。例如,如图4所示,EP2重启后,分配给它的全局唯一SPI值向下移位1。这将在每个密钥策略下再次向EP2分配新的全局唯一SPI值。在某些实施例中,当EP重启时,服务器生成移位因子,然后将该移位因子推送到所有EP或至少受影响的EP。在一些实施例中,然后服务器通过将与每个EP相关联的移位因子存储在内存中来存储它,以供以后使用(例如,根据需要将其发送到添加到网络中的任何现有或新的EP)。如前所述,在图3和图4中所示的表只是在多个密钥策略下如何为EP导出SPI值的可视表示。换句话说,表中所示的单元格数可视地表示一32位的数字,这个数字没有显示出来,并且可以由GSDF导出。
现在移到局部唯一SPI值的分配,图5说明了基于多个密钥策略向网络内的EP分配局部唯一SPI值的示例。在与目的地EP通信时,一个或更多个源EP可以使用局部唯一的SPI值。在某些实施例中,在局部分配唯一SPI值下,与目的地EP相关联的所有SPI值可以在所有密钥策略中都是唯一的(例如,网络中的每个EP可由多个密钥策略保护)。此外,同一密钥策略下的SPI值可在与密钥策略相关的任何CRUD事件(图6中进一步描述)时重新生成。同时,当EP重启时,EP下的所有SPI值可重新生成,即使它们属于不同的密钥策略也如此(关于图6进一步描述)。
与图2类似,在一些实施例中,EP 510、520、530、540、550、560和570可以是网络的一部分。如图5所示,在某密钥策略下,可以分配局部唯一的SPI值,以用于与作为目的地EP的EP 510通信。例如,EP 520可以尝试与EP 510通信,在这种情况下,EP 520是源EP,而EP510是目的地EP。在这样的示例中,可以为源自EP 520的出站安全关联导出局部唯一的SPI值1。在其他例子中,如图5所示,其中EP 530、540或550为源EP,目的地EP仍为EP 510,局部唯一SPI值可分别为2、3或4。
在一些实施例中,术语局部唯一是指,对于某目的地EP(例如目的地EP 510),其他EP(例如,源EP 520-550)使用的入站SPI值在给定密钥策略下可能仅对于某目的地EP是唯一的(例如,在密钥策略A下,SPI值1、2、3和4)。因此,如图5所示,如果现在EP 520试图在密钥策略B而不是以前使用的密钥策略A下与EP 510通信,新的和不同的SPI值(例如SPI值5)可以被EP 520使用。但是,如果目的地EP更改为另一个EP,则可能再次使用相同的入站SPI值。这意味着,在某些实施例中,SPI值可以由两个EP同时作为入站SPI和出站SPI使用(例如,SPI值1在EP 510和520之间同时用作入站SPI和出站SPI)。此外,在某些实施例中,源EP可以在与多个其他EP通信时使用相同的SPI值(例如,EP 510使用出站SPI值1与EP 520、530和540通信)。例如,如图5所示,如果EP 550是目的地EP,源EP是EP 560、540、570和510,那么为与EP 550通信而导出的局部唯一SPI值也可以分别为1、2、3和4。
如关于图2所述,除了SPI值外,每个安全关联还可以包括唯一的加密/解密密钥。在某些实施例中,可以使用函数导出密钥,例如参照图2描述的全局SPI分配下使用的会话密钥函数。
与全局SPI分配类似,上述局部SPI分配和密钥管理也在DNE框架内提供了防重放保护,同时防止网络中断和数据丢失。此外,类似于关于图2-图4中描述的全局SPI导出技术,按需导出局部唯一的SPI值还可以防止扩展性问题,并避免EP和服务器之间的同步和更新需求。因此,本文描述的某些实施例涉及不需要服务器存储SPI值的局部SPI分配和导出技术。例如,在一些实施例中,网络中的每个EP和/或服务器可以通过使用诸如SDD之类的数据按需导出局部唯一的SPI值,这些数据可以由网络中的每个EP和/或服务器存储。
在一些实施例中,SDD可以包括用于SPI值的局部分配的数据。在这些实施例中,数据可以包括公式和一个或更多个参数。下面是公式的示例(例如,局部SPI导出公式(“LSDF”)),在一些实施例中,该公式可用于导出局部唯一SPI值:
SPI(Ki,EPsrc,EPdst)=EPmax*Row(Ki,EPdst)+EPsrc
在上面的公式中,SPI表示二进制SPI值(具有有限的大小)。在一些实施例中,每个SPI值可以是32位长度。EPmax是分布式网络使用DNE功能能够支持的最大EP数量。然而,这并不意味着所有网络中实际EP的总数等于EPmax。EPmax只是一常量(例如,它是在服务器启动时定义的)。在一些实施例中,EPmax最多是一17位(217)数字,并且在网络的生命周期中不会更改。EPsrc对应于源EP的EP ID号,可以用列索引来表示,如下面关于图6描述的。此外,EPsrc在网络的生命周期中可以不发生变化,也不会超过EPmax。EPdst对应于目的地EP的EP ID号。与EPsrc类似,在某些实施例中,EPdst最多是一17位(217)数字,并且在EP重启时可以变化。EPdst也不超过EPmax。Ki对应于密钥策略号,在某些实施例中,密钥策略号由服务器生成和维护。在某些实施例中,Ki会由于相应密钥策略的改变而改变。
如后面关于图6所述,Row(Ki,EPdst)对应于行号。在一些实施例中,Row(Ki,EPdst)可以由映射函数导出。例如,映射函数可以是Row(Ki,EPdst)=k+e,在这个例子中,k可以是与某密钥策略(Ki)相对应的值,而e可以是与某目的地EP(EPdst)相对应的值。在一些实施例中,k由服务器生成和维护。此外,在一些实施例中,每当对应的密钥策略具有CRUD操作或发生密钥更新时,服务器都会改变k。例如,对于密钥策略1,在创建密钥策略1时(例如在发生任何CRUD事件之前),k可以为零,但是在改变密钥策略时,k可以被改变为1。在一些实施例中,e由服务器生成和维护。此外,在一些实施例中,每当相应的EP重启时,服务器都会改变e。例如,当EP首次添加到网络时,服务器可以生成e并为其赋值0。然而,在某些实施例中,在EP重启之后,服务器可以将e递增1(例如e=e++)。
通过使用各种设计和优化,可以完成生成和收回(reclaim)唯一的k和e值。例如,在一些实施例中,e可以只被分配从0到5的数字,使得还可以有更多的数字分配给k。另外,在一些实施例中,e和k值可以由服务器或身份分配系统(IDAS)更改和维持,IDAS返回唯一e值和k值。在某些实施例中,使用e值和k值,行号(例如Row(Ki,EPdst))可由服务器计算,在某些实施例中,也可由每个EP计算。在服务器计算行号的实施例中,EP可以向服务器发送对行号的请求。在EP计算行号的实施例中,EP可以使用从服务器接收到的e值和k值来执行计算。在某些实施例中,在任何密钥策略下,始终为给定的目的地EP分配一行。在某些实施例中,Rowmax是使用DNE功能的分布式网络能够支持的最大行数。在某些实施例中,Rowmax可以是一15位(215)数字。因此,在某些实施例中,Rowmax*EPmax最多可以是一32位的二进制数。
图6说明了根据某些实施例的与某密钥策略和目的地EP的多个源EP相对应的局部唯一SPI值的可视表示的示例。图6示出了对应于支持多达五个EP的网络的表。我们还假设已经创建了两个密钥策略KP1和KP2(未示出)。每一列对应于一源EP,而每一行对应于由上述诸如Row(Ki,EPdst)之类的映射函数计算的行号。在一些实施例中,在任何CRUD事件或任何密钥更新之前,KP1的k可以为0(k1=0),KP2的k可以为1(k2=1)。此外,在一些实施例中,在任何EP重启之前,所有EP的e可能为零(e0=e1=e2=e3=e4=0)。因此,在一些实施例中,Row(K1,EP0)=K1+e0=0,Row(K2,EP0)=K2+e0=1。作为示例,当EP0是目的地EP且KP1是密钥策略,Row(K1,EP0)=0时,那么SPI值可以是SPI(K1,EP0,EP0)=1,SPI(K1,EP1,EP0)=2,SPI(K1,EP2,EP0)=3,SPI(K1,EP3,EP0)=4,SPI(K1,EP4,EP0)=5。如果选择密钥策略2,Row(K2,EP0)=1,那么SPI值可以是SPI(K2,EP0,EP0)=6,SPI(K2,EP1,EP0)=7,SPI(K2,EP2,EP0)=8,等等。如前所述,在某些实施例中,如果EP重启,则与EP对应的e值根据公式发生变化。例如,如果EP0重启,e0可以递增1(e0=0+1),在这个例子中e0=1,k1=0,k2=1。因此,Row(K1,EP0)=1,Row(K2,EP0)=2。因此,在上面的例子中,SPI(K1,EP0,EP0)=6,SPI(K1,EP1,EP0)=7,SPI(K1,EP2,EP0)=8,等等。
在一些实施例中,如上面描述的,密钥策略可由于CRUD事件或密钥更新而更新。例如,KP2可以执行自动轮换,这可导致KP2接收新的k值。在上面的例子中,下一个可用的k值可以是3,在这种情况下k2将被赋值为3。因此,继续上面的例子,Row(K2,EP0)=3+1=4,Row(K2,EP1)=3+0=3。
图7说明了根据某些实施例的用于导出SPI值的示例操作700。关于图7中概述的方法,需要注意的是,为了不模糊本发明中对发明特征的讨论,在示例操作700中省略了某些细节和特征。
示例操作700从710开始,使用SPI导出公式和一个或更多个参数导出SPI值。在某些实施例中,当导出全局唯一的SPI值时,公式可以是GSDF,一个或更多个参数可以包括EPID号、密钥策略号、移位因子、最大EP ID号(EPmax)和最大密钥策略号(Kmax)。在其他一些实施例中,当导出局部唯一的SPI值时,公式可以是LSDF,一个或更多个参数可以包括密钥策略号、源EP ID号、目的地EP ID号、行号(Row(Ki,EPdst))和EPmax
在720处,示例操作700继续使用SPI值在第一EP(例如EP 110)和第二EP(例如EP120)之间建立安全的(例如,加密的)通信通道。建立安全的通信通道可以通过在第一EP和第二EP之间建立安全关联来实现,如下图8的步骤850所述。
在730处,示例操作700由第一EP经安全通信通道与第二EP继续通信。如图8的步骤850所述,第一EP和第二EP可以使用安全通信信道相互传输加密的数据包。
如关于图1所述,在某些实施例中,EP可以对其自己的出站SPI值执行导出。因此,在这些实施例中,EP执行图7中的步骤710到730所述的方法。图8中的步骤810到840说明了EP可以执行以导出全局唯一的SPI值的步骤的示例。另一方面,图10中的步骤1010到1040说明了EP可以执行以导出局部唯一的SPI值的步骤的示例。在其他实施例中,服务器(例如,服务器140)可以执行与示例操作700的步骤710对应的SPI值的导出。图9中的步骤910到920说明了服务器可以执行以导出全局唯一的SPI值的步骤的示例。另一方面,图11中的步骤1110到1120说明了服务器可以执行以导出局部唯一的SPI值的步骤的示例。
图8举例说明了根据某些实施例的用于使用EP导出全局唯一SPI值的示例操作800。关于图8中概述的方法,需要注意的是,为了不模糊本发明中对发明特征的讨论,示例操作800中省略了某些细节和特征。作为示例,下面将参考EP 110描述示例操作800。但是,图1的网络100中的任何其他EP也可以执行示例操作800。
如图所示,在810处,EP 110在连接到网络100后,通过从服务器140接收EP ID号而开始。如关于图2所述,在某些实施例中,EP ID号可以由服务器140生成,然后发送到EP110。在某些实施例中,服务器140可以自动生成EP ID号,并在EP 110被添加到网络100后将其发送到EP 110。在其他一些实施例中,在被添加到网络100之后,EP 110可以向服务器140发送对EP ID号的请求。在这些实施例中,服务器140随后生成EP ID号并将其发送到EP110。在其他实施例中,网络100中的其他组件可以生成EP ID号。
在820处,EP 110继续可选性地从服务器140请求SPI导出公式和一个或更多个参数。如关于图1所述,在一些实施例中,在任何IPSec安全发送数据包之前,可以在两个EP之间建立安全关联,每个EP都需要其自己的全局唯一出站SPI值。因此,在某些实施例中,为了与EP 120通信,EP 110可以导出它自己的全局唯一的出站SPI值。为了导出全局唯一的出站SPI值,EP 110可以使用数据(例如SDD),包括一个或更多个参数和公式(例如GSDF)。如上所述,在一些实施例中,GSDF和一个或更多个参数可以由EP 110和/或服务器140存储和维护。在一些实施例中,用于导出全局唯一SPI值的一个或更多个参数包括EP ID号、密钥策略号、移位因子、Kmax和EPmax。在某些实施例中,在接收到来自EP 110的请求后,服务器140定位上述一个或更多个参数并将其发送到EP 110。在一些实施例中,服务器140自动定位上述一个或更多个参数,并将其发送到EP 110,而不接收来自EP 110的请求。
在830处,EP 110继续从服务器140接收一个或更多个参数(和GSDF,如果其还没有存储在EP 110处的话)。然后,EP 110将一个或更多个参数和GSDF存储为SDD,以用于导出全局唯一的出站SPI值。在某些实施例中,EP 110可以在不从服务器140请求的情况下接收上述一个或更多个参数。在这些实施例中,当EP 110添加到网络100时,服务器140可以向EP110发送一个或更多个参数,如果其中任何参数发生更改,则服务器140可以继续更新EP110。在840处,EP 110继续通过将从服务器140接收到的一个或更多个参数输入GSDF来导出全局唯一的SPI值。继续图3给出的示例,如果EP 110的EP ID号是EP2,密钥策略号是K1,并且没有EP重启(例如Sj为零),那么使用GSDF,EP 110将导出32位二进制SPI值,其由图3的单元格3表示。在某些实施例中,EP 110可以存储导出的SPI值。
如前所述,在某些实施例中,当与某个密钥策略相关的任何CRUD事件发生时,服务器140可以为该密钥策略分配新的密钥策略号。在某些实施例中,对密钥策略的更改可以由网络管理员通过用户界面进行,并将其中继到服务器140。在某些实施例中,在接收到此更新之后,服务器可以存储该更新,生成新的或更改的密钥策略号,并将新的或更改的密钥策略号发送给部分或所有EP。然后,EP可以将新的或更改的密钥策略号存储在其内存中。在某些实施例中,基于更改的密钥策略号,EP 110可以重新导出其SPI值。其示例由图3示出。
如关于图4所述,EP重启会导致移位因子的变化,从而导致针对某一EP的在多个密钥策略下导出的SPI值发生变化。例如,在一些实施例中,负责管理EP2的服务器140可以知道EP2重新启动。在这些实施例中,即使它们处于不同的密钥策略下,服务器140也随后可以存储该更新,更改与EP2对应的现有移位因子,并将新的或更改的移位因子发送到所有EP。在某些实施例中,基于新的移位因子,EP 110可以重新导出其SPI值。其示例由图4示出。
如关于图2所示,为了在EP 110和EP 120之间建立安全的IPSec信道,除了全局唯一的SPI值外,还可以使用唯一的会话密钥进行加密/解密。在某些实施例中,EP 110本身可以通过使用前面描述的会话密钥函数来导出给定密钥策略的会话密钥。在其他一些实施例中,服务器140可以导出会话密钥。在这些实施例中,EP 110可以向服务器140发送对会话密钥的请求。此请求可包括有关EP 110正试图与之通信的目的地EP(在上面的示例中为EP120)的信息。在接收到来自EP 110的请求后,然后服务器140使用公式(诸如,上面描述的会话密钥函数)导出会话密钥。随后,在一些实施例中,服务器140可以将会话密钥发送到EP110,然后EP 110可以使用会话密钥和出站SPI值与EP 120建立安全关联。需要重点注意的是,由EP 110执行的示例操作800的步骤840可以对应于图7中的步骤720。
在850处,EP 110继续通过网络100与EP 120建立安全关联来传输数据。使用全局唯一的出站SPI值,然后EP 110基于存储在EP 110内存中的安全策略与EP 120建立安全关联。安全策略是要建立的安全关联的安全要求或策略的必要条件。在某些实施例中,一旦建立了出站和入站安全关联,EP 110可以将它们存储在内存中的安全关联数据库中,以供EP110后续使用。此外,使用上面导出的会话密钥,EP 110可以加密数据包,以便发送到EP120。另一方面,EP 120可以执行与上面描述的相同的过程来导出相同的SPI值(上面由EP110导出),以及它自己的全局唯一的出站SPI值。使用这些SPI值,EP 120可以导出相同的会话密钥来解密从EP 110接收到的加密数据。
在一些实施例中,服务器140可以继续自动更新EP 110,其中包括对一个或更多个参数的任何更改,包括由于CRUD事件而对密钥策略号的更改或EP重启后对移位因子的任何更改。在这些实施例中,服务器140可以向EP 110发送新的密钥策略号或新的移位因子,然后EP 110可以将这些新的密钥策略号或新的移位因子存储在其内存中,并还用于重新导出全局唯一的SPI值。在EP 110和EP 120之间建立安全关联导致了两个EP之间的安全通信信道。然后,EP 110可以使用这个安全通信信道将加密的数据包发送到EP 120,反之亦然。
现在移到图9,图9说明了用于使用服务器140导出全局唯一SPI值的示例操作900。需要注意的是,关于图9中概述的方法,为了不模糊本发明中对发明特征的讨论,在示例操作900中省略了某些细节和特征。
如图9所示,在910处,服务器140接收来自EP 110的对全局唯一的SPI值的请求,以便与具有多个EP的网络100中的EP 120建立安全关联。如关于图2所述,在一些实施例中,SPI值可以由服务器140导出而不是由EP导出。除了对出站SPI值的请求外,在某些实施例中,EP 110还可以从服务器140请求会话密钥。对会话密钥的请求可以由EP 110在发送对出站SPI值的请求之前或之后或者同时发送。
在920处,服务器140继续使用如上关于图8描述的相同的公式、GSDF和一个或更多个参数导出用于EP 110的全局唯一的出站SPI值。在某些实施例中,在导出出站SPI值之后,服务器140还可以使用关于图2中描述的会话密钥函数导出会话密钥。
在930处,服务器140继续将导出的全局唯一出站SPI发送到EP 110,以用于与EP120建立安全关联。除了出站SPI值外,在一些实施例中,服务器140还可以发送步骤920中导出的会话密钥。如图8中的步骤850所述,在接收到全局唯一的出站SPI值和会话密钥后,EP110与EP 120建立安全关联。
在940处,服务器140在多个EP中的一个或更多个重启后,继续更新一个或更多个参数的移位因子。如上所述,在一些实施例中,一个或更多个EP可以重启,这会导致其相应的移位因子发生变化。在某些实施例中,服务器140随后会更改相应的一个或更多个移位因子,然后将新的一个或更多个移位因子存储在其内存中。在某些实施例中,在更改了一个或更多个移位因子之后,服务器140可以使用新的一个或更多个移位因子重新导出SPI值,并将更新后的SPI值发送到EP 110。
在950处,服务器140在密钥策略更改时继续更新多个参数的密钥策略号。在一些实施例中,例如,用户可以更新、创建或删除密钥策略,这会导致服务器140将新的密钥策略号分配给更新的密钥策略,将新的密钥策略分配给新的密钥策略,和/或如果该密钥策略已被删除,则取消密钥策略号与密钥策略的关联。然后,服务器140可以将这些更改存储在其内存中。在某些实施例中,在更新密钥策略号之后,服务器140可以使用新的密钥策略号重新导出SPI值,并将更新的SPI值发送到EP 110。重要的是要注意,步骤940和950可以任何顺序发生,或者在某些实施例中可能根本不发生。
现在移到图10,图10说明了用于使用EP导出局部唯一SPI值的示例操作1000。关于图10中概述的方法,需要注意的是,为了不模糊本发明中对发明特征的讨论,示例操作1000中省略了某些细节和特征。作为示例,下面将参考EP 110描述示例操作1000。但是,图1中分布式网络100中的任何其他EP也可以执行示例操作1000。
如图所示,在1010处,EP 110在连接到网络100后,开始从服务器140接收EP ID号。在某些实施例中,可以按照关于图8中步骤810描述的执行此步骤。
在1020处,EP 110继续可选性地从服务器140请求SPI导出公式和一个或更多个参数。如上所述,关于图8中的步骤820,在与EP 120进行任何通信之前,EP 110可以导出它自己的局部唯一SPI值。为了导出局部唯一的SPI值,EP 110可以使用包括一个或更多个参数和公式的数据(例如SDD)。在一些实施例中,公式是LSDF,用于导出局部唯一SPI值的一个或更多个参数包括源EP ID号(EPsrc)、目的地EP ID号(EPdst)、密钥策略号、EPmax、Rowmax以及k值和e值。LSDF和一个或更多个参数可以由EP 110和/或服务器140存储和维护。
在1030处,EP 110继续从服务器140接收一个或更多个参数以及LSDF(如果LSDF还没有被EP 110存储的话)。步骤1030按照关于图8中步骤830的描述执行。在一些实施例中,服务器140自动定位并发送上面的一个或更多个参数到EP 110,而不需要接收来自EP 110的请求。
]在1040处,EP 110继续通过将从服务器140接收到的一个或更多个参数输入到LSDF中,来导出局部唯一的SPI值。关于图6描述了导出局部唯一SPI值的例子。
在1050处,EP 110继续通过网络100与EP 120建立安全关联以发送数据。使用局部唯一的出站SPI值和会话密钥,EP 110继续与EP 120建立安全关联,以与关于图8中的步骤850所描述的类似方式。在一些实施例中,服务器140可以继续用对参数中的一个或更多个的任何变化自动更新EP 110,所述变化包括与密钥策略中的一个或更多个相对应的一个或更多个k值的变化(例如,由于CRUD事件或密钥更新),或EP重新启动后,与EP中的一个或更多个相对应的一个或更多个e值的任何变化。在这些实施例中,还如关于图8的步骤850所述,SPI值可以由EP 110重新导出。
图11说明了用于使用服务器导出局部唯一SPI值的示例操作1100。关于图11中概述的方法,需要注意的是,为了不模糊本发明中对发明特征的讨论,示例操作1100中省略了某些细节和特征。
如图所示,在1110处,服务器140接收来自EP 110的对局部唯一SPI值的请求,以便建立与具有多个EP的网络100中的EP 120的安全关联。这关于图9的步骤910进行了进一步描述。
在1120处,服务器140继续使用相同的公式、LSDF和上面图6中描述的一个或更多个参数导出EP 110的局部唯一的出站SPI值。该步骤关于图9的步骤920进行了进一步的描述。
在1130处,服务器140继续将导出的局部唯一出站SPI发送到EP 110,用于与EP120建立安全关联。除了出站SPI值外,在一些实施例中,服务器140还可以发送步骤1120中导出的会话密钥。在接收到局部唯一的出站SPI值和会话密钥后,EP 110与EP 120建立安全关联,如图10中的步骤1050所述。
在1140处,服务器在相应的EP重启后继续更新一个或更多个参数的e值。与多个EP中的每一个相对应的每一个e值都可以按照上面关于图5描述的生成、维护和更新。在更新与EP对应的e值之后,在某些实施例中,服务器140可以重新导出SPI值。
在1150处,服务器在相应的密钥策略发送改变时继续更新一个或更多个参数的k值。密钥策略可以如关于图9中的步骤950所描述的进行更改。因此,在某些实施例中,可基于公式或算法更新与更改的密钥策略相对应的k值。在此更新之后,行号(例如Row(Ki,EPdst))可以重新计算,随后,SDN控制器260可以重新导出SPI值。
图12更加详细地说明了与图1中的网络100相对应的网络1201的示例框图。如关于图1所述,在一些实施例中,EP可以是物理计算设备(例如物理服务器、物理主机)。网络1201是连接主机1210和1220的网络的示例,每台主机都运行管理程序(HV)(例如,分别运行HV1215和HV 1225),其能够执行多个虚拟机(VM)(例如分别运行VM 1211a-1211c和1221a-1221c)。因此,在网络1201中,EP可以是托管管理程序的主机,管理程序执行许多VM。应注意的是,虽然主机1210和1220被描述为支持虚拟机,但是主机1210和1220同样可以支持任何虚拟化计算实例(例如,虚拟机、容器、数据计算节点、隔离的用户空间实例)。
每台主机1210和1220可以是计算机(例如台式计算机、个人计算机、平板计算机、服务器计算机、主机、单片机等)、电话、PDA或任何其他类型的电子设备。每台主机1210和1220可包括各种类型的计算机可读介质和用于各种其他类型计算机可读介质的接口。在某些实施例中,每台主机1210和1220可以包括一个或更多个处理单元、系统内存、只读内存、永久存储设备和网络接口。在一些实施例中,将这些组件连接在一起并允许在它们之间传输数据的是总线(未示出)。例如,总线可以将一个或更多个处理单元通信地连接到系统内存和其他组件。
在每台主机中,一个或更多个处理单元可以检索要执行的指令和要处理的数据,以便执行本文所讨论的过程。一个或更多个处理单元可以是在不同实施例中的单个处理器或多核处理器。只读存储器(ROM)可以存储一个或更多个处理单元和电子系统的其他模块可能使用的静态数据和指令。另一方面,永久存储设备可以是读写存储器设备。永久存储设备可以是非易失性存储器单元,即使在主机断电时也可存储指令和数据。一些实施例使用大规模存储设备(如磁盘或光盘及其相应的磁盘驱动器)作为永久存储设备。
一些实施例使用可移除存储设备(如软盘、闪存驱动器等)作为永久存储设备。与永久存储设备一样,系统内存也可以是读写内存设备。然而,与永久存储设备不同,系统内存可以是易失性读写内存,诸如随机存取内存(RAM)。系统内存可以存储一个或更多个处理单元在运行时使用的一些指令和数据。在某些实施例中,本文讨论的进程存储在系统内存、永久存储设备和/或只读内存中。每台主机1210和1220还可以包括网络接口(例如,网络接口卡(NIC)),它可以用来连接到主机1210和1220之间的网络。主机1210和1220可以通过计算机网络连接,诸如局域网(“LAN”)、广域网(“WAN”)或万维网,如Internet。如图12所示,每台主机1210和1220也包括本地控制器1216和本地控制器1226,其分别运行在HV 1215和1225中。本地控制器1216和本地控制器1226管理它们对应的主机和中央控制器1260之间的交互。
在某些实施例中,如关于图8和图10所述,每台主机1210和1220可以将安全关联数据库、安全策略数据库和SDD存储在其内存中。
除了主机1210和1220,网络1201还包括中央控制器1260和管理器1270。在软件定义的网络(“SDN”)环境中,在某些实施例中,管理器1270可负责集中网络管理和接收用户输入(例如,通过应用程序编程接口)。用户(例如,网络管理员)可以通过例如命令行界面、图形用户界面等输入数据,诸如网络配置数据、安全规则和密钥策略。然后,管理器1270将通过接口接收到的用户输入中继到中央控制器1260。
现在转到中央控制器1260,在一些实施例中,中央控制器1260可以执行图1-图11中描述的服务器(例如,服务器140)的功能。在SDN环境中,中央控制器260可负责管理网络1201中的各种组件,并维护关于VM、主机等的信息。在一些实施例中,中央控制器260使用不同的API集来管理这些组件。如图12所示,中央控制器1260通过北向API与管理器1270通信,同时使用南向API与各个主机通信。例如,在一些实施例中,中央控制器1260可以接收来自管理器1270的用户输入或更新,确定需要更新的虚拟机,然后经由本地控制器将更新分发到支持这些VM的主机。在某些实施例中,中央控制器1260可以将安全规则和密钥策略存储在分配给中央控制器1260的内存中。
虽然示出为单个实体,但应该理解,中央控制器1260和管理器1270都可以实现为分布式系统或集群系统。也就是说,管理器1270可包括实现管理平面功能的多个计算设备或虚拟机。此外,中央控制器1260可以是网络控制器集群,其包括多个网络控制器节点(例如,实现中央控制平面功能的中央控制器计算机或虚拟机、或容器、或其他逻辑计算实例)。在一些实施例中,每个集中控制器可以包括管理平面和中央控制平面功能(例如,作为单独的应用程序或功能)。
在一些实施例中,每个网络控制器节点通过集群内通信与其他控制器节点通信。例如,在一些实施例中,可以为某网络控制器节点和连接到该网络控制器节点的主机专门定义密钥策略。但是,与密钥策略相关的所有CRUD(创建、读取、更新和删除)操作都可以通过集群内部通信传播到集群中的其他网络控制器节点。作为另一个示例,在一些实施例中,每个主机可以连接到来自网络控制器集群的单个网络控制器节点。然而,虽然只有连接到主机的网络控制器节点知道与主机的当前状态相关的事件(例如主机重启等),但是网络控制器集群中的其他网络控制器可以经由集群内通信使用这些事件进行更新。
与其他系统和方法相比,本文描述的实施例在导出和分配SPI值方面具有以下优点。通过使用本文所讨论的系统和方法,可以由EP或服务器按需导出SPI值,而无需存储SPI值,这将带来极大的性能提升,避免了主要的瓶颈,并且需要更少的存储空间。
上述的某些实施例涉及主机之上的硬件抽象层。硬件抽象层允许多个上下文或虚拟计算实例共享硬件资源。在一些实施例中,这些虚拟计算实例彼此隔离,每个实例至少具有在其中运行的用户应用程序。因此,硬件抽象层提供了在虚拟计算实例之间进行资源隔离和分配的好处。在前面的实施例中,虚拟机用作虚拟计算实例的示例,管理程序用作硬件抽象层的示例。如上所述,每个虚拟机都包括客户操作系统,在其中运行至少一个应用程序。
应当注意,这些实施例还可以应用于虚拟计算实例的其他示例,例如不包括客户操作系统的容器,本文称为“无操作系统容器”(参见,例如www.docker.com)。无操作系统容器实现操作系统级虚拟化,其中在主机上的操作系统内核之上提供抽象层。抽象层支持多个无操作系统容器,每个都包括应用程序及其依赖项。每个无操作系统容器在主机操作系统上的用户空间中作为独立的进程运行,并与其他容器共享内核。无操作系统容器依赖内核的功能来利用资源隔离(CPU、内存、块I/O、网络等)和独立的命名空间,并完全隔离应用程序对操作环境的视图。通过使用无操作系统容器,可以隔离资源、限制服务和提供使操作系统具有私有视图的进程,这些操作系统具有自己的进程ID空间、文件系统结构和网络接口。多个容器可以共享同一个内核,但是每个容器可被限制为只能使用有限数量的资源,比如CPU、内存和I/O。
本文所述的各种实施例可以采用涉及存储在计算机系统中的数据的各种计算机实现的操作。例如,这些操作可能需要对物理量进行物理操纵——通常但并非一定的,这些量可采取电或磁信号的形式,它们或它们的表示能够被存储、传输、组合、比较或以其他方式进行操纵。此外,这种操纵在术语中通常称为,诸如产生、标识、确定或比较。本文描述的形成本发明的一个或更多个实施例的一部分的任何操作都可以是有用的机器操作。此外,本发明的一个或更多个实施例还涉及用于执行这些操作的设备或装置。所述装置可以是为特定需要的目的而专门构造的,也可以是由存储在计算机中的计算机程序选择性地激活或配置的通用计算机。特别地,各种通用机器可以与按照本文中教导编写的计算机程序一起使用,或者可以更方便地构造更专业的装置来执行所需的操作。
本文所述的各种实施例可与其他计算机系统配置一起实践,包括手持设备、微处理器系统、基于微处理器的或可编程的消费类电子产品、小型计算机、大型计算机等。
本发明的一个或更多个实施例可以实现为一个或更多个计算机程序,也可以实现为包括在一个或更多个计算机可读介质中的一个或更多个计算机程序模块。术语计算机可读介质是指可以存储数据的任何数据存储设备,这些数据随后可以输入到计算机系统中,计算机可读介质可以基于用于以使得它们能够由计算机读取的方式包含计算机程序的任何现有的或随后开发的技术。计算机可读介质的例子包括硬盘驱动器、网络附加存储(NAS)、只读存储器、随机存取存储器(例如闪存设备)、CD(光盘)--CD-ROM、CD-R或CD-RW、DVD(数字多功能盘)、磁带以及其他光学和非光学数据存储设备。计算机可读介质还可以分布在耦合网络的计算机系统上,以便以分布式方式存储和执行计算机可读代码。
尽管本发明的一个或更多个实施例已作了一些详细描述,以使理解更加清晰,但显然,某些变化和修改可以在权利要求的范围内进行。因此,所述实施例应被认为是说明性的,而不是限制性的,并且权利要求的范围不应局限于本文给出的细节,而可以在权利要求的范围和等价物内进行修改。在权利要求书中,除非在权利要求书中明确说明,否则要素和/或步骤并不意味着任何特定的操作顺序。
根据各种实施例的虚拟化系统可以实现为托管实施例、非托管实施例或易于模糊两者之间区别的实施例,这些都是可以想到的。此外,各种虚拟化操作可以全部或部分地用硬件实现。例如,硬件实现可以使用查找表来修改存储访问请求,以保护非磁盘数据。
无论虚拟化的程度如何,都可以进行许多变化、修改、添加和改进。因此,虚拟化软件可以包括执行虚拟化功能的主机、控制台或客户操作系统的组件。可以为本文描述的作为单个实例的组件、操作或结构提供多个实例。最后,各种组件、操作和数据存储之间的边界在某种程度上是任意的,特定的操作在具体的说明性配置的上下文中进行了说明。其他功能分配是可以想到的,并且可以落入本发明的范围。通常,作为示例配置中的单独组件呈现的结构和功能可以作为组合结构或组件实现。同样,作为单个组件呈现的结构和功能可以作为单独的组件实现。这些和其他更改、修改、添加和改进均可落入所附权利要求书的范围。

Claims (13)

1.一种将安全参数索引SPI值分配给网络(101)中的多个端点(110,120,130)的方法,所述方法包括:
在第一端点(110)处使用全局SPI导出公式GSDF和一个或更多个参数独立地导出SPI值,其中所述一个或更多个参数包括与所述第一端点(110)相对应的源端点ID号、密钥策略号和移位因子;
使用所述SPI值在所述第一端点(110)和第二端点(120)之间建立安全通信通道;以及
由所述第一端点(110)通过所述安全通信通道与所述第二端点(120)通信。
2.如权利要求1所述的方法,其中所述一个或更多个参数还包括最大端点ID号和最大密钥策略号。
3.如权利要求2所述的方法,其中所述全局SPI导出公式为:
SPI=SPI(Ki,EP,Sj)=EPmax*[(Ki-Sj+Kmax)%Kmax]+EPj+1;并且
其中,SPI表示与所述SPI值相对应的二进制值,Ki对应于所述密钥策略号,EPmax对应于所述最大端点ID号,所述最大端点ID号是指所述网络能够支持的最大端点数,EPmax是常数,Kmax对应于所述最大密钥策略号,所述最大密钥策略号是指所述网络能够支持的最大密钥策略数,EPj对应于所述源端点ID号,以及Sj对应于所述移位因子。
4.如权利要求1所述的方法,其中所述GSDF使得每个端点(110,120,130)独立地导出各自的一组全局唯一SPI值。
5.如权利要求1所述的方法,其中所述移位因子在重启每个端点(110,120,130)时发生改变。
6.如权利要求1所述的方法,还包括:在所述第一端点(110)处使用局部SPI导出公式LSDF和一个或更多个参数生成局部SPI分配,所述一个或更多个参数包括与所述第一端点(110)相对应的源端点ID号,以及与所述第二端点(120)相对应的目的地端点ID号。
7.如权利要求6所述的方法,其中所述一个或更多个参数还包括密钥策略号和由映射函数导出的行号。
8.如权利要求7所述的方法,其中所述行号使用与所述第二端点(120)相对应的值和与所述密钥策略号相对应的值计算。
9.如权利要求8所述的方法,其中所述局部SPI导出公式为:
SPI=SPI(Ki,EPsrc,EPdst)=EPmax*Row(Ki,EPdst)+EPsrc;和
其中,SPI表示与所述SPI值相对应的二进制值,Ki对应于所述密钥策略号,EPsrc对应于所述源端点ID号,EPdst对应于所述目的地端点ID号,EPmax对应于最大端点ID号,所述最大端点ID号是指所述网络能够支持的最大端点数,其中EPmax是常数,以及Row(Ki,EPdst)对应于所述行号,并且能够由映射函数导出。
10.如权利要求1所述的方法,其中所述第二端点(120)被配置为使用所述SPI导出公式和第二组一个或更多个参数独立地导出第二SPI值,并且
其中,在所述第一端点(110)和所述第二端点(120)之间建立所述安全通信通道包括:使用所述SPI值建立用于从所述第一端点(110)到所述第二端点(120)的通信的第一安全关联,以及使用所述第二SPI值建立用于从所述第二端点(120)到所述第一端点(110)的通信的第二安全关联。
11.如权利要求1所述的方法,其中由所述第一端点(110)进行的通信包括:使用所述SPI值加密数据,以及通过所述安全通信通道将经加密的数据发送到所述第二端点(120),以及
其中所述第二端点(120)被配置为使用所述SPI导出公式和所述一个或更多个参数独立地导出所述SPI值,并且其中,所述第二端点(120)还被配置为基于所述SPI值接收和解密所述经加密的数据。
12.一种计算机系统,被配置为执行如权利要求1-11中任一项所述的方法。
13.一种非暂时性计算机可读介质,包括要在计算机系统中执行的指令,其中所述指令在所述计算机系统中执行时执行如权利要求1-11中任一项所述的方法。
CN201880020711.1A 2017-02-02 2018-02-02 用于分配spi值的系统与方法 Active CN110463157B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/423,063 US11075949B2 (en) 2017-02-02 2017-02-02 Systems and methods for allocating SPI values
US15/423,063 2017-02-02
PCT/US2018/016597 WO2018144822A1 (en) 2017-02-02 2018-02-02 Systems and methods for allocating spi values

Publications (2)

Publication Number Publication Date
CN110463157A CN110463157A (zh) 2019-11-15
CN110463157B true CN110463157B (zh) 2021-10-08

Family

ID=61249714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880020711.1A Active CN110463157B (zh) 2017-02-02 2018-02-02 用于分配spi值的系统与方法

Country Status (4)

Country Link
US (1) US11075949B2 (zh)
EP (1) EP3571822B1 (zh)
CN (1) CN110463157B (zh)
WO (1) WO2018144822A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113676476B (zh) * 2021-08-18 2022-07-08 大连海事大学 一种基于动作可编程软件定义网络的加密跳变方法
CN114095423B (zh) * 2021-10-11 2023-04-14 北京东方京海电子科技有限公司 基于mpls的电力通信骨干网数据安全防护方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1227686A (zh) * 1996-06-05 1999-09-01 西门子公司 在第一计算机单元和第二计算机单元之间管理加密密码的方法
US6327660B1 (en) * 1998-09-18 2001-12-04 Intel Corporation Method for securing communications in a pre-boot environment
US7234058B1 (en) * 2002-08-27 2007-06-19 Cisco Technology, Inc. Method and apparatus for generating pairwise cryptographic transforms based on group keys
CN101325582A (zh) * 2007-06-15 2008-12-17 华为技术有限公司 保护代理移动互联网协议信令的方法、系统及装置
CN101473588A (zh) * 2006-06-20 2009-07-01 摩托罗拉公司 用于使用IPsec密钥的加密通信的方法和装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7908481B1 (en) * 1999-12-17 2011-03-15 Avaya Inc. Routing data to one or more entities in a network
US7185362B2 (en) * 2001-08-20 2007-02-27 Qualcomm, Incorporated Method and apparatus for security in a data processing system
US7676814B2 (en) * 2004-03-25 2010-03-09 Globalfoundries Inc. Four layer architecture for network device drivers
US20060005012A1 (en) * 2004-06-21 2006-01-05 Ipolicy Networks, Inc., A Delaware Corporation Efficient security parameter index selection in virtual private networks
CN100571125C (zh) * 2005-12-30 2009-12-16 上海贝尔阿尔卡特股份有限公司 一种用于用户设备与内部网络间安全通信的方法及装置
US8230212B2 (en) * 2006-08-29 2012-07-24 Alcatel Lucent Method of indexing security keys for mobile internet protocol authentication
US8141127B1 (en) * 2006-10-24 2012-03-20 Nextier Networks, Inc. High granularity reactive measures for selective pruning of information
US8667151B2 (en) * 2007-08-09 2014-03-04 Alcatel Lucent Bootstrapping method for setting up a security association
KR101523090B1 (ko) * 2007-08-24 2015-05-26 삼성전자주식회사 모바일 아이피를 이용하는 이동통신 시스템에서 단말의 이동성 관리 방법 및 장치
US8549614B2 (en) * 2009-12-04 2013-10-01 Cisco Technology, Inc. Establishing internet protocol security sessions using the extensible messaging and presence protocol
US9137216B2 (en) * 2013-08-13 2015-09-15 Verizon Patent And Licensing Inc. Session layer data security

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1227686A (zh) * 1996-06-05 1999-09-01 西门子公司 在第一计算机单元和第二计算机单元之间管理加密密码的方法
US6327660B1 (en) * 1998-09-18 2001-12-04 Intel Corporation Method for securing communications in a pre-boot environment
US7234058B1 (en) * 2002-08-27 2007-06-19 Cisco Technology, Inc. Method and apparatus for generating pairwise cryptographic transforms based on group keys
CN101473588A (zh) * 2006-06-20 2009-07-01 摩托罗拉公司 用于使用IPsec密钥的加密通信的方法和装置
CN101325582A (zh) * 2007-06-15 2008-12-17 华为技术有限公司 保护代理移动互联网协议信令的方法、系统及装置

Also Published As

Publication number Publication date
US11075949B2 (en) 2021-07-27
CN110463157A (zh) 2019-11-15
EP3571822B1 (en) 2021-03-31
US20180219915A1 (en) 2018-08-02
WO2018144822A1 (en) 2018-08-09
EP3571822A1 (en) 2019-11-27

Similar Documents

Publication Publication Date Title
US11196727B2 (en) Scaling IPsec processing on a virtual machine
US11044238B2 (en) Secure communications among tenant virtual machines in a cloud networking environment
US11336629B2 (en) Deterministic load balancing of IPSec packet processing
US10701107B2 (en) Deterministic load balancing of IPSec processing
US9596077B2 (en) Community of interest-based secured communications over IPsec
US11265316B2 (en) Apparatus to automatically establish or modify mutual authentications amongst the components in a software defined networking (SDN) solution
US10986075B2 (en) Distributing packets across processing cores
US11316837B2 (en) Supporting unknown unicast traffic using policy-based encryption virtualized networks
US10659440B2 (en) Optimizing utilization of security parameter index (SPI) space
EP2790104B1 (en) Systems, methods, and computer program products for recording service status of applications
US11770389B2 (en) Dynamic rekeying of IPSec security associations
US10630659B2 (en) Scalable security key architecture for network encryption
EP4007209A1 (en) Service endpoint interconnect in a virtual private gateway
CN110463157B (zh) 用于分配spi值的系统与方法
US10887095B2 (en) Allocating security parameter index values using time-based one-time passwords
US11526372B2 (en) Hypervisor restart handling mechanism using random session numbers
US11805109B1 (en) Data transfer encryption offloading using session pairs

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant