Validation of software residing on remote computing devices
Inventors
Lattin, William L. • Upton, Jimmy R.
Assignees
Interested in licensing this patent?
MTEC can help explore whether this patent might be available for licensing for your application.
Abstract
A computer implemented method for validating software is provided. The method includes generating a first check value, by a remote computing device, based on a unique value and software of the remote computing device, outputting the first check value and the unique value from the remote computing device to a secure data repository, obtaining, by a secure computing device, an authentic copy of the software of the remote computing device, obtaining, by the secure computing device, the unique value and the first check value from the secure data repository, computing, by the secure computing device, a second check value based on the authentic copy of the software for the remote computing device and the unique value, and determining, by the secure computing device, whether the remote computing device has authentic software based on a comparison of the obtained first check value and the second check value.
Core Innovation
The invention validates software of a first device by a second device using a two-device architecture with a software validation request comprising a first value. The first device stores a first check value computed based on the first value and the software installed on the first device, and the second device obtains an authentic copy of the software where the authentic copy is a last known authorized software provided to the first device.
The second device accesses the stored first check value and the first value, computes a second check value based on the authentic copy and the first value, and provides an instruction to modify operation of the first device when comparison of the first check value and the second check value indicates that the software is not valid or does not match the authentic copy. The invention includes storing and accessing check values tied to the first value and the software on the first device to support authenticity determination by the second device.
The invention further supports validation driven by timing and state-based triggers, including validation request reception after detecting a power-state transition and after expiration of time-based intervals, including a randomly determined time period and a non-random predetermined interval since a prior software validation request. The invention also supports constraining validation through request parameters including a time limit and a deviation threshold related to estimated time for generation of the first check value.
Claims Coverage
The document includes four independent claims covering a core workflow with a request containing a first value, computation of a first check value on the first device, recomputation of a second check value on the second device using a last known authorized software copy, comparison of the check values, and issuance of an instruction to modify operation when the software is not valid or does not match the authentic copy. The independent claims also cover both a second-device execution model and a computing-device execution model, plus a system architecture with first and second devices.
Two-device software authenticity validation with last known authorized software
A computer implemented method for validating software of a first device by a second device, comprising receiving, by the first device, a software validation request comprising a first value; storing, by the first device, a first check value generated based on the first value and the software installed on the first device; obtaining, by the second device, an authentic copy of the software wherein the authentic copy is a last known authorized software provided to the first device; accessing the first check value and the first value; computing, by the second device, a second check value based on the authentic copy and the first value; and providing, by the second device, an instruction modifying operation of the first device when a comparison of the first check value and the second check value indicates that the software is not valid.
Second device requests first value, recomputes second check value, and instructs modification
A computer implemented method for validating software, the method executing on a second device, comprising sending, to a first device, a software validation request comprising a first value; obtaining a first check value that was computed by the first device based on the first value and software of the first device; obtaining an authentic copy of the software wherein the authentic copy is a last known authorized software provided to the first device; accessing the first check value and the first value; computing a second check value based on the authentic copy and the first value; and generating an instruction to modify operation of the first device when a comparison of the first check value and the second check value indicate that the software of the first device does not match the authentic copy.
Device-side storage of first check value and instruction to modify operation upon mismatch
A computer implemented method for validating software, the method executing on a computing device, comprising storing a first check value computed based on a first value and software of the computing device; and receiving an instruction to modify operation of the computing device if a comparison between the first check value and a second check value indicates that the computing device does not have an authentic copy of the software, the second check value being computed based on the authentic copy and the first value; wherein the authentic copy is a last known authorized software provided to the computing device.
System with first device check value storage and second device instruction generation
A system for validating software, the system comprising a first device configured to receive a software validation request comprising a first value and store a first check value computed based on the first value and software of the first device; and a second device configured to access the first check value that was stored by the first device; obtain an authentic copy of the software wherein the authentic copy is a last known authorized software provided to the first device; compute a second check value based on the authentic copy and the first value; and generate an instruction to modify operation of the first device if a comparison of the first check value and the second check value indicate that the software of the first device does not correspond to the authentic copy.
Across the independent claims, authenticity of software on a first device is supported by computing a first check value on the first device from a first value and the device software, recomputing a second check value on a second device from a last known authorized authentic copy and the same first value, comparing the check values, and generating an instruction to modify operation when the software is not valid or does not match the authentic copy. The independent claims cover both method execution roles and a system architecture with first and second devices.
Stated Advantages
Documented Applications
No documented applications found
Interested in licensing this patent?