Blockchain Certificate Pinning for Secure SSL/TLS Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Certificate pinning in SSL/TLS protocols is inefficient due to the need for frequent updates of pinned public keys, leading to burdens for application developers and potential security breaches from forged certificates, especially when certificate authorities issue shorter-lived certificates.
Innovation Solution
Storing and retrieving pinned public keys from a distributed ledger like a blockchain, allowing client devices to obtain the latest valid public keys automatically, ensuring secure communication without manual updates and reducing the risk of forged certificates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If certificate pinning is implemented with frequent updates of pinned public keys, then security against forged certificates is improved, but the complexity of maintenance and updates increases
Solution Approach 1:
The system enables client devices to automatically retrieve updated pinned public keys from the blockchain without requiring manual intervention from developers or system administrators. The client device autonomously queries the blockchain, verifies the certificate authority's public key, and updates its pinned public key list, eliminating the maintenance burden while maintaining high security standards.
Solution Approach 2:
The blockchain serves as an intermediary between the certificate authority and client devices, providing a decentralized, immutable storage mechanism for pinned public keys. This intermediary eliminates the need for centralized key management systems and manual update processes, reducing maintenance complexity while enhancing security through cryptographic verification.
2Reliability
If manual updates of pinned public keys are required, then control over certificate validation is maintained, but the time and effort required for updates increases
Solution Approach 1:
The certificate authority's public key is pre-stored on the blockchain, enabling client devices to automatically retrieve and use updated pinned public keys without waiting for manual intervention. This preliminary placement of trust anchors on the immutable blockchain enables automatic, real-time updates while maintaining cryptographic control over certificate validation.
Solution Approach 2:
Client devices automatically query the blockchain for updated pinned public keys and perform local verification without requiring manual updates. This self-service mechanism eliminates time losses associated with manual key distribution and deployment while maintaining strict control over which certificates are valid through cryptographic verification.
3Reliability
If pinned public keys are stored in a centralized location, then updates can be controlled, but the system becomes vulnerable to single points of failure
Solution Approach 1:
The system segments the trust model by distributing the certificate authority's public key across multiple nodes in a decentralized blockchain network. This segmentation eliminates single points of failure while maintaining update control through cryptographic signatures, as each node independently verifies the authenticity of pinned public keys against the immutable blockchain ledger.
Solution Approach 2:
The blockchain acts as a decentralized intermediary that distributes trust across multiple nodes rather than concentrating it in a single centralized location. This intermediary mechanism maintains update control through cryptographic verification while eliminating vulnerability to single points of failure through the immutable, distributed nature of the blockchain ledger.
Data Source
AI summary
Disclosed are various embodiments for replacing hard-coded certificate pinning with blockchain based certificate pinning. A signing device can obtain a public key from an endpoint device, produce a signature for the public key, and store the public key on a distributed data store, such as a blockchain. A client device can obtain and validate the public keys from the distributed data store and use the public keys to establish a secure connection between the client device and the endpoint device.


