IP Library Granted Patent US 12,445,269
Granted Patent B2
US 12,445,269 · App. 17/966,968 · Granted Oct 14, 2025

System and method of application resource binding

Inventors: HongQian Karen Lu (Austin, TX); Feng Shahab Pan (San Ramon, CA); Kyoungbong Koo (Fremont, CA); Pablo Blasco Herrero (Alicante, ES)
Assignee: THALES DIS CPL USA, INC.
H04L9/0819H04L9/0866H04L9/3249
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,445,269
App. No.
17/966,968
Filed
Oct 17, 2022
Granted
Oct 14, 2025
Kind
B2
Art Unit
2492
USPC
380/278
Abstract

A system and method for protecting an application resource file (RF) when a client uses an application on a host can include the steps by the application on the host of binding the RF to the host during execution of the application on the host by obtaining a device fingerprint of the host, verifying a signature by using the RF, the device fingerprint of the host, and a public key, where the signature was created during or at one of the following: a) an installation of the application at the host by signing the RF and the device fingerprint of the host using a private key corresponding to the public key; (b) an application provider before the installation of the application at the host; or (c) a client device; and where the method further uses the RF if a verification of the signature is successful.

Claims (91)

1. A method for protecting an application resource file when a client device uses an application on a host device, comprising the steps by the host or the application on the host of:

binding the application resource file to the host device during an installation and subsequent execution of the application on the host device by:

creating, during said installation, an asymmetric key pair including a private key and a public key;

obtaining a device fingerprint of the host device;

signing together both the application resource file and the device fingerprint of the host device using the private key to provide a signature;

saving the signature and the public key; and

deleting, during said installation, both the private key and the device fingerprint, thereby completing said installation,

wherein the method further binds the host device by including the steps at the application provider of:

creating by the application provider a key pair for digital signature;

providing a public key of the application provider with the application; and

including or defining the device fingerprint of the client device or host device or both within the application, wherein the client device provided the host device finger print to the application provider via user interface or via an application programming interface,

wherein the method, after completing said installation, further comprises the steps during said execution of the application on the host device of:

obtaining the device fingerprint of the host device;

verifying the signature by using the application resource file, the device fingerprint of the host device, and the public key; and

using the application resource file if the verification succeeded,

wherein the application resource file is accessible only if a verification of the signature is successful.

2. The method of claim 1 , wherein the step of verifying the signature (S) of the application resource file (RF) and the host fingerprint (F1) by:

decrypting the signature (S) using an application's public key resulting in a first hash (H1) of the application resource file and host fingerprint;

obtaining the host fingerprint (F2) from the host;

computing a second hash (H2) of the application resource file and the host fingerprint (F2) obtained from the host;

perform an exclusive OR function among the application resource file, the first hash, and the second hash to provide a result K; and

when the first hash equates to the second hash, then the result K equals the application resource file and the application runs correctly.

3. The method of claim 2 , when the first hash does not equate to the second hash, then the result K does not equal the application resource file and the application provides a wrong result or does not work.

4. The method of claim 1 , wherein the method protects the application resource file from unauthorized usage.

5. A method for protecting an application resource file when a client device uses an application on a host device, comprising the steps by the application on the host device of:

binding the application resource file to the host device during an installation and subsequent execution of the application on the host device by:

during said installation,

creating an asymmetric key pair including a private key and a public key;

obtaining a device fingerprint of the host device;

signing together both the application resource file and the device fingerprint of the host device using the private key to provide a signature;

saving the signature and the public key; and

deleting, during said installation, both the private key and the device fingerprint, thereby completing said installation,

and during said execution,

obtaining the device fingerprint of the host device;

verifying the signature by using the application resource file, the device fingerprint of the host device, and the public key, wherein the signature was created during

said installation of the application at the host device by signing the application resource file and the device fingerprint of the host device using the private key corresponding to the public key creating during said installation of the application, and

using the application resource file if a verification of the signature is successful,

wherein the method further binds the host device by including the steps at the application provider of:

creating by the application provider a key pair for digital signature;

providing a public key of the application provider with the application; and

including or defining the device fingerprint of the client device or host device or both within the application, wherein the client device provided the host device finger print to the application provider via user interface or via an application programming interface.

6. The method of claim 5 , wherein the step of verifying the signature (S) of the application resource file (RF) and the host fingerprint (F1) by:

decrypting the signature (S) using a public key resulting in a first hash (H1) of the application resource file and host fingerprint;

obtaining the host fingerprint (F2) from the host;

computing a second hash (H2) of the application resource file and the host fingerprint obtained from the host;

perform an exclusive OR function among the application resource file, the first hash, and the second hash to provide a result K;

when the first hash equates to the second hash, then the result K equals the application resource file and the application runs correctly.

7. The method of claim 5 , wherein the method further comprises the step at the application provider of:

generating the application resource file;

creating a digital signature of the application resource file and the host device fingerprint using the application provider's private key; and

attaching the digital signature with the application resource file.

8. The method of claim 5 , wherein the method further comprises the steps at the client device of:

requesting a fingerprint from a host device;

receiving the fingerprint from the host device;

signing the resource file and fingerprint to form a signature;

sending the application, the resource file, a fingerprint configuration file, the signature, and a customer certificate to the host before executing the application on the host.

9. The method of claim 8 , wherein the method further comprises at the client device for each host device of:

obtaining a device fingerprint specified in the fingerprint configuration file;

creating a digital signature of the application resource file and the device fingerprint;

pushing the application, the application resource file, the fingerprint configuration file, the client certificate, and the digital signature to the host;

and further comprising steps at each host device of

verifying the customer certificate using the public key of the application provider;

verifying the fingerprint configuration file using a public key of the application provider;

verifying the signature of the application resource file and device fingerprint using a public key of the client; and

using the application resource file if the verification succeeds.

10. A system for protecting an application resource file when a client device uses an application on a host device, comprising:

one or more processors;

a memory coupled to the one or more processors, the memory containing computer instructions which when executed causes the one or more processors on the host device or the application to perform the steps of:

binding the application resource file to the host device during installation of the application on the host device by:

creating an asymmetric key pair including a private key and a public key;

obtaining a device fingerprint of the host device;

saving a signature and the public key; and

deleting the private key, and the device fingerprint,

wherein the one or more processors are further configured to perform the steps during execution of the application on the host device of:

obtaining the device fingerprint of the host device;

verifying the signature by using the application resource file, the device fingerprint of the host device, and the public key; and

using the application resource file if the verification succeeded,

wherein the application resource file is accessible only if a verification of the signature is successful,

wherein an application provider binds the host device by:

creating by the application provider a key pair for digital signature;

providing a public key of the application provider with the application; and

including or defining the device fingerprint of the client device or host device or both within the application, wherein the client device provided the host device finger print to the application provider via user interface or via an application programming interface.

11. The system of claim 10 , wherein the signature is created by signing the application resource file and the device fingerprint of the host device using the private key to provide a signature.

12. The system of claim 10 , wherein the step of verifying the signature (S) of the application resource file (RF) and the host fingerprint (F1) comprises:

decrypting the signature (S) using an application's public key resulting in a first hash (H1) of the application resource file and host fingerprint;

obtaining the host fingerprint (F2) from the host;

computing a second hash (H2) of the application resource file and the host fingerprint (F2) obtained from the host;

perform an exclusive OR function among the application resource file, the first hash, and the second hash to provide a result K;

when the first hash equates to the second hash, then the result K equals the application resource file and the application runs correctly.

13. The system of claim 10 , wherein the client device downloads the application resource file and wherein during a key rotation process, the application signs the application resource file and the device fingerprint of the host device.

14. The system of claim 10 , wherein the device fingerprint of the host device includes unique information about the host device including network connections and environmental settings.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2022
From: LU, HONGQIAN KAREN; PAN, FENG; KOO, KYOUNGBONG
To: THALES DIS CPL USA, INC
Reel/Frame 062232/0465 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2022
From: BLASCO HERRERO, PABLO
To: THALES DIS ESPANA SA
Reel/Frame 062232/0483 →
Continuity (1)
Related Publication 20240129110A1 · Apr 18, 2024
References Cited (53)
US 3618028A · Johnson · 1971 [cited by examiner]
US 3701984A · Burns · 1972 [cited by examiner]
US 7356709B2 · Gunyakti et al. · 2008 [cited by applicant]
US 7395438B2 · Parks et al. · 2008 [cited by applicant]
US 7546334B2 · Redlich · 2009 [cited by examiner]
US 7921287B2 · Sprigg · 2011 [cited by examiner]
US 7996669B2 · Pearson et al. · 2011 [cited by applicant]
US 8745579B2 · Johnson, Jr. et al. · 2014 [cited by applicant]
US 8776216B2 · Boccon-Gibod et al. · 2014 [cited by applicant]
US 10382473B1 · Ashkenazy · 2019 [cited by examiner]
US 10609070B1 · Farmer, III · 2020 [cited by examiner]
US 10616072B1 · Lo · 2020 [cited by examiner]
US 10735420B2 · Tak · 2020 [cited by examiner]
US 10846374B2 · Nikitin et al. · 2020 [cited by applicant]
US 10893066B1 · Oliphant · 2021 [cited by examiner]
US 10938850B2 · Tamir · 2021 [cited by examiner]
US 11151225B2 · Desai et al. · 2021 [cited by applicant]
US 11409851B2 · Lu · 2022 [cited by examiner]
US 11429364B2 · Schutt · 2022 [cited by examiner]
US 11500534B2 · Xu · 2022 [cited by examiner]
US 11516222B1 · Srinivasan · 2022 [cited by examiner]
US 11604857B2 · Adjedj · 2023 [cited by examiner]
US 11750643B1 · Imrem · 2023 [cited by examiner]
US 12086234B2 · Vijayvargiya · 2024 [cited by examiner]
US 12321470B2 · Motomiya · 2025 [cited by examiner]
US 20030037237A1 · Abgrall · 2003 [cited by examiner]
US 20040078565A1 · Hofmeister · 2004 [cited by examiner]
US 20040162989A1 · Kirovski · 2004 [cited by examiner]
US 20060010497A1 · O'Brien · 2006 [cited by examiner]
US 20070094735A1 · Cohen · 2007 [cited by examiner]
US 20080016357A1 · Suarez · 2008 [cited by examiner]
US 20100037065A1 · Dayka · 2010 [cited by examiner]
US 20140007215A1 · Romano · 2014 [cited by examiner]
US 20140066015A1 · Aissi · 2014 [cited by examiner]
US 20150213253A1 · Miranda · 2015 [cited by examiner]
US 20150356560A1 · Shastry · 2015 [cited by examiner]
US 20170063975A1 · Prakash · 2017 [cited by examiner]
US 20170262656A1 · Salmon-Legagneur · 2017 [cited by examiner]
US 20180068118A1 · Vandergeest · 2018 [cited by examiner]
US 20180091977A1 · Lu · 2018 [cited by examiner]
US 20180114000A1 · Taylor · 2018 [cited by examiner]
US 20180359244A1 · Cockerill · 2018 [cited by examiner]
US 20190245686A1 · Rahimi · 2019 [cited by examiner]
US 20200036703A1 · Håkansson · 2020 [cited by examiner]
US 20200119920A1 · Kohli · 2020 [cited by examiner]
US 20210114558A1 · Cheng · 2021 [cited by examiner]
US 20210192017A1 · Aigner · 2021 [cited by examiner]
US 20210349986A1 · Jiang · 2021 [cited by examiner]
US 20220374521A1 · Liu · 2022 [cited by examiner]
US 20230060782A1 · Wang · 2023 [cited by examiner]
International Search Report (PCT/ISA/2010) & Written Opinion (PCT/ISA/237) mailed by ISA/EP on Feb. 5, 2024 for corresponding International Application pursuant to the PCT, N∘PCT/US2023/0035267 (16 pages). [cited by applicant]
Anonymous: “What is hardware-locked licensing and why use LimeLM”, Sep. 26, 2022 (Sep. 26, 2022), XP093120259, Retrieved from the Internet: URL:https://web.archive.org/web/20220926041502/https://wyday.com/limel.m/featur… [cited by applicant]
Agrawal Shashank et al: “White-Box Cryptography with Global. Device Binding from Message-Recoverable Signatures and Token-Based Obfuscation”; XP093119768, ISSN: 0302-9743 ISBN: 978-3-031-29496-9; vol. 13979, pp. 241-261… [cited by applicant]