IP Library Granted Patent US 10,659,440
Granted Patent B2
US 10,659,440 · App. 15/827,368 · Granted May 19, 2020

Optimizing utilization of security parameter index (SPI) space

Inventors: Dexiang Wang (San Jose, CA); Zhen Mo (Palo Alto, CA); Fang Peng (Palo Alto, CA); Bo Hu (Palo Alto, CA); Helen Liu (Palo Alto, CA)
Assignee: Nicira, Inc.
H04L63/06H04L9/0637H04L9/0643H04L9/0838H04L9/0894H04L9/14H04L2212/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,659,440
App. No.
15/827,368
Granted
May 19, 2020
Kind
B2
Abstract

Certain embodiments described herein are generally directed to methods and apparatus for providing a security parameter index (SPI) value for use in establishing a security association between a source tunnel endpoint and a destination tunnel endpoint. In some embodiments, utilization of the SPI bit space is optimized to allow the scaling of key policies within a network. In some embodiment, using an SPI derivation formula, a server in the network is able to generate SPI values whose bit spaces are optimized to allow key policies to scale out.

Claims (49)

1. A method for providing a security parameter index (SPI) value for use in establishing a security association between a source tunnel endpoint and a destination tunnel endpoint, comprising:

receiving, at a server, a request from the source tunnel endpoint for a SPI value for use by the source tunnel endpoint in establishing the security association with the destination tunnel endpoint for securing an exchange of one or more data packets between a source endpoint and a destination endpoint;

deriving, at the server, the SPI value using a SPI derivation formula based on a key policy assigned to the source tunnel endpoint and the destination tunnel endpoint, wherein most bits from the SPI value are associated with the key policy; and

transmitting, at the server, the SPI value to the source tunnel endpoint for use by the source tunnel endpoint in establishing the security association, wherein the established security association is used by the source tunnel endpoint to encapsulate and encrypt at least a data packet from the one or more data packets received from the source endpoint and destined for the destination endpoint, the encapsulated encrypted data packet comprising a first header and an encrypted payload, the first header comprising a source IP address of the source tunnel endpoint, a destination IP address of the destination tunnel endpoint, and the SPI value, the encrypted payload comprising a second header comprising a source IP address of the source endpoint and a destination IP address of the destination endpoint, and wherein the encapsulated encrypted data packet is transmitted by the source tunnel endpoint to the destination tunnel endpoint, wherein the key policy defines one or more properties of an encryption key of the established security association, and wherein the encryption key is used for encrypting the data packet.

2. The method of claim 1 , wherein the SPI value comprises a bank index value corresponding to a bank index associated with the key policy, a hash of a tunnel endpoint value of the source tunnel endpoint, and a shift factor, wherein the hash of the tunnel endpoint value comprises fewer bits than the tunnel endpoint value.

3. The method of claim 2 , wherein deriving the SPI value comprises deriving the bank index value based on a second hash of the tunnel endpoint value of the source tunnel endpoint value.

4. The method of claim 3 , wherein deriving the SPI value further comprises utilizing the second hash to select the bank index value from a set of bank index values associated with the key policy.

5. The method of claim 1 , wherein the SPI derivation formula comprises:

SPI( K,V,S _ V )=( K*V _Bank+Hash( V ))<<2+ S _ V &0 x 03; and

wherein SPI represents a binary value corresponding to the SPI value, KP corresponds to the key policy, V corresponds to a tunnel endpoint value of the source tunnel endpoint, S_V corresponds to a shift factor, K corresponds to a bank index value corresponding to a bank index associated with the key policy, V_Bank corresponds to a size of a bank of tunnel endpoint values, and HO corresponds to a hash function for hashing the tunnel endpoint value of the source tunnel endpoint to generate a hash of the tunnel endpoint value.

6. The method of claim 1 , wherein the SPI derivation formula comprises:

SPI( KP,V,S _ V )=( K _Set[Hash′( V ) % Card( K -Set)]* V _Bank+Hash( V ))<<2+ S _ V &0 x 03

wherein SPI represents a binary value corresponding to the SPI value, KP corresponds to the key policy, V corresponds to a tunnel endpoint value of the source tunnel endpoint, S_V corresponds to a shift factor, K_Set corresponds to a set of bank indices allocated to the key policy, Hash′( ) corresponds to a hash function configured to identify a bank index of a certain tunnel endpoint value from among the set of bank indices, Card (K-Set) corresponds to a cardinality of K_Set, V_Bank corresponds to a size of a bank of tunnel endpoint values, and HO corresponds to a hash function for hashing the tunnel endpoint value of the source tunnel endpoint to generate a hash of the tunnel endpoint value.

7. The method of claim 1 , wherein the deriving the SPI value further comprises hashing a tunnel endpoint value of the source tunnel endpoint to a hash of the tunnel endpoint value using a hash function configured to resolve hash collisions.

8. The method of claim 1 , further comprising:

selecting the SPI derivation formula based on a number of tunnel endpoints the key policy is assigned to prior to the deriving.

9. A non-transitory computer readable medium comprising instructions to be executed in a computer system, wherein the instructions when executed in the computer system perform a method for providing a security parameter index (SPI) value for use in establishing a security association between a source tunnel endpoint and a destination tunnel endpoint, the method comprising:

deriving the SPI value using a SPI derivation formula based on a key policy assigned to the source tunnel endpoint and the destination tunnel endpoint, wherein most bits from the SPI value are associated with the key policy; and

transmitting the SPI value to the source tunnel endpoint for use by the source tunnel endpoint in establishing the security association, wherein the established security association is used by the source tunnel endpoint to encapsulate and encrypt at least a data packet from the one or more data packets received from the source endpoint and destined for the destination endpoint, the encapsulated encrypted data packet comprising a first header and an encrypted payload, the first header comprising a source IP address of the source tunnel endpoint, a destination IP address of the destination tunnel endpoint, and the SPI value, the encrypted payload comprising a second header comprising a source IP address of the source endpoint and a destination IP address of the destination endpoint, and wherein the encapsulated encrypted data packet is transmitted by the source tunnel endpoint to the destination tunnel endpoint, wherein the key policy defines one or more properties of an encryption key of the established security association, and wherein the encryption key is used for encrypting the data packet.

10. The non-transitory computer readable medium of claim 9 , wherein the SPI value comprises a bank index value corresponding to a bank index associated with the key policy, a hash of a tunnel endpoint value of the source tunnel endpoint, and a shift factor, wherein the hash of the tunnel endpoint value comprises fewer bits than the tunnel endpoint value.

11. The non-transitory computer readable medium of claim 10 , wherein deriving the SPI value comprises deriving the bank index value based on a second hash of the tunnel endpoint value of the source tunnel endpoint value.

12. The non-transitory computer readable medium of claim 11 , wherein deriving the SPI value further comprises utilizing the second hash to select the bank index value from a set of bank index values associated with the key policy.

13. The non-transitory computer readable medium of claim 9 , wherein the SPI derivation formula comprises:

SPI( K,V,S _ V )=( K*V _Bank+Hash( V ))<<2+ S _ V &0 x 03; and

wherein SPI represents a binary value corresponding to the SPI value, KP corresponds to the key policy, V corresponds to a tunnel endpoint value of the source tunnel endpoint, S_V corresponds to a shift factor, K corresponds to a bank index value corresponding to a bank index associated with the key policy, V_Bank corresponds to a size of a bank of tunnel endpoint values, and HO corresponds to a hash function for hashing the tunnel endpoint value of the source tunnel endpoint to generate a hash of the tunnel endpoint value.

14. The non-transitory computer readable medium of claim 9 , wherein the SPI derivation formula comprises:

SPI( KP,V,S _ V )=( K _Set[Hash′( V ) % Card( K -Set)]* V _Bank+Hash( V ))<<2+ S _ V &0 x 03; and

wherein SPI represents a binary value corresponding to the SPI value, KP corresponds to the key policy, V corresponds to a tunnel endpoint value of the source tunnel endpoint, S_V corresponds to a shift factor, K_Set corresponds to a set of bank indices allocated to the key policy, Hash′( ) corresponds to a hash function configured to identify a bank index of a certain tunnel endpoint value from among the set of bank indices, Card (K-Set) corresponds to a cardinality of K_Set, V_Bank corresponds to a size of a bank of tunnel endpoint values, and HO corresponds to a hash function for hashing the tunnel endpoint value of the source tunnel endpoint to generate a hash of the tunnel endpoint value.

15. The non-transitory computer readable medium of claim 9 , wherein the deriving the SPI value further comprises hashing a tunnel endpoint value of the source tunnel endpoint to a hash of the tunnel endpoint value using a hash function configured to resolve hash collisions.

16. The non-transitory computer readable medium of claim 9 , further comprising:

selecting the SPI derivation formula based on a number of tunnel endpoints the key policy is assigned to prior to the deriving.

17. A computer system, comprising:

a memory comprising executable instructions; and

a processor in data communication with the memory and configured to execute the instructions to cause the computer system to perform a method for providing a security parameter index (SPI) value for use in establishing a security association between a source tunnel endpoint and a destination tunnel endpoint, the method comprising:

receiving a request from the source tunnel endpoint for a SPI value for use by the source tunnel endpoint in establishing the security association with the destination tunnel endpoint for securing an exchange of one or more data packets between a source endpoint and a destination endpoint;

deriving the SPI value using a SPI derivation formula based on a key policy assigned to the source tunnel endpoint and the destination tunnel endpoint, wherein most bits from the SPI value are associated with the key policy; and

transmitting the SPI value to the source tunnel endpoint for use by the source tunnel endpoint in establishing the security association, wherein the established security association is used by the source tunnel endpoint to encapsulate and encrypt at least a data packet from the one or more data packets received from the source endpoint and destined for the destination endpoint, the encapsulated encrypted data packet comprising a first header and an encrypted payload, the first header comprising a source IP address of the source tunnel endpoint, a destination IP address of the destination tunnel endpoint, and the SPI value, the encrypted payload comprising a second header comprising a source IP address of the source endpoint and a destination IP address of the destination endpoint, and wherein the encapsulated encrypted data packet is transmitted by the source tunnel endpoint to the destination tunnel endpoint, wherein the key policy defines one or more properties of an encryption key of the established security association, and wherein the encryption key is used for encrypting the data packet.

18. The computer system of claim 17 , wherein the SPI value comprises a bank index value corresponding to a bank index associated with the key policy, a hash of a tunnel endpoint value of the source tunnel endpoint, and a shift factor, wherein the hash of the tunnel endpoint value comprises fewer bits than the tunnel endpoint value.

19. The computer system of claim 18 , wherein deriving the SPI value comprises deriving the bank index value based on a second hash of the tunnel endpoint value of the source tunnel endpoint value.

20. The computer system of claim 19 , wherein deriving the SPI value further comprises utilizing the second hash to select the bank index value from a set of bank index values associated with the key policy.

21. The computer system of claim 17 , wherein the SPI derivation formula comprises:

SPI( K,V,S _ V )=( K*V _Bank+Hash( V ))<<2+ S _ V &0 x 03; and

wherein SPI represents a binary value corresponding to the SPI value, KP corresponds to the key policy, V corresponds to a tunnel endpoint value of the source tunnel endpoint, S_V corresponds to a shift factor, K corresponds to a bank index value corresponding to a bank index associated with the key policy, V_Bank corresponds to a size of a bank of tunnel endpoint values, and HO corresponds to a hash function for hashing the tunnel endpoint value of the source tunnel endpoint to generate a hash of the tunnel endpoint value.

22. The computer system of claim 17 , wherein the SPI derivation formula comprises:

SPI( KP,V,S _ V )=( K _Set[Hash′( V ) % Card( K -Set)]* V _Bank+Hash( V ))<<2+ S _ V &0 x 03; and

wherein SPI represents a binary value corresponding to the SPI value, KP corresponds to the key policy, V corresponds to a tunnel endpoint value of the source tunnel endpoint, S_V corresponds to a shift factor, K_Set corresponds to a set of bank indices allocated to the key policy, Hash′ ( ) corresponds to a hash function configured to identify a bank index of a certain tunnel endpoint value from among the set of bank indices, Card (K-Set) corresponds to a cardinality of K_Set, V_Bank corresponds to a size of a bank of tunnel endpoint values, and HO corresponds to a hash function for hashing the tunnel endpoint value of the source tunnel endpoint to generate a hash of the tunnel endpoint value.

23. The computer system of claim 17 , wherein the deriving the SPI value further comprises hashing a tunnel endpoint value of the source tunnel endpoint to a hash of the tunnel endpoint value using a hash function configured to resolve hash collisions.

24. The computer system of claim 17 , further comprising:

selecting the SPI derivation formula based on a number of tunnel endpoints the key policy is assigned to prior to the deriving.

Assignments (2)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2017
From: WANG, DEXIANG; MO, ZHEN; PENG, FANG; HU, BO; LIU, HELEN
To: NICIRA, INC.
Reel/Frame 044262/0993 →