Conditional Authentication for Code Signing Certificates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional code signing certificate based authentication mechanisms are inadequate in preventing misuse and rogue developers, as they rely solely on the security of private keys and do not protect against attackers or malicious apps signed with stolen certificates.

Innovation Solution

Implementing a conditional authentication method that uses a software application's identity to obtain and authenticate a public key and associated installation/operation conditions, which are used to control the installation and operation of the application, thereby enhancing security by limiting trust based on specified conditions such as package names, permissions, prevalence, installation patterns, and binary structure.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If conventional code signing certificate authentication is used, then app installation is simplified and trusted sources are recognized, but the system cannot protect against attackers or rogue developers who obtain stolen certificates

Engineering Contradiction:
Improveapp installation processVSAvoidsecurity against certificate misuse
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent segments the authentication process into multiple independent verification stages: initial certificate-based authentication, followed by conditional authentication requiring additional verification methods (such as re-signing with updated certificates or providing proof of authorization). This segmentation allows the system to maintain ease of operation for legitimate apps while adding security layers that activate only when needed to prevent certificate misuse.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary authentication using the code signing certificate before allowing app installation and execution. This preliminary action establishes a baseline trust level, and only after this initial verification does the system proceed to further conditional checks if required, ensuring that no unverified code can execute on the device.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If additional authentication mechanisms are implemented, then security against rogue developers is improved, but the complexity of the authentication system increases

Engineering Contradiction:
Improvesecurity against certificate misuseVSAvoidauthentication system
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The authentication system is designed to be dynamic rather than static. It adapts its verification requirements based on the specific app and developer context. For well-established developers with clean records, the system may require only standard certificate verification. For unknown or suspicious developers, additional conditional authentication steps are automatically triggered. This dynamic approach maintains security while minimizing unnecessary complexity for legitimate applications.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent introduces an intermediary authentication layer that acts as a mediator between the initial certificate verification and full app installation. This intermediary stage can require additional proofs of authorization, re-signing with updated certificates, or verification through trusted third parties. By inserting this intermediary layer, the system adds security without making the entire authentication process inherently complex, as the additional steps are only activated when needed.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If code signing certificates are used to minimize AV scanning, then computational load is reduced and device performance improves, but the system becomes vulnerable to malware signed with stolen certificates

Engineering Contradiction:
Improvedevice performanceVSAvoidmalware execution risk
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The system applies partial AV scanning based on the authentication outcome. Apps that pass both initial certificate authentication and conditional verification receive full trust and are exempt from scanning, maintaining high device performance. However, apps that fail conditional authentication or come from unverified sources undergo partial or full AV scanning, providing excessive security action where needed. This selective approach balances performance optimization with malware protection.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The authentication system incorporates feedback loops where the results of initial certificate verification influence subsequent scanning decisions. If an app's certificate and conditional authentication succeed, the system receives positive feedback and skips intensive scanning. If verification fails or raises suspicions, negative feedback triggers additional AV scanning. This feedback mechanism allows the system to dynamically adjust security measures based on real-time verification outcomes, optimizing both performance and security.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10050977B2Preventing misuse of code signing certificates
Publication Date: 2018.08.14 RPX CORP
  • US10050977B2 patent drawing
  • US10050977B2 patent drawing
  • US10050977B2 patent drawing

AI summary

A method of authenticating or controlling a software application on an end user device. The method includes, at the end user device, downloading software application data from a remote server, the data including application code, a cryptographically derived signature obtained using said application code, and an identity of an application developer. The identity is then used as a look-up key to obtain or authenticate a public key of the application data, and to obtain one or more associated installation and/or operation conditions. The cryptographically derived signature is authenticated using said application code and said public key, and, in the event that authentication is successful, authentication of the application code is performed and/or installation and/or operation of the application controlled using said conditions.