IP Library Granted Patent US 11,764,968
Granted Patent B2
US 11,764,968 · App. 17/148,420 · Granted Sep 19, 2023

Verification of valid client library binary file on connecting to server system

Inventor: Andrew R. Huber (Chapel Hill, NC)
Assignee: EMC IP Holding Company LLC
H04L9/3239G06F9/547G06F11/1453G06F16/137H04L63/0428H04L63/10H04L67/01H04L67/133G06F2201/84
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,764,968
App. No.
17/148,420
Granted
Sep 19, 2023
Kind
B2
Abstract

Embodiments for validating a dynamically downloaded client-side library using a kernel that downloads the library and computing a hash value of the library using a nonce value received from a server and the library code. The kernel sends the hash value to the server with a file identifier. The server finds the identified library and compares the received hash value to its own computed value calculated over the file and using the same nonce value. If the client sends the correct value, then the server allows the application to connect to the server and use the server's services. If the client sends a value other than the value calculated by the server, the server closes the connection from the client and denies access to the application.

Claims (36)

1. A computer-implemented method comprising:

generating a nonce value at a server in a client-server network;

downloading, to a client coupled to the server, a library and the nonce value;

computing, at the client, a first hash value whose hash input comprises the nonce value and binary code of the library;

sending from the client to the server the first hash value and a library identifier;

finding on the server the library referenced by the library identifier;

computing, at the server, a second hash value of the nonce value and binary code of the found library referenced by the library identifier; and

allowing use of the library by the client as a middleware component that can access the server if the library referenced by the library identifier is found by the server and if the second hash value matches the first hash value, otherwise denying access by the client to the library provided by the server.

2. The method of claim 1 wherein the library is used by one or more applications executed on the client.

3. The method of claim 1 wherein the library is downloaded from a location designated by the server and is provided separately from the applications and can be replaced without awareness by an application.

4. The method of claim 1 wherein the nonce value is randomly generated by the server upon each access by the client to the library provided by the server.

5. The method of claim 1 further wherein the library identifier comprises a value representing a major version number, a minor number version number, a patch number, and an engineering build number.

6. The method of claim 5 comprising sending the first hash value and the library identifier from the client as an encrypted remote procedure call to the server.

7. The method of claim 6 further comprising performing a local directory lookup on the server computer to determine if the library referenced by the library identifier is found by the server.

8. The method of claim 3 wherein the client-server network comprises part of a data deduplication backup system, and wherein the application comprises a backup application.

9. The method of claim 8 wherein the library comprises a set of client library application programming interfaces (APIs) that make remote procedure (RPC) calls to the server from the client to perform distributed deduplication of user data to minimize an amount of data sent to the server and to minimize the physical storage required to store the data by the backup application.

10. A method comprising:

accessing a library downloadable to a client coupled to the server by a kernel library component;

receiving a nonce value generated by the server;

calculating first hash value using the nonce value and binary code of the library; and

sending the hash value to the server with library identifier to allow the server to find the library identified by the library identifier, compute a second hash value using the nonce value and binary code of the identified library to verify that the first hash value matches the second hash value; and

receiving allowance to use the library if the second hash value matches the first hash value.

11. The method of claim 10 wherein the library comprises a middleware component that can access the server and is downloaded from a location designated by the server and is provided separately from the applications and can be replaced without awareness by an application.

12. The method of claim 11 wherein the library is used by one or more applications executed on the client, and wherein the library identifier comprises a value representing a major version number, a minor number version number, a patch number, and an engineering build number.

13. The method of claim 10 wherein the client-server network comprises part of a data deduplication backup system, and wherein the application comprises a backup application.

14. The method of claim 13 wherein the library comprises a set of client library application programming interfaces (APIs) that make remote procedure (RPC) calls to the server from the client to perform distributed deduplication of user data to minimize an amount of data sent to the server and to minimize the physical storage required to store the data by the backup application.

15. A system comprising:

a server-side component generating a nonce value at a server in a client-server network;

a library downloadable to a client coupled to the server;

a kernel downloading the library to the client and calculating first hash value using the nonce value and binary code of the library, and sending the hash value to the server with a library identifier; and

an additional server-side component identifying the library identified by the library identifier, computing a second hash value using the nonce value and binary code of the identified library, comparing the first hash value to the second hash value, and allowing use of the library by the client if the second hash value matches the first hash value, otherwise denying access by the client to the library provided by the server.

16. The system of claim 15 wherein the library comprises a middleware component that can access the server and is downloaded from a location designated by the server and is provided separately from the applications and can be replaced without awareness by an application.

17. The system of claim 16 wherein the library is used by one or more applications executed on the client, and wherein the library identifier comprises a value representing a major version number, a minor number version number, a patch number, and an engineering build number.

18. The system of claim 15 wherein the nonce value is randomly generated by the server upon each access by the client to the library provided by the server.

19. The system of claim 15 wherein the client-server network comprises part of a data deduplication backup system, and wherein the application comprises a backup application.

20. The system of claim 19 wherein the library comprises a set of client library application programming interfaces (APIs) that make remote procedure (RPC) calls to the server from the client to perform distributed deduplication of user data to minimize an amount of data sent to the server and to minimize the physical storage required to store the data by the backup application.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0342) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0460 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0051) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0663 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056136/0752) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0771 →
RELEASE OF SECURITY INTEREST AT REEL 055408 FRAME 0697 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0553 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056136/0752 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0051 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0342 →
SECURITY AGREEMENT Recorded Feb 25, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 055408/0697 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2021
From: HUBER, ANDREW R.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 055726/0750 →
Continuity (1)
Related Publication 20220224539A1 · Jul 14, 2022
Cited By (2)
US 12,524,241 US 12,537,668