Systems and methods for validation of a device
Inventors
Assignees
Interested in licensing this patent?
MTEC can help explore whether this patent might be available for licensing for your application.
Abstract
A first processing device obtains a first copy of software from a repository, the first copy including first computer instructions and first data for indicating a running state of a device. A validation request is sent, which includes a seed, an algorithm identifier, a number of random numbers to generate, and a nonce. The first processing device generates the number of first random numbers using the seed and an algorithm corresponding to the algorithm identifier, and maps the first random numbers to memory blocks, each of which includes a respective first computer instruction of the first copy or the first data. A first hash is calculated from contents of the mapped memory blocks and the nonce. A second hash, calculated using information included in the validation request and a software copy on a second processing device, is received. An action is automatically performed when the hashes do not match.
Core Innovation
The invention validates a state of a second processing device by having a first processing device obtain a first copy of software from a repository, where the first copy includes first computer instructions and first data indicating a running state. The first processing device sends a validation request that includes a random number seed, a first algorithm identifier corresponding to an algorithm for random number generation, a number of random numbers to generate, and a nonce, and generates a first set of random numbers using the seed and the algorithm identified by the first algorithm identifier.
The first processing device maps the generated first set of random numbers, based on a mapping model, to a set of memory blocks where each mapped memory block includes a first computer instruction or the first data. The first processing device concatenates the contents of the set of mapped memory blocks to the nonce and calculates a first hash of the concatenated contents, and the second processing device calculates a second hash using information included in the validation request, the mapping model, a copy of the software on the second processing device, and the nonce.
The first processing device compares the first hash to the second hash and automatically performs an action when they do not match. The approach also supports validating through a hibernation mode by generating and mapping random numbers, concatenating mapped memory block contents to a nonce, calculating and saving a first hash value along with the seed and the nonce before hibernation, and on waking retrieving those saved values and recomputing a second hash for comparison.
Claims Coverage
The document includes four independent claims describing validation by hash comparison derived from mapped memory-block contents and a nonce. Across the independent claims, there are five main inventive features: obtaining a software copy from a repository for running-state indication, deterministic random-number generation from a seed and algorithm identifier, mapping random numbers to memory blocks using a mapping model, hashing the nonce-concatenated mapped contents for comparison against a second device hash, and automatically performing an action when hashes do not match; an additional independent claim covers a hibernation-mode validation with saving and retrieving seed, nonce, and hash.
Validation using mapped memory blocks and nonce-based hash comparison
A method/system/medium validates a state of a second processing device by generating first random numbers, mapping the generated first set of random numbers to a set of memory blocks based on a mapping model, concatenating contents of the mapped memory blocks to a nonce, calculating a first hash of the contents concatenated to the nonce, receiving a second hash calculated by the second processing device using the validation request information, the mapping model, a copy of the software on the second processing device, and the nonce, comparing the first hash to the second hash, and automatically performing an action when the first hash and the second hash do not match.
Obtaining a software copy from a repository including running-state indicating data
A method/system/medium obtains a first copy of software from a repository, where the first copy includes first computer instructions and first data for indicating a running state of a device, and uses a copy of the software on the second processing device in the second hash calculation.
Deterministic random-number generation from a seed and algorithm identifier in a validation request
The validation request includes a random number seed, a first algorithm identifier corresponding to an algorithm for random number generation, a number of random numbers to generate, and a nonce, and the first processing device generates a first set of random numbers using the random number seed according to the algorithm corresponding to the first algorithm identifier with a quantity equal to the number of random numbers to generate.
Mapping model-based mapping of generated random numbers to memory blocks
The first processing device maps, based on a mapping model, the generated first set of random numbers to a set of memory blocks, where the set of mapped memory blocks each includes a first computer instruction or the first data, and the second processing device calculates its second hash using the mapping model.
Hibernation-mode validation using saved hash, seed, and nonce
Performing by the processing device before entering a hibernation mode includes generating a quantity of first random numbers using a newly generated seed and a configured algorithm, mapping the generated first random numbers to memory blocks including computer instructions of an application, concatenating contents of the mapped memory blocks to a nonce, calculating a first hash value over the contents concatenated with the nonce, saving the first hash value, the seed, and the nonce, and entering the hibernation mode; performing upon waking includes retrieving the first hash value, the seed, and the nonce, generating a quantity of second random numbers using the seed and the configured algorithm, mapping based on the mapping model to the memory blocks including the computer instructions of the application, concatenating to the nonce, calculating a second hash value over the contents concatenated with the nonce, determining whether the first hash value and the second hash value are equal, and automatically performing an action when the first hash value is determined not to be equal to the second hash value.
Across the independent claims, the core validation relies on deterministic random-number generation from a seed and algorithm identifier, mapping those random numbers to memory blocks via a mapping model, hashing nonce-concatenated mapped contents, and comparing a first hash computed by the first processing device with a second hash returned by the second processing device. An additional independent claim extends the validation to a hibernation mode by saving and retrieving the first hash value, seed, and nonce and recomputing a second hash on wake to decide whether to automatically perform an action.
Stated Advantages
Not explicitly described in patent.
Documented Applications
Not explicitly described in patent.
Interested in licensing this patent?