Trusted Code Groups for Library Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Managing trust between executing application code and loaded libraries is challenging, especially as applications become more complex and libraries are sourced from untrusted locations, with no effective mechanism to evaluate the trustworthiness of code libraries.

Innovation Solution

Implementing a method that uses Trusted Code Groups (TCGs) and digital signatures to verify the trustworthiness of libraries by comparing the library's TCG ID to an application's authorized list before loading, ensuring only trusted libraries execute within the application's memory boundary.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If libraries are loaded from various locations without verification, then the application can access more functionality and resources, but the security and integrity of the application is compromised

Engineering Contradiction:
Improveability to load libraries from various locationsVSAvoidtrustworthiness of loaded libraries
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system performs preliminary verification of library signatures and TCG membership before allowing libraries to be loaded into the application's memory space. The operating system checks the digital signature and TCG ID against the application's authorized list prior to loading, preventing untrusted libraries from being introduced.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary verification mechanism between the application and libraries. The operating system acts as a mediator that validates library trustworthiness through signature verification and TCG checking, standing between the application and potentially malicious libraries.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If signature verification is performed on all libraries before loading, then the security of the application is improved, but the loading time and processing overhead increases

Engineering Contradiction:
Improvesecurity of applicationVSAvoidlibrary loading time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs verification only on critical trust attributes (signature and TCG ID) rather than exhaustive analysis of all library properties. This partial verification approach provides sufficient security while minimizing the time penalty compared to more comprehensive checking.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8020001B2Trusted code groups
Publication Date: 2011.09.13 QUALCOMM INC
  • US8020001B2 patent drawing
  • US8020001B2 patent drawing
  • US8020001B2 patent drawing

AI summary

Described are techniques and mechanisms for enforcing trust between an application and a library loaded by the application. Very generally stated, the application declares one or more trusted code groups (“TCGs”) of which a library must be a member to be authorized for execution with the application. Libraries that are authorized to assert membership in one or more TCGs include a secure indicator of that membership. As the application executes and attempts to load a library, that libraries membership in a TCG authorized by the application is verified prior to loading the library.