DNSSEC Public Key Verification for Application Integrity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing cryptographic techniques for signing application packages face challenges in verifying the authenticity of public keys during initial installation and are vulnerable to key compromise, leading to security risks and inconvenience for users.
Innovation Solution
The use of the Domain Name System (DNS) with DNS Security Extensions (DNSSEC) to securely transmit and verify the authenticity of application package public keys, creating a separate chain of trust that is independent of the vendor's private key, thereby enhancing security and mitigating key compromise risks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a vendor signs an application package using a private key and distributes the public key with the package, then the application package can be verified for authenticity, but it becomes difficult for users to verify the authenticity of the distributed public key
Solution Approach 1:
The patent introduces DNSSEC as an intermediary trust mechanism. Instead of directly verifying the vendor's public key, the system uses DNSSEC-signed DNS records as a mediator to provide the public key. The DNSSEC infrastructure acts as a trusted third party that signs the public key distribution, allowing users to verify authenticity through DNSSEC validation rather than direct vendor verification.
2Adaptability or versatility
If the vendor's private key is compromised, then existing cryptographic techniques allow continued use of the key pair, but this creates security risks as compromised keys cannot be revoked
Solution Approach 1:
The patent implements preliminary key revocation by allowing vendors to publish revocation records in DNS before compromised keys are widely distributed or before their misuse is discovered. The system proactively checks DNS for revocation records during the verification process, preventing use of compromised keys rather than reacting after compromise is detected.
Solution Approach 2:
The patent transforms the static cryptographic key pair system into a dynamic system where key validity can change over time. By integrating DNSSEC with revocation record publication, the system allows key status to be dynamically updated in DNS, enabling revocation of compromised keys while maintaining the ability to reuse key pairs across multiple application versions.
3Reliability
If manual verification of public keys is required for first-time application installation, then security can be maintained, but this entails technical skills and time investment that users may skip
Solution Approach 1:
The patent implements automated self-service verification where the system automatically performs DNSSEC validation and retrieves public keys from DNS records without requiring user intervention. The verification process is seamlessly integrated into the application installation workflow, automatically checking DNSSEC signatures and validating public keys without requiring users to manually verify anything.
4Reliability
If cryptographic signing is used for application packages, then integrity can be verified, but the process requires users to obtain and verify public keys from external sources
Solution Approach 1:
The patent leverages the existing DNS infrastructure to serve multiple functions: domain name resolution, public key distribution, and revocation record publication. By making DNS serve these additional cryptographic functions through DNSSEC extensions, the system avoids creating separate verification infrastructure, reducing overall system complexity while maintaining integrity verification capabilities.
Data Source
AI summary
An example method includes obtaining a first public key associated with a private key of an application vendor of an application package signed with the private key. The first public key includes metadata including an identifier of the first public key. The method also includes transforming, via a processing device, the identifier into a Domain Name System (DNS) name, sending the DNS name to a DNS server to determine that the DNS name corresponds to a trustworthy source, in response to receiving, from the DNS server, a second public key associated with the DNS name in a DNS data store, confirming that the DNS name corresponds to the trustworthy source, and determining whether the second public key matches the first public key to verify whether the first public key and the associated private key used to sign the application package are authentic.


