IP Library Granted Patent US 12,124,544
Granted Patent B2
US 12,124,544 · App. 16/566,035 · Granted Oct 22, 2024

Secure calling convention system and methods

Inventor: Ian Peter George Steele (Cambridgeshire, GB)
Assignee: Aveva Software, LLC
G06F21/14G06F9/54G06F21/602H04L9/0861G06F21/1066
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,124,544
App. No.
16/566,035
Granted
Oct 22, 2024
Kind
B2
Abstract

The present disclosure is directed to systems and methods for protecting software application information that is passed between a caller of an API and the logic contained within the API by using a Secure Calling Convention (SCC). The SCC involves performing a cryptographic operation on the information such that the true nature of the information is obfuscated. The SCC prevents a hacker from using the information to reverse-engineer the software application to behave as desired.

Claims (83)

1. A non-transitory computer-readable medium storing instructions configured and arranged for encrypting information passed between application programing interface (API) caller and API logic contained within an API, the instructions comprising:

determining, by one or more processors, at least one API attribute for use by the API logic that implements a functionality of the API;

collecting and aggregating, by the one or more processors, entropy from at least one entropy source;

performing, by the one or more processors, a cryptographic operation using the aggregated entropy on the at least one API attribute before execution of an API calling operation wherein the API is called by the API caller that enables execution of the API logic, a result of said cryptographic operation comprising at least one logic cryptographic parameter;

passing, by the one or more processors, the at least one logic cryptographic parameter by the API caller to the API, during execution of the API calling operation; and

performing, by the one or more processors, an API operation when the at least one logic cryptographic parameter has passed by the API caller to the API, the API operation including decryption of the at least one logic cryptographic parameter and execution of the API logic using an API attribute included in the at least one decrypted logic cryptographic parameter.

2. The non-transitory computer-readable medium of claim 1 ,

wherein the at least one API attribute comprises one or more of at least one encrypted parameter value, at least one unencrypted parameter value, at least one encrypted return value, at least one unencrypted return value, at least one encrypted binary large object (BLOB) memory allocation value, and at least one unencrypted BLOB memory allocation value;

wherein the at least one entropy source comprises at least one of environmental entropy, static entropy, and parameter entropy;

wherein the cryptographic operation comprises at least one of an encryption operation and a decryption operation;

wherein performing the cryptographic operation comprises:

generating a cryptographic key using the aggregated entropy, and

performing a cryptographic transformation on the at least one API attribute to obtain the at least one logic cryptographic parameter;

wherein performing an API operation comprises at least one of:

sending at least one logic cryptographic parameter to the API caller, and

executing the API logic using the at least one logic cryptographic parameter.

3. The non-transitory computer-readable medium of claim 2 ,

wherein the parameter entropy comprises at least one attribute associated with the at least one API attribute.

4. The non-transitory computer-readable medium of claim 2 ,

wherein collecting and aggregating the entropy from the at least one entropy source comprises generating a binary large object (BLOB) with a BLOB memory allocation sufficient to store the at least one API attribute.

5. The non-transitory computer-readable medium of claim 4 ,

wherein the parameter entropy comprises BLOB entropy derived from the BLOB.

6. The non-transitory computer-readable medium of claim 4 ,

wherein the BLOB comprises at least one of an encrypted BLOB and an unencrypted BLOB.

7. The non-transitory computer-readable medium of claim 4 ,

wherein performing the cryptographic operation further comprises:

populating the BLOB memory allocation with the at least one API attribute;

performing the cryptographic transformation on the BLOB to obtain a transformed BLOB;

wherein the at least one logic cryptographic parameter comprises the transformed BLOB.

8. The non-transitory computer-readable medium of claim 7 ,

wherein sending the at least one logic cryptographic parameter to the API caller comprises sending the transformed BLOB to the API caller.

9. The non-transitory computer-readable medium of claim 7 ,

wherein executing the API logic using the at least one logic cryptographic parameter comprises executing the API logic using the at least one API attribute stored within the transformed BLOB.

10. A system comprising one or more computers comprising one or more processors and one or more non-transitory computer readable media, the one or more non-transitory computer readable media storing instructions configured and arranged for encrypting information passed between an application programing interface (API) caller and API logic contained within an API, the instructions comprising:

determining, by the one or more processors, at least one API value to be passed from the API caller to the API logic, the API caller enables execution of the API logic that implements a functionality of the API;

collecting and aggregating, by the one or more processors, entropy from at least one entropy source;

performing, by the one or more processors, a cryptographic operation using the aggregated entropy on the at least one API value prior to execution of an API calling operation wherein the at least one API value being passed to the API logic, a result of said cryptographic operation comprising at least one caller cryptographic parameter;

passing, by the one or more processors, the at least one caller cryptographic parameter to the API logic during execution of the API calling operation; and

performing, by the one or more processors, an API operation when the at least one caller cryptographic parameter has passed to the API logic during the execution of the API calling operation, the API operation including decryption of the at least one caller cryptographic parameter and execution of the API logic using the API value included in the at least one decrypted caller cryptographic parameter.

11. The system of claim 10 ,

wherein the least one API value comprises one or more of at least one encrypted parameter value, at least one unencrypted parameter value, at least one encrypted return value, at least one unencrypted return value, at least one encrypted binary large object (BLOB) memory allocation value, and at least one unencrypted BLOB memory allocation value;

wherein the at least one entropy source comprises at least one of environmental entropy, static entropy, and parameter entropy;

wherein the cryptographic operation comprises at least one of an encryption operation and a decryption operation;

wherein performing the cryptographic operation comprises:

generating a cryptographic key using the aggregated entropy, and

performing a cryptographic transformation on the at least one API value to obtain the at least one caller cryptographic parameter;

wherein performing an API operation comprises at least one of:

sending at least one cryptographic parameter to the API caller, and

executing the API logic using the at least one cryptographic parameter.

12. The system of claim 11 ,

wherein the parameter entropy comprises at least one attribute associated with the at least one API value.

13. The system of claim 11 ,

wherein collecting and aggregating the entropy from the at least one entropy source comprises generating a binary large object (BLOB) with a BLOB memory allocation sufficient to store the at least one API value.

14. The system of claim 13 ,

wherein the parameter entropy comprises BLOB entropy derived from the BLOB.

15. The system of claim 13 ,

wherein the BLOB comprises at least one of an encrypted BLOB and an unencrypted BLOB.

16. The system of claim 13 ,

wherein performing the cryptographic operation further comprises:

populating the BLOB memory allocation with the at least one API value; and

performing the cryptographic transformation on the BLOB to obtain a transformed BLOB;

wherein the at least one cryptographic parameter comprises the transformed BLOB.

17. The system of claim 16 ,

wherein sending the at least one cryptographic parameter to the API caller comprises sending the transformed BLOB to the API caller.

18. The system of claim 16 ,

wherein executing the API logic using the at least one cryptographic parameter comprises executing the API logic using the at least one API value stored within the transformed BLOB.

19. A method of protecting information passed between an application program interface (API) caller of an API and API logic contained within the API within a domain of a single operating system process, the method comprising steps of:

determining at least one API value to be passed to the API caller that enables execution of the API logic;

collecting and aggregating entropy from at least one entropy source;

performing a cryptographic operation on the at least one API value prior to execution of an API calling operation wherein the at least one API value being passed to the API logic that implements a functionality of the API, a result of said cryptographic operation comprising at least one caller cryptographic parameter;

passing the at least one caller cryptographic parameter to the API logic during execution of the API calling operation; and

performing an API operation when the at least one caller cryptographic parameter has passed by to the API logic, the API operation including decryption of the at least one caller cryptographic parameter and execution of the API logic using the API value included in the at least one decrypted caller cryptographic parameter.

20. The method of claim 19 ,

wherein the at least one API value comprises one or more of at least one encrypted parameter value, at least one unencrypted parameter value, at least one encrypted return value, at least one unencrypted return value, at least one encrypted binary large object (BLOB) memory allocation value, and at least one unencrypted BLOB memory allocation value;

wherein the at least one entropy source comprises at least one of environmental entropy, static entropy, and parameter entropy;

wherein the cryptographic operation comprises at least one of an encryption operation and a decryption operation;

wherein performing the cryptographic operation comprises:

generating a cryptographic key using the aggregated entropy, and

performing a cryptographic transformation on the at least one API value to obtain the at least one caller cryptographic parameter;

wherein performing an API operation comprises at least one of:

sending at least one caller cryptographic parameter to the API caller,

executing the API logic using the at least one caller cryptographic parameter, and

wherein the parameter entropy comprises at least one attribute associated with at least one caller cryptographic value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2020
From: STEELE, IAN PETER GEORGE
To: AVEVA SOFTWARE, LLC
Reel/Frame 053505/0381 →
Continuity (2)
Provisional Application 62729334 · Sep 10, 2018
Related Publication 20200082060A1 · Mar 12, 2020