Certificate Pinning Update via Publishing Service
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
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
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
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
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
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
Data Source
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.


