Token-Based Software Execution Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvesoftware securityVSAvoidsoftware access flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvedevelopment accessVSAvoiddevice management
Core Design Contradiction:
Ease of operationVSDevice complexity

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #26Copying

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

Engineering Contradiction:
Improvetesting capabilityVSAvoidtesting confidence
Core Design Contradiction:
Adaptability or versatilityVSReliability

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.

Inventive Principle:
Principle #3Local quality

Data Source

PatentEP3163489B1Token-based control of software installation and operation
Publication Date: 2019.09.11 BLACKBERRY LTD
  • EP3163489B1 patent drawingFigure 1
  • EP3163489B1 patent drawingFigure 2
  • EP3163489B1 patent drawingFigure 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.