Software Version Locking to Prevent Rollback Attacks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software programs are vulnerable to rollback attacks where malicious attackers install older versions with known security vulnerabilities, exploiting security flaws even after patches are applied, necessitating a method to restrict installation and execution of superseded software.

Innovation Solution

A system that stores a locked version number for software programs, comparing it with the version number of update packages to prevent downgrades, allowing updates only if the package number is at least as recent as the locked version number, and restricting execution of superseded software programs based on this comparison.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software programs are updated through patches or upgrades to fix security flaws, then security vulnerabilities are addressed, but malicious attackers may still install older versions with known vulnerabilities through rollback attacks

Engineering Contradiction:
ImprovesecurityVSAvoidrollback attacks
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The system performs preliminary action by storing a locked version number in non-volatile memory before any update occurs. This locked version number serves as a predetermined threshold that prevents rollback attacks before they can happen, as the system checks against this pre-established version number before allowing installation of update packages

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system applies preliminary anti-action by implementing a version comparison mechanism that actively prevents installation of older versions. The locked version number creates a baseline that blocks any attempt to install superseded software, countering rollback attacks before they can compromise security

Inventive Principle:
Principle #9Preliminary anti-action

2Reliability

If the system restricts installation of older software versions to prevent rollback attacks, then security is enhanced, but the system may prevent legitimate updates or version downgrades that users need

Engineering Contradiction:
ImprovesecurityVSAvoidversion flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system applies dynamics by allowing the locked version number to be updated through proper update mechanisms. When a legitimate update is applied, the locked version number is updated to reflect the new baseline, enabling the system to adapt to new security requirements while maintaining protection against rollback attacks

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system uses feedback by comparing the update package version number against the locked version number before allowing installation. This feedback mechanism ensures that only appropriate updates are installed while preventing unauthorized downgrades, balancing security with legitimate update needs

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9251336B1Secure versioning of software packages
Publication Date: 2016.02.02 GOOGLE LLC
  • US9251336B1 patent drawing
  • US9251336B1 patent drawing
  • US9251336B1 patent drawing

AI summary

To provide a secure installation and execution software environment, locked version numbers are maintained. A locked version number associated with a software program may be stored. When a request is received to update the software program with an update package, a package number of the update package may be compared to the locked version number. The software program may be updated with the update package if the package number is at least as recent as the locked version number, and the updating of the software program with the update package may be restricted if the package number is earlier than the locked version number.