IP Library Granted Patent US 10,320,739
Granted Patent B2
US 10,320,739 · App. 14/569,208 · Granted Jun 11, 2019

Communication using DNS repurposing

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,320,739
App. No.
14/569,208
Granted
Jun 11, 2019
Kind
B2
Abstract

Technology for communicating by embedding messages in DNS requests/responses is disclosed. In many cases it is desirable for a device to communicate without that device having to supply network credentials. In some network environments, credentials are not required to send or receive DNS messages. The question section of a DNS request message may include a message for a destination DNS server and a query domain which, when using standard DNS routing, will result in the DNS request being directed to the intended destination DNS server. The message may be encoded in such a way that an algorithm run by the destination DNS server is able to parse the message from the DNS request.

Claims (118)

1. A method for communicating using embedded DNS messages, the method comprising:

selecting a query domain corresponding to a destination DNS server,

wherein the destination DNS server is authoritative for servicing DNS requests for the selected query domain;

generating a message configured to be:

parsed from a DNS lookup request by a destination DNS server as data distinct from a DNS domain of the DNS lookup request, and

combined with the query domain to fit within a question portion of the DNS lookup request,

wherein the message comprises instructions to the destination DNS server specifying that a response should be sent to a device other than the device that originated the DNS lookup request;

generating the DNS lookup request, the DNS lookup request comprising a question portion that includes a combination of the generated message and the query domain,

so that the question portion of the DNS lookup request includes both the generated message and the query domain,

wherein the query domain of the DNS lookup request is used to route the DNS lookup request to a DNS server providing a mapping between the query domain and an IP address; and

transmitting the DNS lookup request.

2. The method of claim 1 , further comprising,

encoding the message into an encoded version with an encoding algorithm,

wherein the destination DNS server has a parsing algorithm configured to extract the message from the encoded version.

3. The method of claim 1 , wherein the message comprises an identification of a parsing algorithm to use to extract data from the DNS lookup request.

4. A method for communicating using embedded DNS messages, the method comprising:

selecting a query domain corresponding to a destination DNS server,

wherein the destination DNS server is authoritative for servicing DNS requests for the selected query domain;

generating a message configured to be:

parsed from a DNS lookup request by a destination DNS server as data distinct from a DNS domain of the DNS lookup request, and

combined with the query domain to fit within a question portion of the DNS lookup request,

wherein the message comprises an identification of a parsing algorithm to use to extract data from the DNS lookup request;

generating the DNS lookup request, the DNS lookup request comprising a question portion that includes a combination of the generated message and the query domain,

so that the question portion of the DNS lookup request includes both the generated message and the query domain,

wherein the query domain of the DNS lookup request is used to route the DNS lookup request to a DNS server providing a mapping between the query domain and an IP address; and

transmitting the DNS lookup request.

5. The method of claim 4 further comprising determining that an available network is an open DNS network.

6. The method of claim 4 , further comprising:

receiving a DNS response;

parsing an answer portion of the DNS response such that a reply message is retrieved; and

storing the reply message.

7. The method of claim 4 , further comprising:

waiting for a specified period of time determined to allow the time to live on cached DNS entries to expire.

8. The method of claim 4 , wherein the DNS lookup request is transmitted from one of:

a remote control device;

a suitcase;

a GPS sensing device;

a food package or carton;

a mail service letter or package;

a vehicle;

a fitness or personal health or activity tracker;

a light bulb;

an HVAC system or control;

a smartphone;

a wearable device;

an ingestible or implanted device;

a battery;

a camera;

a microphone;

a video game controller;

a plumbing fixture;

a beacon;

a wallet or electronic credit card;

an irrigation system;

a motion sensor;

a wall outlet;

a speaker; or

a weather sensor.

9. The method of claim 4 , wherein the message comprises instructions to the destination DNS server specifying that no response should be sent.

10. The method of claim 4 , wherein the message comprises instructions to the destination DNS server specifying:

when a response should be sent; or

that a response should be sent to another device upon receiving a request from the other device.

11. The method of claim 4 , wherein the message comprises an identification of the device originating the DNS lookup request.

12. The method of claim 4 , further comprising:

generating the question portion of the DNS lookup request, wherein generating the question portion of the DNS lookup request comprises:

concatenating at least the generated message and the query domain.

13. The method of claim 4 , wherein the message comprises instructions to the destination DNS server specifying that a response should be sent to a device other than the device that originated the DNS lookup request.

14. A computer-readable memory storing instructions configured to, when executed by a computing device, cause the computing device to perform operations for communicating using embedded DNS messages, the operations comprising:

selecting a query domain corresponding to a destination DNS server,

wherein the destination DNS server is authoritative or an intermediary server for servicing DNS requests for the selected query domain;

generating a message configured:

to be parsed from a DNS lookup request by a destination DNS server as data distinct from a DNS domain of the DNS lookup request, and

to be combined with the query domain to fit within a question portion of the DNS lookup request,

wherein the message comprises an identification of a parsing algorithm, from among multiple possible parsing algorithms available to the destination DNS server, to use to extract data from the DNS lookup request;

generating the DNS lookup request, the DNS lookup request comprising a question portion that includes a combination of the generated message and the query domain; and

transmitting the DNS lookup request.

15. A computer-readable memory storing instructions configured to, when executed by a computing device, cause the computing device to perform operations for communicating using embedded DNS messages, the operations comprising:

selecting a query domain corresponding to a destination DNS server,

wherein the destination DNS server is authoritative or an intermediary server for servicing DNS requests for the selected query domain;

generating a message configured:

to be parsed from a DNS lookup request by a destination DNS server as data distinct from a DNS domain of the DNS lookup request, and

to be combined with the query domain to fit within a question portion of the DNS lookup request;

generating the DNS lookup request, the DNS lookup request comprising a question portion that includes a combination of the generated message and the query domain; and

transmitting the DNS lookup request,

wherein the destination DNS server is configured to determine, from among a plurality of parsing algorithms, a parsing algorithm corresponding to the generated message within the DNS lookup request.

16. The computer-readable memory of claim 15 , wherein the operations further comprise:

determining that an available network is an open DNS network.

17. The computer-readable memory of claim 15 , wherein the operations further comprise:

receiving a DNS response;

parsing an answer portion of the DNS response such that a reply message is retrieved; and

storing the reply message.

18. The computer-readable memory of claim 15 , wherein the operations further comprise:

waiting for a specified period of time determined to allow the time to live on cached DNS entries to expire.

19. The computer-readable memory of claim 15 , wherein the message comprises instructions to the destination DNS server specifying that no response should be sent.

20. The computer-readable medium of claim 15 , wherein the DNS lookup request is transmitted from one of:

a suitcase;

a food package or carton;

an HVAC system or control;

a plumbing fixture;

an irrigation system;

a motion sensor; or

a weather sensor.

21. A computing system for communicating using embedded DNS messages, the computing system comprising:

a processor;

a memory;

a first component configured to select a query domain corresponding to a destination DNS server,

wherein the destination DNS server is authoritative or an intermediary server for servicing DNS requests for the selected query domain;

a second component configured to generate a message configured:

to be parsed from a DNS lookup request by a destination DNS server as data distinct from a DNS domain of the DNS lookup request, and

to be combined with the query domain to fit within a question portion of the DNS lookup request;

a third component configured to generate the DNS lookup request, the DNS lookup request comprising a question portion that includes a combination of the generated message and the query domain; and

a fourth component configured to transmit the DNS lookup request,

wherein the destination DNS server is configured to determine, from among a plurality of parsing algorithms, a parsing algorithm corresponding to the generated message within the DNS lookup request,

wherein the first component comprises computer-executable instructions stored in the memory for execution by the computing system,

wherein the second component comprises computer-executable instructions stored in the memory for execution by the computing system,

wherein the third component comprises computer-executable Instructions stored in the memory for execution by the computing system,

wherein the fourth component comprises computer-executable instructions stored in the memory for execution by the computing system.

22. The computing system of claim 21 , wherein the message comprises instructions to the destination DNS server specifying that no response should be sent.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Mar 20, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS AGENT
To: IDENTITY DIGITAL INC. (FORMERLY KNOWN AS DONUTS, INC.)
Reel/Frame 070572/0404 →
ASSIGNMENT OF SECURITY INTEREST IN TRADEMARKS AND PATENTS Recorded Jan 19, 2021
From: BISF AGENT LLC, AS RESIGNING AGENT
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS SUCCESSOR AGENT
Reel/Frame 055029/0963 →
RELEASE OF SECURITY INTEREST Recorded Jan 4, 2021
From: HPS INVESTMENT PARTNERS, LLC, AS COLLATERAL AGENT
To: DONUTS INC.; RIGHTSIDE OPERATING CO.
Reel/Frame 054795/0247 →
SECURITY INTEREST Recorded Dec 31, 2020
From: DONUTS INC.
To: BISF AGENT LLC, AS COLLATERAL AGENT
Reel/Frame 054785/0312 →
SECURITY INTEREST Recorded Sep 18, 2018
From: DONUTS, INC.; RIGHTSIDE OPERATING CO.
To: HPS INVESTMENT PARTNERS, LLC, AS COLLATERAL AGENT
Reel/Frame 046895/0430 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2015
From: STAHURA, PAUL; COWHERD, CHRISTOPHER
To: DONUTS, INC.
Reel/Frame 035151/0902 →