IP Library Granted Patent US 12,438,911
Granted Patent B2
US 12,438,911 · App. 18/626,314 · Granted Oct 7, 2025

Domain name processing systems and methods

Inventors: Hung-Jen Chang (Fremont, CA); Ali Mesdaq (San Jose, CA); Gaurav Dalal (Fremont, CA); Kevin Dedon (Austin, TX)
Assignee: PROOFPOINT, INC.
H04L63/1483G06F40/205G06F40/279H04L61/3005H04L61/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 12,438,911
App. No.
18/626,314
Granted
Oct 7, 2025
Kind
B2
Abstract

A domain processing system is enhanced with a first-pass domain filter configured for loading character strings representing a pair of domains consisting of a seed domain and a candidate domain in a computer memory, computing a similarity score and a dynamic threshold for the pair of domains, determining whether the similarity score exceeds the dynamic threshold, and iterating the loading, the computing, and the determining for each of a plurality of candidate domains paired with the seed domain. A similarity score between the seed domain and the candidate domain and a corresponding dynamic threshold for the pair are computed. If the similarity score exceeds the corresponding dynamic threshold, the candidate domain is provided to a downstream computing facility. Otherwise, it is dropped. In this way, the first-pass domain filter can significantly reduce the number of domains that otherwise would need to be processed by the downstream computing facility.

Claims (49)

1. A method for domain processing, the method comprising:

for each respective candidate domain of a plurality of candidate domains:

comparing, by a computer, a seed domain and the respective candidate domain, the comparing including a character match count, a first string length of the seed domain, and a second string length of the respective candidate domain;

generating, by the computer, a similarity score based on the character match count, the first string length of the seed domain, and the second string length of the respective candidate domain;

computing, by the computer, a dynamic threshold based on the first string length of the seed domain and the second string length of the respective candidate domain;

determining, by the computer, whether the similarity score exceeds the dynamic threshold; and

responsive to the similarity score not exceeding the dynamic threshold, removing the respective candidate domain from the plurality of candidate domains.

2. The method according to claim 1 , further comprising:

prior to removing the respective candidate domain from the plurality of candidate domains, analyzing a character string of the respective candidate domain, the analyzing including determining whether the character string contains any homoglyph and, if any homoglyph is found, converting the character string to a converted candidate domain without any homoglyph and processing the converted candidate domain as one of the plurality of candidate domains.

3. The method according to claim 1 , wherein the seed domain is one of a plurality of seed domains and wherein the comparing, the generating, the computing, the determining, and the removing are performed for each pair of a seed domain of the plurality of seed domains and a candidate domain of the plurality of candidate domains.

4. The method according to claim 1 , wherein the comparing further includes a count of matched characters out of order.

5. The method according to claim 1 , further comprising:

retrieving the plurality of candidate domains from a database.

6. The method according to claim 1 , further comprising:

storing the similarity score and the dynamic threshold in a computer memory.

7. The method according to claim 1 , wherein each of the plurality of candidate domains represents a registered domain on the Internet.

8. A system for domain processing, the system comprising:

a processor;

a non-transitory computer-readable medium; and

instructions stored on the non-transitory computer-readable medium and translatable by the processor for:

for each respective candidate domain of a plurality of candidate domains:

comparing a seed domain and the respective candidate domain, the comparing including a character match count, a first string length of the seed domain, and a second string length of the respective candidate domain;

generating a similarity score based on the character match count, the first string length of the seed domain, and the second string length of the respective candidate domain;

computing a dynamic threshold based on the first string length of the seed domain and the second string length of the respective candidate domain;

determining whether the similarity score exceeds the dynamic threshold; and

responsive to the similarity score not exceeding the dynamic threshold, removing the respective candidate domain from the plurality of candidate domains.

9. The system of claim 8 , wherein the instructions are further translatable by the processor for:

prior to removing the respective candidate domain from the plurality of candidate domains, analyzing a character string of the respective candidate domain, the analyzing including determining whether the character string contains any homoglyph and, if any homoglyph is found, converting the character string to a converted candidate domain without any homoglyph and processing the converted candidate domain as one of the plurality of candidate domains.

10. The system of claim 8 , wherein the seed domain is one of a plurality of seed domains and wherein the comparing, the generating, the computing, the determining, and the removing are performed for each pair of a seed domain of the plurality of seed domains and a candidate domain of the plurality of candidate domains.

11. The system of claim 8 , wherein the comparing further includes a count of matched characters out of order.

12. The system of claim 8 , wherein the instructions are further translatable by the processor for:

retrieving the plurality of candidate domains from a database.

13. The system of claim 8 , wherein the instructions are further translatable by the processor for:

storing the similarity score and the dynamic threshold in a computer memory.

14. The system of claim 8 , wherein each of the plurality of candidate domains represents a registered domain on the Internet.

15. A computer program product for domain processing, the computer program product comprising a non-transitory computer-readable medium storing instructions translatable by a processor for performing, for each respective candidate domain of a plurality of candidate domains:

comparing a seed domain and the respective candidate domain, the comparing including a character match count, a first string length of the seed domain, and a second string length of the respective candidate domain;

generating a similarity score based on the character match count, the first string length of the seed domain, and the second string length of the respective candidate domain;

computing a dynamic threshold based on the first string length of the seed domain and the second string length of the respective candidate domain;

determining whether the similarity score exceeds the dynamic threshold; and

responsive to the similarity score not exceeding the dynamic threshold, removing the respective candidate domain from the plurality of candidate domains.

16. The computer program product of claim 15 , wherein the instructions are further translatable by the processor for:

prior to removing the respective candidate domain from the plurality of candidate domains, analyzing a character string of the respective candidate domain, the analyzing including determining whether the character string contains any homoglyph and, if any homoglyph is found, converting the character string to a converted candidate domain without any homoglyph and processing the converted candidate domain as one of the plurality of candidate domains.

17. The computer program product of claim 15 , wherein the seed domain is one of a plurality of seed domains and wherein the comparing, the generating, the computing, the determining, and the removing are performed for each pair of a seed domain of the plurality of seed domains and a candidate domain of the plurality of candidate domains.

18. The computer program product of claim 15 , wherein the comparing further includes a count of matched characters out of order.

19. The computer program product of claim 15 , wherein the instructions are further translatable by the processor for:

retrieving the plurality of candidate domains from a database.

20. The computer program product of claim 15 , wherein the instructions are further translatable by the processor for:

storing the similarity score and the dynamic threshold in a computer memory.

Assignments (3)
INTELLECTUAL PROPERTY AGREEMENT SUPPLEMENT Recorded Dec 9, 2025
From: PROOFPOINT, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 073910/0027 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 8, 2025
From: PROOFPOINT, INC.
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 073889/0677 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2024
From: CHANG, HUNG-JEN; MESDAQ, ALI; DALAL, GAURAV MITESH; DEDON, KEVIN
To: PROOFPOINT, INC.
Reel/Frame 067248/0294 →