IP Library Granted Patent US 11,520,895
Granted Patent B2
US 11,520,895 · App. 17/113,980 · Granted Dec 6, 2022

System and method for dynamic verification of trusted applications

Inventors: Geng (Ken) Chen (San Jose, CA); Michael C. Grace (Sunnyvale, CA); Chu Ly Tran (San Jose, CA)
Assignee: Samsung Electronics Co., Ltd.
G06F21/575G06F9/4406G06F21/572G06F2221/033
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,520,895
App. No.
17/113,980
Granted
Dec 6, 2022
Kind
B2
Abstract

An electronic device, a method, and a non-transitory, computer-readable medium storing instructions for dynamically verifying trusted applications (TAs) during a boot sequence. The electronic device includes a memory and a processor operably connected to the memory. The processor executes instructions stored in the memory to cause the electronic device to initialize a kernel boot sequence in response to confirming that executable codes for booting the electronic device are from a trusted binary and then verify one or more registered TAs during the kernel boot sequence. Completion of the kernel boot sequence is based on verification results of the set of registered TAs.

Claims (73)

1. An electronic device comprising:

a memory storing instructions and one or more registered trusted applications (TAs); and

a processor operably connected to the memory, the processor configured to execute the instructions to cause the electronic device to:

initialize a kernel boot sequence of the electronic device in response to confirming that executable codes for booting the electronic device are from a trusted binary; and

during the kernel boot sequence, verify the one or more registered TAs can be loaded by a secure operating system (OS) of the electronic device and unloaded,

wherein, to verify the one or more registered TAs, the processor is configured to execute the instructions to cause the electronic device to confirm, by the secure OS, a signature of a specified registered TA of the one or more registered TAs and a rollback prevention (RP) version of the specified registered TA, and

wherein completion of the kernel boot sequence is based on verification results of the one or more registered TAs.

2. The electronic device of claim 1 , wherein the processor is configured to execute the instructions to cause the electronic device to:

complete the kernel boot sequence based on the verification results indicating that a subset of the one or more registered TAs is verified; and

load an unsecured OS based on the kernel boot sequence being completed.

3. The electronic device of claim 1 , wherein the processor is configured to execute the instructions to cause the electronic device to:

complete the kernel boot sequence based on the verification results indicating that each of the one or more registered TAs is verified, or terminate the kernel boot sequence without loading an unsecured OS based on the verification results indicating that any of the one or more registered TAs is not verified.

4. The electronic device of claim 1 , wherein the verification results include at least one of a status code or diagnostic information.

5. The electronic device of claim 1 , wherein . , to verify the one or more registered TAs, the processor is configured to execute the instructions to cause the electronic device to:

generate, by a TA dynamic verification module (TDVM), a load request for the specified registered TA;

route, by a trusted execution environment (TEE) application programming interface (API), the load request to the secure OS; and

load, by the secure OS, the specified registered TA into a secure memory in response to the confirmation of the signature and the RP version by the secure OS.

6. The electronic device of claim 5 , wherein the processor is configured to execute the instructions to cause the electronic device to:

call, by the TDVM, one or more self-diagnostic functions for the specified registered TA loaded into the secure memory, each of the one or more self-diagnostic functions pre-defined by an owner of the specified registered TA and corresponding to the specified registered TA, and

wherein the verification results comprise results of the one or more self-diagnostic functions.

7. The electronic device of claim 6 , wherein the one or more self-diagnostic functions comprise at least one of:

performing a cryptographic function test;

performing a test on a secure random API;

verifying whether a replay protected memory block (RPMB) is accessible with valid data;

wrapping or unwrapping associated secured objects; or verifying that a secure file system (SFS) is available.

8. A method for booting an electronic device, the method comprising:

initializing, by a bootloader of the electronic device, a kernel boot sequence in response to confirming that executable codes for booting the electronic device are from a trusted binary; and

during the kernel boot sequence, verifying, by a trusted application dynamic verification module (TDVM) of the electronic device, one or more registered trusted applications (TAs) can be loaded by a secure operating system (OS) of the electronic device and unloaded,

wherein verifying the one or more registered TAs comprises confirming, by the secure OS, a signature of a specified registered TA of the one or more registered TAs and a rollback prevention (RP) version of the specified registered TA, and

wherein completion of the kernel boot sequence is based on verification results of the one or more registered TAs, wherein a memory of the electronic device stores the one or more TAs.

9. The method of claim 8 , further comprising:

completing, by the bootloader, the kernel boot sequence based on the verification results indicating that a subset of the one or more registered TAs is verified; and

loading, by the bootloader, an unsecured OS based on the kernel boot sequence being completed.

10. The method of claim 9 , wherein:

the kernel boot sequence is completed, by the bootloader, based on the verification results indicating that each of the one or more registered TAs is verified, or

the kernel boot sequence is terminated without loading an unsecured OS, by the bootloader, based on the verification results indicating that any of the one or more registered TAs is not verified.

11. The method of claim 9 , wherein the verification results include at least one of a status code or diagnostic information.

12. The method of claim 8 , wherein verifying the one or more registered TAs further comprises:

generating, by the TDVM, a load request for the specified registered TA;

routing, by a trusted execution environment (TEE) application programming interface (API), the load request to the secure OS; and

loading, by the secure OS, the specified registered TA into a secure memory in response to the confirmation of the signature and the RP version by the secure OS.

13. The method of claim 12 , further comprising:

calling, by the TDVM, one or more self-diagnostic functions for the specified registered TA loaded into the secure memory, each of the one or more self-diagnostic functions pre-defined by an owner of the specified registered TA and corresponding to the specified registered TA, and

wherein the verification results comprise results of the one or more self-diagnostic functions.

14. The method of claim 13 , wherein the one or more self-diagnostic functions comprise at least one of:

performing a cryptographic function test;

performing a test on a secure random API;

verifying whether a replay protected memory block (RPMB) is accessible with valid data;

wrapping or unwrapping associated secured objects; or

verifying that a secure file system (SFS) is available.

15. A non-transitory computer-readable medium comprising instructions that, when executed by a processor of an electronic device having a memory that stores one or more registered trusted applications (TAs), are configured to cause the processor to:

initialize, by a bootloader of the electronic device, a kernel boot sequence in response to confirming that executable codes for booting the electronic device are from a trusted binary; and

during the kernel boot sequence, verify, by a trusted application dynamic verification module (TDVM) of the electronic device, the one or more registered TAs can be loaded by a secure operating system (OS) of the electronic device and unloaded,

wherein the instructions that when executed are configured to cause the processor to verify the one or more registered TAs comprise instructions that when executed are configured to cause the processor to confirm, by the secure OS, a signature of a specified registered TA of the one or more registered TAs and a rollback prevention (RP) version of the specified registered TA, and

wherein completion of the kernel boot sequence is based on verification results of the one or more registered TAs.

16. The non-transitory computer-readable medium of claim 15 , wherein the instructions when executed are further configured to cause the processor to:

complete, by the bootloader, the kernel boot sequence based on the verification results indicating that a subset of the one or more registered TAs is verified; and

load, by the bootloader, an unsecured OS based on the kernel boot sequence being completed.

17. The non-transitory computer-readable medium of claim 16 , wherein:

the kernel boot sequence is completed, by the bootloader, based on the verification results indicating that each of the one or more registered TAs is verified, or

the kernel boot sequence is terminated without loading an unsecured OS, by the bootloader, based on the verification results indicating that any of the one or more registered TAs is not verified.

18. The non-transitory computer-readable medium of claim 15 , wherein the instructions that when executed are configured to cause the processor to verify the one or more registered TAs comprise instructions that when executed are configured to cause the processor to:

generate, by the TDVM, a load request for the specified registered TA;

route, by a trusted execution environment (TEE) application programming interface (API), the load request to the secure OS; and

load, by the secure OS, the specified registered TA into a secure memory in response to the confirmation of the signature and the RP version by the secure OS.

19. The non-transitory computer-readable medium of claim 18 , wherein the instructions when executed are further configured to cause the processor to:

call, by the TDVM, one or more self-diagnostic functions for the specified registered TA loaded into the secure memory, each of the one or more self-diagnostic functions pre-defined by an owner of the specified registered TA and corresponding the specified registered TA, and

wherein the verification results comprise results of the one or more self-diagnostic functions.

20. The non-transitory computer-readable medium of claim 19 , wherein the one or more self-diagnostic functions comprise at least one of:

performing a cryptographic function test;

performing a test on a secure random API;

verifying whether a replay protected memory block (RPMB) is accessible with valid data;

wrapping or unwrapping associated secured objects; or verifying that a secure file system (SFS) is available.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2020
From: CHEN, GENG (KEN); GRACE, MICHAEL C.; TRAN, CHU LY
To: SAMSUNG ELECTRONICS CO., LTD
Reel/Frame 054567/0531 →
Continuity (1)
Related Publication 20220179963A1 · Jun 9, 2022
Cited By (1)
US 12,706,760