Code Signing Mechanism for Secure Function Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing operating systems lack effective mechanisms to ensure that applications only access secure functions and input parameters after verifying the cryptographic signatures associated with those functions and parameters, potentially leading to unauthorized access and security policy violations.

Innovation Solution

A security handler is implemented to verify the cryptographic signatures of applications before allowing access to secure classes, functions, and input parameters by comparing local digital signatures with test digital signatures generated using hash functions and public cryptographic keys, ensuring that only signed applications with corresponding code signing keys can access secure elements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If cryptographic signature verification is implemented for secure functions and parameters, then security is improved, but device complexity increases

Engineering Contradiction:
ImprovesecurityVSAvoiddevice complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-defining secure functions and secure input parameters with associated cryptographic signatures before runtime. The security handler is pre-configured with public keys and signature requirements, allowing it to automatically verify application credentials before granting access to secure elements, thus improving security without requiring complex runtime decision-making

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The security handler acts as an intermediary component that mediates between applications and secure system functions. It receives access requests, verifies cryptographic signatures using pre-stored public keys, and determines whether to grant access based on signature validation results. This intermediary layer enforces security policies without requiring the application developer to implement complex verification logic

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If multiple code signing keys are required for different secure elements, then security is improved, but ease of operation deteriorates

Engineering Contradiction:
ImprovesecurityVSAvoidease of operation
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent implements universality by designing a single security handler that handles verification for multiple secure functions and parameters using different code signing keys. The security handler maintains a registry of public keys associated with different secure elements and automatically selects the appropriate key for verification based on the function being accessed. This allows one security component to enforce multiple security policies without requiring separate verification mechanisms for each secure element

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system applies parameter changes by associating different cryptographic parameters (public keys, signature algorithms, security policies) with different secure functions and input parameters. Each secure element can have its own security requirements defined as parameters, allowing fine-grained control over which applications can access which functions based on their cryptographic credentials, without simplifying the underlying multi-key security architecture

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP2224370B1Low-level code signing mechanism
Publication Date: 2016.04.13 BLACKBERRY LTD
  • EP2224370B1 patent drawingFigure 1
  • EP2224370B1 patent drawingFigure 2
  • EP2224370B1 patent drawingFigure 3

AI summary

Before an application is allowed to execute a secure function, code signing keys associated with the application are analyzed for correspondence with the class that contains the secure function as well as correspondence with the secure function. Optionally, code signing keys associated with the application are analyzed for correspondence with the input parameters to the function.