IP Library Granted Patent US 12,254,092
Granted Patent B2
US 12,254,092 · App. 17/832,273 · Granted Mar 18, 2025

Attestation of logic loader code and integrity checking service logic code in a trusted execution environment (TEE)

Inventors: Martin Schmatz (Rueschlikon, CH); Navaneeth Rameshan (Zurich, CH); Patricia M. Sagmeister (Adliswil, CH)
Assignee: International Business Machines Corporation
G06F21/57G06F21/64H04L9/0825
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,254,092
App. No.
17/832,273
Granted
Mar 18, 2025
Kind
B2
Abstract

A computer-implemented method according to one embodiment includes performing an attestation of code of a logic loader in a trusted execution environment (TEE) and receiving a request for the logic loader to load service logic code to the TEE. An integrity check of the service logic code associated with the request is performed. In response to the service logic code associated with the request passing the integrity check, the logic loader is allowed to load the service logic code associated with the request to the TEE. A computer program product according to another embodiment includes a computer readable storage medium having program instructions embodied therewith. The program instructions are readable and/or executable by a computer to cause the computer to perform the foregoing method.

Claims (61)

1. A computer-implemented method, comprising:

loading Application Programming Interface (API) code of a logic loader on a trusted execution environment (TEE);

performing an attestation of the logic loader API code, wherein the attestation is performed within the TEE;

receiving a request for the logic loader to load service logic code to the TEE;

in response to a determination that the logic loader API code passes attestation, performing an integrity check of the service logic code associated with the request; and

in response to the service logic code associated with the request passing the integrity check, allowing the logic loader to load the service logic code associated with the request to the TEE.

2. The computer-implemented method of claim 1 , comprising:

causing information to be provided to the logic loader, the information enabling performance of the integrity check of the service logic code.

3. The computer-implemented method of claim 2 , wherein the service logic code associated with the request is encrypted, wherein the information enables decryption of the service logic code in order for the integrity check of the service logic code to be performed, wherein the logic loader API code is configured to, when executed, cause loading of the service logic code.

4. The computer-implemented method of claim 2 , wherein the information is selected from the group consisting of: a fingerprint, a public encryption key, authenticated encryption information, and a private encryption key.

5. The computer-implemented method of claim 1 , comprising: allowing the service logic code associated with the request to be executed in response to the request being loaded to the TEE, wherein execution of the service logic code includes accessing information stored on a cloud service; and unloading the service logic code subsequent to the execution.

6. The computer-implemented method of claim 1 , comprising:

in response to the service logic code associated with the request not passing the integrity check, causing the logic loader to not load the service logic code associated with the request to the TEE; and

outputting a warning about the request,

wherein the warning specifies to execute a predetermined security protocol on the TEE for ensuring that the TEE has not been compromised by a fraudulent actor.

7. The computer-implemented method of claim 1 , comprising:

receiving an update for the service logic code associated with the request subsequent to the integrity check being performed;

updating the service logic code associated with the request; and

performing a subsequent integrity check on the updated service logic code prior to the updated service logic code being loaded to the TEE.

8. The computer-implemented method of claim 1 , comprising:

performing remote attestation for determining whether the request is received from a trustworthy service administrator device;

in response to a determination that the request is received from the trustworthy service administrator device, allowing performance of the integrity check of the service logic code associated with the request; and

in response to a determination that the request is not received from the trustworthy service administrator device, not allowing performance of the integrity check of the service logic code associated with the request.

9. A computer program product, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions readable and/or executable by a computer to cause the computer to:

load Application Programming Interface (API) code of a logic loader on a trusted execution environment (TEE);

perform, by the computer, an attestation of the logic loader API code, wherein the attestation is performed within the TEE;

receive, by the computer, a request for the logic loader to load service logic code to the TEE;

in response to a determination that the logic loader API code passes attestation, perform, by the computer, an integrity check of the service logic code associated with the request; and

in response to the service logic code associated with the request passing the integrity check, allow, by the computer, the logic loader to load the service logic code associated with the request to the TEE.

10. The computer program product of claim 9 , the program instructions readable and/or executable by the computer to cause the computer to:

cause, by the computer, information to be provided to the logic loader, the information enabling performance of the integrity check of the service logic code.

11. The computer program product of claim 10 , wherein the service logic code associated with the request is encrypted, wherein the information enables decryption of the service logic code in order for the integrity check of the service logic code to be performed, wherein the logic loader API code is configured to, when executed, cause loading of the service logic code.

12. The computer program product of claim 10 , wherein the information is selected from the group consisting of: a fingerprint, a public encryption key, authenticated encryption information, and a private encryption key.

13. The computer program product of claim 9 , the program instructions readable and/or executable by the computer to cause the computer to: allow, by the computer, the service logic code associated with the request to be executed in response to the request being loaded to the TEE, wherein execution of the service logic code includes accessing information stored on a cloud service; and unload, by the computer, the service logic code subsequent to the execution.

14. The computer program product of claim 9 , the program instructions readable and/or executable by the computer to cause the computer to:

in response to the service logic code associated with the request not passing the integrity check, cause, by the computer, the logic loader to not load the service logic code associated with the request to the TEE; and

output, by the computer, a warning about the request,

wherein the warning specifies to execute a predetermined security protocol on the TEE for ensuring that the TEE has not been compromised by a fraudulent actor.

15. The computer program product of claim 9 , the program instructions readable and/or executable by the computer to cause the computer to:

receive, by the computer, an update for the service logic code associated with the request subsequent to the integrity check being performed;

update, by the computer, the service logic code associated with the request; and

perform, by the computer, a subsequent integrity check on the updated service logic code prior to the updated service logic code being loaded to the TEE.

16. The computer program product of claim 9 , the program instructions readable and/or executable by the computer to cause the computer to:

perform, by the computer, remote attestation for determining whether the request is received from a trustworthy service administrator device;

in response to a determination that the request is received from the trustworthy service administrator device, allow, by the computer, performance of the integrity check of the service logic code associated with the request; and

in response to a determination that the request is not received from the trustworthy service administrator device, not allow, by the computer, performance of the integrity check of the service logic code associated with the request.

17. A system, comprising:

a hardware processor; and

logic integrated with the hardware processor, executable by the hardware processor, or integrated with and executable by the hardware processor, the logic being configured to:

load Application Programming Interface (API) code of a logic loader on a trusted execution environment (TEE);

perform an attestation of the logic loader API code, wherein the attestation is performed within the TEE;

receive a request for the logic loader to load service logic code to the TEE;

in response to a determination that the logic loader API code passes attestation, perform an integrity check of the service logic code associated with the request; and

in response to the service logic code associated with the request passing the integrity check, allow the logic loader to load the service logic code associated with the request to the TEE.

18. The system of claim 17 , the logic being configured to:

cause information to be provided to the logic loader, the information enabling performance of the integrity check of the service logic code.

19. The system of claim 17 , the logic being configured to: allow the service logic code associated with the request to be executed in response to the request being loaded to the TEE, wherein execution of the service logic code includes accessing information stored on a cloud service; and unload the service logic code subsequent to the execution.

20. The system of claim 17 , the logic being configured to:

in response to the service logic code associated with the request not passing the integrity check, cause the logic loader to not load the service logic code associated with the request to the TEE; and

output a warning about the request,

wherein the warning specifies to execute a predetermined security protocol on the TEE for ensuring that the TEE has not been compromised by a fraudulent actor.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2022
From: SCHMATZ, MARTIN; RAMESHAN, NAVANEETH; SAGMEISTER, PATRICIA M.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 060207/0176 →
Continuity (1)
Related Publication 20230394150A1 · Dec 7, 2023
References Cited (47)
US 9087200B2 · McKeen et al. · 2015 [cited by applicant]
US 9444627B2 · Varadarajan et al. · 2016 [cited by applicant]
US 9846787B2 · Johnson et al. · 2017 [cited by applicant]
US 9864861B2 · Xing et al. · 2018 [cited by applicant]
US 10511598B2 · Shanahan et al. · 2019 [cited by applicant]
US 10601590B1 · Chhabra · 2020 [cited by examiner]
US 10805087B1 · Allen · 2020 [cited by examiner]
US 10867030B2 · Liu · 2020 [cited by applicant]
US 11288377B1 · Kopylov · 2022 [cited by examiner]
US 11748481B1 · Hamlin · 2023 [cited by examiner]
US 20120266167A1 · Spiers · 2012 [cited by examiner]
US 20140258700A1 · England · 2014 [cited by examiner]
US 20150081554A1 · Wong · 2015 [cited by examiner]
US 20170093803A1 · Nayshtut · 2017 [cited by examiner]
US 20170289151A1 · Shanahan · 2017 [cited by examiner]
US 20180097809A1 · Chakrabarti · 2018 [cited by examiner]
US 20190243950A1 · Soriente · 2019 [cited by examiner]
US 20200021445A1 · Caceres · 2020 [cited by examiner]
US 20200387893A1 · Maim · 2020 [cited by applicant]
US 20210014068A1 · Sandler · 2021 [cited by examiner]
US 20210019393A1 · Michalevsky et al. · 2021 [cited by applicant]
US 20210111892A1 · Vahldiek-Oberwagner · 2021 [cited by examiner]
US 20210328787A1 · Grieder et al. · 2021 [cited by applicant]
US 20210374234A1 · Bursell · 2021 [cited by applicant]
US 20220006620A1 · Bursell · 2022 [cited by examiner]
US 20220019698A1 · Durham · 2022 [cited by examiner]
US 20220129591A1 · K. · 2022 [cited by examiner]
US 20220156390A1 · Karame · 2022 [cited by examiner]
US 20220171883A1 · Bursell · 2022 [cited by examiner]
US 20220222323A1 · Naqvi · 2022 [cited by examiner]
US 20220294643A1 · Wang · 2022 [cited by examiner]
US 20230036165A1 · Bursell · 2023 [cited by examiner]
US 20230068880A1 · Liu · 2023 [cited by examiner]
US 20230168911A1 · Lopez Pascual · 2023 [cited by examiner]
US 20230297666A1 · Atamli · 2023 [cited by examiner]
US 20230308277A1 · Van Cleve · 2023 [cited by examiner]
EP 3866036A1 · 2021 [cited by applicant]
WO WO2020177879A1 · 2020 [cited by examiner]
WO WO2023186328A1 · 2023 [cited by examiner]
International Search Report and Written Opinion from PCT Application No. PCT/EP2023/064009, dated Jul. 24, 2023. [cited by applicant]
Silva et al., “DynSGX: A Privacy Preserving Toolset for Dynamically Loading Functions into Intel(R) SGX Enclaves,” IEEE CloudCom, 2017, 8 pages, retrieved from https://arxiv.org/abs/1710.11423. [cited by applicant]
AWS, “How to clone an AWS CloudHSM cluster across regions,” AWS Security Blog, Oct. 1, 2018, 12 pages, retrieved from https://aws.amazon.com/blogs/security/how-to-clone-an-aws-cloudhsm-cluster-across-regions/. [cited by applicant]
Anonymous, “NIST Cloud Computing Program,” NIST, Information Technology Laboratory, Nov. 13, 2013, pp. 1-2, retrieved from www.nist.gov/itl/cloud/. [cited by applicant]
Mell et al., “The NIST Definition of Cloud Computing,” National Institute of Standards and Technology, Information Technology Laboratory, Version 15, Oct. 7, 2009, pp. 1-2. [cited by applicant]
Mell et al., “The NIST Definition of Cloud Computing,” Recommendations of the National Institute of Standards and Technology, Special Publication 800-145, Sep. 2011, pp. 1-7, retrieved from https://doi.org/10.6028/NIST.… [cited by applicant]
CSRC, “Cloud Computing,” Computer Security Resource Center, Oct. 2017, 3 pages, retrieved from https://csrc.nist.gov/projects/cloud-computing. [cited by applicant]
Birkholz et al., “ Remote Attestation Procedures Architecture draft-ietf-rats-architecture-15,” RATS Working Group, Feb. 8, 2022, 47 pages. [cited by applicant]