IP Library Granted Patent US 11,729,215
Granted Patent B2
US 11,729,215 · App. 16/868,233 · Granted Aug 15, 2023

Method for inspection and filtering of TCP streams in gateway router

Inventors: Yury Yakovlev (Helsinki, FI); Tero Kilkanen (Helsinki, FI); Markus Palonen (Helsinki, FI)
Assignee: F-Secure Corporation
H04L63/166H04L45/42H04L47/2466H04L63/0227H04L63/0236H04L63/1441H04L63/20H04L69/163H04L69/169
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 11,729,215
App. No.
16/868,233
Granted
Aug 15, 2023
Kind
B2
Abstract

A method of monitoring traffic by a router acting as a gateway between a first and second network is described. The router can receive data packets sent from the first device over the TCP connection and can send a TCP ACK packet to the first device in response to each data packet. The data packets can be stored without sending them to the second device. The stored data packets can be examined in order to determine whether to block or allow the TCP connection. In the event that it is determined to allow the TCP connection, the router can send each of the stored data packets to the second device. In the event that it is determined to block the TCP connection, the router can send a TCP RST message to each of the first and second devices in order to close the TCP connection.

Claims (35)

1. A method of monitoring traffic, the method being carried out by a router acting as a gateway between a first and second network, the method comprising:

after establishment of a transmission control protocol (TCP) connection between a first device on the first network and a second device on the second network, the router comprising a first processor and a second processor:

on the first processor:

receiving a plurality of data packets sent from the first device over the TCP connection;

sending a TCP acknowledgement (ACK) packet to the first device in response to each data packet of the plurality of data packets;

storing said data packets without sending them to the second device;

examining at least part of the plurality of the stored data packets in order to determine whether to block or allow the TCP connection;

in the event that it is determined to allow the TCP connection:

sending each of the stored data packets to the second device;

in the event that it is determined to block the TCP connection:

sending a TCP reset (RST) message to each of the first and second devices in order to close the TCP connection; and

in the event that it is determined to allow the TCP connection, handling subsequent data packets of the TCP connection by forwarding data packets between a first port and a second port via the second processor, wherein the subsequent data packets of the TCP connection omit the first processor based at least in part on the determination to allow the TCP connection.

2. The method according to claim 1 , wherein the steps of claim 1 are performed on the first processor, and comprising, in the event that it is determined to allow the TCP connection, handling the subsequent data packets of the TCP connection via the second processor.

3. The method according to claim 1 , and comprising, in the event that it is determined to block the TCP connection, sending a substitute response to the first device via the TCP connection prior to sending the TCP RST message, the substitute response containing one or more data packets using the same application layer protocol as the stored data packets.

4. The method according to claim 1 , and comprising, in the event that it is determined to block the TCP connection, discarding the stored data packets.

5. The method according to claim 1 , and comprising, following sending of the TCP RST message, preventing forwarding of any further data packets between the first and second device.

6. A router comprising:

a first port configured to connect to a first network;

a second port configured to connect to a second network;

a first hardware processor and a second hardware processor;

a hardware memory unit for storing data;

the first hardware processor configured to:

after establishment of a transmission control protocol (TCP) connection between a first device on the first network and a second device on the second network:

receive a plurality of data packets sent from the first device over the TCP connection;

send a TCP acknowledgement (ACK) packet to the first device in response to each data packet of the plurality of data packets;

store said data packets in the hardware memory unit without sending them to the second device;

examine the stored data packets in order to determine whether to block or allow the TCP connection;

in the event that it is determined to allow the TCP connection:

send each of the stored data packets to the second device;

in the event that it is determined to block the TCP connection:

send a TCP reset (RST) message to each of the first and second devices in order to close the TCP connection; and

in the event that it is determined to allow the TCP connection, handle subsequent data packets of the TCP connection by forwarding the data packets between the first and the second port via the second hardware processor, wherein the subsequent data packets of the TCP connection omit the first hardware processor based at least in part on the determination to allow the TCP connection.

7. The router according to claim 6 , wherein the second hardware processor configured to forward the data packets between the first and second port, wherein the router is configured to handle data packets using the second hardware processor for the TCP connection following the determination at the first hardware processor to allow that TCP connection.

8. The router according to claim 6 , wherein the second hardware processor is configured to have a faster processing speed than the first hardware processor.

9. The router according to claim 6 , wherein the first hardware processor is a central processing unit (CPU) and the second hardware processor is an application specification integrated circuit (ASIC).

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE NATURE OF THE CONVEYENCE IS AN ASSIGNMENT, NOT A CHANGE OF NAME PREVIOUSLY RECORDED AT REEL: 061221 FRAME: 0763. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 30, 2023
From: WITHSECURE CORPORATION (A/K/A WITHSECURE OYJ)
To: F-SECURE CORPORATION
Reel/Frame 065988/0518 →
CHANGE OF NAME Recorded Sep 27, 2022
From: WITHSECURE CORPORATION (A/K/A WITHSECURE OYJ)
To: F-SECURE CORPORATION
Reel/Frame 061221/0763 →
CHANGE OF NAME Recorded Jun 7, 2022
From: F-SECURE CORPORATION (A/K/A F-SECURE CORPORATION OYJ)
To: WITHSECURE CORPORATION (A/K/A WITHSECURE OYJ)
Reel/Frame 060302/0690 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2020
From: YAKOVLEV, YURY; KILKANEN, TERO; PALONEN, MARKUS
To: F-SECURE CORPORATION
Reel/Frame 053078/0765 →