Software Decryption Key Injection for Secure Over-the-Air Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The management of software decryption keys for encrypted software on computing devices is challenging, particularly in ensuring secure key sharing and distribution while maintaining production efficiency and cost-effectiveness, especially in environments with diverse chip manufacturers and software providers.
Innovation Solution
A key injection method is implemented where a class key is shared among devices, stored in a protected state within the secure execution environment, and managed by a key injection software component, allowing for efficient over-the-air updates without the need for bespoke keys or complex key distribution, using a device-specific key for protection.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If software encryption is used to prevent reverse engineering, then security against hackers is improved, but key management complexity increases
Solution Approach 1:
The patent segments key management by separating device-specific keys (stored securely in each device) from software decryption keys (distributed to multiple devices). This segmentation allows individual device security while enabling shared software updates, resolving the contradiction between security and key management complexity.
Solution Approach 2:
The patent introduces an intermediary key hierarchy where device-specific keys act as mediators to protect software decryption keys. The device-specific keys never leave the device, while software decryption keys can be distributed, creating an intermediary layer that simplifies key management while maintaining security.
2Reliability
If device-specific keys are used for software decryption, then security is improved, but production cost and complexity increase
Solution Approach 1:
The patent segments the key system into device-specific keys (generated during device production) and software decryption keys (derived from class keys). This allows mass production with standardized processes while maintaining individual device security, reducing production costs compared to fully custom key provisioning.
Solution Approach 2:
The patent implements class keys that can be shared across multiple devices of the same type, allowing a single key provisioning process to serve multiple devices. This universality reduces production complexity and cost while the device-specific key derivation maintains individual security.
3Productivity
If class keys are shared across devices, then production efficiency is improved, but security against key extraction is worsened
Solution Approach 1:
The patent segments the key hierarchy so that class keys are never stored in devices but only used to derive device-specific keys. The actual decryption keys are device-specific and derived locally, preventing key extraction attacks while maintaining production efficiency through class-based key derivation.
Solution Approach 2:
The patent performs preliminary key derivation during device production where device-specific keys are generated and stored securely. The class key derivation happens in advance during device provisioning, but the actual software decryption capability is established locally in each device, preventing later key extraction while enabling efficient updates.
4Reliability
If encrypted software is distributed, then security against reverse engineering is improved, but update distribution complexity increases
Solution Approach 1:
The patent uses universal class keys to encrypt software updates that can be distributed to multiple devices simultaneously. Since class keys are derived from device-specific keys through a known process, a single encrypted update package can be securely distributed to an entire class of devices, simplifying update distribution while maintaining security.
Data Source
Figure 1~2
Figure 3~4
Figure 5~6
AI summary
A software decryption key is injected into a computing device 2 having a secure execution environment 20 and a less secure execution environment 22. The key 38 is for decryption of software to be run on the computing device. A key injection software component 36 executed within the secure execution environment 20 is used to control storage of the software decryption key 38 in a protected state in which the software decryption key is unreadable in the clear from the key storage location by an external device or by program code executed in the less secure execution environment 22 of the computing device. Software provided to the device is decrypted based on the injected software decryption key 38.