IP Library Granted Patent US 10,230,526
Granted Patent B2
US 10,230,526 · App. 14/983,093 · Granted Mar 12, 2019

Out-of-band validation of domain name system records

Inventor: William Manning (Playa Del Ray, CA)
H04L9/32H04L9/321H04L9/3213H04L61/1511H04L63/00
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,230,526
App. No.
14/983,093
Granted
Mar 12, 2019
Kind
B2
Abstract

An out-of-band Domain Name System (DNS) security technique uses a cryptographic blockchain for securing and validating DNS data in a chain of custody that exists outside the DNS namespace, allowing validated access to cached DNS information without requiring real-time access to root servers.

Claims (97)

1. A non-transitory machine readable medium, on which are stored instructions for providing out-of-band validation of domain name system records, comprising instructions that when executed cause a machine to:

store domain name system resource records in a private blockchain associated with a domain name server,

wherein the domain name system resource records comprise resource records containing public keys for verification of a cryptographic signature of one or more other domain name system resource records; and

retrieve domain name system resource records from the private blockchain responsive to a request to the domain name server for the domain name system resource records, without traversing a chain of trust through a hierarchy of domain name servers to a root of the hierarchy, wherein the instructions comprise instructions that when executed cause a machine to:

retrieve the domain name system resource records from a first block of the private blockchain;

determine whether the retrieved domain name system resource records have expired; and

responsive to a determination that the retrieved domain name system resource records have expired:

invalidate the first block in the private blockchain;

create a new block on the private blockchain;

obtain updated domain name system resource records from a domain name server authorized to provide the updated domain name system resource records;

validate the updated domain name system resource records using a domain name system security protocol;

sign the validated updated domain name system resource records;

store the signed validated updated domain name system resource records in the new block; and

provide the updated name system resource records responsive to the request.

2. The machine readable medium of claim 1 , wherein blocks in the private blockchain are signed by a third party authorized by the domain name server.

3. The machine readable medium of claim 2 , wherein the instructions further comprise instructions that when executed cause the machine to:

receive a request from the domain name server for the domain name system resource records;

validate the request; and

send to the domain name server the domain name system resource records retrieved from the private blockchain responsive to the validated request.

4. The machine readable medium of claim 3 , wherein the instructions that when executed cause the machine to validate the request comprise instructions that when executed cause the machine to:

assign a token to the domain name server; and

determine that the request is validated if a token received with the request matches the token assigned to the domain name server.

5. The machine readable medium of claim 1 , wherein the instructions that when executed cause the machine to store domain name system resource records comprise instructions that when executed cause the machine to:

identify a genesis node of the domain name system;

obtain and validate domain name system resource records associated with the genesis node;

create a genesis block on the private blockchain; and

store the domain name system resource records associated with the genesis node in the genesis block.

6. The machine readable medium of claim 1 , wherein the instructions that when executed cause the machine to store domain name system resource records comprise instructions that when executed cause the machine to:

determine whether the domain name resource records are stored in the private blockchain;

obtain, responsive to a determination that the domain name resource records are not stored in the private blockchain, the domain name system resource records from a domain name server authorized to provide the domain name system resource records;

create a new block on the blockchain;

validate the domain name resource records; and

sign the validated domain name resource records and store the signed validated domain name records in the new block.

7. The machine readable medium of claim 1 , wherein the private blockchain replaces a domain name system cache maintained by the domain name server.

8. A method of providing out-of-band security for a domain name system, comprising:

storing domain name system resource records in a private blockchain associated with a domain name server,

wherein the domain name system resource records comprise resource records containing public keys for verification of a cryptographic signature of one or more other domain name system resource records; and

retrieve domain name system resource records from the private blockchain responsive to a request to the domain name server for the domain name system resource records, without traversing a chain of trust through a hierarchy of domain name servers to a root of the hierarchy, comprising:

retrieving the domain name system resource records from a first block of the private blockchain;

determining whether the retrieved domain name system resource records have expired; and

invalidating the first block in the private blockchain, responsive to a determination that the retrieved domain name system resource records have expired;

creating a new block on the private blockchain;

obtaining updated domain name system resource records from a domain name server authorized to provide the updated domain name system resource records;

validating the updated domain name system resource records using a domain name system security protocol;

signing the validated updated domain name system resource records;

storing the signed validated updated domain name system resource records in the new block; and

providing the updated name system resource records responsive to the request.

9. The method of claim 8 , wherein blocks in the private blockchain are signed by a third party authorized by the domain name server.

10. The method of claim 9 , further comprising:

receiving a request from the domain name server for the domain name system resource records;

validating the request; and

sending to the domain name server the domain name system resource records retrieved from the private blockchain responsive to the validated request.

11. The method of claim 10 , wherein validating the request comprises:

assigning a token to the domain name server; and

determining that the request is validated if a token received with the request matches the token assigned to the domain name server.

12. The method of claim 8 , wherein storing domain name system resource records comprises:

identifying a genesis node of the domain name system based on information external to the domain name system;

obtaining and validating domain name system resource records associated with the genesis node;

creating a genesis block on the private blockchain; and

storing the domain name system resource records associated with the genesis node in the genesis block.

13. The method of claim 8 , wherein storing domain name system resource records comprises:

determining whether the domain name resource records are stored in the private blockchain;

obtaining, responsive to a determination that the domain name resource records are not stored in the private blockchain, the domain name system resource records from a domain name server authorized to provide the domain name system resource records;

creating a new block on the private blockchain;

validating the domain name resource records; and

signing the validated domain name resource records and store the signed validated domain name records in the new block.

14. A system for securing domain name system resource records, comprising:

one or more processors;

a memory, on which are stored instructions, comprising instructions that when executed cause at least some of the one or more processors to:

maintain a plurality of private blockchains, each associated with a domain name server of a plurality of domain name servers, where each of the plurality of private blockchains caches domain name system resource records for the corresponding domain name server,

wherein the domain name system resource records comprise resource records containing public keys for verification of a cryptographic signature of one or more other domain name system resource records;

authenticate a request from a domain name server of the plurality of domain name servers; and

retrieve domain name server resource records from a blockchain of the plurality of private blockchains associated with the domain name server, responsive to the request, without traversing a chain of trust through a hierarchy of domain name servers to a root of the hierarchy, wherein the instructions comprise instructions that when executed cause the one or more processors to:

retrieve the domain name system resource records from a first block of the private blockchain;

determine whether the retrieved domain name system resource records have expired; and

responsive to a determination that the retrieved domain name system resource records have expired:

invalidate the first block in the private blockchain;

create a new block on the private blockchain;

obtain updated domain name system resource records from a domain name server authorized to provide the updated domain name system resource records;

validate the updated domain name system resource records using a domain name system security protocol;

sign the validated updated domain name system resource records;

store the signed validated updated domain name system resource records in the new block; and

provide the updated name system resource records responsive to the request.

15. The system of claim 14 , wherein the instructions further comprise instructions that when executed cause at least some of the one or more processors to:

associate a security information with each of the plurality of domain name servers; and

authenticate the request responsive to a match of a security information contained in the request with the security information assigned to the domain name server making the request.

16. The system of claim 14 , wherein the instructions that when executed cause at least some of the one or more processors to store domain name system resource records comprise instructions that when executed cause at least some of the one or more processors to:

identify a genesis node of the domain name system;

obtain and validate domain name system resource records associated with the genesis node;

create a genesis block on the private blockchain; and

store the domain name system resource records associated with the genesis node in the genesis block.

17. The system of claim 14 , wherein the instructions that when executed cause at least some of the one or more processors to store domain name system resource records comprise instructions that when executed cause at least some of the one or more processors to:

determine whether the domain name resource records are stored in the private blockchain;

obtain, responsive to a determination that the domain name resource records are not stored in the private blockchain, the domain name system resource records from a domain name server authorized to provide the domain name system resource records;

create a new block on the private blockchain;

validate the domain name resource records; and

sign the validated domain name resource records and store the signed validated domain name records in the new block.

Continuity (2)
Provisional Application 62099084 · Dec 31, 2014
Related Publication 20160191243A1 · Jun 30, 2016
Cited By (2)
US 12,652,266 US 12,718,258