IP Library Granted Patent US 9,992,223
Granted Patent B2
US 9,992,223 · App. 14/664,549 · Granted Jun 5, 2018

Flow-based anti-replay checking

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 9,992,223
App. No.
14/664,549
Granted
Jun 5, 2018
Kind
B2
Abstract

This disclosure describes an approach to detect replay attacks while having multiple cores in a multi-core processor manage an established tunneling session. The tunneling session includes a number of flows. One of the cores is assigned to manage one of the flows, and another core is assigned to manage another of the flows. A replay attack over the tunneling session is inhibited by maintaining a flow-based sequence context at each of the flows, and the flow-based sequence context is maintained by the core that is managing the respective flow.

Claims (73)

1. A method of managing a tunneling protocol using a multi-core processor, the method comprising:

establishing a tunneling session at a multi-core processor, wherein the multi-core processor has a plurality of processing cores, and wherein a plurality of flows are transmitted over the established tunneling session;

assigning a first of the plurality of cores to manage a first flow from the plurality of flows and assigning a second of the plurality of cores to manage a second flow from the plurality of flows;

maintaining a flow-based sequence context at each of the plurality of flows, wherein each flow-based sequence context is maintained by the core that is managing the respective flow;

receiving a data packet, wherein the data packet is a first data packet from a received flow of the plurality of flows;

determining whether the data packet includes one of the flow-based sequence contexts;

in response to said determining that the data packet includes one of the flow-based sequence contexts, assigning one of the plurality of cores based on data in the data packet and dispatching the received data packet to the assigned core;

receiving one or more subsequent data packets, wherein each of the subsequent data packets are from the received flow;

dispatching each of the subsequent data packets to the assigned core;

determining whether each of the subsequent data packets is a replay attack attempt by checking a flow-based sequence number included in the flow-based sequence context; and

discarding one or more of the subsequent packets in response to detecting the replay attack in the one or more of the subsequent packets.

2. The method of claim 1 further comprising:

negotiating use of the flow-based sequence context between the multi-core processor and another system accessible via a computer network.

3. The method of claim 1 wherein the first core is managing a transmission of a second data packet over the first flow, the method further comprising:

checking as to whether the second data packet is a new data packet; and

in response to the second data packet being new:

adding a new flow-based sequence context to the second data packet, wherein the new flow-based sequence context includes a flow-based sequence number.

4. The method of claim 3 wherein, in response to the second data packet being new, the method further comprises:

adding a packet identifier to a memory table accessible to the first core;

transmitting the second data packet over a computer network to a receiver.

5. The method of claim 4 further comprising:

prior to the transmitting:

generating a distribution label corresponding to the second data packet; and

performing an encryption encapsulation of the second data packet, wherein the distribution label is included in a set of header data corresponding to the second data packet.

6. The method of claim 3 further comprising:

in response to the second data packet already existing:

modifying the flow-based sequence context of the second data packet, wherein the modifying comprises incrementing the flow-based sequence number; and

transmitting the second data packet over a computer network to a receiver.

7. The method of claim 6 further comprising:

prior to the transmitting:

performing an encryption encapsulation of the second data packet, wherein a distribution label is included in a set of header data corresponding to the second data packet.

8. A information handling system comprising:

a multi-core processor, wherein the multi-core processor has a plurality of processing cores;

a security module that establishes a tunneling session at the multi-core processor, wherein a plurality of flows are transmitted over the established tunneling session;

a distribution engine configured to:

assign a first core of the plurality of cores to manage a first flow from the plurality of flows and assigning a second core of the plurality of cores to manage a second flow from the plurality of flows,

maintaining a flow-based sequence context at each of the plurality of flows, wherein the flow-based sequence context is maintained by the core that is managing the respective flow,

receive a data packet, wherein the data packet is a first data packet from a received flow of the plurality of flows,

determine whether the data packet includes one of the flow-based contexts,

in response to said determining that the data packet includes one of the flow-based sequence contexts, assign one of the plurality of cores based on data in the data packet and dispatch the data packet to the assigned core,

receive one or more subsequent data packets, wherein each of the subsequent data packets are from the received flow,

dispatch each of the subsequent data packets to the assigned core,

determine whether each of the subsequent data packets is a replay attack attempt based on a flow-based sequence number included in the flow-based sequence context, and

discard one or more of the subsequent packets in response to detection of the replay attack in the one or more of the subsequent packets.

9. The information handling system of claim 8 wherein the security module negotiates use of the flow-based sequence context between the multi-core processor and another system accessible via a computer network prior to the establishment of the tunneling session.

10. The information handling system of claim 8 wherein the first core manages a transmission of a second data packet over the first flow, and wherein the distribution engine is further comprised to:

check as to whether the second data packet is a new data packet;

select the first core as the core to manage the new data packet based on data in the new data packet; and

dispatch the new data packet to the selected first core.

11. The information handling system of claim 10 wherein, in response to the second data packet being new, the first core is further comprised to:

add a new flow-based sequence context to the second data packet, wherein the new flow-based sequence context includes a flow-based sequence number; and

transmit the second data packet over a computer network to a receiver.

12. The information handling system of claim 11 further comprising having the first core, prior to the transmission of the data packet, configured to:

generate a distribution label corresponding to the second data packet; and

perform an encryption encapsulation of the second data packet, wherein the distribution label is included in a set of header data corresponding to the second data packet.

13. The information handling system of claim 10 wherein, in response to the second data packet already existing, the first core is further comprised to:

modify the flow-based sequence context of the second data packet by incrementing the flow-based sequence number; and

transmit the second data packet over a computer network to a receiver.

14. The information handling system of claim 13 wherein, prior to the transmission of the second data packet, the first core is further comprised to:

perform an encryption encapsulation of the second data packet, wherein a distribution label is included in a set of header data corresponding to the second data packet.

15. A computer program product comprising a computer readable storage medium comprising a set of computer instructions, the computer instructions effective to:

establish a tunneling session at a multi-core processor, wherein the multi-core processor has a plurality of processing cores, and wherein a plurality of flows are transmitted over the established tunneling session;

assign a first of the plurality of cores to manage a first flow from the plurality of flows and assigning a second of the plurality of cores to manage a second flow from the plurality of flows; and

maintain a flow-based sequence context at each of the plurality of flows, wherein the flow-based sequence context is maintained by the core that is managing the respective flow;

receive the data packet, wherein the data packet is a first data packet from a first flow of the plurality of flows;

determine whether the data packet includes the flow-based sequence context;

in response to detecting the flow-based sequence context:

assign one of the plurality of cores based on data in the data packet; and

dispatch the received data packet to the assigned core;

receive a plurality of subsequent data packets, wherein each of the subsequent data packets are from the first flow;

dispatch each of the subsequent data packets to the assigned core;

determine whether each of the subsequent data packets is a replay attack attempt by checking a flow-based sequence number included in the flow-based sequence context; and

discarding one or more of the subsequent packets in response to detecting the replay attack in the one or more of the subsequent packets.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040626 FRAME: 0683. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME EFFECTIVE NOVEMBER 7, 2016. Recorded Jan 12, 2017
From: NXP SEMICONDUCTORS USA, INC. (MERGED INTO); FREESCALE SEMICONDUCTOR, INC. (UNDER)
To: NXP USA, INC.
Reel/Frame 041414/0883 →
CHANGE OF NAME Recorded Nov 16, 2016
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 040626/0683 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →