IP Library Granted Patent US 10,756,905
Granted Patent B2
US 10,756,905 · App. 16/152,876 · Granted Aug 25, 2020

System and method of cryptographically signing web applications

Inventors: Ryan Lester (Dover, DE); Jann Horn (Oldenburg, DE); Bryant Zadegan (Dover, DE)
Assignee: Cyph, Inc.
H04L9/3247G06F8/60G06F21/606H04L5/0037H04L9/0861H04L9/321H04L9/3215H04L9/3271H04L51/16H04L63/0281H04L63/0435H04L63/0442H04L63/061H04L63/065H04L63/08H04L63/0838H04L63/123H04L63/18H04L67/02H04L67/10H04L67/141H04L67/146H04W12/10H04L67/42
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,756,905
App. No.
16/152,876
Granted
Aug 25, 2020
Kind
B2
Abstract

Embodiments disclosed herein provide a method that includes receiving, at a client-side web browser, a minimal bootstrap payload from an application server; storing, by a client-side processor, the minimal bootstrap payload in a client-side local cache, where the locally cached minimal bootstrap payload is executed by the client-side processor before executing an application from the application server; the minimal bootstrap payload includes at least one public key and at least one Uniform Resource Location (URL) address of an application code payload.

Claims (44)

1. A method, comprising:

receiving, at a client-side web browser, a minimal bootstrap payload from an application server;

storing, by a client-side processor, the minimal bootstrap payload in a client-side local cache, wherein

the client-side local cache comprises a locally stored public key previously received by the application server and stored in the client-side local cache by the client-side processor;

the locally cached minimal bootstrap payload is executed by the client-side processor before executing an application from the application server;

the minimal bootstrap payload includes at least one public key and at least one Uniform Resource Location (URL) address of an application code payload;

the client-side processor executes the minimal bootstrap payload, wherein executing the minimal bootstrap payload comprises:

receiving, at the client-side web browser, the application code payload from the URL specified by the minimal bootstrap payload;

verifying, by the client-side processor, the received application code payload;

executing, by the client-side processor, the received application code payload after the received application payload has been successfully verified.

2. The method of claim 1 , wherein the minimal bootstrap payload further comprises:

storing, by the client-side processor, in the client-side local cache a copy of the verified application code payload; and

executing the client-side local cache copy of the verified application code payload when the minimal bootstrap payload fails to verify the received application code payload.

3. The method of claim 1 , wherein at least one of the minimal bootstrap payload and the application code payload are written using a combination of HyperText Markup Language (HTML), Cascading Style Sheets (CSS) and JavaScript (JS).

4. The method of claim 1 , wherein the minimal bootstrap payload includes a backup URL and further comprises receiving a backup application code payload from a backup URL when the minimal bootstrap payload fails to verify the received application code payload.

5. The method of claim 1 , wherein the minimal bootstrap payload includes at least two public keys and further comprises verifying, by the client-side processor, the received application code payload.

6. The method of claim 1 , wherein the minimal bootstrap payload includes a second URL and further comprises:

receiving a pre-computed hash from the second URL,

verifying, by the client-side processor, the received pre-computed hash has using the locally stored public key; and

storing, by the client-side processor, in the client-side local cache a copy of the verified pre-computed hash.

7. The method of claim 6 , wherein the minimal bootstrap payload further comprises computing, by the client-side processor, a hash of the received application code payload.

8. The method of claim 7 , wherein the minimal bootstrap payload further comprises comparing the computed hash of the received application code payload with the client-side local cache a copy of the verified pre-computed hash.

9. A non-transitory computer readable medium, instructing an computing device to execute a method comprising:

receiving, at a client-side web browser, a minimal bootstrap payload from an application server;

storing, by a client-side processor, the minimal bootstrap payload in a client-side local cache, wherein

the client-side local cache comprises a locally stored public key previously received by the application server and stored in the client-side local cache by the client-side processor;

the locally cached minimal bootstrap payload is executed by the client-side processor before executing an application from the application server;

the minimal bootstrap payload includes at least one public key and at least one Uniform Resource Location (URL) address of an application code payload;

the client-side processor executes the minimal bootstrap payload, wherein executing the minimal bootstrap payload comprises:

receiving, at the client-side web browser, the application code payload from the URL specified by the minimal bootstrap payload;

verifying, by the client-side processor, the received application code payload;

executing, by the client-side processor, the received application code payload after the received application payload has been successfully verified.

10. The computer readable medium of claim 9 , wherein the minimal bootstrap payload further comprises:

storing, by the client-side processor, in the client-side local cache a copy of the verified application code payload; and

executing the client-side local cache copy of the verified application code payload when the minimal bootstrap payload fails to verify the received application code payload.

11. The computer readable medium of claim 9 , wherein at least one of the minimal bootstrap payload and the application code payload are written using a combination of HyperText Markup Language (HTML), Cascading Style Sheets (CSS) and JavaScript (JS).

12. The computer readable medium of claim 9 , wherein the minimal bootstrap payload includes a backup URL and further comprises receiving a backup application code payload from a backup URL when the minimal bootstrap payload fails to verify the received application code payload.

13. The computer readable medium of claim 9 , wherein the minimal bootstrap payload includes at least two public keys and further comprises verifying, by the client-side processor, the received application code payload cryptographic signature using the locally stored public keys.

14. The computer readable medium of claim 9 , wherein the minimal bootstrap payload includes a second URL and further comprises:

receiving a pre-computed hash from the second URL,

verifying, by the client-side processor, the received pre-computed hash has using the locally stored public key; and

storing, by the client-side processor, in the client-side local cache a copy of the verified pre-computed hash.

15. The computer readable medium of claim 14 , wherein the minimal bootstrap payload further comprises computing, by the client-side processor, a hash of the received application code payload.

16. The computer readable medium of claim 15 , wherein the minimal bootstrap payload further comprises comparing the computed hash of the received application code payload with the client-side local cache a copy of the verified pre-computed hash.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2026
From: CYPH INC.
To: GADMI SECURITY LLC
Reel/Frame 074987/0964 →
Continuity (6)
Continuation 15673884 · Aug 10, 2017
Continuation 15001015 · Jan 19, 2016
Continuation PCTUS2015047788 · Aug 31, 2015
Provisional Application 62104307 · Jan 16, 2015
Provisional Application 62104307 · Jan 16, 2015
Related Publication 20190305961A1 · Oct 3, 2019