Certificate Pinning Update via Publishing Service

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The process of updating software that uses pinned certificates is error-prone and insecure, particularly when the software provider's certificate changes, as it requires manual updates and can lead to verification failures or hijacking attacks if not managed correctly.

Innovation Solution

Implementing a system where the software automatically retrieves new code signing certificates from a certificate publishing service, decoupling the update process from certificate changes, and using a nonce and shared secret for secure verification to prevent hijacking attacks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual updates are used to update pinned certificates in software, then the software can be updated when certificate changes occur, but the process becomes error-prone and insecure

Engineering Contradiction:
Improvecertificate update reliabilityVSAvoidupdate process complexity
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The software automatically retrieves new certificates from a certificate publishing service without requiring manual intervention. The system self-updates by detecting certificate changes, fetching new certificates, and updating its pinned certificate store autonomously, eliminating human error in the update process

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The certificate publishing service pre-publishes new certificates before they are needed by the software. This allows the software to automatically retrieve pre-prepared certificates when updates are needed, rather than waiting for manual update processes

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If the software automatically retrieves new certificates from a certificate publishing service, then the update process is simplified and secured, but additional system components and network dependencies are introduced

Engineering Contradiction:
Improveupdate process automationVSAvoidsystem architecture complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

A certificate publishing service acts as an intermediary between the certificate authority and the software. This mediator handles the complexity of certificate management, allowing the software to simply query and retrieve certificates without dealing with the underlying complexity of certificate lifecycle management

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The certificate management functionality is extracted from the main software application and placed in a separate, dedicated certificate publishing service. This extraction isolates the complexity into a specialized component that can be independently managed and updated

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If certificate pinning is used to authenticate software updates, then security against hijacking attacks is improved, but the software must be updated every time the certificate changes

Engineering Contradiction:
Improvesecurity against hijackingVSAvoidupdate frequency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The certificate pinning mechanism transitions from a static, hardcoded certificate approach to a dynamic system that automatically retrieves and updates certificates. The software maintains security through pinning while adapting to certificate changes by dynamically fetching new certificates from the publishing service

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11765155B1Robust and secure updates of certificate pinning software
Publication Date: 2023.09.19 AMAZON TECH INC
  • US11765155B1 patent drawing
  • US11765155B1 patent drawing
  • US11765155B1 patent drawing

AI summary

Systems and methods are disclosed to implement an application that can automatically download new digital certificates to verify signed code updates received by the application. In embodiments, under normal circumstances, the application uses a pinned certificate in the application's executable code to verify received updates signed using the certificate. However, if the code signing certificate changes, the application will automatically retrieve the new certificate from a certificate publishing service. Accordingly, the new certificate does not have to be included as part of the code update package, and the retrieval of the new certificate can be managed more robustly by the application updater. In embodiments, downloads from the certificate publishing service may be secured using a nonce and a shared secret that is known to the service and also pinned to the application. In this way, the download process can be protected from hijacking attacks.