IP Library › Granted Patent US 11,750,363
Granted Patent B2
US 11,750,363 · App. 16/949,587 · Granted Sep 5, 2023

Privacy-preserving domain name service (DNS)

Inventors: Bogdan C. Cebere (Buchare, RO); Elena Burceanu (Buchare, RO); Madalina Bolboceanu (Focsani, RO); Emanuela Haller (Buchare, RO); Georgiana M. Rosca (Buchare, RO); Radu Titiu (Buchare, RO)
Assignee: Bitdefender IPR Management Ltd.
H04L9/008G06F16/2255H04L9/3213H04L61/2539H04L61/4511
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,750,363
App. No.
16/949,587
Granted
Sep 5, 2023
Kind
B2
Abstract

Described systems and methods allow carrying out privacy-preserving DNS exchanges. In some embodiments, a client machine engages in a private information retrieval (PIR) exchange with a nameserver. In response to receiving an encrypted query from the client, the query formulated according to a domain name, the nameserver may extract a record (e.g., an IP address) from a domain name database without decrypting the respective query. Some embodiments achieve such information retrieval by the use of homomorphic encryption.

Claims (41)

1. A method of performing a domain name service (DNS) lookup comprising employing at least one hardware processor of a computer system to:

in response to receiving an indicator of a domain name, determine whether a privacy condition is satisfied according to the domain name, wherein the domain name comprises a sequence of tokens, and wherein determining whether the privacy condition is satisfied comprises determining whether a selected token of the sequence of tokens matches any member of a reference list of tokens;

in response to determining that the privacy condition is satisfied, formulate a private query comprising an encryption of a hash index indicative of a location of a record within a domain name database, the hash index encrypted according to a homomorphic encryption procedure, wherein the hash index is determined according to the domain name, and wherein the private query further comprises a version indicator indicative of a hash function used in calculating the hash index;

in response to formulating the private query, transmit the private query to a nameserver configured to determine whether the domain name data is currently indexed according to the hash function, and in response to the hash function, perform an encrypted lookup into the domain name database according to the private query, producing an encryption of the record; and

in response to receiving a private reply comprising the encryption of the record from the nameserver, decrypt a content of the private reply according to a homomorphic decryption procedure.

2. The method of claim 1 , further comprising, in response to determining that the privacy condition is not satisfied, employing at least one hardware processor of the computer system to:

formulate another query according to the domain name, a content of the other query encrypted according to a non-homomorphic encryption procedure; and

transmit the other query to the nameserver.

3. The method of claim 1 , wherein the selected token comprises a domain token or a prefix token.

4. The method of claim 1 , wherein the record comprises an internet protocol (IP) address.

5. The method of claim 1 , wherein the record comprises a security indicator indicative of whether accessing a domain represented by the domain name exposes a user to a computer security threat.

6. The method of claim 1 , comprising formulating the private query to include a version indicator indicative of a hash function used in calculating the hash index.

7. The method of claim 1 , comprising formulating the private query to include a plurality of encrypted hash indices, each hash index of the plurality of hash indices computed according to the domain name by an application of a distinct hash function, each hash index indicating an alternative location of the record within the domain name database and encrypted according to the homomorphic encryption procedure.

8. A computer system comprising at least one hardware processor configured to:

in response to receiving an indicator of a domain name, determine whether a privacy condition is satisfied according to the domain name, wherein the domain name comprises a sequence of tokens, and wherein determining whether the privacy condition is satisfied comprises determining whether a selected token of the sequence of tokens matches any member of a reference list of tokens;

in response to determining that the privacy condition is satisfied, formulate a private query comprising an encryption of a hash index indicative of a location of a record within a domain name database, the hash index encrypted according to a homomorphic encryption procedure, wherein the hash index is determined according to the domain name, and wherein the private query further comprises a version indicator indicative of a hash function used in calculating the hash index;

in response to formulating the private query, transmit the private query to a nameserver configured to determine whether the domain name data is currently indexed according to the hash function, and in response to determining that the domain name data is currently indexed according to the has function, perform an encrypted lookup into the domain name database according to the private query, producing an encryption of the record; and

in response to receiving a private reply comprising the encryption of the record from the nameserver, decrypt a content of the private reply according to a homomorphic decryption procedure.

9. The computer system of claim 8 , wherein the at least one hardware processor is further configured to, in response to determining that the privacy condition is not satisfied:

formulate another query according to the domain name, a content of the other query encrypted according to a non-homomorphic encryption procedure; and

transmit the other query to the nameserver.

10. The computer system of claim 8 , wherein the selected token comprises a domain token or a prefix token.

11. The computer system of claim 8 , wherein the record comprises an internet protocol (IP) address.

12. The computer system of claim 8 , wherein the record comprises a security indicator indicative of whether accessing a domain represented by the domain name exposes a user to a computer security threat.

13. The computer system of claim 8 , wherein the at least one hardware processor is configured to formulate the private query to include a version indicator indicative of a hash function used in calculating the hash index.

14. The computer system of claim 8 , wherein the at least one hardware processor is configured to formulate the private query to include a plurality of encrypted hash indices, each hash index of the plurality of hash indices computed according to the domain name by an application of a distinct hash function, each hash index indicating an alternative location of the record within the domain name database and encrypted according to the homomorphic encryption procedure.

15. A non-transitory computer-readable medium storing instructions which, when executed by at least one hardware processor of a computer system, cause the computer system to:

in response to receiving an indicator of a domain name, determine whether a privacy condition is satisfied according to the domain name, wherein the domain name comprises a sequence of tokens, and wherein determining whether the privacy condition is satisfied comprises determining whether a selected token of the sequence of tokens matches any member of a reference list of tokens;

in response to determining that the privacy condition is satisfied, formulate a private query comprising an encryption of a hash index indicative of a location of a record within a domain name database, the hash index encrypted according to a homomorphic encryption procedure, wherein the hash index is determined according to the domain name, and wherein the private query further comprises a version indicator indicative of a hash function used in calculating the hash index;

in response to formulating the private query, transmit the private query to a nameserver configured to determine whether the domain name data is currently indexed according to the hash function, and in response to determining that the domain name data is currently indexed according to the hash function, perform an encrypted lookup into the domain name database according to the private query, producing an encryption of the record; and

in response to receiving a private reply comprising the encryption of the record from the nameserver, decrypt a content of the private reply according to a homomorphic decryption procedure.

16. A server computer system configured to engage in domain name service (DNS) transactions with a plurality of clients, the server computer system comprising at least one hardware processor configured to:

receive a private query from a client of the plurality of clients, the private query comprising an encryption of a hash index indicative of a location of a record within a domain name database, the hash index encrypted according to a homomorphic encryption procedure, wherein the hash index is determined according to a domain name, wherein the private query further comprises a version indicator indicative of a hash function used in calculating the hash index, and wherein the private query is generated in response to a determination by the client that a privacy condition is satisfied, wherein determining whether the privacy condition is satisfied comprises determining whether a selected token of the domain name matches any member of a reference list of tokens;

in response to receiving the private query, determine according to the version indicator whether the domain name database is currently indexed according to the hash function;

in response to determining that the domain name database is currently indexed according to the hash function, perform an encrypted lookup into the domain name database according to the private query, producing an encryption of the record, and transmit a private reply comprising the encryption of the record to the client; and

in response to determining that the domain name database is not currently indexed according to the hash function, transmit an error message to the client.

17. The server computer system of claim 16 , wherein the at least one hardware processor is further configured to:

determine an alternative location for the record within the domain name database according to another hash function; and

in response, transmit a specification of the other hash function and another version indicator indicative of the other hash function to the plurality of client systems.

18. The server computer system of claim 16 , wherein the record comprises an internet protocol (IP) address.

19. The server computer system of claim 16 , wherein the record comprises a security indicator indicative of whether accessing a domain represented by the domain name exposes a user to a computer security threat.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2020
From: CEBERE, BOGDAN C.; BURCEANU, ELENA; BOLBOCEANU, MADALINA; ROSCA, GEORGIANA M.; TITIU, RADU; HALLER, EMANUELA
To: BITDEFENDER IPR MANAGEMENT LTD.
Reel/Frame 054284/0900 →
Continuity (1)
Related Publication 20220140996A1 · May 5, 2022
Cited By (1)
US 12,328,381