Token-Based Software Execution Control
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Computing device manufacturers face challenges in preventing unauthorized software installation and access to restricted features, as secure devices only boot signed software, while insecure devices are needed for development and testing, posing security and management issues.
Innovation Solution
A method and system that utilize tokens to authenticate and authorize pre-release software execution on computing devices, allowing specific pre-release keys and features to be accessed for development and testing, while maintaining security by using a bootloader to validate tokens and authenticate software images.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a locked processor is used to prevent unauthorized software installation, then security is improved, but access to pre-release software and development features is blocked
Solution Approach 1:
The security system is segmented into multiple authentication mechanisms: production keys for authorized software, pre-release keys for development software, and tokens for temporary access. This allows the locked processor to maintain security while selectively allowing different types of software based on their authentication credentials.
Solution Approach 2:
Tokens serve as intermediary credentials that mediate between the locked processor and pre-release software. The token contains a unique identifier and expiration date, allowing temporary access to development features without permanently unlocking the device or compromising production security.
2Ease of operation
If insecure devices with unlocked processors are used for development and testing, then software development access is improved, but security risks and management complexity increase
Solution Approach 1:
The device security state is made dynamic rather than static. A locked processor can temporarily transition to an unlocked state when a valid pre-release token is presented, enabling development access only when needed. The token includes an expiration date that automatically re-locks the processor, creating a dynamic security model.
Solution Approach 2:
Instead of creating physical copies of unlocked devices, the system creates virtual copies of security credentials (tokens) that can be distributed and managed. Each token is a unique copy containing device identifier and expiration information, allowing multiple developers to access the same secure device without compromising security.
3Adaptability or versatility
If production devices run OS images with fewer security restrictions for testing, then development functionality is improved, but confidence in testing and potential mistaken release decrease
Solution Approach 1:
Security restrictions are applied locally at the authentication level rather than globally at the OS level. The bootloader and processor maintain consistent security policies, but individual software executions are selectively permitted based on their authentication credentials and associated tokens, allowing testing capabilities without compromising overall system security.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Described are a method and system of authorizing software execution on a computing device having a processor, the device storing a production key associated with software authorized for end-user release and storing a pre-release key associated with software not authorized for end-user release. The method includes determining that a signed software image is not signed with the production key; determining that the device has stored in memory thereon a pre-release token, the pre-release token containing data uniquely identifying the device and identifying the pre-release key; validating the pre-release token; and authenticating the signed software image using the pre-release key and, in response, permitting execution of the software image.