IP Library Granted Patent US 10,812,978
Granted Patent B2
US 10,812,978 · App. 16/673,194 · Granted Oct 20, 2020

Lattice mesh

Inventors: Jared Newman (Costa Mesa, CA); Ryan Brown (Irvine, CA); Brian W. Schimpf (Palo Alto, CA); Palmer F. Luckey (Newport Beach, CA); Julian Hammerstein (Murrieta, CA); Travis M. Whitaker (Costa Mesa, CA); Jason Levin (Costa Mesa, CA); Joseph Chen (Irvine, CA)
Assignee: Anduril Industries Inc.
H04W12/0609H04L9/0825H04L9/0833H04L9/0894H04L63/0823H04L67/12H04W12/009H04W12/04031H04W12/04033H04L2209/12H04L2209/80
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,812,978
App. No.
16/673,194
Granted
Oct 20, 2020
Kind
B2
Abstract

A system for a lattice mesh comprises an interface and a processor. The interface is configured to receive a request to join a publish group from a client. The processor is configured to determine a group key; determine whether the client is allowed access to a topic of the publish group; in response to the client being allowed access to the topic of the publish group, provide the group key to the client; publish a group message including metadata; determine whether it is time to rotate the group key; and in response to it being time to rotate the group key, determine a new group key.

Claims (124)

1. A system for a lattice mesh, comprising:

an interface configured to receive a request to join a publish group from a client;

a processor configured to:

determine a group key;

determine whether the client is allowed access to a topic of the publish group;

in response to the client being allowed access to the topic of the publish group, provide the group key to the client;

publish a group message including metadata, wherein publishing the group message uses the group key, wherein the group key includes group key metadata for filtering messages at the client nodes, wherein the group key metadata includes keys that allow exact matching or prefix matching to the keys for filtering published group messages;

determine whether it is time to rotate the group key; and

in response to it being time to rotate the group key, determine a new group key.

2. A system of claim 1 , wherein, the group key is determined by querying an asset database for authorization that was provided initially by a resource authority.

3. A system of claim 1 , wherein determining whether the client is allowed access to the topic of the publish group comprises inquiring to a topic database whether the client has access permission to the topic of the publish group.

4. A system of claim 1 , wherein providing the group key to the client comprises transmitting the group key to the client.

5. A system of claim 1 , wherein the metadata comprises unencrypted filtering data.

6. A system of claim 1 , wherein the metadata comprises encrypted filtering data.

7. A system of claim 1 , wherein a key of the keys is associated with one or more of the following: a producer of a message, a timestamp, a date stamp, a media type, a topic type, and a file type.

8. A system of claim 1 , wherein the time to rotate the group key comprises every N times 10 minutes.

9. A system of claim 1 , wherein the time to rotate the group key comprises every N hours.

10. A system of claim 1 , wherein the time to rotate the group key comprises every N seconds.

11. A system of claim 1 , wherein the processor is further configured to determine whether there is another group message in response to determining it is not time to rotate the group key.

12. A system of claim 11 , wherein the processor is further configured to determine whether it is time to rotate the group key in response to determining that there is not another group message.

13. A system of claim 1 , wherein determining the group key comprises determining a keyId used to encrypt a message and a bearer token that proves the client has access.

14. A system of claim 1 , wherein the group message is encrypted with the group key.

15. A system of claim 1 , wherein the group message is signed by a private key to prevent other hosts with access to the group key from forging messages.

16. A method for a lattice mesh, comprising:

receiving a request to join a publish group from a client;

determining, using a processor, a group key;

determining whether the client is allowed access to a topic of the publish group;

in response to the client being allowed access to the topic of the publish group, providing the group key to the client;

publishing a group message including metadata, wherein publishing the group message uses the group key, wherein the group key includes group key metadata for filtering messages at the client nodes, wherein the group key metadata includes keys that allow exact matching or prefix matching to the keys for filtering published group messages;

determining whether it is time to rotate the group key; and

in response to it being time to rotate the group key, determining a new group key.

17. A computer program product for a lattice mesh, the computer program product being embodied in a tangible non-transitory computer readable storage medium and comprising computer instructions for:

receiving a request to join a publish group from a client;

determining, using a processor, a group key;

determining whether the client is allowed access to a topic of the publish group;

in response to the client being allowed access to the topic of the publish group, providing the group key to the client;

publishing a group message including metadata, wherein publishing the group message uses the group key, wherein the group key includes group key metadata for filtering messages at the client nodes, wherein the group key metadata includes keys that allow exact matching or prefix matching to the keys for filtering published group messages;

determining whether it is time to rotate the group key; and

in response to it being time to rotate the group key, determining a new group key.

18. A system for a lattice mesh, comprising:

an interface configured to receive a request to join a publish group from a client;

a processor configured to:

determine a group key;

determine whether the client is allowed access to a topic of the publish group;

in response to the client being allowed access to the topic of the publish group, provide the group key to the client;

publish a group message including metadata;

determine whether it is time to rotate the group key; and

in response to it being time to rotate the group key, determine a new group key; and

in response to determining it is not time to rotate the group key, determine whether there is another group message.

19. A system of claim 18 , wherein, the group key is determined by querying an asset database for authorization that was provided initially by a resource authority.

20. A system of claim 18 , wherein determining whether the client is allowed access to the topic of the publish group comprises inquiring to a topic database whether the client has access permission to the topic of the publish group.

21. A system of claim 18 , wherein providing the group key to the client comprises transmitting the group key to the client.

22. A system of claim 18 , wherein publishing a group message using the group key.

23. A system of claim 22 , wherein the group key includes metadata for filtering messages at the client nodes.

24. A system of claim 23 , wherein the metadata comprises unencrypted filtering data.

25. A system of claim 23 , wherein the metadata comprises encrypted filtering data.

26. A system of claim 23 , wherein the metadata includes keys that allow exact matching or prefix matching to the keys for filtering published group messages.

27. A system of claim 26 , wherein a key of the keys is associated with one or more of the following: a producer of a message, a timestamp, a date stamp, a media type, a topic type, and a file type.

28. A system of claim 18 , wherein the time to rotate the group key comprises every N times 10 minutes.

29. A system of claim 18 , wherein the time to rotate the group key comprises every N hours.

30. A system of claim 18 , wherein the time to rotate the group key comprises every N seconds.

31. A system of claim 18 , wherein the processor is further configured to determine whether it is time to rotate the group key in response to determining that there is not another group message.

32. A system of claim 18 , wherein determining the group key comprises determining a keyId used to encrypt a message and a bearer token that proves the client has access.

33. A system of claim 18 , wherein the group message is encrypted with the group key.

34. A system of claim 18 , wherein the group message is signed by a private key to prevent other hosts with access to the group key from forging messages.

35. A method for a lattice mesh, comprising:

receiving a request to join a publish group from a client;

determining, using a processor, a group key;

determining whether the client is allowed access to a topic of the publish group;

in response to the client being allowed access to the topic of the publish group, providing the group key to the client;

publishing a group message including metadata;

determining whether it is time to rotate the group key; and

in response to it being time to rotate the group key, determining a new group key; and

in response to determining it is not time to rotate the group key, determine whether there is another group message.

36. A computer program product for a lattice mesh, the computer program product being embodied in a tangible non-transitory computer readable storage medium and comprising computer instructions for:

receiving a request to join a publish group from a client;

determining, using a processor, a group key;

determining whether the client is allowed access to a topic of the publish group;

in response to the client being allowed access to the topic of the publish group, providing the group key to the client;

publishing a group message including metadata;

determining whether it is time to rotate the group key; and

in response to it being time to rotate the group key, determining a new group key; and

in response to determining it is not time to rotate the group key, determine whether there is another group message.

37. A system for a lattice mesh, comprising:

an interface configured to receive a request to join a publish group from a client;

a processor configured to:

determine a group key, wherein determining the group key comprises determining a keyId used to encrypt a message and a bearer token that proves the client has access;

determine whether the client is allowed access to a topic of the publish group;

in response to the client being allowed access to the topic of the publish group, provide the group key to the client;

publish a group message including metadata;

determine whether it is time to rotate the group key; and

in response to it being time to rotate the group key, determine a new group key.

38. A system of claim 37 , wherein, the group key is determined by querying an asset database for authorization that was provided initially by a resource authority.

39. A system of claim 37 , wherein determining whether the client is allowed access to the topic of the publish group comprises inquiring to a topic database whether the client has access permission to the topic of the publish group.

40. A system of claim 37 , wherein providing the group key to the client comprises transmitting the group key to the client.

41. A system of claim 37 , wherein publishing a group message using the group key.

42. A system of claim 41 , wherein the group key includes metadata for filtering messages at the client nodes.

43. A system of claim 42 , wherein the metadata comprises unencrypted filtering data.

44. A system of claim 42 , wherein the metadata comprises encrypted filtering data.

45. A system of claim 42 , wherein the metadata includes keys that allow exact matching or prefix matching to the keys for filtering published group messages.

46. A system of claim 45 , wherein a key of the keys is associated with one or more of the following: a producer of a message, a timestamp, a date stamp, a media type, a topic type, and a file type.

47. A system of claim 37 , wherein the time to rotate the group key comprises every N times 10 minutes.

48. A system of claim 37 , wherein the time to rotate the group key comprises every N hours.

49. A system of claim 37 , wherein the time to rotate the group key comprises every N seconds.

50. A system of claim 37 , wherein the processor is further configured to determine whether there is another group message in response to determining it is not time to rotate the group key.

51. A system of claim 50 , wherein the processor is further configured to determine whether it is time to rotate the group key in response to determining that there is not another group message.

52. A system of claim 37 , wherein the group message is encrypted with the group key.

53. A system of claim 37 , wherein the group message is signed by a private key to prevent other hosts with access to the group key from forging messages.

54. A method for a lattice mesh, comprising:

receiving a request to join a publish group from a client;

determining, using a processor, a group key, wherein determining the group key comprises determining a keyId used to encrypt a message and a bearer token that proves the client has access;

determining whether the client is allowed access to a topic of the publish group;

in response to the client being allowed access to the topic of the publish group, providing the group key to the client;

publishing a group message including metadata;

determining whether it is time to rotate the group key; and

in response to it being time to rotate the group key, determining a new group key.

55. A computer program product for a lattice mesh, the computer program product being embodied in a tangible non-transitory computer readable storage medium and comprising computer instructions for:

receiving a request to join a publish group from a client;

determining, using a processor, a group key, wherein determining the group key comprises determining a keyId used to encrypt a message and a bearer token that proves the client has access;

determining whether the client is allowed access to a topic of the publish group;

in response to the client being allowed access to the topic of the publish group, providing the group key to the client;

publishing a group message including metadata;

determining whether it is time to rotate the group key; and

in response to it being time to rotate the group key, determining a new group key.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2025
From: NEWMAN, JARED; BROWN, RYAN; SCHIMPF, BRIAN W.; LUCKEY, PALMER F.; HAMMERSTEIN, JULIAN; WHITAKER, TRAVIS M.; LEVIN, JASON; CHEN, JOSEPH
To: ANDURIL INDUSTRIES, INC.
Reel/Frame 070147/0307 →
SECURITY INTEREST Recorded Aug 9, 2024
From: ANDURIL INDUSTRIES, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 068526/0728 →
TERMINATION AND RELEASE OF IPSA Recorded Feb 9, 2024
From: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK & TRUST COMPANY
To: ANDURIL INDUSTRIES, INC.,
Reel/Frame 066546/0303 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Mar 25, 2020
From: ANDURIL INDUSTRIES, INC.
To: SILICON VALLEY BANK
Reel/Frame 052224/0242 →
Continuity (3)
Continuation 16201873 · Nov 27, 2018
Provisional Application 62683533 · Jun 11, 2018
Related Publication 20200068404A1 · Feb 27, 2020
Cited By (7)
US 12,255,404 US 12,455,364 US 12,463,356 US 12,546,851 US 12,546,878 US 12,568,602 US 12,609,461