Symbian OS Trust Level Component Loading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing Symbian Operating System's platform security model makes it difficult for a calling process to load a plug-in framework consisting of dozens of binary components with varying capabilities, as it relies solely on capability levels without considering trust levels, limiting flexibility and security.

Innovation Solution

Assigning a 'trust level' to binary components, which determines the degree of trust, allowing calling processes to load DLLs with the same or higher trust levels without affecting their capability, and enabling manual loading of lower-capability DLLs while ensuring security through explicit loading and capability management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the Symbian OS platform security model relies solely on capability levels to control DLL loading, then security is maintained through a simple model, but flexibility and ease of operation are reduced making it difficult to load plug-in frameworks with dozens of binary components having different capabilities

Engineering Contradiction:
Improveflexibility in loading plug-in frameworksVSAvoiddifficulty in loading binary components
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The security model is segmented into two independent dimensions: capability levels (what the component can do) and trust levels (how much the system trusts the component). This segmentation allows independent management of security attributes, enabling flexible plug-in framework loading by separating functional permissions from trust relationships, thus resolving the contradiction between adaptability and ease of operation

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A new trust level dimension is added to the existing capability level dimension. This dimensional expansion transforms the security model from a single-axis capability check to a two-axis framework where trust levels provide an additional degree of freedom for component loading decisions, enabling complex plug-in scenarios without compromising security

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Adaptability or versatility

If the Symbian OS allows calling processes to load binary components with varying capabilities, then adaptability is improved, but security is worsened due to potential exploitation by malicious code with lower capabilities

Engineering Contradiction:
Improveability to load components with different capabilitiesVSAvoidsecurity against malicious code
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

Security controls are segmented into capability-based functional restrictions and trust-based access controls. Capability levels continue to define what operations a component can perform, while trust levels independently control which components can be loaded by which processes. This segmentation maintains security against malicious code while enabling adaptable component loading

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The trust level acts as an intermediary security mechanism between the calling process and the loaded component. Rather than directly controlling capability access, the trust level serves as an intermediate layer that mediates component loading decisions, providing an additional security checkpoint that prevents malicious code exploitation while allowing legitimate adaptive loading

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8713671B2System and method for providing an extended platform for an operating system
Publication Date: 2014.04.29 NOKIA TECHNOLOGIES OY
  • US8713671B2 patent drawing
  • US8713671B2 patent drawing
  • US8713671B2 patent drawing

AI summary

A system and method of adding programming to a Symbian operating system. A binary component for use by the operating system, with the binary component including both a capability level and a trust level. The trust level is either equal to or higher than the capability level. If the trust level of the binary component is equal to or higher than the capability of a calling process the calling process automatically loads the binary component.