IP Library › Granted Patent US 12,665,877
Granted Patent B2
US 12,665,877 · App. 18/196,689 · Granted Jun 23, 2026

Onion routing network for smart homes

Inventors: Adam Vandenbussche (Kirkland, CA); David Kotz (Lyme, NH); Timothy Pierson (Hanover, NH)
Assignee: THE TRUSTEES OF DARTMOUTH COLLEGE
H04L63/0236H04L45/745H04L63/0435
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,665,877
App. No.
18/196,689
Filed
May 12, 2023
Granted
Jun 23, 2026
Kind
B2
Art Unit
2431
USPC
726/11
Abstract

A method of providing user data privacy for smart devices in a user's home uses a network of smart home routers to route encrypted data packets from the smart devices instead of sending them directly to a cloud-based service. An onion routing network for protecting the privacy of smart devices uses a plurality of smart home routers and an allowlist of domains accessed by smart devices to decide which data packets are routed through the network.

Claims (101)

1 . A computer-implemented method of providing user data privacy for smart devices connected to a smart home router participating as a node in one or more circuits of an onion routing network of routers connected to a network, the method comprising:

receiving a plaintext Internet Protocol (IP) packet from a smart device at an originator node smart home router; and

checking a packet destination which comprises a domain name or a destination IP address against a locally stored allowlist of cloud-based destinations associated with smart devices to verify that the packet destination is included in the allowlist, wherein the allowlist comprises domain names or IP addresses received from a central authority and periodically updated; and

when the packet destination is included in the allowlist:

identifying a preformed circuit of at least a guard, a middle, and an exit node in the onion routing network;

encapsulating the plaintext IP packet in at least a first, a second and a third layer of encryption, each layer including a first, second, or third cleartext destination of the guard, middle, or exit smart home router, and a first, second or third encrypted payload, respectively; and

sending the encapsulated packet to the guard node at the first cleartext destination; and

wherein the exit node in the onion routing circuit verifies that a destination IP address of a non-DNS packet matches an IP address previously returned by that exit node in response to resolving an allowlist domain name, and refuses to forward the packet if the destination IP address does not match;

when the packet destination is not included in the allowlist:

sending the plaintext IP packet to the cloud-based destination.

2 . The method of claim 1 , wherein when the plaintext IP packet contains a domain name server (DNS) request payload containing a domain name,

checking the packet destination further comprises:

checking the domain name against a allowlist of cloud-based domains to verify that the domain name is included in the allowlist.

3 . The method of claim 2 , wherein the allowlist is maintained by one or more central authorities.

4 . The method of claim 3 , wherein a smart device user may consent to having a list of domain names contacted by some of the smart devices in a home of the smart device user anonymously shared with the one or more central authorities.

5 . The method of claim 1 , wherein when the IP packet is a non-DNS payload and the packet destination is a destination IP address, checking the packet destination further comprises:

checking the destination IP address against a locally cached set of IP addresses known to be associated with allowlisted domain names.

6 . The method of claim 1 , further comprising the smart home router serving as a guard node by:

receiving the encapsulated packet;

decrypting the first layer of encryption to determine the second cleartext destination and the second encrypted payload; and

sending the second encrypted payload to the second cleartext destination.

7 . The method of claim 6 , further comprising the smart home router serving as a middle node by:

receiving second encrypted payload;

decrypting the second encrypted payload to determine the third cleartext destination and the third encrypted payload; and

sending the third encrypted payload to the third cleartext destination.

8 . The method of claim 7 , further comprising the smart home router serving as an exit node by:

receiving the third encrypted payload;

decrypting the third encrypted payload to reveal the plaintext IP packet;

checking the packet destination against the allowlist of smart device domains; and

when the packet destination is in the allowlist, sending the plaintext IP packet to the packet destination;

when the packet destination is not in the allowlist, ignoring the plaintext IP packet.

9 . The method of claim 8 , wherein the plaintext IP packet is a domain name server (DNS) request payload containing a domain name, and the method further comprises:

checking the domain name against an allowlist of cloud-based destinations to verify that the domain name is included in the allowlist;

when the domain name is included in the allowlist:

placing a DNS request for the domain name to a DNS server;

receiving and saving a set of IP addresses associated with the domain name from the DNS server;

encapsulating the set of IP addresses as plaintext IP packet in at least the third, second and first layers of encryption, each layer including the third, second or first cleartext destination of the third, second or first smart home router; and

forwarding the encapsulated set of IP addresses to the third cleartext destination; and

when the domain name is not included in the allowlist, ignoring the DNS request.

10 . The method of claim 1 , wherein the plaintext IP packet is a DNS request containing a domain name that was resolved by an exit router, and the method further comprises:

receiving a set of IP addresses associated with the domain name;

temporarily storing the set of IP addresses in a local IP cache;

when the IP address already appears in the local IP cache:

when the domain name in the DNS request is the same as the domain name that is associated with the locally cached IP address:

resetting a time-to-live (TTL) of the IP address;

when the domain name in the DNS request is different than the domain name that is associated with the locally cached IP address:

adding that domain name to a list of domain names associated with that locally cached IP address;

when the IP address does not already appear in the local IP cache:

adding the IP address to the local cache with a configured TTL;

adding that domain name to the list of domain names associated with that locally cached IP address.

11 . The method of claim 1 , further comprising the router periodically removing IP addresses from its local cache when their TTL has expired.

12 . An onion routing network comprising a plurality of circuits of nodes for protecting privacy of data packets generated by smart devices, each circuit comprising an originator node, a guard node, at least one middle node, and an exit node, comprising:

a first node designated as an originator node for:

receiving the data packets from a smart device, comparing a packet destination which comprises a domain name or a destination IP address against a locally stored allowlist of cloud-based destinations associated with smart devices, and if when the domain name is in the allowlist, encapsulating the data packet with a plurality of layers of encryption and forwarding the data packets packet to the onion routing network; or

when the packet destination is not included in the allowlist, sending the data packet to the cloud-based destination; or

receiving the data packets from the onion routing network and sending them to the smart device;

a second node designated as a guard node for:

receiving the data packets from the originator node and forwarding them to at least one middle node; or

receiving the data packets from the at least one middle node and forwarding them to the originator node;

a third node designated as a middle node for:

receiving the data packets from the guard node and forwarding them to the exit node; or

receiving the data packets from the exit node and forwarding them to the guard node; and

a fourth node designated as an exit node for:

receiving the data packets from the middle node and sending the data packets to a cloud-based destination; or

receiving packets from the cloud-based destination and sending them to the middle node;

wherein the exit node verifies that a destination IP address of a non-DNS packet matches an IP address previously returned by that exit node in response to resolving an allowlist domain name, and refuses to forward the packet if the destination IP address does not match.

13 . The network of claim 12 , the first node comprising:

a first processor and a first non-transitory memory storing instructions that are executed by the first processor to:

compare the domain name in DNS packets with the allowlist of domain names;

when the domain name is not in the allowlist, route the data packet to the cloud-based destination;

compare IP address destinations of non-DNS packets with local set of cached IP addresses;

when the IP address is in the local set of cached IP addresses, encapsulate the data packet with a plurality of layers of encryption and route the encapsulated data packet to the guard node; and

when the IP address is not in the local set of cached IP addresses, route the data packet to the cloud-based destination.

14 . The network of claim 12 , the second node comprising:

a second processor and a second non-transitory memory storing instructions that are executed by the second processor to:

receive an encapsulated data packet from the first node or the third node;

remove a layer of encryption from the encapsulated data packet; and

forward the encapsulated data packet to the third node or the first node, respectively.

15 . The network of claim 12 , the third node comprising:

a third processor and a third non-transitory memory storing instructions that are executed by the third processor to:

receive an encapsulated data packet from the second node or the fourth node;

remove a layer of encryption from the encapsulated data packet; and

forward the encapsulated data packet to the second node or the fourth node, respectively.

16 . The network of claim 12 , the fourth node comprising:

a fourth processor and a fourth non-transitory memory storing instructions that are executed by the fourth processor to:

receive an encapsulated data packet from the third node;

decrypt the encapsulated data packet;

when the encapsulated data packet is a DNS request containing a domain name:

compare the domain name in the DNS request with an allowlist;

when the domain name is in the allowlist, route the data packet to the cloud-based destination; or

when the encapsulated data packet does not contain a DNS request:

compare an IP address destination of the encapsulated data packet with a local set of cached IP addresses; and

when the IP address is in the local set of cached IP addresses, route the data packet to the cloud-based destination.

17 . The network of claim 16 , the fourth non-transitory memory storing further instructions that are executed by the fourth processor to:

receive a data packet from the cloud-based destination;

encapsulate the data packet with a plurality of layers of encryption; and

forward the encapsulated data packet to the third node.

18 . The network of claim 16 , wherein the encapsulated data packet from a smart device includes a DNS request and the cloud-based destination is a DNS server, the fourth non-transitory memory storing instructions that are executed by the fourth processor to:

receive a set of IP addresses associated with the domain name from the DNS server;

save the set of IP addresses in the fourth non-transitory memory; and

forward the set of IP addresses to the first node.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2025
From: VANDENBUSSCHE, ADAM; KOTZ, DAVID; PIERSON, TIMOTHY
To: THE TRUSTEES OF DARTMOUTH COLLEGE
Reel/Frame 072029/0369 →
Continuity (2)
Provisional Application 63341366 · May 12, 2022
Related Publication 20230370425A1 · Nov 16, 2023
References Cited (29)
US 6266704B1 · Reed · 2001 [cited by examiner]
US 7395348B1 · Cieslak · 2008 [cited by examiner]
US 10911361B2 · Brown · 2021 [cited by examiner]
US 11425093B2 · Els · 2022 [cited by examiner]
US 20180288013A1 · Hennebert · 2018 [cited by examiner]
US 20200137121A1 · Rogers · 2020 [cited by examiner]
US 20210266185A1 · Konda · 2021 [cited by examiner]
Jadav “Deep Learning and Onion Routing-Based Collaborative Intelligence Framework for Smart Homes Underlying 6G Networks” Apr. 4, 2022 (Year: 2022). [cited by examiner]
Hiller, “Tailoring Onion Routing to the Internet of Things: Security and Privacy in Untrusted Environments”, Oct. 31, 2019 (Year: 2019). [cited by examiner]
McLachlan “Scalable Onion Routing with Torsk” Nov. 13, 2009 (Year: 2009). [cited by examiner]
Alshehri et al. “Attacking and Protecting Tunneled Traffic of Smart Home Devices”, CODASPY, Session 7, Mar. 2020, pp. 259-270. [cited by applicant]
Apthorpe et al. “Keeping the Smart Home Private with Smart(er) IoT Traffic Shaping”, Mar. 16, 2019, 21 pages. [cited by applicant]
Apthorpe et al. “A Smart Home is No Castle: Privacy Vulnerabilities of Encrypted IoT Traffic”, May 18, 2017, 6 pages. [cited by applicant]
Haque et al., “Anonymity Network Tor and Performance Analysis of ‘ARANEA’—an IOT Based Privacy-Preserving Router”, Jun. 4, 2019, 16 pages. [cited by applicant]
Bradshaw et al., “Privacy by Infrastructure: The Unresolved Case of the Domain Name System”, Policy & Internet, vol. 11, No. 1, 2019, 21 pages. [cited by applicant]
Crabtree et al., “Building accountability into the Internet of Things: the IoT Databox model”, Journal of Reliable Intelligent Environments, 2018, pp. 39-55. [cited by applicant]
Datta et al., “A Developer-Friendly Library for Smart Home IoT Privacy-Preserving Traffic Obfuscation”, IoT SP'18, Aug. 20, 2018, pp. 43-48. [cited by applicant]
Henri et al., “Protecting against Website Fingerprinting with Multihoming”, Proceedings on Privacy Enhancing Technologies, 2, 2020, pp. 89-110. [cited by applicant]
Herrmann et al., “Website Fingerprinting: Attacking Popular Privacy Enhancing Technologies with the Multinomial Naïve-Bayes Classifier”, CCSW 09: Proceedings of the 2009 ACM workshop on Cloud computing security, Nov. 13… [cited by applicant]
Hoang et al., “A TOR-Based Anonymous Communication Approach to Secure Smart Home Appliances”, ICACT Transactions on Advanced Communications Technology (TACT) vol. 3, Issue 5, Sep. 2014, pp. 517-525. [cited by applicant]
Khan et al., “An Empirical Analysis of the Commercial VPN Ecosystem”, IMC, 2018, 14 pages. [cited by applicant]
Landau, “Categorizing Uses of Communications Metadata: Systematizing Knowledge and Presenting a Path for Privacy”, NSPW, 2020. [cited by applicant]
Lee et al., “Tor's Usability for Censorship Circumvention”, Proceedings on Privacy Enhancing Technologies, 2017, 20 pages. [cited by applicant]
Liu et al., “EPIC: A Differential Privacy Framework to Defend Smart Homes Against Internet Traffic Analysis”, IEEE Internet Of Things Journal, vol. 5, No. 2, Apr. 2018. [cited by applicant]
Paracha et al., “IoTLS: Understanding TLS Usage in Consumer IoT Devices”, IMC 2021, pp. 165-178. [cited by applicant]
Thomasset et al., “SERENIoT: Collaborative Network Security Policy Management and Enforcement for Smart Homes”, Mar. 5, 2020, 19 pages. [cited by applicant]
Varvello et al., “VPN-Zero: A Privacy-Preserving Decentralized Virtual Private Network”, FIP Networking Conference, 2021. [cited by applicant]
Xiong et al., “Network Traffic Shaping for Enhancing Privacy in IoT Systems”, Ieee/Acm Transactions On Networking, 2021, 18 pages. [cited by applicant]
Yu et al., “PrivacyGuard: Enhancing Smart Home User Privacy”, IPSN, 2021, pp. 62-76. [cited by applicant]