IP Library Granted Patent US 12,401,644
Granted Patent B2
US 12,401,644 · App. 18/453,952 · Granted Aug 26, 2025

Enforcing conditional access to network services based on authorization statuses associated with network flows

Inventor: Vincent E. Parla (North Hampton, NH)
Assignee: Cisco Technology, Inc.
H04L63/0876H04L61/4511H04L63/18
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 12,401,644
App. No.
18/453,952
Granted
Aug 26, 2025
Kind
B2
Abstract

This disclosure describes techniques for enforcing conditional access to network services. In an example method, a first computing device detects a second device operating in a per-flow authorization mode. The first device receives a first request from a second computing device to communicate with a third computing device using a first network flow and determines that the first flow is authorized (e.g., because of an active past authentication and/or the third device's authentication exemption). Data associated with the first request is transmitted to the third device. The first device then receives a second request to communicate with a fourth computing device using a second network flow and determines that the second flow is not authorized (e.g., because it is not associated with an active past authentication and/or the fourth device is not exempt from authentication). Data associated with the second request is not transmitted to the fourth device.

Claims (93)

1. A method comprising:

detecting, by a processor of a first computing device, that a second computing device is operating in a per-flow authorization mode;

receiving, from the second computing device, a first request to communicate using a first network flow between the second computing device and a third computing device;

determining that the first network flow is authorized, wherein determining that the first network flow is authorized comprises determining at least one of: (i) that the first network flow is associated with a past authentication that is active, or (ii) that the third computing device is exempt from an authentication requirement;

based on determining that the first network flow is authorized, transmitting first data associated with the first request to the third computing device;

receiving, from the second computing device, a second request to communicate using a second network flow between the second computing device and a fourth computing device;

determining that the second network flow is unauthorized based on determining that the second network flow is independent of any active authentications and that the fourth computing device is subject to the authentication requirement; and

based on determining that the first network flow is unauthorized, blocking transmission of second data associated with the second request to the fourth computing device.

2. The method of claim 1 , wherein:

determining that the second network flow is independent of any active authentications comprises determining that the second request comprises a first domain name system (DNS) query, wherein the first DNS query comprises a hostname that is associated with the fourth computing device, and

blocking transmission of the second data comprises transmitting a first DNS response to the first computing device, wherein the first DNS response comprises a canonical name (CNAME) record associated with a first inauthentic hostname that is independent of the fourth computing device.

3. The method of claim 2 , further comprising:

receiving, from the second computing device, a second DNS query, wherein the second DNS query comprises the first inauthentic hostname;

determining that the second network flow is still unauthorized; and

based on determining that the second network flow is still unauthorized, transmitting a second DNS response to the second computing device, wherein the second DNS response comprises a second CNAME record associated with a second inauthentic hostname that is independent of the fourth computing device.

4. The method of claim 3 , further comprising:

receiving, from the second computing device, a third DNS query, wherein the third DNS query comprises the second inauthentic hostname;

determining that the second network flow is still unauthorized and that a threshold time has passed since a time associated with the first DNS query; and

based on determining that the second network flow is still unauthorized and that the threshold time has passed since the time associated with the first DNS query, redirecting the first computing device to a block page.

5. The method of claim 2 , further comprising:

receiving, from the second computing device, a second DNS query, wherein the second DNS query comprises the first inauthentic hostname;

determining that the second network flow is authorized; and

based on determining that the second network flow is authorized, determining that the second network flow is authorized, initiating resolution of the first DNS query.

6. The method of claim 1 , wherein:

determining that the second network flow is independent of any active authentications comprises determining that the second request comprises a Transmission Control Protocol (TCP) handshake request with the fourth computing device; and

blocking transmission of the second data comprises:

transmitting a handshake acknowledgement response to the first computing device, wherein the handshake acknowledgement response establishes a two-party TCP connection between the first computing device and the second computing device, and

preventing establishment of a three-party TCP connection between the first computing device, the second computing device, and the fourth computing device.

7. The method of claim 6 , wherein:

receiving, from the second computing device, third data associated with the second network flow;

determining that the second network flow is still unauthorized; and

based on determining that the second network flow is still unauthorized, preventing transmission of the third data to the fourth computing device.

8. The method of claim 7 , further comprising:

receiving, from the second computing device, fourth data associated with the second network flow;

determining that the second network flow is still unauthorized and that a threshold time has passed since a time associated with the TCP handshake request; and

based on determining that the second network flow is still unauthorized and that the threshold time has passed since the time associated with the TCP handshake request, redirecting the first computing device to a block page.

9. The method of claim 6 , further comprising:

receiving, from the second computing device, third data associated with the second network flow;

determining that the second network flow is authorized; and

based on determining that the second network flow is authorized:

establishing the three-party TCP connection, and

transmitting the third data to the fourth computing device using the three-party TCP connection.

10. The method of claim 1 , wherein:

the second request comprises a user datagram protocol (UDP) packet; and

blocking transmission of the second data comprises preventing transmission of the second data to the fourth computing device.

11. A system comprising:

one or more processors; and

one or more computer-readable media storing computer-executable instructions that, when executed by a processor of a first computing device, cause the processor to perform operations comprising:

detecting that a second computing device is operating in a per-flow authorization mode;

receiving, from the second computing device, a first request to communicate using a first network flow between the second computing device and a third computing device;

determining that the first network flow is authorized, wherein determining that the first network flow is authorized comprises determining at least one of: (i) that the first network flow is associated with a past authentication that is active, or (ii) that the third computing device is exempt from an authentication requirement;

based on determining that the first network flow is authorized, transmitting first data associated with the first request to the third computing device;

receiving, from the second computing device, a second request to communicate using a second network flow between the second computing device and a fourth computing device;

determining that the second network flow is unauthorized based on determining that the second network flow is independent of any active authentications and that the fourth computing device is subject to the authentication requirement; and

based on determining that the first network flow is unauthorized, blocking transmission of second data associated with the second request to the fourth computing device.

12. The system of claim 11 , wherein:

determining that the second network flow is independent of any active authentications comprises determining that the second request comprises a first domain name system (DNS) query, wherein the first DNS query comprises a hostname that is associated with the fourth computing device, and

blocking transmission of the second data comprises transmitting a first DNS response to the first computing device, wherein the first DNS response comprises a canonical name (CNAME) record associated with a first inauthentic hostname that is independent of the fourth computing device.

13. The system of claim 12 , the operations further comprising:

receiving, from the second computing device, a second DNS query, wherein the second DNS query comprises the first inauthentic hostname;

determining that the second network flow is still unauthorized; and

based on determining that the second network flow is still unauthorized, transmitting a second DNS response to the second computing device, wherein the second DNS response comprises a second CNAME record associated with a second inauthentic hostname that is independent of the fourth computing device.

14. The system of claim 13 , the operations further comprising:

receiving, from the second computing device, a third DNS query, wherein the third DNS query comprises the second inauthentic hostname;

determining that the second network flow is still unauthorized and that a threshold time has passed since a time associated with the first DNS query; and

based on determining that the second network flow is still unauthorized and that the threshold time has passed since the time associated with the first DNS query, redirecting the first computing device to a block page.

15. The system of claim 12 , the operations further comprising:

receiving, from the second computing device, a second DNS query, wherein the second DNS query comprises the first inauthentic hostname;

determining that the second network flow is authorized; and

based on determining that the second network flow is authorized, determining that the second network flow is authorized, initiating resolution of the first DNS query.

16. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by a processor of a first computing device, cause the processor to perform operations, comprising:

detecting that a second computing device is operating in a per-flow authorization mode;

receiving, from the second computing device, a first request to communicate using a first network flow between the second computing device and a third computing device;

determining that the first network flow is authorized, wherein determining that the first network flow is authorized comprises determining at least one of: (i) that the first network flow is associated with a past authentication that is active, or (ii) that the third computing device is exempt from an authentication requirement;

based on determining that the first network flow is authorized, transmitting first data associated with the first request to the third computing device;

receiving, from the second computing device, a second request to communicate using a second network flow between the second computing device and a fourth computing device;

determining that the second network flow is unauthorized based on determining that the second network flow is independent of any active authentications and that the fourth computing device is subject to the authentication requirement; and

based on determining that the first network flow is unauthorized, blocking transmission of second data associated with the second request to the fourth computing device.

17. The one or more non-transitory computer-readable media of claim 16 , wherein:

determining that the second network flow is independent of any active authentications comprises determining that the second request comprises a first domain name system (DNS) query, wherein the first DNS query comprises a hostname that is associated with the fourth computing device, and

blocking transmission of the second data comprises transmitting a first DNS response to the first computing device, wherein the first DNS response comprises a canonical name (CNAME) record associated with a first inauthentic hostname that is independent of the fourth computing device.

18. The one or more non-transitory computer-readable media of claim 17 , the operations further comprising:

receiving, from the second computing device, a second DNS query, wherein the second DNS query comprises the first inauthentic hostname;

determining that the second network flow is still unauthorized; and

based on determining that the second network flow is still unauthorized, transmitting a second DNS response to the second computing device, wherein the second DNS response comprises a second CNAME record associated with a second inauthentic hostname that is independent of the fourth computing device.

19. The one or more non-transitory computer-readable media of claim 18 , the operations further comprising:

receiving, from the second computing device, a third DNS query, wherein the third DNS query comprises the second inauthentic hostname;

determining that the second network flow is still unauthorized and that a threshold time has passed since a time associated with the first DNS query; and

based on determining that the second network flow is still unauthorized and that the threshold time has passed since the time associated with the first DNS query, redirecting the first computing device to a block page.

20. The one or more non-transitory computer-readable media of claim 17 , the operations further comprising:

receiving, from the second computing device, a second DNS query, wherein the second DNS query comprises the first inauthentic hostname;

determining that the second network flow is authorized; and

based on determining that the second network flow is authorized, determining that the second network flow is authorized, initiating resolution of the first DNS query.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2023
From: PARLA, VINCENT E.
To: CISCO TECHNOLOGY, INC.
Reel/Frame 064680/0366 →
Continuity (1)
Related Publication 20250071111A1 · Feb 27, 2025
References Cited (57)
US 7793100B2 · Arroyo · 2010 [cited by examiner]
US 9038151B1 · Chua · 2015 [cited by examiner]
US 10129117B2 · Gupta · 2018 [cited by examiner]
US 12003478B1 · Karpuska · 2024 [cited by examiner]
US 20050005023A1 · Dobbins · 2005 [cited by examiner]
US 20080282327A1 · Winget · 2008 [cited by examiner]
US 20090119507A1 · Arroyo · 2009 [cited by examiner]
US 20120233657A1 · Guevin · 2012 [cited by examiner]
US 20130091534A1 · Gilde · 2013 [cited by examiner]
US 20140059222A1 · Short · 2014 [cited by examiner]
US 20140201813A1 · Barkie · 2014 [cited by examiner]
US 20140245395A1 · Hulse · 2014 [cited by examiner]
US 20160037438A1 · Manroa · 2016 [cited by examiner]
US 20160094557A1 · Kadur · 2016 [cited by examiner]
US 20160127317A1 · Ardeli · 2016 [cited by examiner]
US 20160248795A1 · Chien · 2016 [cited by examiner]
US 20160359913A1 · Gupta · 2016 [cited by examiner]
US 20170214677A1 · Cai · 2017 [cited by examiner]
US 20170244730A1 · Sancheti · 2017 [cited by examiner]
US 20180091557A1 · Komu · 2018 [cited by examiner]
US 20180097789A1 · Murthy · 2018 [cited by examiner]
US 20180145986A1 · Chien · 2018 [cited by examiner]
US 20190109848A1 · Clark · 2019 [cited by examiner]
US 20190124039A1 · Kommula · 2019 [cited by examiner]
US 20190334855A1 · Holloway · 2019 [cited by examiner]
US 20200162514A1 · Rappard · 2020 [cited by examiner]
US 20210092095A1 · Kim · 2021 [cited by examiner]
US 20210256783A1 · Davis · 2021 [cited by examiner]
US 20210392111A1 · Sole · 2021 [cited by examiner]
US 20220070168A1 · Ganapathy Achari · 2022 [cited by examiner]
US 20220159001A1 · Cheng · 2022 [cited by examiner]
US 20220247721A1 · Kim · 2022 [cited by examiner]
US 20220286446A1 · Hecht · 2022 [cited by examiner]
US 20220303278A1 · Kirnapure · 2022 [cited by examiner]
US 20220329585A1 · Chhabra · 2022 [cited by examiner]
US 20220337587A1 · Thakur · 2022 [cited by examiner]
US 20220375292A1 · Ufkes · 2022 [cited by examiner]
US 20230070426A1 · Burakovsky · 2023 [cited by examiner]
US 20230075237A1 · Buck · 2023 [cited by examiner]
US 20240106862A1 · Head · 2024 [cited by examiner]
US 20240179133A1 · Sreekumar · 2024 [cited by examiner]
US 20240184877A1 · Murphy · 2024 [cited by examiner]
US 20240244044A1 · Kim · 2024 [cited by examiner]
US 20240314115A1 · Parla · 2024 [cited by examiner]
US 20240314140A1 · Beevor · 2024 [cited by examiner]
US 20240323173A1 · Kim · 2024 [cited by examiner]
US 20240323488A1 · Diamond · 2024 [cited by examiner]
US 20240340274A1 · Kim · 2024 [cited by examiner]
US 20240348540A1 · Kim · 2024 [cited by examiner]
US 20240380732A1 · Kim · 2024 [cited by examiner]
US 20240406213A1 · Sengupta · 2024 [cited by examiner]
US 20250039177A1 · Kim · 2025 [cited by examiner]
Ferrazani Mattos, Diogo Menezes, and Otto Carlos Muniz Bandeira Duarte. “AuthFlow: authentication and access control mechanism for software defined networking.” annals of telecommunications 71 (2016): 607-615. [cited by examiner]
Matias, Jon, et al. “FlowNAC: Flow-based network access control.” 2014 third European workshop on software defined networks. IEEE, 2014. [cited by examiner]
Arden, Owen, Jed Liu, and Andrew C. Myers. “Flow-limited authorization.” 2015 IEEE 28th Computer Security Foundations Symposium. IEEE, 2015. [cited by examiner]
Ferrazani Mattos, Diogo Menezes, and Otto Carlos Muniz Bandeira Duarte. “AuthFlow: authentication and access control mechanisim for software defined networking.” annals of telecommunications 71 (2016): 607-615. [cited by examiner]
Zhu, Xianwei, et al. “Attribute-Guard: Attribute-Based Flow Access Control Framework in Software-Defined Networking.” Security and Communication Networks 2020.1 (2020): 6302739. [cited by examiner]