P
US11520895B2ActiveUtilityPatentIndex 37

System and method for dynamic verification of trusted applications

Assignee: SAMSUNG ELECTRONICS CO LTDPriority: Dec 7, 2020Filed: Dec 7, 2020Granted: Dec 6, 2022
Est. expiryDec 7, 2040(~14.4 yrs left)· nominal 20-yr term from priority
Inventors:CHEN GENG (KEN)GRACE MICHAEL CTRAN CHU LY
G06F 21/572G06F 21/575G06F 21/57G06F 9/4406G06F 2221/033
37
PatentIndex Score
0
Cited by
22
References
20
Claims

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

exact text as granted — not AI-modified
What is claimed is: 
     
       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.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.